summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/policy/PhoneWindowManager.java9
-rw-r--r--services/tests/wmtests/src/com/android/server/policy/PowerKeyGestureTests.java4
-rw-r--r--services/tests/wmtests/src/com/android/server/policy/ShortcutKeyTestBase.java4
3 files changed, 11 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java
index f8a9a9fb3971..d5e4c3f1eb9f 100644
--- a/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -5900,6 +5900,9 @@ public class PhoneWindowManager implements WindowManagerPolicy {
if (event.getKeyCode() == KEYCODE_POWER && event.getAction() == KeyEvent.ACTION_DOWN) {
if (overridePowerKeyBehaviorInFocusedWindow()) {
+ if (event.getRepeatCount() > 0) {
+ return;
+ }
if (mGestureLauncherService != null) {
mGestureLauncherService.processPowerKeyDown(event);
}
@@ -5937,10 +5940,8 @@ public class PhoneWindowManager implements WindowManagerPolicy {
}
private boolean detectDoubleTapPower(KeyEvent event) {
- if (event.getKeyCode() != KEYCODE_POWER || event.getAction() != KeyEvent.ACTION_DOWN) {
- return false;
- }
- if (event.isLongPress()) {
+ if (event.getKeyCode() != KEYCODE_POWER || event.getAction() != KeyEvent.ACTION_DOWN
+ || event.getRepeatCount() != 0) {
return false;
}
diff --git a/services/tests/wmtests/src/com/android/server/policy/PowerKeyGestureTests.java b/services/tests/wmtests/src/com/android/server/policy/PowerKeyGestureTests.java
index be516e9553c0..1cc4db91b1d3 100644
--- a/services/tests/wmtests/src/com/android/server/policy/PowerKeyGestureTests.java
+++ b/services/tests/wmtests/src/com/android/server/policy/PowerKeyGestureTests.java
@@ -124,14 +124,14 @@ public class PowerKeyGestureTests extends ShortcutKeyTestBase {
public void testPowerLongPress() {
// Show assistant.
mPhoneWindowManager.overrideLongPressOnPower(LONG_PRESS_POWER_ASSISTANT);
- sendKey(KEYCODE_POWER, true);
+ sendKey(KEYCODE_POWER, SingleKeyGestureDetector.sDefaultLongPressTimeout);
mPhoneWindowManager.assertSearchManagerLaunchAssist();
mPhoneWindowManager.moveTimeForward(POWER_MULTI_PRESS_TIMEOUT_MILLIS);
// Show global actions.
mPhoneWindowManager.overrideLongPressOnPower(LONG_PRESS_POWER_GLOBAL_ACTIONS);
- sendKey(KEYCODE_POWER, true);
+ sendKey(KEYCODE_POWER, SingleKeyGestureDetector.sDefaultLongPressTimeout);
mPhoneWindowManager.assertShowGlobalActionsCalled();
}
diff --git a/services/tests/wmtests/src/com/android/server/policy/ShortcutKeyTestBase.java b/services/tests/wmtests/src/com/android/server/policy/ShortcutKeyTestBase.java
index 591950176444..2329a0728baf 100644
--- a/services/tests/wmtests/src/com/android/server/policy/ShortcutKeyTestBase.java
+++ b/services/tests/wmtests/src/com/android/server/policy/ShortcutKeyTestBase.java
@@ -236,6 +236,10 @@ class ShortcutKeyTestBase {
sendKeyCombination(new int[]{keyCode}, 0 /*durationMillis*/, longPress, DEFAULT_DISPLAY);
}
+ void sendKey(int keyCode, long durationMillis) {
+ sendKeyCombination(new int[]{keyCode}, durationMillis, false, DEFAULT_DISPLAY);
+ }
+
boolean sendKeyGestureEventStart(int gestureType) {
return mPhoneWindowManager.sendKeyGestureEvent(
new KeyGestureEvent.Builder().setKeyGestureType(gestureType).setAction(