Add debug setting to enable Material You compat color scheme on API 31+
This commit is contained in:
parent
f2041e51c2
commit
17dd8558c0
@ -15,6 +15,7 @@ message Settings {
|
||||
enum ColorScheme {
|
||||
Default = 0;
|
||||
BlackAndWhite = 1;
|
||||
DebugMaterialYouCompat = 2;
|
||||
}
|
||||
ColorScheme color_scheme = 6;
|
||||
bool dim_wallpaper = 7;
|
||||
|
||||
@ -15,7 +15,9 @@ import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||
import de.mm20.launcher2.ktx.isAtLeastApiLevel
|
||||
import de.mm20.launcher2.preferences.Settings.AppearanceSettings
|
||||
import de.mm20.launcher2.ui.BuildConfig
|
||||
import de.mm20.launcher2.ui.R
|
||||
import de.mm20.launcher2.ui.component.preferences.Preference
|
||||
import de.mm20.launcher2.ui.component.preferences.PreferenceCategory
|
||||
@ -32,14 +34,18 @@ fun ColorSchemeSettingsScreen() {
|
||||
val colorScheme by viewModel.colorScheme.observeAsState()
|
||||
|
||||
val items = mutableListOf(
|
||||
AppearanceSettings.ColorScheme.Default to R.string.preference_colors_default,
|
||||
AppearanceSettings.ColorScheme.BlackAndWhite to R.string.preference_colors_bw,
|
||||
AppearanceSettings.ColorScheme.Default to stringResource(R.string.preference_colors_default),
|
||||
AppearanceSettings.ColorScheme.BlackAndWhite to stringResource(R.string.preference_colors_bw),
|
||||
)
|
||||
|
||||
if (BuildConfig.DEBUG && isAtLeastApiLevel(27)) {
|
||||
items.add(AppearanceSettings.ColorScheme.DebugMaterialYouCompat to "Material You Compat")
|
||||
}
|
||||
|
||||
for (cs in items) {
|
||||
val scheme by colorSchemeAsState(cs.first)
|
||||
Preference(
|
||||
title = stringResource(cs.second),
|
||||
title = cs.second,
|
||||
icon = if (colorScheme == cs.first) Icons.Rounded.RadioButtonChecked else Icons.Rounded.RadioButtonUnchecked,
|
||||
onClick = { viewModel.setColorScheme(cs.first) },
|
||||
controls = {
|
||||
|
||||
@ -58,15 +58,7 @@ fun colorSchemeAsState(colorScheme: AppearanceSettings.ColorScheme): MutableStat
|
||||
}
|
||||
}
|
||||
else -> {
|
||||
if (Build.VERSION.SDK_INT >= 31) {
|
||||
return remember(darkTheme) {
|
||||
mutableStateOf(
|
||||
if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
if (Build.VERSION.SDK_INT >= 27 && Build.VERSION.SDK_INT < 31) {
|
||||
if (Build.VERSION.SDK_INT >= 27 && (Build.VERSION.SDK_INT < 31 || colorScheme == AppearanceSettings.ColorScheme.DebugMaterialYouCompat)) {
|
||||
val wallpaperColors by wallpaperColorsAsState()
|
||||
val state = remember(wallpaperColors, darkTheme) {
|
||||
mutableStateOf(
|
||||
@ -76,6 +68,13 @@ fun colorSchemeAsState(colorScheme: AppearanceSettings.ColorScheme): MutableStat
|
||||
}
|
||||
return state
|
||||
}
|
||||
if (Build.VERSION.SDK_INT >= 31) {
|
||||
return remember(darkTheme) {
|
||||
mutableStateOf(
|
||||
if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
return remember { mutableStateOf(if (darkTheme) DarkDefaultColorScheme else LightDefaultColorScheme) }
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user