Add palette property to ColorPaletteMode
This commit is contained in:
parent
c74a8f9f07
commit
aa02242cc6
3 changed files with 28 additions and 16 deletions
|
@ -34,8 +34,7 @@ import androidx.compose.ui.unit.dp
|
||||||
import com.google.accompanist.systemuicontroller.rememberSystemUiController
|
import com.google.accompanist.systemuicontroller.rememberSystemUiController
|
||||||
import com.valentinilk.shimmer.LocalShimmerTheme
|
import com.valentinilk.shimmer.LocalShimmerTheme
|
||||||
import com.valentinilk.shimmer.defaultShimmerTheme
|
import com.valentinilk.shimmer.defaultShimmerTheme
|
||||||
import it.vfsfitvnm.vimusic.enums.ColorPaletteMode
|
import it.vfsfitvnm.vimusic.service.PlayerService
|
||||||
import it.vfsfitvnm.vimusic.services.PlayerService
|
|
||||||
import it.vfsfitvnm.vimusic.ui.components.BottomSheetMenu
|
import it.vfsfitvnm.vimusic.ui.components.BottomSheetMenu
|
||||||
import it.vfsfitvnm.vimusic.ui.components.LocalMenuState
|
import it.vfsfitvnm.vimusic.ui.components.LocalMenuState
|
||||||
import it.vfsfitvnm.vimusic.ui.components.rememberBottomSheetState
|
import it.vfsfitvnm.vimusic.ui.components.rememberBottomSheetState
|
||||||
|
@ -86,28 +85,20 @@ class MainActivity : ComponentActivity() {
|
||||||
val preferences = rememberPreferences()
|
val preferences = rememberPreferences()
|
||||||
val systemUiController = rememberSystemUiController()
|
val systemUiController = rememberSystemUiController()
|
||||||
|
|
||||||
val (isDarkTheme, colorPalette) = when (preferences.colorPaletteMode) {
|
val colorPalette = preferences.colorPaletteMode.palette(isSystemInDarkTheme())
|
||||||
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 rippleTheme = remember(colorPalette.text, isDarkTheme) {
|
val rippleTheme = remember(colorPalette.text, colorPalette.isDark) {
|
||||||
object : RippleTheme {
|
object : RippleTheme {
|
||||||
@Composable
|
@Composable
|
||||||
override fun defaultColor(): Color = RippleTheme.defaultRippleColor(
|
override fun defaultColor(): Color = RippleTheme.defaultRippleColor(
|
||||||
contentColor = colorPalette.text,
|
contentColor = colorPalette.text,
|
||||||
lightTheme = !isDarkTheme
|
lightTheme = !colorPalette.isDark
|
||||||
)
|
)
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
override fun rippleAlpha(): RippleAlpha = RippleTheme.defaultRippleAlpha(
|
override fun rippleAlpha(): RippleAlpha = RippleTheme.defaultRippleAlpha(
|
||||||
contentColor = colorPalette.text,
|
contentColor = colorPalette.text,
|
||||||
lightTheme = !isDarkTheme
|
lightTheme = !colorPalette.isDark
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -131,7 +122,7 @@ class MainActivity : ComponentActivity() {
|
||||||
}
|
}
|
||||||
|
|
||||||
SideEffect {
|
SideEffect {
|
||||||
systemUiController.setSystemBarsColor(colorPalette.background, !isDarkTheme)
|
systemUiController.setSystemBarsColor(colorPalette.background, !colorPalette.isDark)
|
||||||
}
|
}
|
||||||
|
|
||||||
CompositionLocalProvider(
|
CompositionLocalProvider(
|
||||||
|
|
|
@ -1,8 +1,25 @@
|
||||||
package it.vfsfitvnm.vimusic.enums
|
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 {
|
enum class ColorPaletteMode {
|
||||||
Light,
|
Light,
|
||||||
Dark,
|
Dark,
|
||||||
Black,
|
Black,
|
||||||
System
|
System;
|
||||||
|
|
||||||
|
fun palette(isSystemInDarkMode: Boolean): ColorPalette {
|
||||||
|
return when (this) {
|
||||||
|
Light -> LightColorPalette
|
||||||
|
Dark -> DarkColorPalette
|
||||||
|
Black -> BlackColorPalette
|
||||||
|
System -> when (isSystemInDarkMode) {
|
||||||
|
true -> DarkColorPalette
|
||||||
|
false -> LightColorPalette
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,6 +24,8 @@ data class ColorPalette(
|
||||||
val primaryContainer: Color,
|
val primaryContainer: Color,
|
||||||
val onPrimaryContainer: Color,
|
val onPrimaryContainer: Color,
|
||||||
val iconOnPrimaryContainer: Color,
|
val iconOnPrimaryContainer: Color,
|
||||||
|
|
||||||
|
val isDark: Boolean
|
||||||
)
|
)
|
||||||
|
|
||||||
val DarkColorPalette = ColorPalette(
|
val DarkColorPalette = ColorPalette(
|
||||||
|
@ -46,6 +48,7 @@ val DarkColorPalette = ColorPalette(
|
||||||
primaryContainer = Color(0xff4046bf),
|
primaryContainer = Color(0xff4046bf),
|
||||||
onPrimaryContainer = Color.White,
|
onPrimaryContainer = Color.White,
|
||||||
iconOnPrimaryContainer = Color.White,
|
iconOnPrimaryContainer = Color.White,
|
||||||
|
isDark = true
|
||||||
)
|
)
|
||||||
|
|
||||||
val BlackColorPalette = DarkColorPalette.copy(
|
val BlackColorPalette = DarkColorPalette.copy(
|
||||||
|
@ -77,6 +80,7 @@ val LightColorPalette = ColorPalette(
|
||||||
// primaryContainer = Color(0xffecedf9),
|
// primaryContainer = Color(0xffecedf9),
|
||||||
// onPrimaryContainer = Color(0xff121212),
|
// onPrimaryContainer = Color(0xff121212),
|
||||||
// iconOnPrimaryContainer = Color(0xff2e30b8),
|
// iconOnPrimaryContainer = Color(0xff2e30b8),
|
||||||
|
isDark = false
|
||||||
)
|
)
|
||||||
|
|
||||||
val LocalColorPalette = staticCompositionLocalOf { LightColorPalette }
|
val LocalColorPalette = staticCompositionLocalOf { LightColorPalette }
|
||||||
|
|
Loading…
Add table
Reference in a new issue