Skip to content

Commit 44b0699

Browse files
committed
Update Theme.kt
1 parent 854755b commit 44b0699

1 file changed

Lines changed: 157 additions & 2 deletions

File tree

  • Jetcaster/mobile/src/main/java/com/example/jetcaster/ui/theme

Jetcaster/mobile/src/main/java/com/example/jetcaster/ui/theme/Theme.kt

Lines changed: 157 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,48 +16,121 @@
1616

1717
package com.example.jetcaster.ui.theme
1818

19+
import android.os.Build
1920
import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
2021
import androidx.compose.material3.MaterialExpressiveTheme
2122
import androidx.compose.material3.MotionScheme
2223
import androidx.compose.material3.darkColorScheme
24+
import androidx.compose.material3.dynamicDarkColorScheme
2325
import androidx.compose.runtime.Composable
26+
import androidx.compose.ui.platform.LocalContext
2427
import com.example.jetcaster.designsystem.theme.JetcasterShapes
2528
import com.example.jetcaster.designsystem.theme.JetcasterTypography
2629
import com.example.jetcaster.designsystem.theme.backgroundDark
30+
import com.example.jetcaster.designsystem.theme.backgroundDarkHighContrast
31+
import com.example.jetcaster.designsystem.theme.backgroundDarkMediumContrast
2732
import com.example.jetcaster.designsystem.theme.errorContainerDark
33+
import com.example.jetcaster.designsystem.theme.errorContainerDarkHighContrast
34+
import com.example.jetcaster.designsystem.theme.errorContainerDarkMediumContrast
2835
import com.example.jetcaster.designsystem.theme.errorDark
36+
import com.example.jetcaster.designsystem.theme.errorDarkHighContrast
37+
import com.example.jetcaster.designsystem.theme.errorDarkMediumContrast
2938
import com.example.jetcaster.designsystem.theme.inverseOnSurfaceDark
39+
import com.example.jetcaster.designsystem.theme.inverseOnSurfaceDarkHighContrast
40+
import com.example.jetcaster.designsystem.theme.inverseOnSurfaceDarkMediumContrast
3041
import com.example.jetcaster.designsystem.theme.inversePrimaryDark
42+
import com.example.jetcaster.designsystem.theme.inversePrimaryDarkHighContrast
43+
import com.example.jetcaster.designsystem.theme.inversePrimaryDarkMediumContrast
3144
import com.example.jetcaster.designsystem.theme.inverseSurfaceDark
45+
import com.example.jetcaster.designsystem.theme.inverseSurfaceDarkHighContrast
46+
import com.example.jetcaster.designsystem.theme.inverseSurfaceDarkMediumContrast
3247
import com.example.jetcaster.designsystem.theme.onBackgroundDark
48+
import com.example.jetcaster.designsystem.theme.onBackgroundDarkHighContrast
49+
import com.example.jetcaster.designsystem.theme.onBackgroundDarkMediumContrast
3350
import com.example.jetcaster.designsystem.theme.onErrorContainerDark
51+
import com.example.jetcaster.designsystem.theme.onErrorContainerDarkHighContrast
52+
import com.example.jetcaster.designsystem.theme.onErrorContainerDarkMediumContrast
3453
import com.example.jetcaster.designsystem.theme.onErrorDark
54+
import com.example.jetcaster.designsystem.theme.onErrorDarkHighContrast
55+
import com.example.jetcaster.designsystem.theme.onErrorDarkMediumContrast
3556
import com.example.jetcaster.designsystem.theme.onPrimaryContainerDark
57+
import com.example.jetcaster.designsystem.theme.onPrimaryContainerDarkHighContrast
58+
import com.example.jetcaster.designsystem.theme.onPrimaryContainerDarkMediumContrast
3659
import com.example.jetcaster.designsystem.theme.onPrimaryDark
60+
import com.example.jetcaster.designsystem.theme.onPrimaryDarkHighContrast
61+
import com.example.jetcaster.designsystem.theme.onPrimaryDarkMediumContrast
3762
import com.example.jetcaster.designsystem.theme.onSecondaryContainerDark
63+
import com.example.jetcaster.designsystem.theme.onSecondaryContainerDarkHighContrast
64+
import com.example.jetcaster.designsystem.theme.onSecondaryContainerDarkMediumContrast
3865
import com.example.jetcaster.designsystem.theme.onSecondaryDark
66+
import com.example.jetcaster.designsystem.theme.onSecondaryDarkHighContrast
67+
import com.example.jetcaster.designsystem.theme.onSecondaryDarkMediumContrast
3968
import com.example.jetcaster.designsystem.theme.onSurfaceDark
69+
import com.example.jetcaster.designsystem.theme.onSurfaceDarkHighContrast
70+
import com.example.jetcaster.designsystem.theme.onSurfaceDarkMediumContrast
4071
import com.example.jetcaster.designsystem.theme.onSurfaceVariantDark
72+
import com.example.jetcaster.designsystem.theme.onSurfaceVariantDarkHighContrast
73+
import com.example.jetcaster.designsystem.theme.onSurfaceVariantDarkMediumContrast
4174
import com.example.jetcaster.designsystem.theme.onTertiaryContainerDark
75+
import com.example.jetcaster.designsystem.theme.onTertiaryContainerDarkHighContrast
76+
import com.example.jetcaster.designsystem.theme.onTertiaryContainerDarkMediumContrast
4277
import com.example.jetcaster.designsystem.theme.onTertiaryDark
78+
import com.example.jetcaster.designsystem.theme.onTertiaryDarkHighContrast
79+
import com.example.jetcaster.designsystem.theme.onTertiaryDarkMediumContrast
4380
import com.example.jetcaster.designsystem.theme.outlineDark
81+
import com.example.jetcaster.designsystem.theme.outlineDarkHighContrast
82+
import com.example.jetcaster.designsystem.theme.outlineDarkMediumContrast
4483
import com.example.jetcaster.designsystem.theme.outlineVariantDark
84+
import com.example.jetcaster.designsystem.theme.outlineVariantDarkHighContrast
85+
import com.example.jetcaster.designsystem.theme.outlineVariantDarkMediumContrast
4586
import com.example.jetcaster.designsystem.theme.primaryContainerDark
87+
import com.example.jetcaster.designsystem.theme.primaryContainerDarkHighContrast
88+
import com.example.jetcaster.designsystem.theme.primaryContainerDarkMediumContrast
4689
import com.example.jetcaster.designsystem.theme.primaryDark
90+
import com.example.jetcaster.designsystem.theme.primaryDarkHighContrast
91+
import com.example.jetcaster.designsystem.theme.primaryDarkMediumContrast
4792
import com.example.jetcaster.designsystem.theme.scrimDark
93+
import com.example.jetcaster.designsystem.theme.scrimDarkHighContrast
94+
import com.example.jetcaster.designsystem.theme.scrimDarkMediumContrast
4895
import com.example.jetcaster.designsystem.theme.secondaryContainerDark
96+
import com.example.jetcaster.designsystem.theme.secondaryContainerDarkHighContrast
97+
import com.example.jetcaster.designsystem.theme.secondaryContainerDarkMediumContrast
4998
import com.example.jetcaster.designsystem.theme.secondaryDark
99+
import com.example.jetcaster.designsystem.theme.secondaryDarkHighContrast
100+
import com.example.jetcaster.designsystem.theme.secondaryDarkMediumContrast
50101
import com.example.jetcaster.designsystem.theme.surfaceBrightDark
102+
import com.example.jetcaster.designsystem.theme.surfaceBrightDarkHighContrast
103+
import com.example.jetcaster.designsystem.theme.surfaceBrightDarkMediumContrast
51104
import com.example.jetcaster.designsystem.theme.surfaceContainerDark
105+
import com.example.jetcaster.designsystem.theme.surfaceContainerDarkHighContrast
106+
import com.example.jetcaster.designsystem.theme.surfaceContainerDarkMediumContrast
52107
import com.example.jetcaster.designsystem.theme.surfaceContainerHighDark
108+
import com.example.jetcaster.designsystem.theme.surfaceContainerHighDarkHighContrast
109+
import com.example.jetcaster.designsystem.theme.surfaceContainerHighDarkMediumContrast
53110
import com.example.jetcaster.designsystem.theme.surfaceContainerHighestDark
111+
import com.example.jetcaster.designsystem.theme.surfaceContainerHighestDarkHighContrast
112+
import com.example.jetcaster.designsystem.theme.surfaceContainerHighestDarkMediumContrast
54113
import com.example.jetcaster.designsystem.theme.surfaceContainerLowDark
114+
import com.example.jetcaster.designsystem.theme.surfaceContainerLowDarkHighContrast
115+
import com.example.jetcaster.designsystem.theme.surfaceContainerLowDarkMediumContrast
55116
import com.example.jetcaster.designsystem.theme.surfaceContainerLowestDark
117+
import com.example.jetcaster.designsystem.theme.surfaceContainerLowestDarkHighContrast
118+
import com.example.jetcaster.designsystem.theme.surfaceContainerLowestDarkMediumContrast
56119
import com.example.jetcaster.designsystem.theme.surfaceDark
120+
import com.example.jetcaster.designsystem.theme.surfaceDarkHighContrast
121+
import com.example.jetcaster.designsystem.theme.surfaceDarkMediumContrast
57122
import com.example.jetcaster.designsystem.theme.surfaceDimDark
123+
import com.example.jetcaster.designsystem.theme.surfaceDimDarkHighContrast
124+
import com.example.jetcaster.designsystem.theme.surfaceDimDarkMediumContrast
58125
import com.example.jetcaster.designsystem.theme.surfaceVariantDark
126+
import com.example.jetcaster.designsystem.theme.surfaceVariantDarkHighContrast
127+
import com.example.jetcaster.designsystem.theme.surfaceVariantDarkMediumContrast
59128
import com.example.jetcaster.designsystem.theme.tertiaryContainerDark
129+
import com.example.jetcaster.designsystem.theme.tertiaryContainerDarkHighContrast
130+
import com.example.jetcaster.designsystem.theme.tertiaryContainerDarkMediumContrast
60131
import com.example.jetcaster.designsystem.theme.tertiaryDark
132+
import com.example.jetcaster.designsystem.theme.tertiaryDarkHighContrast
133+
import com.example.jetcaster.designsystem.theme.tertiaryDarkMediumContrast
61134

