diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/MainActivity.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/MainActivity.kt index 0d2f45f..66cfab8 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/MainActivity.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/MainActivity.kt @@ -40,10 +40,7 @@ import it.vfsfitvnm.vimusic.ui.components.BottomSheetMenu import it.vfsfitvnm.vimusic.ui.components.LocalMenuState import it.vfsfitvnm.vimusic.ui.components.rememberMenuState import it.vfsfitvnm.vimusic.ui.screens.HomeScreen -import it.vfsfitvnm.vimusic.ui.styling.LocalColorPalette -import it.vfsfitvnm.vimusic.ui.styling.LocalTypography -import it.vfsfitvnm.vimusic.ui.styling.rememberColorPalette -import it.vfsfitvnm.vimusic.ui.styling.rememberTypography +import it.vfsfitvnm.vimusic.ui.styling.* import it.vfsfitvnm.vimusic.utils.* private val Context.dataStore by preferencesDataStore(name = "preferences") @@ -64,14 +61,16 @@ class MainActivity : ComponentActivity() { val preferences by rememberPreferences(dataStore) val systemUiController = rememberSystemUiController() - val isDarkTheme = when (preferences.colorPaletteMode) { - ColorPaletteMode.Light -> false - ColorPaletteMode.Dark -> true - ColorPaletteMode.System -> isSystemInDarkTheme() + val (isDarkTheme, colorPalette) = when (preferences.colorPaletteMode) { + ColorPaletteMode.Light -> false to LightColorPalette + ColorPaletteMode.Dark -> true to DarkColorPalette + ColorPaletteMode.Black -> true to BlackColorPalette + ColorPaletteMode.System -> when (isSystemInDarkTheme()) { + true -> true to DarkColorPalette + false -> false to LightColorPalette + } } - val colorPalette = rememberColorPalette(isDarkTheme) - val rippleTheme = remember(colorPalette.text, isDarkTheme) { object : RippleTheme { @Composable diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/enums/ColorPaletteMode.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/enums/ColorPaletteMode.kt index 63bcc3b..5b3df97 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/enums/ColorPaletteMode.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/enums/ColorPaletteMode.kt @@ -3,5 +3,6 @@ package it.vfsfitvnm.vimusic.enums enum class ColorPaletteMode { Light, Dark, + Black, System } diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/styling/ColorPalette.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/styling/ColorPalette.kt index ee52d24..dc119f4 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/styling/ColorPalette.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/styling/ColorPalette.kt @@ -1,6 +1,5 @@ package it.vfsfitvnm.vimusic.ui.styling -import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.runtime.* import androidx.compose.ui.graphics.Color @@ -45,6 +44,12 @@ val DarkColorPalette = ColorPalette( iconOnPrimaryContainer = Color.White, ) +val BlackColorPalette = DarkColorPalette.copy( + background = Color.Black, + lightBackground = Color(0xff0d0d12), + elevatedBackground = Color(0xff0d0d12), +) + val LightColorPalette = ColorPalette( background = Color(0xfffdfdfe), lightBackground = Color(0xFFf8f8fc), @@ -69,10 +74,3 @@ val LightColorPalette = ColorPalette( ) val LocalColorPalette = staticCompositionLocalOf { LightColorPalette } - -@Composable -fun rememberColorPalette(isDarkTheme: Boolean = isSystemInDarkTheme()): ColorPalette { - return remember(isDarkTheme) { - if (isDarkTheme) DarkColorPalette else LightColorPalette - } -}