diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/MainActivity.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/MainActivity.kt index 0cb585e6..2e1d1d34 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/MainActivity.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/MainActivity.kt @@ -7,9 +7,11 @@ package dev.msfjarvis.claw.android import android.app.assist.AssistContent +import android.graphics.Color import android.net.Uri import android.os.Bundle import androidx.activity.ComponentActivity +import androidx.activity.SystemBarStyle import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.compose.material3.windowsizeclass.ExperimentalMaterial3WindowSizeClassApi @@ -36,7 +38,18 @@ class MainActivity : ComponentActivity() { super.onCreate(savedInstanceState) installSplashScreen() Whetstone.inject(this) - enableEdgeToEdge() + enableEdgeToEdge( + statusBarStyle = + SystemBarStyle.light( + Color.TRANSPARENT, + Color.TRANSPARENT, + ), + navigationBarStyle = + SystemBarStyle.light( + Color.TRANSPARENT, + Color.TRANSPARENT, + ), + ) setContent { val windowSizeClass = calculateWindowSizeClass(this) LobstersTheme( diff --git a/common/src/main/kotlin/dev/msfjarvis/claw/common/theme/Theme.kt b/common/src/main/kotlin/dev/msfjarvis/claw/common/theme/Theme.kt index cdea437d..968d4626 100644 --- a/common/src/main/kotlin/dev/msfjarvis/claw/common/theme/Theme.kt +++ b/common/src/main/kotlin/dev/msfjarvis/claw/common/theme/Theme.kt @@ -6,6 +6,7 @@ */ package dev.msfjarvis.claw.common.theme +import android.app.Activity import android.os.Build import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.material3.MaterialTheme @@ -16,7 +17,12 @@ import androidx.compose.material3.lightColorScheme import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider 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.LocalView +import androidx.core.view.WindowCompat import com.halilibo.richtext.ui.material3.SetupMaterial3RichText val LightThemeColors = @@ -97,6 +103,14 @@ fun LobstersTheme( } 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) { MaterialTheme(colorScheme = colorScheme, typography = AppTypography) { SetupMaterial3RichText { content() }