[3/3] OmniControl: add setting to get old navbar instead of taskbar on tablets
Change-Id: Ieff900e0cb2c64de692fdc3f8859768ef0a036a7
diff --git a/app/src/main/java/org/omnirom/control/BarsSettingsFragment.kt b/app/src/main/java/org/omnirom/control/BarsSettingsFragment.kt
index cd069b5..05ee9ba 100644
--- a/app/src/main/java/org/omnirom/control/BarsSettingsFragment.kt
+++ b/app/src/main/java/org/omnirom/control/BarsSettingsFragment.kt
@@ -17,15 +17,19 @@
*/
package org.omnirom.control
+import android.graphics.Rect
import android.os.Bundle
-import android.provider.Settings
-import androidx.appcompat.app.AppCompatActivity
+import android.util.DisplayMetrics
+import android.view.WindowManager
import androidx.preference.Preference
-import androidx.preference.PreferenceFragmentCompat
+import androidx.preference.PreferenceCategory
+import kotlin.math.min
class BarsSettingsFragment : AbstractSettingsFragment() {
+ private val TABLET_MIN_DPS = 600
+
override fun getFragmentTitle(): String {
return resources.getString(R.string.bars_settings_title)
}
@@ -40,9 +44,31 @@
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.bars_settings_preferences, rootKey)
+
+ val taskbarCategory:PreferenceCategory? = findPreference("category_taskbar")
+ if (taskbarCategory != null){
+ if (!isTablet()) {
+ preferenceScreen.removePreference(taskbarCategory)
+ }
+ }
}
override fun onPreferenceTreeClick(preference: Preference?): Boolean {
return super.onPreferenceTreeClick(preference)
}
+
+ private fun dpiFromPx(size: Int, densityDpi: Int): Float {
+ val densityRatio = densityDpi.toFloat() / DisplayMetrics.DENSITY_DEFAULT
+ return size / densityRatio
+ }
+
+ private fun isTablet(): Boolean {
+ val windowManager: WindowManager = requireContext().getSystemService(WindowManager::class.java)
+ val bounds: Rect = windowManager.currentWindowMetrics.bounds
+ val smallestWidth: Float = dpiFromPx(
+ min(bounds.width(), bounds.height()),
+ resources.configuration.densityDpi
+ )
+ return smallestWidth >= TABLET_MIN_DPS
+ }
}
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 8be464f..b27786f 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -102,6 +102,9 @@
<string name="status_bar_bt_battery_title">Show Bluetooth battery level</string>
<string name="status_bar_bt_battery_summary">For supported devices show battery level also in status bar</string>
+ <string name="taskbar_title">Taskbar</string>
+ <string name="taskbar_disable_title">Disable taskbar</string>
+ <string name="taskbar_disable_summary">Show legacy navigation bar instead of taskbar. Needs reboot.</string>
<string name="qs_settings_title">Quick settings</string>
<string name="qs_settings_summary">Layout options</string>
diff --git a/app/src/main/res/xml/bars_settings_preferences.xml b/app/src/main/res/xml/bars_settings_preferences.xml
index e646ab2..f15ab9d 100644
--- a/app/src/main/res/xml/bars_settings_preferences.xml
+++ b/app/src/main/res/xml/bars_settings_preferences.xml
@@ -36,6 +36,18 @@
android:defaultValue="false"/>
</PreferenceCategory>
+
+ <PreferenceCategory
+ android:key="category_taskbar"
+ android:title="@string/taskbar_title">
+
+ <org.omnirom.omnilib.preference.SystemSettingSwitchPreference
+ android:key="taskbar_disable"
+ android:title="@string/taskbar_disable_title"
+ android:summary="@string/taskbar_disable_summary"
+ android:defaultValue="false"/>
+
+ </PreferenceCategory>
</PreferenceScreen>
diff --git a/build.gradle b/build.gradle
index 2b14126..70fc287 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,7 +5,7 @@
mavenCentral()
}
dependencies {
- classpath 'com.android.tools.build:gradle:7.0.4'
+ classpath 'com.android.tools.build:gradle:7.1.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.0-RC"
// NOTE: Do not place your application dependencies here; they belong
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 35a7a8c..92e79a1 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
#Wed Oct 20 14:49:44 CEST 2021
distributionBase=GRADLE_USER_HOME
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME