1
+ package dev.danielc.fudgecmp.ui.theme
2
+
3
+ import android.os.Build
4
+ import androidx.compose.foundation.isSystemInDarkTheme
5
+ import androidx.compose.material3.MaterialTheme
6
+ import androidx.compose.material3.darkColorScheme
7
+ import androidx.compose.material3.dynamicDarkColorScheme
8
+ import androidx.compose.material3.dynamicLightColorScheme
9
+ import androidx.compose.material3.lightColorScheme
10
+ import androidx.compose.runtime.Composable
11
+ import androidx.compose.ui.platform.LocalContext
12
+
13
+ private val DarkColorScheme = darkColorScheme(
14
+ primary = Purple80 ,
15
+ secondary = PurpleGrey80 ,
16
+ tertiary = Pink80
17
+ )
18
+
19
+ private val LightColorScheme = lightColorScheme(
20
+ primary = Purple40 ,
21
+ secondary = PurpleGrey40 ,
22
+ tertiary = Pink40
23
+
24
+ /* Other default colors to override
25
+ background = Color(0xFFFFFBFE),
26
+ surface = Color(0xFFFFFBFE),
27
+ onPrimary = Color.White,
28
+ onSecondary = Color.White,
29
+ onTertiary = Color.White,
30
+ onBackground = Color(0xFF1C1B1F),
31
+ onSurface = Color(0xFF1C1B1F),
32
+ */
33
+ )
34
+
35
+ @Composable
36
+ fun FudgeTheme (
37
+ darkTheme : Boolean = isSystemInDarkTheme(),
38
+ // Dynamic color is available on Android 12+
39
+ dynamicColor : Boolean = true,
40
+ content : @Composable () -> Unit
41
+ ) {
42
+ val colorScheme = when {
43
+ dynamicColor && Build .VERSION .SDK_INT >= Build .VERSION_CODES .S -> {
44
+ val context = LocalContext .current
45
+ if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context)
46
+ }
47
+
48
+ darkTheme -> DarkColorScheme
49
+ else -> LightColorScheme
50
+ }
51
+
52
+ MaterialTheme (
53
+ colorScheme = colorScheme,
54
+ typography = Typography ,
55
+ content = content
56
+ )
57
+ }
0 commit comments