-
Notifications
You must be signed in to change notification settings - Fork 5
Description
@composable
fun SetSystemBarColors(isDarkTheme: Boolean) {//Actual android
val view = LocalView.current
if (!view.isInEditMode) {
SideEffect {
val window = (view.context as Activity).window
WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = !isDarkTheme
WindowCompat.getInsetsController(window, view).isAppearanceLightNavigationBars = !isDarkTheme
}
}
}
@composable
fun AppTheme(
darkTheme: Boolean = isSystemInDarkTheme(),
// Dynamic color is available on Android 12+
dynamicColor: Boolean = false, //true
preferHelper: PreferenceHelper = rememberPreferenceHelper(),
darkColorScheme: ColorScheme = darkColorScheme(),
lightColorScheme: ColorScheme = lightColorScheme(),
content: @Composable PreferableMaterialTheme.() -> Unit
) {
//... dynamic theme ...
// val colorScheme = when {
// dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> {
// val context = LocalContext.current
// if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context)
// }
//
// darkTheme -> DarkColorScheme
// else -> LightColorScheme
// }
SetSystemBarColors(darkTheme)//Toolbar Fix
val themePrefs = rememberThemePrefs(preferHelper, darkColorScheme, lightColorScheme, /*Here you need to add a flag to use a dynamic theme*/)
CompositionLocalProvider(
LocalThemePrefs provides themePrefs,
) {
MaterialTheme(
colorScheme = themePrefs.colorScheme,
content = { PreferableMaterialTheme.content() }
)
}
}