Fix crashing when loading a chapter from manual search in migration
This commit is contained in:
parent
5842765eda
commit
7c4e89cbc5
@ -10,6 +10,7 @@ import com.afollestad.materialdialogs.MaterialDialog
|
||||
import com.afollestad.materialdialogs.list.listItemsMultiChoice
|
||||
import com.bluelinelabs.conductor.Controller
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.data.database.DatabaseHelper
|
||||
import eu.kanade.tachiyomi.data.database.models.Manga
|
||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||
import eu.kanade.tachiyomi.source.CatalogueSource
|
||||
@ -33,12 +34,30 @@ import uy.kohesive.injekt.injectLazy
|
||||
class SearchController(
|
||||
private var manga: Manga? = null,
|
||||
private var sources: List<CatalogueSource>? = null
|
||||
) : GlobalSearchController(manga?.originalTitle) {
|
||||
) : GlobalSearchController(
|
||||
manga?.originalTitle,
|
||||
bundle = bundleOf(
|
||||
OLD_MANGA to manga?.id,
|
||||
SOURCES to sources?.map { it.id }?.toLongArray()
|
||||
)
|
||||
) {
|
||||
|
||||
private var newManga: Manga? = null
|
||||
private var progress = 1
|
||||
var totalProgress = 0
|
||||
|
||||
constructor(mangaId: Long, sources: LongArray):
|
||||
this(
|
||||
Injekt.get<DatabaseHelper>().getManga(mangaId).executeAsBlocking(),
|
||||
sources.map { Injekt.get<SourceManager>().getOrStub(it) }.filterIsInstance<CatalogueSource>()
|
||||
)
|
||||
|
||||
@Suppress("unused")
|
||||
constructor(bundle: Bundle): this(
|
||||
bundle.getLong(OLD_MANGA),
|
||||
bundle.getLongArray(SOURCES) ?: LongArray(0)
|
||||
)
|
||||
|
||||
/**
|
||||
* Called when controller is initialized.
|
||||
*/
|
||||
@ -62,18 +81,6 @@ class SearchController(
|
||||
)
|
||||
}
|
||||
|
||||
override fun onSaveInstanceState(outState: Bundle) {
|
||||
outState.putSerializable(::manga.name, manga)
|
||||
outState.putSerializable(::newManga.name, newManga)
|
||||
super.onSaveInstanceState(outState)
|
||||
}
|
||||
|
||||
override fun onRestoreInstanceState(savedInstanceState: Bundle) {
|
||||
super.onRestoreInstanceState(savedInstanceState)
|
||||
manga = savedInstanceState.getSerializable(::manga.name) as? Manga
|
||||
newManga = savedInstanceState.getSerializable(::newManga.name) as? Manga
|
||||
}
|
||||
|
||||
fun migrateManga(manga: Manga, newManga: Manga) {
|
||||
val target = targetController as? MigrationInterface ?: return
|
||||
|
||||
@ -218,4 +225,9 @@ class SearchController(
|
||||
|
||||
router.pushController(SourceSearchController(manga!!, source, presenter.query).withFadeTransaction())
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val OLD_MANGA = "old_manga"
|
||||
const val SOURCES = "sources"
|
||||
}
|
||||
}
|
||||
|
@ -23,8 +23,9 @@ import uy.kohesive.injekt.injectLazy
|
||||
*/
|
||||
open class GlobalSearchController(
|
||||
protected val initialQuery: String? = null,
|
||||
protected val extensionFilter: String? = null
|
||||
) : SearchableNucleusController<GlobalSearchControllerBinding, GlobalSearchPresenter>(),
|
||||
protected val extensionFilter: String? = null,
|
||||
bundle: Bundle? = null
|
||||
) : SearchableNucleusController<GlobalSearchControllerBinding, GlobalSearchPresenter>(bundle),
|
||||
GlobalSearchCardAdapter.OnMangaClickListener,
|
||||
GlobalSearchAdapter.OnTitleClickListener {
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user