Skip to content

toolbar text color doesn't change, for example, you can enable a black theme in the system and a white one in the application #5

Description

@ishumakov881

@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() }
    )
}

}

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions