From 0a3d9121ae2783da6b2dc606519f872a0d18e447 Mon Sep 17 00:00:00 2001 From: Cuong-Tran Date: Thu, 20 Jun 2024 19:52:53 +0700 Subject: [PATCH] avoid loading cover's color if theme cover based is disabled --- .../tachiyomi/data/coil/MangaCoverFetcher.kt | 3 ++- .../kanade/tachiyomi/ui/manga/MangaScreen.kt | 21 +++++++++++-------- .../tachiyomi/ui/manga/PaletteScreen.kt | 14 +++++++++---- .../tachiyomi/ui/reader/ReaderActivity.kt | 2 +- .../exh/ui/metadata/MetadataViewScreen.kt | 15 ++++++++----- 5 files changed, 35 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/coil/MangaCoverFetcher.kt b/app/src/main/java/eu/kanade/tachiyomi/data/coil/MangaCoverFetcher.kt index 7800b5eab..8126b5895 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/coil/MangaCoverFetcher.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/coil/MangaCoverFetcher.kt @@ -74,6 +74,7 @@ class MangaCoverFetcher( // KMK --> private val fileScope by lazy { CoroutineScope(Job() + Dispatchers.IO) } private val uiPreferences = Injekt.get() + private val themeCoverBased = uiPreferences.themeCoverBased().get() // KMK <-- private val diskCacheKey: String @@ -347,7 +348,7 @@ class MangaCoverFetcher( mangaCover: MangaCover, bufferedSource: BufferedSource? = null, ogFile: File? = null, - onlyFavorite: Boolean = !uiPreferences.themeCoverBased().get(), + onlyFavorite: Boolean = !themeCoverBased, force: Boolean = false, ) { fileScope.launch { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt index 6ce8b5860..e88cdfde0 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt @@ -122,6 +122,13 @@ class MangaScreen( override fun onProvideAssistUrl() = assistUrl + // KMK --> + private val uiPreferences = Injekt.get() + private val themeCoverBased = uiPreferences.themeCoverBased().get() + private val themeDarkAmoled = uiPreferences.themeDarkAmoled().get() + private val themeCoverBasedStyle = uiPreferences.themeCoverBasedStyle().get() + // KMK <-- + @Composable override fun Content() { if (!ifSourcesLoaded()) { @@ -157,8 +164,6 @@ class MangaScreen( } } - val uiPreferences = remember { Injekt.get() } - val content = @Composable { val slideDistance = rememberSlideDistance() AnimatedContent( @@ -195,12 +200,12 @@ class MangaScreen( } val seedColor = successState.seedColor - if (uiPreferences.themeCoverBased().get() && seedColor != null) { + if (themeCoverBased && seedColor != null) { DynamicMaterialTheme( seedColor = seedColor, useDarkTheme = isSystemInDarkTheme(), - withAmoled = uiPreferences.themeDarkAmoled().get(), - style = uiPreferences.themeCoverBasedStyle().get(), + withAmoled = themeDarkAmoled, + style = themeCoverBasedStyle, animate = true, content = { content() }, ) @@ -208,7 +213,6 @@ class MangaScreen( content() } - // KMK --> when (bulkFavoriteState.dialog) { is BulkFavoriteScreenModel.Dialog.AddDuplicateManga -> AddDuplicateMangaDialog(bulkFavoriteScreenModel) @@ -227,7 +231,6 @@ class MangaScreen( else -> {} } - // KMK <-- } @Composable @@ -378,8 +381,8 @@ class MangaScreen( navigator.push(ExtensionsScreen(searchSource = successState.source.name)) } }, - onCoverLoaded = screenModel::setPaletteColor, - onPaletteScreenClick = { navigator.push(PaletteScreen(successState.seedColor?.toArgb())) } + onCoverLoaded = { if (themeCoverBased || successState.manga.favorite) screenModel.setPaletteColor(it) }, + onPaletteScreenClick = { navigator.push(PaletteScreen(successState.seedColor?.toArgb())) }, // KMK <-- ) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/PaletteScreen.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/PaletteScreen.kt index 0fe93aa97..5d2e421e1 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/PaletteScreen.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/PaletteScreen.kt @@ -33,17 +33,23 @@ class PaletteScreen( @ColorInt private val seedColor: Int?, ) : Screen() { + // KMK --> + private val uiPreferences = Injekt.get() + private val themeCoverBased = uiPreferences.themeCoverBased().get() + private val themeDarkAmoled = uiPreferences.themeDarkAmoled().get() + private val themeCoverBasedStyle = uiPreferences.themeCoverBasedStyle().get() + // KMK <-- + @Composable override fun Content() { val seedColor = seedColor?.let { Color(it) } ?: MaterialTheme.colorScheme.primary - val uiPreferences = remember { Injekt.get() } - if (uiPreferences.themeCoverBased().get()) { + if (themeCoverBased) { DynamicMaterialTheme( seedColor = seedColor, useDarkTheme = isSystemInDarkTheme(), - withAmoled = uiPreferences.themeDarkAmoled().get(), - style = uiPreferences.themeCoverBasedStyle().get(), + withAmoled = themeDarkAmoled, + style = themeCoverBasedStyle, animate = true, content = { MaterialThemeContent(seedColor) }, ) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt index 0f5d11a99..bd60a4a37 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt @@ -406,7 +406,7 @@ class ReaderActivity : BaseActivity() { // KMK --> binding.pageNumber.setComposeContent { - if (uiPreferences.themeCoverBased().get() && seedColor != null) { + if (themeCoverBased && seedColor != null) { DynamicMaterialTheme( seedColor = seedColor, useDarkTheme = isSystemInDarkTheme(), diff --git a/app/src/main/java/exh/ui/metadata/MetadataViewScreen.kt b/app/src/main/java/exh/ui/metadata/MetadataViewScreen.kt index c170d7c7e..6077c2ce4 100644 --- a/app/src/main/java/exh/ui/metadata/MetadataViewScreen.kt +++ b/app/src/main/java/exh/ui/metadata/MetadataViewScreen.kt @@ -47,6 +47,13 @@ class MetadataViewScreen( // KMK <-- ) : Screen() { + // KMK --> + private val uiPreferences = Injekt.get() + private val themeCoverBased = uiPreferences.themeCoverBased().get() + private val themeDarkAmoled = uiPreferences.themeDarkAmoled().get() + private val themeCoverBasedStyle = uiPreferences.themeCoverBasedStyle().get() + // KMK <-- + @Composable override fun Content() { val screenModel = rememberScreenModel { MetadataViewScreenModel(mangaId, sourceId) } @@ -112,14 +119,12 @@ class MetadataViewScreen( } // KMK --> - val uiPreferences = remember { Injekt.get() } - - if (uiPreferences.themeCoverBased().get() && seedColor != null) { + if (themeCoverBased && seedColor != null) { DynamicMaterialTheme( seedColor = seedColor, useDarkTheme = isSystemInDarkTheme(), - withAmoled = uiPreferences.themeDarkAmoled().get(), - style = uiPreferences.themeCoverBasedStyle().get(), + withAmoled = themeDarkAmoled, + style = themeCoverBasedStyle, animate = true, content = { content() }, )