46 lines
1.5 KiB
Kotlin
46 lines
1.5 KiB
Kotlin
package com.example.stepdrink.ui.theme
|
|
|
|
import android.app.Activity
|
|
import androidx.compose.foundation.isSystemInDarkTheme
|
|
import androidx.compose.material3.MaterialTheme
|
|
import androidx.compose.material3.darkColorScheme
|
|
import androidx.compose.material3.lightColorScheme
|
|
import androidx.compose.runtime.Composable
|
|
import androidx.compose.runtime.SideEffect
|
|
import androidx.compose.ui.graphics.toArgb
|
|
import androidx.compose.ui.platform.LocalView
|
|
import androidx.core.view.WindowCompat
|
|
|
|
private val DarkColorScheme = darkColorScheme(
|
|
primary = androidx.compose.ui.graphics.Color(0xFF90CAF9),
|
|
secondary = androidx.compose.ui.graphics.Color(0xFF81C784),
|
|
tertiary = androidx.compose.ui.graphics.Color(0xFF64B5F6)
|
|
)
|
|
|
|
private val LightColorScheme = lightColorScheme(
|
|
primary = androidx.compose.ui.graphics.Color(0xFF1976D2),
|
|
secondary = androidx.compose.ui.graphics.Color(0xFF388E3C),
|
|
tertiary = androidx.compose.ui.graphics.Color(0xFF0288D1)
|
|
)
|
|
|
|
@Composable
|
|
fun StepDrinkTheme(
|
|
darkTheme: Boolean = isSystemInDarkTheme(),
|
|
content: @Composable () -> Unit
|
|
) {
|
|
val colorScheme = if (darkTheme) DarkColorScheme else LightColorScheme
|
|
val view = LocalView.current
|
|
|
|
if (!view.isInEditMode) {
|
|
SideEffect {
|
|
val window = (view.context as Activity).window
|
|
window.statusBarColor = colorScheme.primary.toArgb()
|
|
WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = !darkTheme
|
|
}
|
|
}
|
|
|
|
MaterialTheme(
|
|
colorScheme = colorScheme,
|
|
content = content
|
|
)
|
|
} |