From 6a70b884df72aaccf49d785fe362951e25bae1e5 Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Tue, 19 Apr 2016 17:09:07 -0700 Subject: [PATCH] Don't do anti-falsing on locked shade The user has already passed the keyguard test by dragging down. We're not doing anti falsing at this point and doing it on the affordance was triggering a crash on debuggable builds (and not working at all on regular builds). Change-Id: Icaf81e8e2a38503851c7b5699a0f5a3d363dac19 Fixes: 28154836 --- .../statusbar/phone/KeyguardAffordanceHelper.java | 13 +++++++------ .../statusbar/phone/NotificationPanelView.java | 7 ++++++- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardAffordanceHelper.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardAffordanceHelper.java index 915b56563d33a..1a9a40b243326 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardAffordanceHelper.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardAffordanceHelper.java @@ -43,9 +43,9 @@ public class KeyguardAffordanceHelper { private static final int HINT_CIRCLE_OPEN_DURATION = 500; private final Context mContext; + private final Callback mCallback; private FlingAnimationUtils mFlingAnimationUtils; - private Callback mCallback; private VelocityTracker mVelocityTracker; private boolean mSwipingInProgress; private float mInitialTouchX; @@ -318,12 +318,11 @@ public class KeyguardAffordanceHelper { float vel = getCurrentVelocity(lastX, lastY); // We snap back if the current translation is not far enough - boolean snapBack; - if (mFalsingManager.isFalseTouch()) { - snapBack = mFalsingManager.isFalseTouch(); - } else { - snapBack = isBelowFalsingThreshold(); + boolean snapBack = false; + if (mCallback.needsAntiFalsing()) { + snapBack = snapBack || mFalsingManager.isFalseTouch(); } + snapBack = snapBack || isBelowFalsingThreshold(); // or if the velocity is in the opposite direction. boolean velIsInWrongDirection = vel * mTranslation < 0; @@ -582,5 +581,7 @@ public class KeyguardAffordanceHelper { * @return The factor the minimum swipe amount should be multiplied with. */ float getAffordanceFalsingFactor(); + + boolean needsAntiFalsing(); } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java index 62c0fa9fe9e68..48cf631bb6834 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java @@ -701,7 +701,7 @@ public class NotificationPanelView extends PanelView implements } private boolean isFalseTouch() { - if (mStatusBarState != StatusBarState.KEYGUARD) { + if (!needsAntiFalsing()) { return false; } if (mFalsingManager.isClassiferEnabled()) { @@ -1940,6 +1940,11 @@ public class NotificationPanelView extends PanelView implements return mStatusBar.isWakeUpComingFromTouch() ? 1.5f : 1.0f; } + @Override + public boolean needsAntiFalsing() { + return mStatusBarState == StatusBarState.KEYGUARD; + } + @Override protected float getPeekHeight() { if (mNotificationStackScroller.getNotGoneChildCount() > 0) {