summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> 2023-07-05 03:59:26 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2023-07-05 03:59:26 +0000
commit377b918c844e001b1941e044265f8fcf3ccf5000 (patch)
tree42ef2523ab6de64c5e46fc78fa99f46eeeb0635d
parent7c7638c38871fb00eb1373037c0fea0e31f7e88f (diff)
parent01a9c09f677e82a3c4ca454218339bb25efe0ae3 (diff)
Merge "Fix screen turns off once triggering long press power behavior" into udc-qpr-dev am: 01a9c09f67
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23823227 Change-Id: I4688b3f2eee2c34dd3b9e8df208b519eff75912a Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--services/core/java/com/android/server/policy/SingleKeyGestureDetector.java4
-rw-r--r--services/tests/wmtests/src/com/android/server/policy/SingleKeyGestureTests.java12
2 files changed, 15 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/policy/SingleKeyGestureDetector.java b/services/core/java/com/android/server/policy/SingleKeyGestureDetector.java
index 9c3b38ab51a3..b999bbb3dce2 100644
--- a/services/core/java/com/android/server/policy/SingleKeyGestureDetector.java
+++ b/services/core/java/com/android/server/policy/SingleKeyGestureDetector.java
@@ -314,7 +314,9 @@ public final class SingleKeyGestureDetector {
if (eventTime < mLastDownTime + mActiveRule.getVeryLongPressTimeoutMs()) {
mHandler.removeMessages(MSG_KEY_VERY_LONG_PRESS);
} else {
- mHandledByLongPress = mActiveRule.supportVeryLongPress();
+ // If long press or very long press (~3.5s) had been handled, we should skip the
+ // short press behavior.
+ mHandledByLongPress |= mActiveRule.supportVeryLongPress();
}
}
diff --git a/services/tests/wmtests/src/com/android/server/policy/SingleKeyGestureTests.java b/services/tests/wmtests/src/com/android/server/policy/SingleKeyGestureTests.java
index 280afbadec30..3bb86a7bfecb 100644
--- a/services/tests/wmtests/src/com/android/server/policy/SingleKeyGestureTests.java
+++ b/services/tests/wmtests/src/com/android/server/policy/SingleKeyGestureTests.java
@@ -316,4 +316,16 @@ public class SingleKeyGestureTests {
pressKey(KEYCODE_POWER, 0 /* pressTime */);
assertTrue(mShortPressed.await(mWaitTimeout, TimeUnit.MILLISECONDS));
}
+
+ // Verify short press should not be triggered if no very long press behavior defined but the
+ // press time exceeded the very long press timeout.
+ @Test
+ public void testTimeoutExceedVeryLongPress() throws InterruptedException {
+ mVeryLongPressOnPowerBehavior = false;
+
+ pressKey(KEYCODE_POWER, mVeryLongPressTime + 50);
+ assertTrue(mLongPressed.await(mWaitTimeout, TimeUnit.MILLISECONDS));
+ assertEquals(mVeryLongPressed.getCount(), 1);
+ assertEquals(mShortPressed.getCount(), 1);
+ }
}