refactor(android): simplify system bars color setup

This commit is contained in:
Harsh Shandilya 2023-10-09 01:32:19 +05:30
parent 3883160234
commit d3d3a6af09
No known key found for this signature in database
2 changed files with 28 additions and 1 deletions

View file

@ -7,9 +7,11 @@
package dev.msfjarvis.claw.android package dev.msfjarvis.claw.android
import android.app.assist.AssistContent import android.app.assist.AssistContent
import android.graphics.Color
import android.net.Uri import android.net.Uri
import android.os.Bundle import android.os.Bundle
import androidx.activity.ComponentActivity import androidx.activity.ComponentActivity
import androidx.activity.SystemBarStyle
import androidx.activity.compose.setContent import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge import androidx.activity.enableEdgeToEdge
import androidx.compose.material3.windowsizeclass.ExperimentalMaterial3WindowSizeClassApi import androidx.compose.material3.windowsizeclass.ExperimentalMaterial3WindowSizeClassApi
@ -36,7 +38,18 @@ class MainActivity : ComponentActivity() {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
installSplashScreen() installSplashScreen()
Whetstone.inject(this) Whetstone.inject(this)
enableEdgeToEdge() enableEdgeToEdge(
statusBarStyle =
SystemBarStyle.light(
Color.TRANSPARENT,
Color.TRANSPARENT,
),
navigationBarStyle =
SystemBarStyle.light(
Color.TRANSPARENT,
Color.TRANSPARENT,
),
)
setContent { setContent {
val windowSizeClass = calculateWindowSizeClass(this) val windowSizeClass = calculateWindowSizeClass(this)
LobstersTheme( LobstersTheme(

View file

@ -6,6 +6,7 @@
*/ */
package dev.msfjarvis.claw.common.theme package dev.msfjarvis.claw.common.theme
import android.app.Activity
import android.os.Build import android.os.Build
import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
@ -16,7 +17,12 @@ import androidx.compose.material3.lightColorScheme
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.ProvidedValue import androidx.compose.runtime.ProvidedValue
import androidx.compose.runtime.SideEffect
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.toArgb
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalView
import androidx.core.view.WindowCompat
import com.halilibo.richtext.ui.material3.SetupMaterial3RichText import com.halilibo.richtext.ui.material3.SetupMaterial3RichText
val LightThemeColors = val LightThemeColors =
@ -97,6 +103,14 @@ fun LobstersTheme(
} }
else -> if (darkTheme) DarkThemeColors else LightThemeColors else -> if (darkTheme) DarkThemeColors else LightThemeColors
} }
val view = LocalView.current
if (!view.isInEditMode) {
SideEffect {
val window = (view.context as Activity).window
window.statusBarColor = Color.Transparent.toArgb()
WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = !darkTheme
}
}
CompositionLocalProvider(*providedValues) { CompositionLocalProvider(*providedValues) {
MaterialTheme(colorScheme = colorScheme, typography = AppTypography) { MaterialTheme(colorScheme = colorScheme, typography = AppTypography) {
SetupMaterial3RichText { content() } SetupMaterial3RichText { content() }