1package soy.iko.opencode.ui.theme
3import android.app.Activity
4import android.content.Context
5import android.content.ContextWrapper
7import androidx.compose.foundation.isSystemInDarkTheme
8import androidx.compose.material3.MaterialTheme
9import androidx.compose.material3.darkColorScheme
10import androidx.compose.material3.dynamicDarkColorScheme
11import androidx.compose.material3.dynamicLightColorScheme
12import androidx.compose.material3.lightColorScheme
13import androidx.compose.runtime.Composable
14import androidx.compose.runtime.SideEffect
15import androidx.compose.ui.graphics.Color
16import androidx.compose.ui.platform.LocalContext
17import androidx.compose.ui.platform.LocalView
18import androidx.core.view.WindowCompat
20private val DarkColors = darkColorScheme(
21 primary = Color(0xFF7AA2F7),
22 secondary = Color(0xFF9ECE6A),
23 tertiary = Color(0xFFBB9AF7),
24 background = Color(0xFF1A1B26),
25 surface = Color(0xFF1F2335),
28private val LightColors = lightColorScheme(
29 primary = Color(0xFF34548A),
30 secondary = Color(0xFF485E30),
31 tertiary = Color(0xFF5A4A78),
36 darkTheme: Boolean = isSystemInDarkTheme(),
37 dynamicColor: Boolean = false,
38 content: @Composable () -> Unit,
40 val context = LocalContext.current
41 val colorScheme = when {
42 dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S ->
43 if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context)
44 darkTheme -> DarkColors
47 val view = LocalView.current
48 if (!view.isInEditMode) {
50 val window = view.context.findActivity()?.window ?: return@SideEffect
51 WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = !darkTheme
55 colorScheme = colorScheme,
60private tailrec fun Context.findActivity(): Activity? = when (this) {
62 is ContextWrapper -> baseContext.findActivity()
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list