diff --git a/res/values/cherish_strings.xml b/res/values/cherish_strings.xml
index 8f7cf09..10a8c14 100644
--- a/res/values/cherish_strings.xml
+++ b/res/values/cherish_strings.xml
@@ -503,4 +503,8 @@
%1$s
%1$s
%1$s
+
+
+ On-screen navigation bar
+ Enable on-screen navigation keys
diff --git a/res/xml/cherish_settings_button.xml b/res/xml/cherish_settings_button.xml
index 9e3bdf3..61fc229 100644
--- a/res/xml/cherish_settings_button.xml
+++ b/res/xml/cherish_settings_button.xml
@@ -220,6 +220,10 @@
-
+
+
\ No newline at end of file
diff --git a/src/com/cherish/settings/fragments/ButtonSettings.java b/src/com/cherish/settings/fragments/ButtonSettings.java
index de290c7..0d143b3 100644
--- a/src/com/cherish/settings/fragments/ButtonSettings.java
+++ b/src/com/cherish/settings/fragments/ButtonSettings.java
@@ -60,6 +60,7 @@ import java.util.List;
public class ButtonSettings extends ActionFragment implements OnPreferenceChangeListener {
private static final String HWKEY_DISABLE = "hardware_keys_disable";
+ private static final String KEY_NAVIGATION_BAR_ENABLED = "force_show_navbar";
// category keys
private static final String CATEGORY_HWKEY = "hardware_keys";
@@ -90,6 +91,8 @@ public class ButtonSettings extends ActionFragment implements OnPreferenceChange
private CustomSeekBarPreference mManualButtonBrightness;
private PreferenceCategory mButtonBackLightCategory;
+ private SwitchPreference mNavigationBar;
+
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
@@ -186,6 +189,18 @@ public class ButtonSettings extends ActionFragment implements OnPreferenceChange
if (!enableBacklightOptions) {
prefScreen.removePreference(mButtonBackLightCategory);
}
+
+ final boolean defaultToNavigationBar = getResources().getBoolean(
+ com.android.internal.R.bool.config_showNavigationBar);
+ final boolean navigationBarEnabled = Settings.System.getIntForUser(
+ resolver, Settings.System.FORCE_SHOW_NAVBAR,
+ defaultToNavigationBar ? 1 : 0, UserHandle.USER_CURRENT) != 0;
+
+ mNavigationBar = (SwitchPreference) findPreference(KEY_NAVIGATION_BAR_ENABLED);
+ mNavigationBar.setChecked((Settings.System.getInt(getContentResolver(),
+ Settings.System.FORCE_SHOW_NAVBAR,
+ defaultToNavigationBar ? 1 : 0) == 1));
+ mNavigationBar.setOnPreferenceChangeListener(this);
}
public boolean onPreferenceChange(Preference preference, Object newValue) {
@@ -203,10 +218,13 @@ public class ButtonSettings extends ActionFragment implements OnPreferenceChange
int buttonBrightness = (Integer) newValue;
Settings.System.putInt(getContentResolver(),
Settings.System.CUSTOM_BUTTON_BRIGHTNESS, buttonBrightness);
- } else {
- return false;
+ } else if (preference == mNavigationBar) {
+ boolean value = (Boolean) newValue;
+ Settings.System.putInt(getActivity().getContentResolver(),
+ Settings.System.FORCE_SHOW_NAVBAR, value ? 1 : 0);
+ return true;
}
- return true;
+ return false;
}
@Override
@@ -214,11 +232,6 @@ public class ButtonSettings extends ActionFragment implements OnPreferenceChange
return MetricsProto.MetricsEvent.CHERISH_SETTINGS;
}
- @Override
- protected boolean usesExtendedActionsList() {
- return true;
- }
-
/**
* For Search.
*/