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 3028ef35c..f109b8ee2 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 @@ -36,7 +36,6 @@ import dev.chrisbanes.haze.HazeState import dev.chrisbanes.haze.hazeChild import eu.kanade.domain.manga.model.hasCustomCover import eu.kanade.domain.manga.model.toSManga -import eu.kanade.domain.ui.UiPreferences import eu.kanade.presentation.category.components.ChangeCategoryDialog import eu.kanade.presentation.components.NavigatorAdaptiveSheet import eu.kanade.presentation.manga.ChapterSettingsDialog @@ -124,13 +123,6 @@ 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()) { @@ -202,12 +194,12 @@ class MangaScreen( } val seedColor = successState.seedColor - if (themeCoverBased && seedColor != null) { + if (screenModel.themeCoverBased && seedColor != null) { DynamicMaterialTheme( seedColor = seedColor, useDarkTheme = isSystemInDarkTheme(), - withAmoled = themeDarkAmoled, - style = themeCoverBasedStyle, + withAmoled = screenModel.themeDarkAmoled, + style = screenModel.themeCoverBasedStyle, animate = true, content = { content() }, ) @@ -387,7 +379,9 @@ class MangaScreen( navigator.push(ExtensionsScreen(searchSource = successState.source.name)) } }, - onCoverLoaded = { if (themeCoverBased || successState.manga.favorite) screenModel.setPaletteColor(it) }, + onCoverLoaded = { + if (screenModel.themeCoverBased || successState.manga.favorite) screenModel.setPaletteColor(it) + }, onPaletteScreenClick = { navigator.push(PaletteScreen(successState.seedColor?.toArgb())) }, hazeState = hazeState, // KMK <-- @@ -691,7 +685,7 @@ class MangaScreen( seedColor: Color?, // KMK <-- ) { - navigator.push(MetadataViewScreen(manga.id, manga.source, seedColor)) + navigator.push(MetadataViewScreen(manga.id, manga.source, seedColor?.toArgb())) } private fun openMergedMangaWebview(context: Context, navigator: Navigator, mergedMangaData: MergedMangaData) { 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 13d1e228a..ef15a8677 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 @@ -223,6 +223,9 @@ class MangaScreenModel( // KMK --> val useNewSourceNavigation by uiPreferences.useNewSourceNavigation().asState(screenModelScope) + val themeCoverBased = uiPreferences.themeCoverBased().get() + val themeDarkAmoled = uiPreferences.themeDarkAmoled().get() + val themeCoverBasedStyle = uiPreferences.themeCoverBasedStyle().get() // KMK <-- val manga: Manga? 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 5d2e421e1..44bee20bb 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 @@ -10,7 +10,6 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.material3.contentColorFor import androidx.compose.runtime.Composable -import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp @@ -33,15 +32,13 @@ 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 uiPreferences = Injekt.get() + val themeCoverBased = uiPreferences.themeCoverBased().get() + val themeDarkAmoled = uiPreferences.themeDarkAmoled().get() + val themeCoverBasedStyle = uiPreferences.themeCoverBasedStyle().get() + val seedColor = seedColor?.let { Color(it) } ?: MaterialTheme.colorScheme.primary if (themeCoverBased) { diff --git a/app/src/main/java/exh/ui/metadata/MetadataViewScreen.kt b/app/src/main/java/exh/ui/metadata/MetadataViewScreen.kt index 6077c2ce4..0c85b7a8b 100644 --- a/app/src/main/java/exh/ui/metadata/MetadataViewScreen.kt +++ b/app/src/main/java/exh/ui/metadata/MetadataViewScreen.kt @@ -1,5 +1,6 @@ package exh.ui.metadata +import androidx.annotation.ColorInt import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.WindowInsets @@ -24,7 +25,6 @@ import cafe.adriel.voyager.core.model.rememberScreenModel import cafe.adriel.voyager.navigator.LocalNavigator import cafe.adriel.voyager.navigator.currentOrThrow import com.materialkolor.DynamicMaterialTheme -import eu.kanade.domain.ui.UiPreferences import eu.kanade.presentation.components.AppBar import eu.kanade.presentation.util.Screen import eu.kanade.tachiyomi.util.system.copyToClipboard @@ -36,24 +36,14 @@ import tachiyomi.presentation.core.screens.EmptyScreen import tachiyomi.presentation.core.screens.LoadingScreen import tachiyomi.presentation.core.util.clickableNoIndication import tachiyomi.presentation.core.util.plus -import uy.kohesive.injekt.Injekt -import uy.kohesive.injekt.api.get class MetadataViewScreen( private val mangaId: Long, private val sourceId: Long, // KMK --> - private val seedColor: Color?, + @ColorInt private val seedColor: Int?, // 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) } @@ -119,12 +109,12 @@ class MetadataViewScreen( } // KMK --> - if (themeCoverBased && seedColor != null) { + if (screenModel.themeCoverBased && seedColor != null) { DynamicMaterialTheme( - seedColor = seedColor, + seedColor = Color(seedColor), useDarkTheme = isSystemInDarkTheme(), - withAmoled = themeDarkAmoled, - style = themeCoverBasedStyle, + withAmoled = screenModel.themeDarkAmoled, + style = screenModel.themeCoverBasedStyle, animate = true, content = { content() }, ) diff --git a/app/src/main/java/exh/ui/metadata/MetadataViewScreenModel.kt b/app/src/main/java/exh/ui/metadata/MetadataViewScreenModel.kt index 7dcbdd413..bff994ebe 100644 --- a/app/src/main/java/exh/ui/metadata/MetadataViewScreenModel.kt +++ b/app/src/main/java/exh/ui/metadata/MetadataViewScreenModel.kt @@ -2,6 +2,7 @@ package exh.ui.metadata import cafe.adriel.voyager.core.model.StateScreenModel import cafe.adriel.voyager.core.model.screenModelScope +import eu.kanade.domain.ui.UiPreferences import eu.kanade.tachiyomi.source.online.MetadataSource import exh.metadata.metadata.RaisedSearchMetadata import exh.source.getMainSource @@ -22,6 +23,14 @@ class MetadataViewScreenModel( private val sourceManager: SourceManager = Injekt.get(), private val getManga: GetManga = Injekt.get(), ) : StateScreenModel(MetadataViewState.Loading) { + + // KMK --> + private val uiPreferences = Injekt.get() + val themeCoverBased = uiPreferences.themeCoverBased().get() + val themeDarkAmoled = uiPreferences.themeDarkAmoled().get() + val themeCoverBasedStyle = uiPreferences.themeCoverBasedStyle().get() + // KMK <-- + private val _manga = MutableStateFlow(null) val manga = _manga.asStateFlow()