[2/2] OmniGears: add basic hardware button disable
and add config_deviceHardwareKeys to allow differencing
hardware button devices from navbar devices
KeyEvent filtering must be done using DeviceKeyHandler
and the isDisabledKeyEvent API
Change-Id: I6b2c0b6d305714bd1496d5a62615d972e4a22247
diff --git a/res/xml/button_settings.xml b/res/xml/button_settings.xml
index 87a330e..8585946 100644
--- a/res/xml/button_settings.xml
+++ b/res/xml/button_settings.xml
@@ -82,13 +82,13 @@
android:title="@string/navigation_bar_show_title"
android:summary="@string/navigation_bar_show_summary"
android:persistent="false" />
-<!--
<SwitchPreference
android:key="hardware_keys_disable"
android:title="@string/hardware_keys_disable_title"
android:summary="@string/hardware_keys_disable_summary"
- android:persistent="false"/>
-
+ android:persistent="false"
+ android:dependency="navigation_bar_show"/>
+<!--
<CheckBoxPreference
android:key="virtual_key_haptic_feedback"
android:title="@string/virtual_key_haptic_feedback_title"
diff --git a/src/org/omnirom/omnigears/ButtonSettings.java b/src/org/omnirom/omnigears/ButtonSettings.java
index e686391..4880502 100644
--- a/src/org/omnirom/omnigears/ButtonSettings.java
+++ b/src/org/omnirom/omnigears/ButtonSettings.java
@@ -90,7 +90,7 @@
// private static final String FORCE_SHOW_OVERFLOW_MENU = "force_show_overflow_menu";
private static final String KEYS_BRIGHTNESS_KEY = "button_brightness";
private static final String KEYS_SHOW_NAVBAR_KEY = "navigation_bar_show";
-// private static final String KEYS_DISABLE_HW_KEY = "hardware_keys_disable";
+ private static final String KEYS_DISABLE_HW_KEY = "hardware_keys_disable";
// private static final String NAVIGATION_BAR_RECENTS_STYLE = "navbar_recents_style";
// private static final String BUTTON_BACK_KILL_TIMEOUT = "button_back_kill_timeout";
@@ -140,9 +140,9 @@
// private CheckBoxPreference mForceShowOverflowMenu;
private boolean mButtonBrightnessSupport;
private SwitchPreference mEnableNavBar;
-// private SwitchPreference mDisabkeHWKeys;
+ private SwitchPreference mDisabkeHWKeys;
private PreferenceScreen mButtonBrightness;
- private PreferenceCategory mKeysBackCategory;
+// private PreferenceCategory mKeysBackCategory;
// private PreferenceCategory mKeysHomeCategory;
// private PreferenceCategory mKeysMenuCategory;
// private PreferenceCategory mKeysAppSwitchCategory;
@@ -208,20 +208,11 @@
prefScreen.removePreference(volumeCategory);
}
- // TODO once config_deviceHardwareKeys is back this must be moved back below
- final PreferenceCategory keysCategory =
- (PreferenceCategory) prefScreen.findPreference(CATEGORY_KEYS);
- mButtonBrightness = (PreferenceScreen) prefScreen.findPreference(
- KEYS_BRIGHTNESS_KEY);
- if (!mButtonBrightnessSupport) {
- prefScreen.removePreference(keysCategory);
- keysCategory.removePreference(mButtonBrightness);
- }
-
-/*
final int deviceKeys = res.getInteger(
com.android.internal.R.integer.config_deviceHardwareKeys);
- final boolean hasBackKey = false; //(deviceKeys & KEY_MASK_BACK) != 0;
+ final PreferenceCategory keysCategory =
+ (PreferenceCategory) prefScreen.findPreference(CATEGORY_KEYS);
+ /*final boolean hasBackKey = false; //(deviceKeys & KEY_MASK_BACK) != 0;
final boolean hasHomeKey = false; //(deviceKeys & KEY_MASK_HOME) != 0;
final boolean hasMenuKey = false; //(deviceKeys & KEY_MASK_MENU) != 0;
final boolean hasAssistKey = false; //(deviceKeys & KEY_MASK_ASSIST) != 0;
@@ -236,17 +227,17 @@
mKeysAssistCategory =
(PreferenceCategory) prefScreen.findPreference(CATEGORY_ASSIST);
mKeysAppSwitchCategory =
- (PreferenceCategory) prefScreen.findPreference(CATEGORY_APPSWITCH);
+ (PreferenceCategory) prefScreen.findPreference(CATEGORY_APPSWITCH);*/
if (deviceKeys == 0) {
prefScreen.removePreference(keysCategory);
- prefScreen.removePreference(mKeysBackCategory);
+ /*prefScreen.removePreference(mKeysBackCategory);
prefScreen.removePreference(mKeysHomeCategory);
prefScreen.removePreference(mKeysMenuCategory);
prefScreen.removePreference(mKeysAssistCategory);
- prefScreen.removePreference(mKeysAppSwitchCategory);
+ prefScreen.removePreference(mKeysAppSwitchCategory);*/
} else {
- mEnableCustomBindings = (SwitchPreference) prefScreen.findPreference(
+ /*mEnableCustomBindings = (SwitchPreference) prefScreen.findPreference(
KEYS_ENABLE_CUSTOM);
mBackPressAction = (ListPreference) prefScreen.findPreference(
KEYS_BACK_PRESS);
@@ -274,14 +265,9 @@
// VIRTUAL_KEY_HAPTIC_FEEDBACK);
// mForceShowOverflowMenu = (CheckBoxPreference) prefScreen.findPreference(
// FORCE_SHOW_OVERFLOW_MENU);
-*/
- mEnableNavBar = (SwitchPreference) prefScreen.findPreference(
- KEYS_SHOW_NAVBAR_KEY);
-/*
- mDisabkeHWKeys = (SwitchPreference) prefScreen.findPreference(
- KEYS_DISABLE_HW_KEY);
- if (hasBackKey) {
+
+ /*if (hasBackKey) {
int backPressAction = Settings.System.getInt(resolver,
Settings.System.KEY_BACK_ACTION, ACTION_BACK);
@@ -451,11 +437,23 @@
// mVirtualKeyHapticFeedback.setChecked(Settings.System.getInt(resolver,
// Settings.System.VIRTUAL_KEYS_HAPTIC_FEEDBACK, 1) == 1);
// }
-//
- boolean hasNavBar = res.getBoolean(com.android.internal.R.bool.config_showNavigationBar);
-// mForceShowOverflowMenu.setChecked(Settings.System.getInt(resolver,
-// Settings.System.FORCE_SHOW_OVERFLOW_MENU, (!hasNavBar && hasMenuKey) ? 0 : 1) == 1);
-//
+
+
+ updateDisableHWKeyEnablement(harwareKeysDisable); */
+
+
+ mButtonBrightness = (PreferenceScreen) prefScreen.findPreference(
+ KEYS_BRIGHTNESS_KEY);
+ if (!mButtonBrightnessSupport) {
+ keysCategory.removePreference(mButtonBrightness);
+ }
+
+ mEnableNavBar = (SwitchPreference) prefScreen.findPreference(
+ KEYS_SHOW_NAVBAR_KEY);
+
+ mDisabkeHWKeys = (SwitchPreference) prefScreen.findPreference(
+ KEYS_DISABLE_HW_KEY);
+
boolean showNavBarDefault = DeviceUtils.deviceSupportNavigationBar(getActivity());
boolean showNavBar = Settings.System.getInt(resolver,
Settings.System.NAVIGATION_BAR_SHOW, showNavBarDefault ? 1:0) == 1;
@@ -464,11 +462,9 @@
boolean harwareKeysDisable = Settings.System.getInt(resolver,
Settings.System.HARDWARE_KEYS_DISABLE, 0) == 1;
mDisabkeHWKeys.setChecked(harwareKeysDisable);
-
- updateDisableHWKeyEnablement(harwareKeysDisable);
}
- mNavbarRecentsStyle = (ListPreference) findPreference(NAVIGATION_BAR_RECENTS_STYLE);
+ /*mNavbarRecentsStyle = (ListPreference) findPreference(NAVIGATION_BAR_RECENTS_STYLE);
int recentsStyle = Settings.System.getInt(resolver,
Settings.System.NAVIGATION_BAR_RECENTS, 0);
@@ -483,7 +479,7 @@
mBackKillTimeout.setValue(Integer.toString(backKillTimeout));
mBackKillTimeout.setSummary(mBackKillTimeout.getEntry());
- mBackKillTimeout.setOnPreferenceChangeListener(this);
+ mBackKillTimeout.setOnPreferenceChangeListener(this);*/
// final PreferenceCategory headsethookCategory =
// (PreferenceCategory) prefScreen.findPreference(CATEGORY_HEADSETHOOK);
@@ -491,7 +487,6 @@
// mHeadsetHookLaunchVoice = (CheckBoxPreference) findPreference(BUTTON_HEADSETHOOK_LAUNCH_VOICE);
// mHeadsetHookLaunchVoice.setChecked(Settings.System.getInt(resolver,
// Settings.System.HEADSETHOOK_LAUNCH_VOICE, 1) == 1);
-*/
}
@Override
@@ -522,13 +517,12 @@
Settings.System.putInt(getContentResolver(),
Settings.System.NAVIGATION_BAR_SHOW, checked ? 1:0);
return true;
-/* } else if (preference == mDisabkeHWKeys) {
+ } else if (preference == mDisabkeHWKeys) {
boolean checked = ((SwitchPreference)preference).isChecked();
Settings.System.putInt(getContentResolver(),
Settings.System.HARDWARE_KEYS_DISABLE, checked ? 1:0);
- updateDisableHWKeyEnablement(checked);
+ //updateDisableHWKeyEnablement(checked);
return true;
-*/
} else if (preference == mSwapVolumeButtons) {
boolean checked = ((CheckBoxPreference)preference).isChecked();
Settings.System.putInt(getContentResolver(),