Only intercept lockIcon touches after longpress
All other touches should be let through to NPV in case
the user starts to swipe up from the lock icon
We still want to continue intercepting touches after a long press
so that the NPV won't mistakenly handle the touch + expand the
shade after a longpress.
Test: manual
Fixes: 193614314
Change-Id: I060f6f78c373a726fe4dbe1be5b5413364882e1d
diff --git a/packages/SystemUI/src/com/android/keyguard/LockIconViewController.java b/packages/SystemUI/src/com/android/keyguard/LockIconViewController.java
index 5957be3..8b974b4 100644
--- a/packages/SystemUI/src/com/android/keyguard/LockIconViewController.java
+++ b/packages/SystemUI/src/com/android/keyguard/LockIconViewController.java
@@ -119,6 +119,7 @@
private boolean mShowLockIcon;
private boolean mDownDetected;
+ private boolean mDetectedLongPress;
private final Rect mSensorTouchLocation = new Rect();
@Inject
@@ -485,6 +486,7 @@
private final GestureDetector mGestureDetector =
new GestureDetector(new SimpleOnGestureListener() {
public boolean onDown(MotionEvent e) {
+ mDetectedLongPress = false;
if (!isClickable()) {
mDownDetected = false;
return false;
@@ -517,6 +519,7 @@
"lockIcon-onLongPress",
VIBRATION_SONIFICATION_ATTRIBUTES);
}
+ mDetectedLongPress = true;
onAffordanceClick();
}
@@ -559,7 +562,7 @@
// we continue to intercept all following touches until we see MotionEvent.ACTION_CANCEL UP
// or MotionEvent.ACTION_UP. this is to avoid passing the touch to NPV
// after the lock icon disappears on device entry
- if (mDownDetected) {
+ if (mDownDetected && mDetectedLongPress) {
if (event.getAction() == MotionEvent.ACTION_CANCEL
|| event.getAction() == MotionEvent.ACTION_UP) {
mDownDetected = false;