avoid loading cover's color if theme cover based is disabled

This commit is contained in:
Cuong-Tran 2024-06-20 19:52:53 +07:00
parent ddc7801436
commit 0a3d9121ae
No known key found for this signature in database
GPG key ID: 733AA7624B9315C2
5 changed files with 35 additions and 20 deletions

View file

@ -74,6 +74,7 @@ class MangaCoverFetcher(
// KMK --> // KMK -->
private val fileScope by lazy { CoroutineScope(Job() + Dispatchers.IO) } private val fileScope by lazy { CoroutineScope(Job() + Dispatchers.IO) }
private val uiPreferences = Injekt.get<UiPreferences>() private val uiPreferences = Injekt.get<UiPreferences>()
private val themeCoverBased = uiPreferences.themeCoverBased().get()
// KMK <-- // KMK <--
private val diskCacheKey: String private val diskCacheKey: String
@ -347,7 +348,7 @@ class MangaCoverFetcher(
mangaCover: MangaCover, mangaCover: MangaCover,
bufferedSource: BufferedSource? = null, bufferedSource: BufferedSource? = null,
ogFile: File? = null, ogFile: File? = null,
onlyFavorite: Boolean = !uiPreferences.themeCoverBased().get(), onlyFavorite: Boolean = !themeCoverBased,
force: Boolean = false, force: Boolean = false,
) { ) {
fileScope.launch { fileScope.launch {

View file

@ -122,6 +122,13 @@ class MangaScreen(
override fun onProvideAssistUrl() = assistUrl override fun onProvideAssistUrl() = assistUrl
// KMK -->
private val uiPreferences = Injekt.get<UiPreferences>()
private val themeCoverBased = uiPreferences.themeCoverBased().get()
private val themeDarkAmoled = uiPreferences.themeDarkAmoled().get()
private val themeCoverBasedStyle = uiPreferences.themeCoverBasedStyle().get()
// KMK <--
@Composable @Composable
override fun Content() { override fun Content() {
if (!ifSourcesLoaded()) { if (!ifSourcesLoaded()) {
@ -157,8 +164,6 @@ class MangaScreen(
} }
} }
val uiPreferences = remember { Injekt.get<UiPreferences>() }
val content = @Composable { val content = @Composable {
val slideDistance = rememberSlideDistance() val slideDistance = rememberSlideDistance()
AnimatedContent( AnimatedContent(
@ -195,12 +200,12 @@ class MangaScreen(
} }
val seedColor = successState.seedColor val seedColor = successState.seedColor
if (uiPreferences.themeCoverBased().get() && seedColor != null) { if (themeCoverBased && seedColor != null) {
DynamicMaterialTheme( DynamicMaterialTheme(
seedColor = seedColor, seedColor = seedColor,
useDarkTheme = isSystemInDarkTheme(), useDarkTheme = isSystemInDarkTheme(),
withAmoled = uiPreferences.themeDarkAmoled().get(), withAmoled = themeDarkAmoled,
style = uiPreferences.themeCoverBasedStyle().get(), style = themeCoverBasedStyle,
animate = true, animate = true,
content = { content() }, content = { content() },
) )
@ -208,7 +213,6 @@ class MangaScreen(
content() content()
} }
// KMK -->
when (bulkFavoriteState.dialog) { when (bulkFavoriteState.dialog) {
is BulkFavoriteScreenModel.Dialog.AddDuplicateManga -> is BulkFavoriteScreenModel.Dialog.AddDuplicateManga ->
AddDuplicateMangaDialog(bulkFavoriteScreenModel) AddDuplicateMangaDialog(bulkFavoriteScreenModel)
@ -227,7 +231,6 @@ class MangaScreen(
else -> {} else -> {}
} }
// KMK <--
} }
@Composable @Composable
@ -378,8 +381,8 @@ class MangaScreen(
navigator.push(ExtensionsScreen(searchSource = successState.source.name)) navigator.push(ExtensionsScreen(searchSource = successState.source.name))
} }
}, },
onCoverLoaded = screenModel::setPaletteColor, onCoverLoaded = { if (themeCoverBased || successState.manga.favorite) screenModel.setPaletteColor(it) },
onPaletteScreenClick = { navigator.push(PaletteScreen(successState.seedColor?.toArgb())) } onPaletteScreenClick = { navigator.push(PaletteScreen(successState.seedColor?.toArgb())) },
// KMK <-- // KMK <--
) )

View file

@ -33,17 +33,23 @@ class PaletteScreen(
@ColorInt private val seedColor: Int?, @ColorInt private val seedColor: Int?,
) : Screen() { ) : Screen() {
// KMK -->
private val uiPreferences = Injekt.get<UiPreferences>()
private val themeCoverBased = uiPreferences.themeCoverBased().get()
private val themeDarkAmoled = uiPreferences.themeDarkAmoled().get()
private val themeCoverBasedStyle = uiPreferences.themeCoverBasedStyle().get()
// KMK <--
@Composable @Composable
override fun Content() { override fun Content() {
val seedColor = seedColor?.let { Color(it) } ?: MaterialTheme.colorScheme.primary val seedColor = seedColor?.let { Color(it) } ?: MaterialTheme.colorScheme.primary
val uiPreferences = remember { Injekt.get<UiPreferences>() }
if (uiPreferences.themeCoverBased().get()) { if (themeCoverBased) {
DynamicMaterialTheme( DynamicMaterialTheme(
seedColor = seedColor, seedColor = seedColor,
useDarkTheme = isSystemInDarkTheme(), useDarkTheme = isSystemInDarkTheme(),
withAmoled = uiPreferences.themeDarkAmoled().get(), withAmoled = themeDarkAmoled,
style = uiPreferences.themeCoverBasedStyle().get(), style = themeCoverBasedStyle,
animate = true, animate = true,
content = { MaterialThemeContent(seedColor) }, content = { MaterialThemeContent(seedColor) },
) )

View file

@ -406,7 +406,7 @@ class ReaderActivity : BaseActivity() {
// KMK --> // KMK -->
binding.pageNumber.setComposeContent { binding.pageNumber.setComposeContent {
if (uiPreferences.themeCoverBased().get() && seedColor != null) { if (themeCoverBased && seedColor != null) {
DynamicMaterialTheme( DynamicMaterialTheme(
seedColor = seedColor, seedColor = seedColor,
useDarkTheme = isSystemInDarkTheme(), useDarkTheme = isSystemInDarkTheme(),

View file

@ -47,6 +47,13 @@ class MetadataViewScreen(
// KMK <-- // KMK <--
) : Screen() { ) : Screen() {
// KMK -->
private val uiPreferences = Injekt.get<UiPreferences>()
private val themeCoverBased = uiPreferences.themeCoverBased().get()
private val themeDarkAmoled = uiPreferences.themeDarkAmoled().get()
private val themeCoverBasedStyle = uiPreferences.themeCoverBasedStyle().get()
// KMK <--
@Composable @Composable
override fun Content() { override fun Content() {
val screenModel = rememberScreenModel { MetadataViewScreenModel(mangaId, sourceId) } val screenModel = rememberScreenModel { MetadataViewScreenModel(mangaId, sourceId) }
@ -112,14 +119,12 @@ class MetadataViewScreen(
} }
// KMK --> // KMK -->
val uiPreferences = remember { Injekt.get<UiPreferences>() } if (themeCoverBased && seedColor != null) {
if (uiPreferences.themeCoverBased().get() && seedColor != null) {
DynamicMaterialTheme( DynamicMaterialTheme(
seedColor = seedColor, seedColor = seedColor,
useDarkTheme = isSystemInDarkTheme(), useDarkTheme = isSystemInDarkTheme(),
withAmoled = uiPreferences.themeDarkAmoled().get(), withAmoled = themeDarkAmoled,
style = uiPreferences.themeCoverBasedStyle().get(), style = themeCoverBasedStyle,
animate = true, animate = true,
content = { content() }, content = { content() },
) )