Fix PaletteScreen crashing on app suspends

This commit is contained in:
Cuong M. Tran 2024-06-18 12:29:20 +07:00
parent d841399f51
commit 742126e4eb
No known key found for this signature in database
GPG key ID: 733AA7624B9315C2
2 changed files with 10 additions and 8 deletions

View file

@ -316,7 +316,7 @@ class MangaScreen(
}
},
onCoverLoaded = screenModel::setPaletteColor,
onPaletteScreenClick = { navigator.push(PaletteScreen(successState.seedColor)) }
onPaletteScreenClick = { navigator.push(PaletteScreen(successState.seedColor?.toArgb())) }
// KMK <--
)

View file

@ -1,5 +1,6 @@
package eu.kanade.tachiyomi.ui.manga
import androidx.annotation.ColorInt
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
@ -29,29 +30,30 @@ import uy.kohesive.injekt.api.get
* A screen that displays a colors palette of current theme.
*/
class PaletteScreen(
private val seedColor: Color?,
@ColorInt private val seedColor: Int?,
) : Screen() {
@Composable
override fun Content() {
val seedColor = seedColor?.let { Color(it) } ?: MaterialTheme.colorScheme.primary
val uiPreferences = remember { Injekt.get<UiPreferences>() }
if (uiPreferences.themeCoverBased().get()) {
DynamicMaterialTheme(
seedColor = seedColor ?: MaterialTheme.colorScheme.primary,
seedColor = seedColor,
useDarkTheme = isSystemInDarkTheme(),
withAmoled = uiPreferences.themeDarkAmoled().get(),
style = uiPreferences.themeCoverBasedStyle().get(),
animate = true,
content = { MaterialThemeContent() },
content = { MaterialThemeContent(seedColor) },
)
} else {
MaterialThemeContent()
MaterialThemeContent(seedColor)
}
}
@Composable
fun MaterialThemeContent() {
fun MaterialThemeContent(seedColor: Color) {
val navigator = LocalNavigator.currentOrThrow
Scaffold(
@ -68,9 +70,9 @@ class PaletteScreen(
) {
ButtonsColor(
"accent & onPrimary",
seedColor ?: MaterialTheme.colorScheme.primary,
seedColor,
"accent & contentColor",
seedColor ?: MaterialTheme.colorScheme.primary,
seedColor,
MaterialTheme.colorScheme.onPrimary,
)