fix(settings): 在主题色板没用跟随用户设置切换深色模式

This commit is contained in:
Super12138 2025-02-06 19:56:18 +08:00
parent 4e1ede0aae
commit e44dcb8c5a
2 changed files with 10 additions and 1 deletions

View file

@ -36,6 +36,7 @@ import cn.super12138.todo.utils.VibrationUtils
@Composable @Composable
fun PaletteItem( fun PaletteItem(
isDark: Boolean,
paletteStyle: PaletteStyle, paletteStyle: PaletteStyle,
contrastLevel: ContrastLevel, contrastLevel: ContrastLevel,
selected: Boolean, selected: Boolean,
@ -63,7 +64,7 @@ fun PaletteItem(
} else { } else {
Color(0xFF0061A4) Color(0xFF0061A4)
}, },
isDark = isSystemInDarkTheme(), isDark = isDark,
contrastLevel = contrastLevel.value.toDouble(), contrastLevel = contrastLevel.value.toDouble(),
style = paletteStyle style = paletteStyle
) )

View file

@ -1,5 +1,6 @@
package cn.super12138.todo.ui.pages.settings.components.palette package cn.super12138.todo.ui.pages.settings.components.palette
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.lazy.items import androidx.compose.foundation.lazy.items
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
@ -12,12 +13,14 @@ import androidx.compose.ui.unit.dp
import cn.super12138.todo.R import cn.super12138.todo.R
import cn.super12138.todo.constants.Constants import cn.super12138.todo.constants.Constants
import cn.super12138.todo.logic.model.ContrastLevel import cn.super12138.todo.logic.model.ContrastLevel
import cn.super12138.todo.logic.model.DarkMode
import cn.super12138.todo.ui.pages.settings.components.RowSettingsItem import cn.super12138.todo.ui.pages.settings.components.RowSettingsItem
import cn.super12138.todo.ui.pages.settings.state.rememberPrefIntState import cn.super12138.todo.ui.pages.settings.state.rememberPrefIntState
import cn.super12138.todo.ui.theme.PaletteStyle import cn.super12138.todo.ui.theme.PaletteStyle
@Composable @Composable
fun PalettePicker( fun PalettePicker(
isDarkMode: DarkMode,
contrastLevel: ContrastLevel, contrastLevel: ContrastLevel,
onPaletteChange: (paletteStyle: PaletteStyle) -> Unit, onPaletteChange: (paletteStyle: PaletteStyle) -> Unit,
modifier: Modifier = Modifier modifier: Modifier = Modifier
@ -38,6 +41,11 @@ fun PalettePicker(
) { ) {
items(items = paletteOptions, key = { it.id }) { paletteStyle -> items(items = paletteOptions, key = { it.id }) { paletteStyle ->
PaletteItem( PaletteItem(
isDark = when (isDarkMode) {
DarkMode.FollowSystem -> isSystemInDarkTheme()
DarkMode.Light -> false
DarkMode.Dark -> true
},
paletteStyle = paletteStyle, paletteStyle = paletteStyle,
selected = PaletteStyle.fromId(paletteState) == paletteStyle, selected = PaletteStyle.fromId(paletteState) == paletteStyle,
contrastLevel = contrastLevel, contrastLevel = contrastLevel,