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 -->
private val fileScope by lazy { CoroutineScope(Job() + Dispatchers.IO) }
private val uiPreferences = Injekt.get<UiPreferences>()
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 {

View file

@ -122,6 +122,13 @@ class MangaScreen(
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
override fun Content() {
if (!ifSourcesLoaded()) {
@ -157,8 +164,6 @@ class MangaScreen(
}
}
val uiPreferences = remember { Injekt.get<UiPreferences>() }
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 <--
)

View file

@ -33,17 +33,23 @@ class PaletteScreen(
@ColorInt private val seedColor: Int?,
) : 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
override fun Content() {
val seedColor = seedColor?.let { Color(it) } ?: MaterialTheme.colorScheme.primary
val uiPreferences = remember { Injekt.get<UiPreferences>() }
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) },
)

View file

@ -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(),

View file

@ -47,6 +47,13 @@ class MetadataViewScreen(
// KMK <--
) : 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
override fun Content() {
val screenModel = rememberScreenModel { MetadataViewScreenModel(mangaId, sourceId) }
@ -112,14 +119,12 @@ class MetadataViewScreen(
}
// KMK -->
val uiPreferences = remember { Injekt.get<UiPreferences>() }
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() },
)