From 4e4e369188040f56436447f4f22c0158ecb6fd3e Mon Sep 17 00:00:00 2001 From: arkon Date: Wed, 10 Aug 2022 16:11:12 -0400 Subject: [PATCH] Fix crash when setting cover errors (closes #7714) (cherry picked from commit e511f24979b0f40c545345ed151d3557644f79c6) # Conflicts: # app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SearchPresenter.kt # app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt --- .../details/ExtensionDetailsPresenter.kt | 4 +-- .../tachiyomi/ui/library/LibraryController.kt | 4 +-- .../tachiyomi/ui/manga/MangaPresenter.kt | 11 +++---- .../ui/manga/info/MangaFullCoverDialog.kt | 16 ++++----- .../tachiyomi/ui/reader/ReaderPresenter.kt | 33 +++++++++---------- .../ui/recent/history/HistoryPresenter.kt | 4 +-- .../kanade/tachiyomi/util/MangaExtensions.kt | 7 ++-- 7 files changed, 35 insertions(+), 44 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/details/ExtensionDetailsPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/details/ExtensionDetailsPresenter.kt index e2595e0cd..59d26ba1f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/details/ExtensionDetailsPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/details/ExtensionDetailsPresenter.kt @@ -10,7 +10,7 @@ import eu.kanade.tachiyomi.extension.ExtensionManager import eu.kanade.tachiyomi.source.Source import eu.kanade.tachiyomi.ui.base.presenter.BasePresenter import eu.kanade.tachiyomi.util.lang.launchIO -import eu.kanade.tachiyomi.util.lang.launchUI +import eu.kanade.tachiyomi.util.lang.withUIContext import eu.kanade.tachiyomi.util.system.LocaleHelper import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.collectLatest @@ -36,7 +36,7 @@ class ExtensionDetailsPresenter( .collectLatest { extension -> // If extension is null it's most likely uninstalled if (extension == null) { - launchUI { + withUIContext { view?.onExtensionUninstalled() } return@collectLatest diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt index 4e454d7f1..044505614 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt @@ -28,7 +28,7 @@ import eu.kanade.tachiyomi.ui.main.MainActivity import eu.kanade.tachiyomi.ui.manga.MangaController import eu.kanade.tachiyomi.ui.reader.ReaderActivity import eu.kanade.tachiyomi.util.lang.launchIO -import eu.kanade.tachiyomi.util.lang.launchUI +import eu.kanade.tachiyomi.util.lang.withUIContext import eu.kanade.tachiyomi.util.system.toast import eu.kanade.tachiyomi.widget.materialdialogs.QuadStateTextView import exh.favorites.FavoritesIntroDialog @@ -276,7 +276,7 @@ class LibraryController( else -> QuadStateTextView.State.UNCHECKED.ordinal } }.toTypedArray() - launchUI { + withUIContext { ChangeMangaCategoriesDialog(this@LibraryController, mangas.mapNotNull { it.toDomainManga() }, categories, preselected) .showDialog(router) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt index 994ca00d6..fb9b4c2cc 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt @@ -63,7 +63,6 @@ import eu.kanade.tachiyomi.ui.manga.track.TrackItem import eu.kanade.tachiyomi.util.chapter.ChapterSettingsHelper import eu.kanade.tachiyomi.util.chapter.getChapterSort import eu.kanade.tachiyomi.util.lang.launchIO -import eu.kanade.tachiyomi.util.lang.launchUI import eu.kanade.tachiyomi.util.lang.toRelativeString import eu.kanade.tachiyomi.util.lang.withUIContext import eu.kanade.tachiyomi.util.preference.asHotFlow @@ -673,7 +672,7 @@ class MangaPresenter( if (manga.toDbManga().removeCovers() > 0) { updateManga.awaitUpdateCoverLastModified(manga.id) } - launchUI { onRemoved() } + withUIContext { onRemoved() } } } else { // Add to library @@ -681,7 +680,7 @@ class MangaPresenter( if (onDuplicateExists != null) { val duplicate = getDuplicateLibraryManga.await(manga.title, manga.source) if (duplicate != null) { - launchUI { onDuplicateExists(duplicate) } + withUIContext { onDuplicateExists(duplicate) } return@launchIO } } @@ -696,7 +695,7 @@ class MangaPresenter( val result = updateManga.awaitUpdateFavorite(manga.id, true) if (!result) return@launchIO moveMangaToCategory(defaultCategory) - launchUI { onAdded() } + withUIContext { onAdded() } } // Automatic 'Default' or no categories @@ -704,11 +703,11 @@ class MangaPresenter( val result = updateManga.awaitUpdateFavorite(manga.id, true) if (!result) return@launchIO moveMangaToCategory(null) - launchUI { onAdded() } + withUIContext { onAdded() } } // Choose a category - else -> launchUI { onRequireCategory(manga, categories) } + else -> withUIContext { onRequireCategory(manga, categories) } } // Finally match with enhanced tracking when available diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaFullCoverDialog.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaFullCoverDialog.kt index c8bf71f1e..24f34aa33 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaFullCoverDialog.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaFullCoverDialog.kt @@ -28,7 +28,6 @@ import eu.kanade.tachiyomi.data.saver.Location import eu.kanade.tachiyomi.ui.base.controller.FullComposeController import eu.kanade.tachiyomi.util.editCover import eu.kanade.tachiyomi.util.lang.launchIO -import eu.kanade.tachiyomi.util.lang.launchUI import eu.kanade.tachiyomi.util.lang.withUIContext import eu.kanade.tachiyomi.util.system.logcat import eu.kanade.tachiyomi.util.system.toShareIntent @@ -81,11 +80,11 @@ class MangaFullCoverDialog : FullComposeController