OmniControl: dont resize toolbar but resize header placeholder

Change-Id: I9bdb2e5f257f538b7c7047865febab09ed15cdbb
diff --git a/app/src/main/java/org/omnirom/control/AbstractSettingsFragment.kt b/app/src/main/java/org/omnirom/control/AbstractSettingsFragment.kt
index bffe8da..c806cc0 100644
--- a/app/src/main/java/org/omnirom/control/AbstractSettingsFragment.kt
+++ b/app/src/main/java/org/omnirom/control/AbstractSettingsFragment.kt
@@ -18,8 +18,6 @@
 package org.omnirom.control
 
 import android.os.Bundle
-import android.view.View
-import androidx.appcompat.app.AppCompatActivity
 import androidx.preference.PreferenceFragmentCompat
 import org.omnirom.omnilib.preference.SecureCheckBoxPreference
 import org.omnirom.omnilib.preference.SecureSettingSwitchPreference
@@ -45,12 +43,8 @@
 
     override fun onResume() {
         super.onResume()
-        (activity as? AppCompatActivity)?.let {
-            it.supportActionBar?.setDisplayHomeAsUpEnabled(true)
-            it.supportActionBar?.show()
-        }
-        (activity as SettingsActivity)?.let {
-            it.toolbarPlaceHolder.visibility = View.GONE
+        (activity as SettingsActivity).let {
+            it.showToolbar()
             it.updateFragmentTitle(
                 getFragmentTitle(),
                 getFragmentSummary(),
diff --git a/app/src/main/java/org/omnirom/control/GridViewFragment.kt b/app/src/main/java/org/omnirom/control/GridViewFragment.kt
index 1e9f4b5..8236e56 100644
--- a/app/src/main/java/org/omnirom/control/GridViewFragment.kt
+++ b/app/src/main/java/org/omnirom/control/GridViewFragment.kt
@@ -25,7 +25,6 @@
 import android.view.View
 import android.view.ViewGroup
 import android.widget.*
-import androidx.appcompat.app.AppCompatActivity
 import androidx.fragment.app.Fragment
 
 import org.omnirom.omnilibcore.utils.DeviceUtils
@@ -287,12 +286,8 @@
 
     override fun onResume() {
         super.onResume()
-        (activity as? AppCompatActivity)?.let {
-            it.supportActionBar?.setDisplayHomeAsUpEnabled(false)
-            it.supportActionBar?.hide()
-        }
-        (activity as SettingsActivity)?.let {
-            it.toolbarPlaceHolder.visibility = View.VISIBLE
+        (activity as SettingsActivity).let {
+            it.hideToolbar()
             it.updateFragmentTitle(
                 resources.getString(R.string.app_name),
                 "",
diff --git a/app/src/main/java/org/omnirom/control/OverlaysFragment.kt b/app/src/main/java/org/omnirom/control/OverlaysFragment.kt
index 9b3d0ab..59d96c7 100644
--- a/app/src/main/java/org/omnirom/control/OverlaysFragment.kt
+++ b/app/src/main/java/org/omnirom/control/OverlaysFragment.kt
@@ -34,7 +34,6 @@
 import android.widget.LinearLayout
 import android.widget.Switch
 import androidx.appcompat.app.AlertDialog
-import androidx.appcompat.app.AppCompatActivity
 import androidx.core.graphics.PathParser
 import androidx.fragment.app.Fragment
 import androidx.recyclerview.widget.LinearLayoutManager
@@ -476,12 +475,8 @@
 
     override fun onResume() {
         super.onResume()
-        (activity as? AppCompatActivity)?.let {
-            it.supportActionBar?.setDisplayHomeAsUpEnabled(true)
-            it.supportActionBar?.show()
-        }
-        (activity as SettingsActivity)?.let {
-            it.toolbarPlaceHolder.visibility = View.GONE
+        (activity as SettingsActivity).let {
+            it.showToolbar()
             it.updateFragmentTitle(
                 getFragmentTitle(),
                 getFragmentSummary(),
diff --git a/app/src/main/java/org/omnirom/control/SettingsActivity.kt b/app/src/main/java/org/omnirom/control/SettingsActivity.kt
index 0e70ebe..c426b1a 100644
--- a/app/src/main/java/org/omnirom/control/SettingsActivity.kt
+++ b/app/src/main/java/org/omnirom/control/SettingsActivity.kt
@@ -18,10 +18,10 @@
 package org.omnirom.control
 
 import android.os.Bundle
-import android.util.TypedValue
 import android.view.MenuItem
 import android.view.View
 import android.widget.ImageView
+import android.widget.Space
 import android.widget.TextView
 import androidx.appcompat.app.AppCompatActivity
 import androidx.appcompat.widget.Toolbar
@@ -33,7 +33,7 @@
 
     private val CURRENT_FRAGMENT = "current_fragment"
 
-    lateinit var toolbarPlaceHolder: View
+    lateinit var toolbarPlaceHolder: Space
 
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
@@ -93,4 +93,25 @@
         val currentFragment = supportFragmentManager.fragments.last()
         supportFragmentManager.putFragment(outState, CURRENT_FRAGMENT, currentFragment)
     }
+
+    fun showToolbar() {
+        supportActionBar?.setDisplayHomeAsUpEnabled(true)
+        supportActionBar?.show()
+
+        val lp = toolbarPlaceHolder.layoutParams
+        lp.height = resources.getDimensionPixelSize(R.dimen.toolbar_placeholder_height) - Utils.getAttrDimensionPixelSize(
+            applicationContext,
+            android.R.attr.actionBarSize
+        )
+        toolbarPlaceHolder.layoutParams = lp
+    }
+
+    fun hideToolbar() {
+        supportActionBar?.setDisplayHomeAsUpEnabled(false)
+        supportActionBar?.hide()
+
+        val lp = toolbarPlaceHolder.layoutParams
+        lp.height = resources.getDimensionPixelSize(R.dimen.toolbar_placeholder_height)
+        toolbarPlaceHolder.layoutParams = lp
+    }
 }
\ No newline at end of file
diff --git a/app/src/main/java/org/omnirom/control/Utils.kt b/app/src/main/java/org/omnirom/control/Utils.kt
index 2ae9ca2..85cc9e7 100644
--- a/app/src/main/java/org/omnirom/control/Utils.kt
+++ b/app/src/main/java/org/omnirom/control/Utils.kt
@@ -31,4 +31,11 @@
                     false
             }
     }
+
+    fun getAttrDimensionPixelSize(context: Context, attr: Int): Int {
+        val ta = context.obtainStyledAttributes(intArrayOf(attr))
+        val dimensPx = ta.getDimensionPixelSize(0, 0)
+        ta.recycle()
+        return dimensPx
+    }
 }
diff --git a/app/src/main/res/layout/settings_activity.xml b/app/src/main/res/layout/settings_activity.xml
index 3a89086..07af62a 100644
--- a/app/src/main/res/layout/settings_activity.xml
+++ b/app/src/main/res/layout/settings_activity.xml
@@ -19,7 +19,7 @@
         <com.google.android.material.appbar.MaterialToolbar
             android:id="@+id/toolbar"
             android:layout_width="match_parent"
-            android:layout_height="@dimen/toolbar_placeholder_height"/>
+            android:layout_height="?attr/actionBarSize"/>
 
     </com.google.android.material.appbar.AppBarLayout>
 
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index ee5af62..f3428b2 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -10,6 +10,12 @@
         <item name="preferenceTheme">@style/Omni.PreferenceTheme</item>
         <item name="android:switchStyle">@style/Omni.SwitchStyle</item>
         <item name="android:textAppearanceListItem">@style/Omni.PreferenceTitle</item>
+        <item name="alertDialogTheme">@style/AlertDialogTheme</item>
+    </style>
+
+    <style name="AlertDialogTheme" parent="Theme.Material3.DayNight.Dialog.Alert">
+        <item name="colorAccent">?attr/colorPrimary</item>
+        <item name="colorPrimary">@color/colorPrimary</item>
         <item name="dialogCornerRadius">8dp</item>
     </style>