From a3c0630095ee5f076672c28b66aef5d8fe6417ca Mon Sep 17 00:00:00 2001 From: Matt Pietal Date: Fri, 26 May 2023 15:20:38 +0000 Subject: [PATCH] Prevent bouncer from showing during unlock animation There is a delay in keyguard showing state change when unlocking via FPS. When a swipe down occurs during this change, the bouncer would flicker on screen. Prevent bouncer showing if keyguard is going away. Fixes: 284454840 Test: atest StatusBarKeyguardViewManagerTest Test: manual, swipe down after unlock with FPS Change-Id: I2b764fba6f7789d9d5bc5089d76a73f7e56f63f9 --- .../statusbar/phone/StatusBarKeyguardViewManager.java | 1 + .../phone/StatusBarKeyguardViewManagerTest.java | 11 +++++++++++ 2 files changed, 12 insertions(+) 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 0414a14205d7b..1bf63be3c8b04 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java @@ -495,6 +495,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb return mKeyguardStateController.isShowing() && !primaryBouncerIsOrWillBeShowing() + && !mKeyguardStateController.isKeyguardGoingAway() && isUserTrackingStarted && !hideBouncerOverDream && !mKeyguardStateController.isOccluded() diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java index e56f0d6b3b0fc..3eea93c6ec2cf 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java @@ -351,6 +351,17 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase { verify(mPrimaryBouncerInteractor, never()).setPanelExpansion(anyFloat()); } + @Test + public void onPanelExpansionChanged_neverTranslatesBouncerWhenGoingAway() { + when(mKeyguardStateController.isKeyguardGoingAway()).thenReturn(true); + mStatusBarKeyguardViewManager.onPanelExpansionChanged( + expansionEvent( + /* fraction= */ EXPANSION_VISIBLE, + /* expanded= */ true, + /* tracking= */ false)); + verify(mPrimaryBouncerInteractor, never()).setPanelExpansion(anyFloat()); + } + @Test public void onPanelExpansionChanged_neverTranslatesBouncerWhenShowBouncer() { // Since KeyguardBouncer.EXPANSION_VISIBLE = 0 panel expansion, if the unlock is dismissing