fix: Fix status bar color on scroll; Closes #13

This commit is contained in:
Myzel394 2023-08-10 22:49:49 +02:00
parent 56deb12373
commit d8e137abf9
No known key found for this signature in database
GPG Key ID: 79CC92F37B3E1A2B
3 changed files with 18 additions and 17 deletions

View File

@ -4,7 +4,7 @@ import android.content.Context
import android.os.Bundle import android.os.Bundle
import androidx.activity.ComponentActivity import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent import androidx.activity.compose.setContent
import androidx.appcompat.app.AppCompatActivity import androidx.core.view.WindowCompat
import androidx.datastore.dataStore import androidx.datastore.dataStore
import app.myzel394.alibi.db.AppSettingsSerializer import app.myzel394.alibi.db.AppSettingsSerializer
import app.myzel394.alibi.ui.Navigation import app.myzel394.alibi.ui.Navigation
@ -16,9 +16,12 @@ val Context.dataStore by dataStore(
serializer = AppSettingsSerializer() serializer = AppSettingsSerializer()
) )
class MainActivity : AppCompatActivity() { class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
WindowCompat.setDecorFitsSystemWindows(window, false)
setContent { setContent {
AlibiTheme { AlibiTheme {
Navigation() Navigation()

View File

@ -57,23 +57,15 @@ fun AlibiTheme(
if (!view.isInEditMode) { if (!view.isInEditMode) {
SideEffect { SideEffect {
val window = (view.context as Activity).window val window = (view.context as Activity).window
WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = darkTheme
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
window.navigationBarColor = colorScheme.background.toArgb() window.navigationBarColor = colorScheme.background.toArgb()
window.statusBarColor = colorScheme.background.toArgb() WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = !darkTheme
WindowCompat.getInsetsController(
window,
view
).isAppearanceLightStatusBars = !darkTheme
WindowCompat.getInsetsController( WindowCompat.getInsetsController(
window, window,
view view
).isAppearanceLightNavigationBars = !darkTheme ).isAppearanceLightNavigationBars = !darkTheme
} }
} }
}
MaterialTheme( MaterialTheme(
colorScheme = colorScheme, colorScheme = colorScheme,

View File

@ -1,6 +1,12 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources xmlns:tools="http://schemas.android.com/tools">
<style name="Theme.Alibi" parent="@style/Theme.AppCompat.DayNight.NoActionBar"> <style name="Theme.Alibi" parent="@style/Theme.AppCompat.DayNight.NoActionBar">
<!-- Required for transparent status bar -->
<!-- Taken from: https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:compose/integration-tests/material-catalog/src/main/res/values/themes.xml -->
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:navigationBarColor">@android:color/transparent</item>
<item name="android:windowLightNavigationBar" tools:targetApi="o_mr1">true</item>
<item name="android:windowActionModeOverlay">true</item> <item name="android:windowActionModeOverlay">true</item>
<item name="android:windowContentOverlay">@color/windowBackground</item> <item name="android:windowContentOverlay">@color/windowBackground</item>
<item name="android:windowBackground">@color/windowBackground</item> <item name="android:windowBackground">@color/windowBackground</item>