Using SideEffect to set system bars color

This commit is contained in:
Sad Ellie 2022-06-22 21:01:42 +03:00
parent daeaf749fd
commit 984ee4439b

View File

@ -22,6 +22,7 @@ import android.os.Build
import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.SideEffect
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import com.google.accompanist.systemuicontroller.rememberSystemUiController import com.google.accompanist.systemuicontroller.rememberSystemUiController
import com.sadellie.unitto.data.preferences.AppTheme import com.sadellie.unitto.data.preferences.AppTheme
@ -34,6 +35,7 @@ fun UnittoTheme(
) { ) {
// Dynamic color is only for Android 12 and higher // Dynamic color is only for Android 12 and higher
val dynamicColor = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1 val dynamicColor = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1
val sysUiController = rememberSystemUiController()
val colors = when (currentAppTheme) { val colors = when (currentAppTheme) {
AppTheme.DARK -> DarkThemeColors AppTheme.DARK -> DarkThemeColors
@ -54,13 +56,15 @@ fun UnittoTheme(
} }
} }
rememberSystemUiController().setSystemBarsColor(
color = colors.background
)
MaterialTheme( MaterialTheme(
colorScheme = colors, colorScheme = colors,
typography = AppTypography, typography = AppTypography,
content = content content = content
) )
SideEffect {
sysUiController.setSystemBarsColor(
color = colors.background
)
}
} }