From 053f21864a731128c2974e89253dd67ed64271d0 Mon Sep 17 00:00:00 2001 From: Jorim Jaggi Date: Tue, 24 Nov 2015 16:07:55 -0800 Subject: [PATCH] Don't trigger click if long press already happened So when long pressing recents, we don't dimiss recents immediately again. Change-Id: I8092cceb03bd6786b964390f7a3a93686feb1b75 --- .../android/systemui/statusbar/policy/KeyButtonView.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java index 4d268ceda4dbc..ba284c9f23674 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java @@ -52,6 +52,7 @@ public class KeyButtonView extends ImageView { private boolean mSupportsLongpress = true; private AudioManager mAudioManager; private boolean mGestureAborted; + private boolean mLongClicked; private final Runnable mCheckLongPress = new Runnable() { public void run() { @@ -60,9 +61,11 @@ public class KeyButtonView extends ImageView { if (isLongClickable()) { // Just an old-fashioned ImageView performLongClick(); + mLongClicked = true; } else if (mSupportsLongpress) { sendEvent(KeyEvent.ACTION_DOWN, KeyEvent.FLAG_LONG_PRESS); sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_LONG_CLICKED); + mLongClicked = true; } } } @@ -155,6 +158,7 @@ public class KeyButtonView extends ImageView { switch (action) { case MotionEvent.ACTION_DOWN: mDownTime = SystemClock.uptimeMillis(); + mLongClicked = false; setPressed(true); if (mCode != 0) { sendEvent(KeyEvent.ACTION_DOWN, 0, mDownTime); @@ -181,7 +185,7 @@ public class KeyButtonView extends ImageView { removeCallbacks(mCheckLongPress); break; case MotionEvent.ACTION_UP: - final boolean doIt = isPressed(); + final boolean doIt = isPressed() && !mLongClicked; setPressed(false); if (mCode != 0) { if (doIt) {