62135
private val darkScheme = darkColorScheme(
63136
primary = primaryDark,
@@ -97,10 +170,92 @@ private val darkScheme = darkColorScheme(
97170
surfaceContainerHighest = surfaceContainerHighestDark,
98171
)
99172

173+
private val mediumContrastDarkColorScheme = darkColorScheme(
174+
primary = primaryDarkMediumContrast,
175+
onPrimary = onPrimaryDarkMediumContrast,
176+
primaryContainer = primaryContainerDarkMediumContrast,
177+
onPrimaryContainer = onPrimaryContainerDarkMediumContrast,
178+
secondary = secondaryDarkMediumContrast,
179+
onSecondary = onSecondaryDarkMediumContrast,
180+
secondaryContainer = secondaryContainerDarkMediumContrast,
181+
onSecondaryContainer = onSecondaryContainerDarkMediumContrast,
182+
tertiary = tertiaryDarkMediumContrast,
183+
onTertiary = onTertiaryDarkMediumContrast,
184+
tertiaryContainer = tertiaryContainerDarkMediumContrast,
185+
onTertiaryContainer = onTertiaryContainerDarkMediumContrast,
186+
error = errorDarkMediumContrast,
187+
onError = onErrorDarkMediumContrast,
188+
errorContainer = errorContainerDarkMediumContrast,
189+
onErrorContainer = onErrorContainerDarkMediumContrast,
190+
background = backgroundDarkMediumContrast,
191+
onBackground = onBackgroundDarkMediumContrast,
192+
surface = surfaceDarkMediumContrast,
193+
onSurface = onSurfaceDarkMediumContrast,
194+
surfaceVariant = surfaceVariantDarkMediumContrast,
195+
onSurfaceVariant = onSurfaceVariantDarkMediumContrast,
196+
outline = outlineDarkMediumContrast,
197+
outlineVariant = outlineVariantDarkMediumContrast,
198+
scrim = scrimDarkMediumContrast,
199+
inverseSurface = inverseSurfaceDarkMediumContrast,
200+
inverseOnSurface = inverseOnSurfaceDarkMediumContrast,
201+
inversePrimary = inversePrimaryDarkMediumContrast,
202+
surfaceDim = surfaceDimDarkMediumContrast,
203+
surfaceBright = surfaceBrightDarkMediumContrast,
204+
surfaceContainerLowest = surfaceContainerLowestDarkMediumContrast,
205+
surfaceContainerLow = surfaceContainerLowDarkMediumContrast,
206+
surfaceContainer = surfaceContainerDarkMediumContrast,
207+
surfaceContainerHigh = surfaceContainerHighDarkMediumContrast,
208+
surfaceContainerHighest = surfaceContainerHighestDarkMediumContrast,
209+
)
210+
211+
private val highContrastDarkColorScheme = darkColorScheme(
212+
primary = primaryDarkHighContrast,
213+
onPrimary = onPrimaryDarkHighContrast,
214+
primaryContainer = primaryContainerDarkHighContrast,
215+
onPrimaryContainer = onPrimaryContainerDarkHighContrast,
216+
secondary = secondaryDarkHighContrast,
217+
onSecondary = onSecondaryDarkHighContrast,
218+
secondaryContainer = secondaryContainerDarkHighContrast,
219+
onSecondaryContainer = onSecondaryContainerDarkHighContrast,
220+
tertiary = tertiaryDarkHighContrast,
221+
onTertiary = onTertiaryDarkHighContrast,
222+
tertiaryContainer = tertiaryContainerDarkHighContrast,
223+
onTertiaryContainer = onTertiaryContainerDarkHighContrast,
224+
error = errorDarkHighContrast,
225+
onError = onErrorDarkHighContrast,
226+
errorContainer = errorContainerDarkHighContrast,
227+
onErrorContainer = onErrorContainerDarkHighContrast,
228+
background = backgroundDarkHighContrast,
229+
onBackground = onBackgroundDarkHighContrast,
230+
surface = surfaceDarkHighContrast,
231+
onSurface = onSurfaceDarkHighContrast,
232+
surfaceVariant = surfaceVariantDarkHighContrast,
233+
onSurfaceVariant = onSurfaceVariantDarkHighContrast,
234+
outline = outlineDarkHighContrast,
235+
outlineVariant = outlineVariantDarkHighContrast,
236+
scrim = scrimDarkHighContrast,
237+
inverseSurface = inverseSurfaceDarkHighContrast,
238+
inverseOnSurface = inverseOnSurfaceDarkHighContrast,
239+
inversePrimary = inversePrimaryDarkHighContrast,
240+
surfaceDim = surfaceDimDarkHighContrast,
241+
surfaceBright = surfaceBrightDarkHighContrast,
242+
surfaceContainerLowest = surfaceContainerLowestDarkHighContrast,
243+
surfaceContainerLow = surfaceContainerLowDarkHighContrast,
244+
surfaceContainer = surfaceContainerDarkHighContrast,
245+
surfaceContainerHigh = surfaceContainerHighDarkHighContrast,
246+
surfaceContainerHighest = surfaceContainerHighestDarkHighContrast,
247+
)
248+
100249
@OptIn(ExperimentalMaterial3ExpressiveApi::class)
101250
@Composable
102-
fun JetcasterTheme(content: @Composable () -> Unit) {
103-
val colorScheme = darkScheme
251+
fun JetcasterTheme(dynamicColor: Boolean = false, content: @Composable () -> Unit) {
252+
val colorScheme = when {
253+
dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> {
254+
val context = LocalContext.current
255+
dynamicDarkColorScheme(context)
256+
}
257+
else -> darkScheme
258+
}
104259

105260
MaterialExpressiveTheme(
106261
colorScheme = colorScheme,

0 commit comments

Comments
 (0)