Loading services/core/java/com/android/server/policy/SingleKeyGestureDetector.java +3 −1 Original line number Diff line number Diff line Loading @@ -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(); } } Loading services/tests/wmtests/src/com/android/server/policy/SingleKeyGestureTests.java +12 −0 Original line number Diff line number Diff line Loading @@ -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); } } Loading
services/core/java/com/android/server/policy/SingleKeyGestureDetector.java +3 −1 Original line number Diff line number Diff line Loading @@ -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(); } } Loading
services/tests/wmtests/src/com/android/server/policy/SingleKeyGestureTests.java +12 −0 Original line number Diff line number Diff line Loading @@ -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); } }