diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/base/presenter/BaseCoroutinePresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/base/presenter/BaseCoroutinePresenter.kt index a63278740e..cf5926557f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/base/presenter/BaseCoroutinePresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/base/presenter/BaseCoroutinePresenter.kt @@ -2,7 +2,7 @@ package eu.kanade.tachiyomi.ui.base.presenter import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.Job +import kotlinx.coroutines.SupervisorJob import kotlinx.coroutines.cancel import java.lang.ref.WeakReference @@ -23,7 +23,9 @@ open class BaseCoroutinePresenter { } open fun onCreate() { - presenterScope = CoroutineScope(Job() + Dispatchers.Default) + if (!isScopeInitialized) { + presenterScope = CoroutineScope(SupervisorJob() + Dispatchers.Default) + } } open fun onDestroy() { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentsController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentsController.kt index cec40848a1..272c591f93 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentsController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentsController.kt @@ -491,13 +491,13 @@ class RecentsController(bundle: Bundle? = null) : override fun onDestroy() { super.onDestroy() + binding.downloadBottomSheet.root.onDestroy() snack?.dismiss() snack = null } override fun onDestroyView(view: View) { super.onDestroyView(view) - binding.downloadBottomSheet.root.onDestroy() displaySheet?.dismiss() displaySheet = null } @@ -860,7 +860,6 @@ class RecentsController(bundle: Bundle? = null) : (activity as? MainActivity)?.showTabBar(true) } } else { - if (type == ControllerChangeType.POP_EXIT) presenter.onDestroy() val lastController = router.backstack.lastOrNull()?.controller if (lastController !is DialogController) { (activity as? MainActivity)?.showTabBar(show = false, animate = lastController !is SmallToolbarInterface)