summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/ButtonSettings.java
diff options
context:
space:
mode:
authorRoman Birg <roman@cyngn.com>2014-08-04 12:36:17 -0700
committerAdnan Begovic <adnan@cyngn.com>2015-10-29 17:36:27 -0700
commit016ae72ba5520ce573f1ccdf6861b5a5024d1d50 (patch)
tree0f52cd4b6144dacd7dfb3759c622de29ff16fbe8 /src/com/android/settings/ButtonSettings.java
parentb265e3c5fe3de0aa230ff5ecba02bbb62da3c724 (diff)
downloadpackages_apps_Settings-016ae72ba5520ce573f1ccdf6861b5a5024d1d50.zip
packages_apps_Settings-016ae72ba5520ce573f1ccdf6861b5a5024d1d50.tar.gz
packages_apps_Settings-016ae72ba5520ce573f1ccdf6861b5a5024d1d50.tar.bz2
Settings: don't remove navigation bar prefs when toggling
For devices which support the KeyDisabler class, toggling the nav bar removes the navigation bar category, but does not add it back. If a device can have the nav bar toggled, don't remove the category, but just disable/enable it. [mikeioannina]: Enable categories that depend on navbar toggle only when the navbar switch has finished. Signed-off-by: Roman Birg <roman@cyngn.com> Change-Id: Ie527e3eb357e4a46097257d90c07c78e61f043a9
Diffstat (limited to 'src/com/android/settings/ButtonSettings.java')
-rw-r--r--src/com/android/settings/ButtonSettings.java27
1 files changed, 19 insertions, 8 deletions
diff --git a/src/com/android/settings/ButtonSettings.java b/src/com/android/settings/ButtonSettings.java
index c545b9b..4f5e9ea 100644
--- a/src/com/android/settings/ButtonSettings.java
+++ b/src/com/android/settings/ButtonSettings.java
@@ -167,6 +167,7 @@ public class ButtonSettings extends SettingsPreferenceFragment implements
// Force Navigation bar related options
mDisableNavigationKeys = (SwitchPreference) findPreference(DISABLE_NAV_KEYS);
+
mNavigationPreferencesCat = (PreferenceCategory) findPreference(CATEGORY_NAVBAR);
// Navigation bar left
@@ -187,6 +188,8 @@ public class ButtonSettings extends SettingsPreferenceFragment implements
} else {
// Remove keys that can be provided by the navbar
updateDisableNavkeysOption();
+ mNavigationPreferencesCat.setEnabled(mDisableNavigationKeys.isChecked());
+ updateDisableNavkeysCategories(mDisableNavigationKeys.isChecked());
}
} else {
prefScreen.removePreference(mDisableNavigationKeys);
@@ -445,12 +448,16 @@ public class ButtonSettings extends SettingsPreferenceFragment implements
Settings.System.DEV_FORCE_SHOW_NAVBAR, 0) != 0;
mDisableNavigationKeys.setChecked(enabled);
+ }
+ private void updateDisableNavkeysCategories(boolean navbarEnabled) {
final PreferenceScreen prefScreen = getPreferenceScreen();
/* Disable hw-key options if they're disabled */
final PreferenceCategory homeCategory =
(PreferenceCategory) prefScreen.findPreference(CATEGORY_HOME);
+ final PreferenceCategory backCategory =
+ (PreferenceCategory) prefScreen.findPreference(CATEGORY_BACK);
final PreferenceCategory menuCategory =
(PreferenceCategory) prefScreen.findPreference(CATEGORY_MENU);
final PreferenceCategory assistCategory =
@@ -463,25 +470,25 @@ public class ButtonSettings extends SettingsPreferenceFragment implements
/* Toggle backlight control depending on navbar state, force it to
off if enabling */
if (backlight != null) {
- backlight.setEnabled(!enabled);
+ backlight.setEnabled(!navbarEnabled);
backlight.updateSummary();
}
/* Toggle hardkey control availability depending on navbar state */
if (homeCategory != null) {
- homeCategory.setEnabled(!enabled);
+ homeCategory.setEnabled(!navbarEnabled);
+ }
+ if (backCategory != null) {
+ backCategory.setEnabled(!navbarEnabled);
}
if (menuCategory != null) {
- menuCategory.setEnabled(!enabled);
+ menuCategory.setEnabled(!navbarEnabled);
}
if (assistCategory != null) {
- assistCategory.setEnabled(!enabled);
+ assistCategory.setEnabled(!navbarEnabled);
}
if (appSwitchCategory != null) {
- appSwitchCategory.setEnabled(!enabled);
- }
- if (mNavigationBarLeftPref != null) {
- mNavigationBarLeftPref.setEnabled(enabled);
+ appSwitchCategory.setEnabled(!navbarEnabled);
}
}
@@ -504,12 +511,16 @@ public class ButtonSettings extends SettingsPreferenceFragment implements
Settings.System.SWAP_VOLUME_KEYS_ON_ROTATION, value);
} else if (preference == mDisableNavigationKeys) {
mDisableNavigationKeys.setEnabled(false);
+ mNavigationPreferencesCat.setEnabled(false);
writeDisableNavkeysOption(getActivity(), mDisableNavigationKeys.isChecked());
updateDisableNavkeysOption();
+ updateDisableNavkeysCategories(true);
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
mDisableNavigationKeys.setEnabled(true);
+ mNavigationPreferencesCat.setEnabled(mDisableNavigationKeys.isChecked());
+ updateDisableNavkeysCategories(mDisableNavigationKeys.isChecked());
}
}, 1000);
} else if (preference == mPowerEndCall) {