mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-14 22:17:03 +05:30
refactor(android): simplify system bars color setup
This commit is contained in:
parent
3883160234
commit
d3d3a6af09
2 changed files with 28 additions and 1 deletions
|
@ -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(
|
||||||
|
|
|
@ -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() }
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue