Merge "Added config system navigation keys." into nyc-mr1-dev
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index aed4e52..43eb751 100755
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -9040,6 +9040,13 @@
* @hide
*/
public static final String MAX_NOTIFICATION_ENQUEUE_RATE = "max_notification_enqueue_rate";
+
+ /**
+ * Whether SystemUI navigation keys is enabled.
+ * @hide
+ */
+ public static final String SYSTEM_NAVIGATION_KEYS_ENABLED =
+ "system_navigation_keys_enabled";
}
/**
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index cc976c3..5fd3c36 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -2492,4 +2492,7 @@
<!-- Flag indicating whether round icons should be parsed from the application manifest. -->
<bool name="config_useRoundIcon">false</bool>
+ <!-- True if the device supports system navigation keys. -->
+ <bool name="config_supportSystemNavigationKeys">false</bool>
+
</resources>
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index b5a53ef..6e937ff 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -2620,4 +2620,7 @@
<java-symbol type="id" name="cross_task_transition" />
<java-symbol type="bool" name="config_useRoundIcon" />
+
+ <!-- For System navigation keys -->
+ <java-symbol type="bool" name="config_supportSystemNavigationKeys" />
</resources>
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java
index 777b57d..827d51c 100644
--- a/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -5856,7 +5856,7 @@
*/
private void interceptStatusBarKey(KeyEvent event) {
final int e = event.getKeyCode();
- if (event.getAction() == KeyEvent.ACTION_UP) {
+ if (event.getAction() == KeyEvent.ACTION_UP && areSystemNavigationKeysEnabled()) {
boolean doOpen = false;
boolean doClose = false;
doOpen = (e == KeyEvent.KEYCODE_FP_NAV_DOWN);
@@ -7267,6 +7267,11 @@
Settings.Global.ENABLE_ACCESSIBILITY_GLOBAL_GESTURE_ENABLED, 0) == 1;
}
+ private boolean areSystemNavigationKeysEnabled() {
+ return Settings.Global.getInt(mContext.getContentResolver(),
+ Settings.Global.SYSTEM_NAVIGATION_KEYS_ENABLED, 0) == 1;
+ }
+
@Override
public boolean performHapticFeedbackLw(WindowState win, int effectId, boolean always) {
if (!mVibrator.hasVibrator()) {