Improved menu and alert background colors

This commit is contained in:
Juha Heinanen
2025-10-21 21:14:06 +03:00
parent 1548e48e08
commit 3c25978dc3
2 changed files with 32 additions and 25 deletions
@@ -28,17 +28,16 @@ fun AppTheme(
val useDynamicColors by remember { BaresipService.dynamicColors } val useDynamicColors by remember { BaresipService.dynamicColors }
val useActualDynamicColors = useDynamicColors && VERSION.SDK_INT >= 31 val useActualDynamicColors = useDynamicColors && VERSION.SDK_INT >= 31
val isDark = useDarkTheme || isSystemInDarkTheme()
Log.d(TAG, "Use actual dynamic colors: $useActualDynamicColors") val baseColorScheme = when {
val colorScheme = when {
useActualDynamicColors -> { useActualDynamicColors -> {
if (useDarkTheme || isSystemInDarkTheme()) if (isDark)
dynamicDarkColorScheme(context) dynamicDarkColorScheme(context)
else else
dynamicLightColorScheme(context) dynamicLightColorScheme(context)
} }
useDarkTheme || isSystemInDarkTheme() -> darkColorScheme( isDark -> darkColorScheme(
primary = PrimaryDark, primary = PrimaryDark,
onPrimary = OnPrimaryDark, onPrimary = OnPrimaryDark,
primaryContainer = PrimaryContainerDark, primaryContainer = PrimaryContainerDark,
@@ -90,19 +89,27 @@ fun AppTheme(
) )
} }
val finalColorScheme = baseColorScheme.copy(
surfaceContainer = if (isDark) TertiaryContainerDark else TertiaryContainer,
surfaceContainerLow = if (isDark) TertiaryContainerDark else TertiaryContainer,
surfaceContainerHigh = if (isDark) TertiaryContainerDark else TertiaryContainer,
surfaceContainerLowest = if (isDark) TertiaryContainerDark else TertiaryContainer,
surfaceContainerHighest = if (isDark) TertiaryContainerDark else TertiaryContainer
)
val view = LocalView.current val view = LocalView.current
if (!view.isInEditMode) { if (!view.isInEditMode) {
SideEffect { SideEffect {
val window = (view.context as Activity).window val window = (view.context as Activity).window
val insetsController = WindowCompat.getInsetsController(window, view) val insetsController = WindowCompat.getInsetsController(window, view)
val isBackgroundEffectivelyLight = ColorUtils.calculateLuminance(colorScheme.background.toArgb()) > 0.5 val isBackgroundEffectivelyLight = ColorUtils.calculateLuminance(finalColorScheme.background.toArgb()) > 0.5
insetsController.isAppearanceLightStatusBars = isBackgroundEffectivelyLight insetsController.isAppearanceLightStatusBars = isBackgroundEffectivelyLight
insetsController.isAppearanceLightNavigationBars = isBackgroundEffectivelyLight insetsController.isAppearanceLightNavigationBars = isBackgroundEffectivelyLight
} }
} }
MaterialTheme( MaterialTheme(
colorScheme = colorScheme, colorScheme = finalColorScheme,
content = content content = content
) )
} }
@@ -5,23 +5,23 @@ import androidx.compose.ui.graphics.Color
// App's color palette is defined by these values, which are used to build // App's color palette is defined by these values, which are used to build
// the MaterialTheme in AppTheme.kt // the MaterialTheme in AppTheme.kt
val Primary = Color(0xff0ca1fd) val Primary = Color(0xFF0CA1FD)
val OnPrimary = Color(0xFFFFFFFF) val OnPrimary = Color(0xFFFFFFFF)
val PrimaryContainer = Color(0xFFA1CBE6) val PrimaryContainer = Color(0xFFA1CBE6)
val OnPrimaryContainer = Color(0xFF032133) val OnPrimaryContainer = Color(0xFF032133)
val Secondary = Color(0xFF00B9A1) val Secondary = Color(0xFF00B9A1)
val OnSecondary = Color(0xffe0e0e0) val OnSecondary = Color(0xFFFFFFFF)
val SecondaryContainer = Color(0xFF9DE6DC) val SecondaryContainer = Color(0xFF9DE6DC)
val OnSecondaryContainer = Color(0xFF00332C) val OnSecondaryContainer = Color(0xFF00332C)
val Tertiary = Color(0xFF9885B5) val Tertiary = Color(0xFF8A8378)
val OnTertiary = Color(0xffe0e0e0) val OnTertiary = Color(0xFFFFFFFF)
val TertiaryContainer = Color(0xFFDAD2E6) val TertiaryContainer = Color(0xFFE6E2DC)
val OnTertiaryContainer = Color(0xFF2B2533) val OnTertiaryContainer = Color(0xFF33302C)
val Error = Color(0xFFB3261E) val Error = Color(0xFFB3261E)
val OnError = Color(0xffe0e0e0) val OnError = Color(0xFFFFFFFF)
val ErrorContainer = Color(0xFFE6BFB1) val ErrorContainer = Color(0xFFE6ACA9)
val OnErrorContainer = Color(0xFF33180E) val OnErrorContainer = Color(0xFF330B09)
val Background = Color(0xFFFCFCFC) val Background = Color(0xFFfbfcfc)
val OnBackground = Color(0xFF313233) val OnBackground = Color(0xFF313233)
val Surface = Color(0xFFfbfcfc) val Surface = Color(0xFFfbfcfc)
val OnSurface = Color(0xFF313233) val OnSurface = Color(0xFF313233)
@@ -37,14 +37,14 @@ val SecondaryDark = Color(0xFF7FE6D8)
val OnSecondaryDark = Color(0xFF004C43) val OnSecondaryDark = Color(0xFF004C43)
val SecondaryContainerDark = Color(0xFF006659) val SecondaryContainerDark = Color(0xFF006659)
val OnSecondaryContainerDark = Color(0xFF9DE6DC) val OnSecondaryContainerDark = Color(0xFF9DE6DC)
val TertiaryDark = Color(0xFFD5CAE6) val TertiaryDark = Color(0xFFE6E0D8)
val OnTertiaryDark = Color(0xFF40384C) val OnTertiaryDark = Color(0xFF4C4943)
val TertiaryContainerDark = Color(0xFF564A66) val TertiaryContainerDark = Color(0xFF666159)
val OnTertiaryContainerDark = Color(0xFFDAD2E6) val OnTertiaryContainerDark = Color(0xFFE6E2DC)
val ErrorDark = Color(0xFFE6AF9C) val ErrorDark = Color(0xFFE69490)
val OnErrorDark = Color(0xFF4C2415) val OnErrorDark = Color(0xFF4C100D)
val ErrorContainerDark = Color(0xFF66301D) val ErrorContainerDark = Color(0xFF661511)
val OnErrorContainerDark = Color(0xFFE6BFB1) val OnErrorContainerDark = Color(0xFFE6ACA9)
val BackgroundDark = Color(0xFF313233) val BackgroundDark = Color(0xFF313233)
val OnBackgroundDark = Color(0xFFe2e4e6) val OnBackgroundDark = Color(0xFFe2e4e6)
val SurfaceDark = Color(0xFF313233) val SurfaceDark = Color(0xFF313233)