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. */