From f1ad2af9f44325a743bcf1acbe71802785904b71 Mon Sep 17 00:00:00 2001 From: Juha Heinanen Date: Fri, 3 Apr 2026 19:27:48 +0300 Subject: [PATCH] Avoid wrong system and navigation bar coloring --- .../kotlin/com/tutpro/baresip/MainActivity.kt | 2 -- .../main/kotlin/com/tutpro/baresip/Theme.kt | 28 +++++++++++++++---- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt index 44e1ce90..f1b92aa9 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt @@ -61,8 +61,6 @@ class MainActivity : ComponentActivity() { @SuppressLint("ClickableViewAccessibility") override fun onCreate(savedInstanceState: Bundle?) { - enableEdgeToEdge() - super.onCreate(savedInstanceState) val extraAction = intent.getStringExtra("action") diff --git a/app/src/main/kotlin/com/tutpro/baresip/Theme.kt b/app/src/main/kotlin/com/tutpro/baresip/Theme.kt index f7aa0214..cf3a9267 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/Theme.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/Theme.kt @@ -2,6 +2,9 @@ package com.tutpro.baresip import android.app.Activity import android.os.Build.VERSION +import androidx.activity.ComponentActivity +import androidx.activity.SystemBarStyle +import androidx.activity.enableEdgeToEdge import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.material3.MaterialTheme import androidx.compose.material3.darkColorScheme @@ -103,11 +106,26 @@ fun AppTheme( val view = LocalView.current if (!view.isInEditMode) { SideEffect { - val window = (view.context as Activity).window - val insetsController = WindowCompat.getInsetsController(window, view) - val isBackgroundEffectivelyLight = ColorUtils.calculateLuminance(colorScheme.background.toArgb()) > 0.5 - insetsController.isAppearanceLightStatusBars = isBackgroundEffectivelyLight - insetsController.isAppearanceLightNavigationBars = isBackgroundEffectivelyLight + val activity = view.context as? ComponentActivity + if (activity != null) { + activity.enableEdgeToEdge( + statusBarStyle = SystemBarStyle.auto( + android.graphics.Color.TRANSPARENT, + android.graphics.Color.TRANSPARENT, + ) { isDark }, + navigationBarStyle = SystemBarStyle.auto( + android.graphics.Color.TRANSPARENT, + android.graphics.Color.TRANSPARENT, + ) { isDark } + ) + } else { + val window = (view.context as Activity).window + val insetsController = WindowCompat.getInsetsController(window, view) + val isBackgroundEffectivelyLight = + ColorUtils.calculateLuminance(colorScheme.background.toArgb()) > 0.5 + insetsController.isAppearanceLightStatusBars = isBackgroundEffectivelyLight + insetsController.isAppearanceLightNavigationBars = isBackgroundEffectivelyLight + } } }