From 314ced0e8d2800ab79c09b26a7257f5954a55e34 Mon Sep 17 00:00:00 2001 From: Cuong-Tran Date: Wed, 10 Jul 2024 19:03:11 +0700 Subject: [PATCH] Load cover color with IO scope instead of UI Fix laggy issue (#159) when opening multiple entries continuously --- .../eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt index fab0d4bc9..ebf59bdec 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt @@ -107,7 +107,6 @@ import tachiyomi.core.common.preference.TriState import tachiyomi.core.common.preference.mapAsCheckboxState import tachiyomi.core.common.util.lang.launchIO import tachiyomi.core.common.util.lang.launchNonCancellable -import tachiyomi.core.common.util.lang.launchUI import tachiyomi.core.common.util.lang.withIOContext import tachiyomi.core.common.util.lang.withNonCancellableContext import tachiyomi.core.common.util.lang.withUIContext @@ -504,19 +503,19 @@ class MangaScreenModel( val bitmap = image.asDrawable(context.resources).getBitmapOrNull() if (bitmap != null) { Palette.from(bitmap).generate { - screenModelScope.launchUI { - if (it == null) return@launchUI + screenModelScope.launchIO { + if (it == null) return@launchIO val mangaCover = when (model) { is Manga -> model.asMangaCover() is MangaCover -> model - else -> return@launchUI + else -> return@launchIO } if (mangaCover.isMangaFavorite) { it.dominantSwatch?.let { swatch -> mangaCover.dominantCoverColors = swatch.rgb to swatch.titleTextColor } } - val vibrantColor = it.getBestColor() ?: return@launchUI + val vibrantColor = it.getBestColor() ?: return@launchIO mangaCover.vibrantCoverColor = vibrantColor updateSuccessState { it.copy(seedColor = Color(vibrantColor))