diff options
author | Roman Birg <roman@cyngn.com> | 2014-08-04 12:36:17 -0700 |
---|---|---|
committer | Adnan Begovic <adnan@cyngn.com> | 2015-10-29 17:36:27 -0700 |
commit | 016ae72ba5520ce573f1ccdf6861b5a5024d1d50 (patch) | |
tree | 0f52cd4b6144dacd7dfb3759c622de29ff16fbe8 | |
parent | b265e3c5fe3de0aa230ff5ecba02bbb62da3c724 (diff) | |
download | packages_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
-rw-r--r-- | src/com/android/settings/ButtonSettings.java | 27 |
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) { |