From aa02242cc6eb2c3ce11735375b1937a0992c13a4 Mon Sep 17 00:00:00 2001 From: vfsfitvnm Date: Tue, 28 Jun 2022 15:59:40 +0200 Subject: [PATCH] Add palette property to ColorPaletteMode --- .../it/vfsfitvnm/vimusic/MainActivity.kt | 21 ++++++------------- .../vimusic/enums/ColorPaletteMode.kt | 19 ++++++++++++++++- .../vimusic/ui/styling/ColorPalette.kt | 4 ++++ 3 files changed, 28 insertions(+), 16 deletions(-) diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/MainActivity.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/MainActivity.kt index 9a8056e..0fbdeb0 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/MainActivity.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/MainActivity.kt @@ -34,8 +34,7 @@ import androidx.compose.ui.unit.dp import com.google.accompanist.systemuicontroller.rememberSystemUiController import com.valentinilk.shimmer.LocalShimmerTheme import com.valentinilk.shimmer.defaultShimmerTheme -import it.vfsfitvnm.vimusic.enums.ColorPaletteMode -import it.vfsfitvnm.vimusic.services.PlayerService +import it.vfsfitvnm.vimusic.service.PlayerService import it.vfsfitvnm.vimusic.ui.components.BottomSheetMenu import it.vfsfitvnm.vimusic.ui.components.LocalMenuState import it.vfsfitvnm.vimusic.ui.components.rememberBottomSheetState @@ -86,28 +85,20 @@ class MainActivity : ComponentActivity() { val preferences = rememberPreferences() val systemUiController = rememberSystemUiController() - 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 = preferences.colorPaletteMode.palette(isSystemInDarkTheme()) - val rippleTheme = remember(colorPalette.text, isDarkTheme) { + val rippleTheme = remember(colorPalette.text, colorPalette.isDark) { object : RippleTheme { @Composable override fun defaultColor(): Color = RippleTheme.defaultRippleColor( contentColor = colorPalette.text, - lightTheme = !isDarkTheme + lightTheme = !colorPalette.isDark ) @Composable override fun rippleAlpha(): RippleAlpha = RippleTheme.defaultRippleAlpha( contentColor = colorPalette.text, - lightTheme = !isDarkTheme + lightTheme = !colorPalette.isDark ) } } @@ -131,7 +122,7 @@ class MainActivity : ComponentActivity() { } SideEffect { - systemUiController.setSystemBarsColor(colorPalette.background, !isDarkTheme) + systemUiController.setSystemBarsColor(colorPalette.background, !colorPalette.isDark) } CompositionLocalProvider( 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 5b3df97..6f41f84 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/enums/ColorPaletteMode.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/enums/ColorPaletteMode.kt @@ -1,8 +1,25 @@ package it.vfsfitvnm.vimusic.enums +import it.vfsfitvnm.vimusic.ui.styling.BlackColorPalette +import it.vfsfitvnm.vimusic.ui.styling.ColorPalette +import it.vfsfitvnm.vimusic.ui.styling.DarkColorPalette +import it.vfsfitvnm.vimusic.ui.styling.LightColorPalette + enum class ColorPaletteMode { Light, Dark, Black, - System + System; + + fun palette(isSystemInDarkMode: Boolean): ColorPalette { + return when (this) { + Light -> LightColorPalette + Dark -> DarkColorPalette + Black -> BlackColorPalette + System -> when (isSystemInDarkMode) { + true -> DarkColorPalette + false -> LightColorPalette + } + } + } } 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 20979c8..c4ce4c8 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 @@ -24,6 +24,8 @@ data class ColorPalette( val primaryContainer: Color, val onPrimaryContainer: Color, val iconOnPrimaryContainer: Color, + + val isDark: Boolean ) val DarkColorPalette = ColorPalette( @@ -46,6 +48,7 @@ val DarkColorPalette = ColorPalette( primaryContainer = Color(0xff4046bf), onPrimaryContainer = Color.White, iconOnPrimaryContainer = Color.White, + isDark = true ) val BlackColorPalette = DarkColorPalette.copy( @@ -77,6 +80,7 @@ val LightColorPalette = ColorPalette( // primaryContainer = Color(0xffecedf9), // onPrimaryContainer = Color(0xff121212), // iconOnPrimaryContainer = Color(0xff2e30b8), + isDark = false ) val LocalColorPalette = staticCompositionLocalOf { LightColorPalette }