different defaults

This commit is contained in:
Avently
2024-05-09 22:16:42 +07:00
parent 8fddc6fdaa
commit 2b8987f55d
2 changed files with 12 additions and 10 deletions
@@ -342,11 +342,9 @@ data class ThemeModeOverrides (
val light: ThemeModeOverride? = null,
val dark: ThemeModeOverride? = null
) {
fun preferredTheme(baseTheme: DefaultTheme = CurrentColors.value.base): ThemeModeOverride? {
return when (baseTheme) {
DefaultTheme.LIGHT -> light
else -> dark
}
fun preferredTheme(baseTheme: DefaultTheme = CurrentColors.value.base): ThemeModeOverride? = when (baseTheme) {
DefaultTheme.LIGHT -> light
else -> dark
}
}
@@ -700,13 +700,17 @@ fun ShareAddressButton(onClick: () -> Unit) {
@Composable
fun ModalData.WallpaperEditorModal(chat: Chat) {
val themes = remember(CurrentColors.value.base) {
(chat.chatInfo as? ChatInfo.Direct)?.contact?.uiThemes
?: (chat.chatInfo as? ChatInfo.Group)?.groupInfo?.uiThemes
?: ThemeModeOverrides()
}
val initialTheme = remember(CurrentColors.value.base) {
(chat.chatInfo as? ChatInfo.Direct)?.contact?.uiThemes?.preferredTheme()?.copy(mode = CurrentColors.value.base.mode)
?: (chat.chatInfo as? ChatInfo.Group)?.groupInfo?.uiThemes?.preferredTheme()?.copy(mode = CurrentColors.value.base.mode)
?: ThemeModeOverride()
(themes.preferredTheme() ?: ThemeModeOverride()).copy(mode = CurrentColors.value.base.mode)
}
WallpaperEditor(
initialTheme,
applyToMode = if (themes.light == themes.dark) null else initialTheme.mode,
save = { applyToMode, newTheme ->
withBGApi {
var changedThemes: ThemeModeOverrides? = ((chat.chatInfo as? ChatInfo.Direct)?.contact?.uiThemes ?: (chat.chatInfo as? ChatInfo.Group)?.groupInfo?.uiThemes) ?: ThemeModeOverrides()
@@ -753,12 +757,12 @@ fun ModalData.WallpaperEditorModal(chat: Chat) {
}
@Composable
fun ModalData.WallpaperEditor(theme: ThemeModeOverride, save: (applyToMode: DefaultThemeMode?, ThemeModeOverride?) -> Unit, setDefaultsToAll: suspend () -> ThemeModeOverride) {
fun ModalData.WallpaperEditor(theme: ThemeModeOverride, applyToMode: DefaultThemeMode?, save: (applyToMode: DefaultThemeMode?, ThemeModeOverride?) -> Unit, setDefaultsToAll: suspend () -> ThemeModeOverride) {
ColumnWithScrollBar(
Modifier
.fillMaxSize()
) {
val applyToMode = remember { stateGetOrPutNullable("applyToMode") { null as DefaultThemeMode? } }
val applyToMode = remember { stateGetOrPutNullable("applyToMode") { applyToMode } }
var showMore by remember { stateGetOrPut("showMore") { false } }
val themeModeOverride = remember { stateGetOrPut("themeModeOverride") { theme } }
val backgroundImageType: State<BackgroundImageType?> = remember { derivedStateOf { BackgroundImageType.from(themeModeOverride.value.wallpaper) } }