diff options
| author | 2023-07-05 04:40:11 +0000 | |
|---|---|---|
| committer | 2023-07-05 04:40:11 +0000 | |
| commit | 81434214da86a97b55939ee9d48ae46068a53bf8 (patch) | |
| tree | 69e40c75280d873922cb8d9eb2835102453ad967 | |
| parent | 5a1cad4f3f183262613d283a2a74b6a709461b38 (diff) | |
| parent | 377b918c844e001b1941e044265f8fcf3ccf5000 (diff) | |
Merge "Fix screen turns off once triggering long press power behavior" into udc-qpr-dev am: 01a9c09f67 am: 377b918c84
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23823227
Change-Id: I8789125e1d18fb136b5f2b76961e7e2b96b5ddc7
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.java | 4 | ||||
| -rw-r--r-- | services/tests/wmtests/src/com/android/server/policy/SingleKeyGestureTests.java | 12 |
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); + } } |