From d32a902a5751f4f37b13c5fb622325aba2a8ca20 Mon Sep 17 00:00:00 2001 From: Jays2Kings Date: Mon, 2 May 2022 14:12:00 -0400 Subject: [PATCH] Various crash fixes --- .../base/presenter/BaseCoroutinePresenter.kt | 1 + .../tachiyomi/ui/library/LibraryPresenter.kt | 2 +- .../kanade/tachiyomi/ui/main/MainActivity.kt | 4 ++++ .../ui/manga/MangaDetailsController.kt | 23 +++++++++++-------- .../util/view/ControllerExtensions.kt | 5 ++-- 5 files changed, 22 insertions(+), 13 deletions(-) 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 63619767c5..5b2f386c0f 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 @@ -7,6 +7,7 @@ import kotlinx.coroutines.cancel open class BaseCoroutinePresenter { lateinit var presenterScope: CoroutineScope + val isScopeInitialized get() = this::presenterScope.isInitialized protected var controller: T? = null /** diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt index 5770a63aa3..a74a565ddf 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt @@ -1225,7 +1225,7 @@ class LibraryPresenter( val mangaFetcher = MangaFetcher() val libraryManga = db.getFavoriteMangas().executeOnIO() libraryManga.forEach { manga -> - mangaFetcher.setRatioAndColors(manga) + try { withUIContext { mangaFetcher.setRatioAndColors(manga) } } catch (_: Exception) { } } MangaCoverMetadata.savePrefs() } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt index 5dd4bad8ac..b51a76c51e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt @@ -72,6 +72,7 @@ import eu.kanade.tachiyomi.ui.base.activity.BaseActivity import eu.kanade.tachiyomi.ui.base.controller.BaseController import eu.kanade.tachiyomi.ui.base.controller.DialogController import eu.kanade.tachiyomi.ui.library.LibraryController +import eu.kanade.tachiyomi.ui.library.LibraryPresenter import eu.kanade.tachiyomi.ui.manga.MangaDetailsController import eu.kanade.tachiyomi.ui.more.AboutController import eu.kanade.tachiyomi.ui.more.OverflowDialog @@ -468,6 +469,9 @@ open class MainActivity : BaseActivity(), DownloadServiceLi } } } + lifecycleScope.launchIO { + LibraryPresenter.updateRatiosAndColors() + } } getExtensionUpdates(true) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaDetailsController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaDetailsController.kt index f8dbe075de..222380e56a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaDetailsController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaDetailsController.kt @@ -556,17 +556,20 @@ class MangaDetailsController : //region Lifecycle methods override fun onActivityResumed(activity: Activity) { super.onActivityResumed(activity) - presenter.isLockedFromSearch = shouldLockIfNeeded && SecureActivityDelegate.shouldBeLocked() - presenter.headerItem.isLocked = presenter.isLockedFromSearch - manga!!.thumbnail_url = presenter.refreshMangaFromDb().thumbnail_url - presenter.fetchChapters(refreshTracker == null) - if (refreshTracker != null) { - trackingBottomSheet?.refreshItem(refreshTracker ?: 0) - presenter.refreshTracking() - refreshTracker = null + if (presenter.isScopeInitialized) { + presenter.isLockedFromSearch = + shouldLockIfNeeded && SecureActivityDelegate.shouldBeLocked() + presenter.headerItem.isLocked = presenter.isLockedFromSearch + manga!!.thumbnail_url = presenter.refreshMangaFromDb().thumbnail_url + presenter.fetchChapters(refreshTracker == null) + if (refreshTracker != null) { + trackingBottomSheet?.refreshItem(refreshTracker ?: 0) + presenter.refreshTracking() + refreshTracker = null + } + // fetch cover again in case the user set a new cover while reading + setPaletteColor() } - // fetch cover again in case the user set a new cover while reading - setPaletteColor() val isCurrentController = router?.backstack?.lastOrNull()?.controller == this if (isCurrentController) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/view/ControllerExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/util/view/ControllerExtensions.kt index 08c432e2de..3038766780 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/view/ControllerExtensions.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/view/ControllerExtensions.kt @@ -478,9 +478,10 @@ fun Controller.scrollViewWith( preferences.hideBottomNavOnScroll().get() ) closerToBottom else closerToTop lastY = activityBinding!!.appBar.snapAppBarY(recycler) { + val activityBinding = activityBinding ?: return@snapAppBarY swipeCircle?.translationY = max( - activityBinding!!.appBar.y, - -activityBinding!!.appBar.height + activityBinding!!.appBar.paddingTop.toFloat() + activityBinding.appBar.y, + -activityBinding.appBar.height + activityBinding.appBar.paddingTop.toFloat() ) } if (activityBinding!!.bottomNav?.isVisible == true &&