Merge pull request 'fix(#40): tint status and navigation bars to match active theme and flip icon appearance' (#46) from feat/40-status-and-navigation-bar-colors-dont-follow-current-theme into main
Reviewed-on: #46
This commit was merged in pull request #46.
This commit is contained in:
@@ -12,6 +12,7 @@ import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.SideEffect
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.luminance
|
||||
import androidx.compose.ui.graphics.toArgb
|
||||
import androidx.compose.ui.platform.LocalView
|
||||
import androidx.core.view.WindowCompat
|
||||
@@ -25,6 +26,8 @@ fun AppTheme(
|
||||
darkTheme -> darkColorScheme()
|
||||
else -> lightColorScheme()
|
||||
}
|
||||
StatusBarColor(colorScheme.background)
|
||||
NavigationBarColor(colorScheme.background)
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.fillMaxSize()
|
||||
@@ -45,9 +48,12 @@ fun NavigationBarColor(color: Color) {
|
||||
val activity = LocalActivity.current
|
||||
if (!view.isInEditMode) {
|
||||
SideEffect {
|
||||
activity?.window?.let {
|
||||
it.navigationBarColor = color.toArgb()
|
||||
WindowCompat.setDecorFitsSystemWindows(it, false)
|
||||
activity?.window?.let { window ->
|
||||
window.navigationBarColor = color.toArgb()
|
||||
WindowCompat.setDecorFitsSystemWindows(window, false)
|
||||
WindowCompat.getInsetsController(window, view).apply {
|
||||
isAppearanceLightNavigationBars = color.luminance() > 0.5f
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -60,9 +66,12 @@ fun StatusBarColor(color: Color) {
|
||||
val activity = LocalActivity.current
|
||||
if (!view.isInEditMode) {
|
||||
SideEffect {
|
||||
activity?.window?.let {
|
||||
it.statusBarColor = color.toArgb()
|
||||
WindowCompat.setDecorFitsSystemWindows(it, false)
|
||||
activity?.window?.let { window ->
|
||||
window.statusBarColor = color.toArgb()
|
||||
WindowCompat.setDecorFitsSystemWindows(window, false)
|
||||
WindowCompat.getInsetsController(window, view).apply {
|
||||
isAppearanceLightStatusBars = color.luminance() > 0.5f
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user