From 52a9587a1c3797a74709acce3841ad1ad086a872 Mon Sep 17 00:00:00 2001 From: Lucas Dupin Date: Fri, 20 Apr 2018 10:28:07 +0800 Subject: [PATCH 1/2] Keep animating bouncer when fingerprint Before we wouldn't update the bouncer expansion after being unlocked, this leads to a border case where the bouncer would be stuck if the user authenticates with fingerprint while dragging up. Change-Id: I7395ecd400957c656671640c7510fb279c671af3 Fixes: 78035213 Test: go/sysui-bouncer-tests --- .../statusbar/phone/StatusBarKeyguardViewManager.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java index e207eb079fcfe..f0bf3120d9d2c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java @@ -169,10 +169,10 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb || mBouncer.willDismissWithAction() || mStatusBar.isFullScreenUserSwitcherState()) { mBouncer.setExpansion(0); - } else if (mShowing && mStatusBar.isKeyguardCurrentlySecure() && !mDozing) { + } else if (mShowing && !mDozing) { mBouncer.setExpansion(expansion); - if (expansion != 1 && tracking && !mBouncer.isShowing() - && !mBouncer.isAnimatingAway()) { + if (expansion != 1 && tracking && mStatusBar.isKeyguardCurrentlySecure() + && !mBouncer.isShowing() && !mBouncer.isAnimatingAway()) { mBouncer.show(false /* resetSecuritySelection */, false /* animated */); } } From d7344dcd6c2df6a95b80d23fb87ae63867211945 Mon Sep 17 00:00:00 2001 From: Lucas Dupin Date: Fri, 20 Apr 2018 12:08:52 +0800 Subject: [PATCH 2/2] Fix wrong bouncer translation during hint animation It's not correct to assume that the bouncer translation is 0 when the unlock hint animation is running. The correct translation is 1 since the view is completely hidden. FalsingManager was receiving the wrong bouncer state, and this caused the rejection swipe gestures. Change-Id: I7c48a326f054a2c09809e5a1096ca42907472eac Fixes: 78108854 Test: tap on scrim, swipe notification Test: turn on flasing logs, look at logcat Test: go/sysui-bouncer-tests --- .../statusbar/phone/StatusBarKeyguardViewManager.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java index f0bf3120d9d2c..3f801b12023ea 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java @@ -165,8 +165,9 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb // • The user quickly taps on the display and we show "swipe up to unlock." // • Keyguard will be dismissed by an action. a.k.a: FLAG_DISMISS_KEYGUARD_ACTIVITY // • Full-screen user switcher is displayed. - if (mOccluded || mNotificationPanelView.isUnlockHintRunning() - || mBouncer.willDismissWithAction() + if (mNotificationPanelView.isUnlockHintRunning()) { + mBouncer.setExpansion(1); + } else if (mOccluded || mBouncer.willDismissWithAction() || mStatusBar.isFullScreenUserSwitcherState()) { mBouncer.setExpansion(0); } else if (mShowing && !mDozing) {