Revert "app: remove custom edge to edge setup"

This reverts commit f134d3e11b.
This commit is contained in:
Alexander Capehart 2025-01-15 11:44:18 -07:00
parent b0b55b5069
commit ad2ec5a655
No known key found for this signature in database
GPG key ID: 37DBE3621FE9AD47
8 changed files with 76 additions and 4 deletions

View file

@ -20,7 +20,7 @@ package org.oxycblt.auxio
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import androidx.activity.enableEdgeToEdge import android.view.View
import androidx.activity.viewModels import androidx.activity.viewModels
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.app.AppCompatDelegate import androidx.appcompat.app.AppCompatDelegate
@ -53,12 +53,12 @@ class MainActivity : AppCompatActivity() {
@Inject lateinit var uiSettings: UISettings @Inject lateinit var uiSettings: UISettings
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
enableEdgeToEdge()
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setupTheme() setupTheme()
// Inflate the views after setting up the theme so that the theme attributes are applied. // Inflate the views after setting up the theme so that the theme attributes are applied.
val binding = ActivityMainBinding.inflate(layoutInflater) val binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root) setContentView(binding.root)
setupEdgeToEdge(binding.root)
L.d("Activity created") L.d("Activity created")
} }
@ -95,6 +95,17 @@ class MainActivity : AppCompatActivity() {
} }
} }
private fun setupEdgeToEdge(contentView: View) {
WindowCompat.setDecorFitsSystemWindows(window, false)
contentView.setOnApplyWindowInsetsListener { view, insets ->
// Automatically inset the view to the left/right, as component support for
// these insets are highly lacking.
val bars = insets.systemBarInsetsCompat
view.updatePadding(left = bars.left, right = bars.right)
insets
}
}
/** /**
* Transform an [Intent] given to [MainActivity] into a [DeferredPlayback] that can be used in * Transform an [Intent] given to [MainActivity] into a [DeferredPlayback] that can be used in
* the playback system. * the playback system.

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Template theme that handles edge-to-edge on other styles variants -->
<style name="Theme.Auxio.V27" parent="Theme.Auxio.V23">
<item name="android:navigationBarColor">@color/chrome_transparent_ish</item>
<item name="android:statusBarColor">@color/chrome_transparent_ish</item>
<item name="android:windowLightStatusBar">false</item>
<item name="android:windowLightNavigationBar">false</item>
</style>
</resources>

View file

@ -1,5 +1,11 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<!--
Used on devices when we can technically use "transparent" system bars, but fully
transparent system bars would actually be made translucent by the OS.
-->
<color name="chrome_transparent_ish">#01000000</color>
<!-- Replicate extra theme values for widgets --> <!-- Replicate extra theme values for widgets -->
<color name="widget_surface">@color/material_dynamic_secondary20</color> <color name="widget_surface">@color/material_dynamic_secondary20</color>
<color name="widget_surface_inverse">@color/material_dynamic_neutral90</color> <color name="widget_surface_inverse">@color/material_dynamic_neutral90</color>

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Auxio.V27" parent="Theme.Auxio.V23">
<item name="android:navigationBarColor">@color/chrome_transparent_ish</item>
<item name="android:statusBarColor">@color/chrome_transparent_ish</item>
<item name="android:windowLightStatusBar">true</item>
<item name="android:windowLightNavigationBar">true</item>
</style>
</resources>

View file

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Auxio.V29" parent="Theme.Auxio.V27">
<!--
Android 10 finally allows you to use fully transparent system bars without it automatically
forcing contrast.
-->
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:navigationBarColor">@android:color/transparent</item>
<item name="android:enforceNavigationBarContrast">false</item>
<item name="android:enforceStatusBarContrast">false</item>
</style>
</resources>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<style name="Theme.Auxio.V31" parent="Theme.Auxio"> <style name="Theme.Auxio.V31" parent="Theme.Auxio.V29">
<item name="android:windowSplashScreenAnimatedIcon">@drawable/ic_splash_anim</item> <item name="android:windowSplashScreenAnimatedIcon">@drawable/ic_splash_anim</item>
<item name="android:windowSplashScreenAnimationDuration">1000</item> <item name="android:windowSplashScreenAnimationDuration">1000</item>
</style> </style>

View file

@ -1,5 +1,14 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<!-- Used on devices when we cannot set dark/light mode on the system bars. -->
<color name="chrome_translucent">#80000000</color>
<!--
Used on devices when we can technically use "transparent" system bars, but fully
transparent system bars would actually be made translucent by the OS.
-->
<color name="chrome_transparent_ish">#01ffffff</color>
<!-- Replicate extra theme values for widgets --> <!-- Replicate extra theme values for widgets -->
<color name="widget_surface">@color/material_dynamic_primary95</color> <color name="widget_surface">@color/material_dynamic_primary95</color>
<color name="widget_surface_inverse">@color/material_dynamic_neutral20</color> <color name="widget_surface_inverse">@color/material_dynamic_neutral20</color>

View file

@ -2,12 +2,23 @@
<resources> <resources>
<!-- Master parent theme --> <!-- Master parent theme -->
<style name="Theme.Auxio" parent="Theme.Material3.DynamicColors.DayNight" /> <style name="Theme.Auxio" parent="Theme.Material3.DynamicColors.DayNight" />
<!-- Adds nicer selector attributes not supported on lollipop -->
<style name="Theme.Auxio.V23" parent="Theme.Auxio" />
<!-- Handles edge-to-edge on other styles variants -->
<style name="Theme.Auxio.V27" parent="Theme.Auxio.V23">
<item name="android:statusBarColor">@color/chrome_translucent</item>
<item name="android:navigationBarColor">@color/chrome_translucent</item>
</style>
<!-- Adds fully transparent system bars -->
<style name="Theme.Auxio.V29" parent="Theme.Auxio.V27" />
<!-- Adds an animated splash screen. --> <!-- Adds an animated splash screen. -->
<style name="Theme.Auxio.V31" parent="Theme.Auxio" /> <style name="Theme.Auxio.V31" parent="Theme.Auxio.V29" />
<!-- Base theme --> <!-- Base theme -->
<style name="Theme.Auxio.Base" parent="Theme.Auxio.V31"> <style name="Theme.Auxio.Base" parent="Theme.Auxio.V31">
<!-- Material configuration --> <!-- Material configuration -->
<!-- <item name="colorOutline">@color/overlay_stroke</item>-->
<item name="toolbarStyle">@style/Widget.Auxio.Toolbar</item> <item name="toolbarStyle">@style/Widget.Auxio.Toolbar</item>
<item name="materialAlertDialogTheme">@style/Theme.Auxio.Dialog</item> <item name="materialAlertDialogTheme">@style/Theme.Auxio.Dialog</item>
<item name="sliderStyle">@style/Widget.Auxio.Slider</item> <item name="sliderStyle">@style/Widget.Auxio.Slider</item>