git.iko.soy/opencode-android
on 8865a77 help sign in
47 lines 1.5 kB history raw
1package soy.iko.opencode.ui.theme
3import android.app.Activity
4import androidx.compose.foundation.isSystemInDarkTheme
5import androidx.compose.material3.MaterialTheme
6import androidx.compose.material3.darkColorScheme
7import androidx.compose.material3.lightColorScheme
8import androidx.compose.runtime.Composable
9import androidx.compose.runtime.SideEffect
10import androidx.compose.ui.graphics.Color
11import androidx.compose.ui.graphics.toArgb
12import androidx.compose.ui.platform.LocalView
13import androidx.core.view.WindowCompat
15private val DarkColors = darkColorScheme(
16 primary = Color(0xFF7AA2F7),
17 secondary = Color(0xFF9ECE6A),
18 tertiary = Color(0xFFBB9AF7),
19 background = Color(0xFF1A1B26),
20 surface = Color(0xFF1F2335),
23private val LightColors = lightColorScheme(
24 primary = Color(0xFF34548A),
25 secondary = Color(0xFF485E30),
26 tertiary = Color(0xFF5A4A78),
29@Composable
30fun OpencodeTheme(
31 darkTheme: Boolean = isSystemInDarkTheme(),
32 content: @Composable () -> Unit,
33) {
34 val colorScheme = if (darkTheme) DarkColors else LightColors
35 val view = LocalView.current
36 if (!view.isInEditMode) {
37 SideEffect {
38 val window = (view.context as Activity).window
39 window.statusBarColor = colorScheme.background.toArgb()
40 WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = !darkTheme
41 }
42 }
43 MaterialTheme(
44 colorScheme = colorScheme,
45 content = content,
46 )