Skip to content

Commit

Permalink
Revert "app: remove custom edge to edge setup"
Browse files Browse the repository at this point in the history
This reverts commit f134d3e.
  • Loading branch information
OxygenCobalt committed Jan 15, 2025
1 parent b0b55b5 commit ad2ec5a
Show file tree
Hide file tree
Showing 8 changed files with 76 additions and 4 deletions.
15 changes: 13 additions & 2 deletions app/src/main/java/org/oxycblt/auxio/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ package org.oxycblt.auxio

import android.content.Intent
import android.os.Bundle
import androidx.activity.enableEdgeToEdge
import android.view.View
import androidx.activity.viewModels
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.app.AppCompatDelegate
Expand Down Expand Up @@ -53,12 +53,12 @@ class MainActivity : AppCompatActivity() {
@Inject lateinit var uiSettings: UISettings

override fun onCreate(savedInstanceState: Bundle?) {
enableEdgeToEdge()
super.onCreate(savedInstanceState)
setupTheme()
// Inflate the views after setting up the theme so that the theme attributes are applied.
val binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
setupEdgeToEdge(binding.root)
L.d("Activity created")
}

Expand Down Expand Up @@ -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
* the playback system.
Expand Down
10 changes: 10 additions & 0 deletions app/src/main/res/values-night-v27/styles_core.xml
Original file line number Diff line number Diff line change
@@ -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>
6 changes: 6 additions & 0 deletions app/src/main/res/values-night/colors_android.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<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 -->
<color name="widget_surface">@color/material_dynamic_secondary20</color>
<color name="widget_surface_inverse">@color/material_dynamic_neutral90</color>
Expand Down
10 changes: 10 additions & 0 deletions app/src/main/res/values-v27/styles_core.xml
Original file line number Diff line number Diff line change
@@ -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>
15 changes: 15 additions & 0 deletions app/src/main/res/values-v29/styles_core.xml
Original file line number Diff line number Diff line change
@@ -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>
2 changes: 1 addition & 1 deletion app/src/main/res/values-v31/styles_core.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<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:windowSplashScreenAnimationDuration">1000</item>
</style>
Expand Down
9 changes: 9 additions & 0 deletions app/src/main/res/values/colors_android.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<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 -->
<color name="widget_surface">@color/material_dynamic_primary95</color>
<color name="widget_surface_inverse">@color/material_dynamic_neutral20</color>
Expand Down
13 changes: 12 additions & 1 deletion app/src/main/res/values/styles_core.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,23 @@
<resources>
<!-- Master parent theme -->
<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. -->
<style name="Theme.Auxio.V31" parent="Theme.Auxio" />
<style name="Theme.Auxio.V31" parent="Theme.Auxio.V29" />

<!-- Base theme -->
<style name="Theme.Auxio.Base" parent="Theme.Auxio.V31">

<!-- Material configuration -->
<!-- <item name="colorOutline">@color/overlay_stroke</item>-->
<item name="toolbarStyle">@style/Widget.Auxio.Toolbar</item>
<item name="materialAlertDialogTheme">@style/Theme.Auxio.Dialog</item>
<item name="sliderStyle">@style/Widget.Auxio.Slider</item>
Expand Down

0 comments on commit ad2ec5a

Please sign in to comment.