diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaDetailsPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaDetailsPresenter.kt index 49dbb4e6e2..9311865417 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaDetailsPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaDetailsPresenter.kt @@ -200,6 +200,14 @@ class MangaDetailsPresenter( val controller = view ?: return isLockedFromSearch = controller.shouldLockIfNeeded && SecureActivityDelegate.shouldBeLocked() + + presenterScope.launchUI { + currentManga.collectLatest { + if (it == null) return@collectLatest + + controller.updateHeader() + } + } if (currentManga.value == null) runBlocking { refreshMangaFromDb() } syncData() @@ -218,13 +226,6 @@ class MangaDetailsPresenter( presenterScope.launchIO { downloadManager.queueState.collectLatest(::onQueueUpdate) } - presenterScope.launchUI { - currentManga.collectLatest { - if (it == null) return@collectLatest - - controller.updateHeader() - } - } presenterScope.launchIO { currentChapters.collectLatest { chapters -> allChapters = if (!isScanlatorFiltered()) chapters else getChapter.awaitAll(mangaId, false).map { it.toModel() } @@ -258,7 +259,7 @@ class MangaDetailsPresenter( .onEach { onUpdateManga() } .launchIn(presenterScope) - val updateMangaNeeded = !manga.initialized + val updateMangaNeeded = currentManga.value?.initialized != true val updateChaptersNeeded = runBlocking { setAndGetChapters() }.isEmpty() presenterScope.launch { @@ -496,7 +497,7 @@ class MangaDetailsPresenter( .build() if (preferences.context.imageLoader.execute(request) is SuccessResult) { - withContext(Dispatchers.Main) { + withUIContext { view?.setPaletteColor() } }