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.afollestad.materialdialogs.list.listItemsMultiChoice
|
||||||
import com.bluelinelabs.conductor.Controller
|
import com.bluelinelabs.conductor.Controller
|
||||||
import eu.kanade.tachiyomi.R
|
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.database.models.Manga
|
||||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||||
import eu.kanade.tachiyomi.source.CatalogueSource
|
import eu.kanade.tachiyomi.source.CatalogueSource
|
||||||
@ -33,12 +34,30 @@ import uy.kohesive.injekt.injectLazy
|
|||||||
class SearchController(
|
class SearchController(
|
||||||
private var manga: Manga? = null,
|
private var manga: Manga? = null,
|
||||||
private var sources: List<CatalogueSource>? = 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 newManga: Manga? = null
|
||||||
private var progress = 1
|
private var progress = 1
|
||||||
var totalProgress = 0
|
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.
|
* 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) {
|
fun migrateManga(manga: Manga, newManga: Manga) {
|
||||||
val target = targetController as? MigrationInterface ?: return
|
val target = targetController as? MigrationInterface ?: return
|
||||||
|
|
||||||
@ -218,4 +225,9 @@ class SearchController(
|
|||||||
|
|
||||||
router.pushController(SourceSearchController(manga!!, source, presenter.query).withFadeTransaction())
|
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(
|
open class GlobalSearchController(
|
||||||
protected val initialQuery: String? = null,
|
protected val initialQuery: String? = null,
|
||||||
protected val extensionFilter: String? = null
|
protected val extensionFilter: String? = null,
|
||||||
) : SearchableNucleusController<GlobalSearchControllerBinding, GlobalSearchPresenter>(),
|
bundle: Bundle? = null
|
||||||
|
) : SearchableNucleusController<GlobalSearchControllerBinding, GlobalSearchPresenter>(bundle),
|
||||||
GlobalSearchCardAdapter.OnMangaClickListener,
|
GlobalSearchCardAdapter.OnMangaClickListener,
|
||||||
GlobalSearchAdapter.OnTitleClickListener {
|
GlobalSearchAdapter.OnTitleClickListener {
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user