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>