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.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(
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 }
|
||||
|
|
Loading…
Add table
Reference in a new issue