Skip to content

Commit 520721e

Browse files
committed
feat: dynamic themes
1 parent 88c8e1f commit 520721e

File tree

1 file changed

+17
-6
lines changed
  • app/src/main/java/dev/davwheat/railway/gateline_errors/ui/theme

1 file changed

+17
-6
lines changed

app/src/main/java/dev/davwheat/railway/gateline_errors/ui/theme/Theme.kt

+17-6
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
package dev.davwheat.railway.gateline_errors.ui.theme
22

3+
import android.os.Build
34
import androidx.compose.foundation.isSystemInDarkTheme
45
import androidx.compose.material3.MaterialTheme
56
import androidx.compose.material3.darkColorScheme
7+
import androidx.compose.material3.dynamicDarkColorScheme
8+
import androidx.compose.material3.dynamicLightColorScheme
69
import androidx.compose.material3.lightColorScheme
710
import androidx.compose.runtime.Composable
11+
import androidx.compose.ui.platform.LocalContext
812

913
private val LightColors =
1014
lightColorScheme(
@@ -74,12 +78,19 @@ private val DarkColors =
7478

7579
@Composable
7680
fun AppTheme(useDarkTheme: Boolean = isSystemInDarkTheme(), content: @Composable () -> Unit) {
77-
val colors =
78-
if (!useDarkTheme) {
79-
LightColors
80-
} else {
81-
DarkColors
81+
val supportsDynamicColor = Build.VERSION.SDK_INT >= Build.VERSION_CODES.S
82+
83+
val colorScheme =
84+
when {
85+
supportsDynamicColor && useDarkTheme -> {
86+
dynamicDarkColorScheme(LocalContext.current)
87+
}
88+
supportsDynamicColor && !useDarkTheme -> {
89+
dynamicLightColorScheme(LocalContext.current)
90+
}
91+
useDarkTheme -> DarkColors
92+
else -> LightColors
8293
}
8394

84-
MaterialTheme(colorScheme = colors, content = content)
95+
MaterialTheme(colorScheme = colorScheme, content = content)
8596
}

0 commit comments

Comments
 (0)