Fix crashing when using migrate from the library overflow menu

This commit is contained in:
Jobobby04 2020-05-27 14:01:44 -04:00
parent b66f97f0b4
commit 6957dce332

View File

@ -14,6 +14,7 @@ import eu.kanade.tachiyomi.ui.base.controller.withFadeTransaction
import eu.kanade.tachiyomi.ui.browse.migration.advanced.design.PreMigrationController import eu.kanade.tachiyomi.ui.browse.migration.advanced.design.PreMigrationController
import eu.kanade.tachiyomi.ui.browse.migration.manga.MigrationMangaController import eu.kanade.tachiyomi.ui.browse.migration.manga.MigrationMangaController
import eu.kanade.tachiyomi.ui.browse.source.SourceDividerItemDecoration import eu.kanade.tachiyomi.ui.browse.source.SourceDividerItemDecoration
import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceController
import eu.kanade.tachiyomi.util.lang.launchUI import eu.kanade.tachiyomi.util.lang.launchUI
import exh.util.await import exh.util.await
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
@ -41,8 +42,7 @@ class MigrationSourcesController :
override fun onViewCreated(view: View) { override fun onViewCreated(view: View) {
super.onViewCreated(view) super.onViewCreated(view)
adapter = adapter = SourceAdapter(this)
SourceAdapter(this)
binding.recycler.layoutManager = LinearLayoutManager(view.context) binding.recycler.layoutManager = LinearLayoutManager(view.context)
binding.recycler.adapter = adapter binding.recycler.adapter = adapter
binding.recycler.addItemDecoration(SourceDividerItemDecoration(view.context)) binding.recycler.addItemDecoration(SourceDividerItemDecoration(view.context))
@ -63,30 +63,31 @@ class MigrationSourcesController :
} }
override fun onItemClick(view: View?, position: Int): Boolean { override fun onItemClick(view: View?, position: Int): Boolean {
val item = adapter?.getItem(position) as? SourceItem val item = adapter?.getItem(position) as? SourceItem ?: return false
?: return false val controller = MigrationMangaController(item.source)
val controller = if (parentController is BrowseSourceController) {
MigrationMangaController( parentController!!.router.pushController(controller.withFadeTransaction())
item.source } else {
) router.pushController(controller.withFadeTransaction())
parentController!!.router.pushController(controller.withFadeTransaction()) }
return false return false
} }
override fun onAllClick(position: Int) { override fun onAllClick(position: Int) {
val item = adapter?.getItem(position) as? SourceItem val item = adapter?.getItem(position) as? SourceItem ?: return
?: return
launchUI { launchUI {
val manga = Injekt.get<DatabaseHelper>().getFavoriteMangas().asRxSingle().await( val manga = Injekt.get<DatabaseHelper>().getFavoriteMangas().asRxSingle().await(Schedulers.io())
Schedulers.io() val sourceMangas = manga.asSequence().filter { it.source == item.source.id }.map { it.id!! }.toList()
)
val sourceMangas =
manga.asSequence().filter { it.source == item.source.id }.map { it.id!! }.toList()
withContext(Dispatchers.Main) { withContext(Dispatchers.Main) {
PreMigrationController.navigateToMigration( PreMigrationController.navigateToMigration(
Injekt.get<PreferencesHelper>().skipPreMigration().get(), Injekt.get<PreferencesHelper>().skipPreMigration().get(),
parentController!!.router, if (parentController is BrowseSourceController) {
parentController!!.router
} else {
router
},
sourceMangas sourceMangas
) )
} }