Merge pull request #2912 from CatimaLoyalty/fix/2911

Fix Compose status and navigation bar theming
This commit is contained in:
Sylvia van Os
2025-12-31 17:03:58 +01:00
committed by GitHub
2 changed files with 46 additions and 2 deletions

View File

@@ -1,7 +1,6 @@
package protect.card_locker
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.OnBackPressedDispatcher
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.Column
@@ -26,12 +25,15 @@ import protect.card_locker.compose.CatimaAboutSection
import protect.card_locker.compose.CatimaTopAppBar
import protect.card_locker.compose.theme.CatimaTheme
class AboutActivity : ComponentActivity() {
class AboutActivity : CatimaComponentActivity() {
private lateinit var content: AboutContent
@OptIn(ExperimentalMaterial3Api::class)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
fixedEdgeToEdge()
content = AboutContent(this)
title = content.pageTitle

View File

@@ -0,0 +1,42 @@
package protect.card_locker
import android.graphics.Color
import android.os.Bundle
import android.os.PersistableBundle
import androidx.activity.ComponentActivity
import androidx.activity.SystemBarStyle
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatDelegate
import protect.card_locker.preferences.Settings
open class CatimaComponentActivity() : ComponentActivity() {
fun fixedEdgeToEdge() {
// Fix edge-to-edge
// When overriding onCreate this does not correctly get applied, which is why it is its own function
// We explicitly need to set the systemBarStyle ourselves, to prevent issues where Android
// for example renders white icons on top of a white statusbar (or black on black)
val settings = Settings(this)
val systemBarStyle = when (settings.theme) {
AppCompatDelegate.MODE_NIGHT_NO ->
SystemBarStyle.light(
scrim = Color.TRANSPARENT,
darkScrim = Color.TRANSPARENT,
)
AppCompatDelegate.MODE_NIGHT_YES ->
SystemBarStyle.dark(
scrim = Color.TRANSPARENT,
)
else ->
SystemBarStyle.auto(
lightScrim = Color.TRANSPARENT,
darkScrim = Color.TRANSPARENT
)
}
enableEdgeToEdge(
statusBarStyle = systemBarStyle,
navigationBarStyle = systemBarStyle
)
}
}