From dd92e6a3073a5ae66b2898f406e5b228c73349f9 Mon Sep 17 00:00:00 2001 From: Beverly Date: Thu, 1 Sep 2022 17:21:43 +0000 Subject: [PATCH] Swipe-up from SHADE_LOCKED goes to LS (instead of the bouncer) This was the CUJ for UDFPS. Let's adjust this for all devices. Test: manual 1. setup PIN 2. manually swipe down to show the notification shade on the lock screen 3. Swipe back up to leave the shade. Observe: user is brought back to the LS instead of bouncer. Test: atest SystemUITests Fixes: 240586711 Change-Id: Ife17e0835510da98dfa15244378b59621f92897b --- .../statusbar/phone/CentralSurfacesImpl.java | 8 +++----- .../phone/StatusBarKeyguardViewManager.java | 6 ++---- .../phone/StatusBarKeyguardViewManagerTest.java | 12 ++++++++++++ 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java index df6e545b868c6..d5a153606f3a0 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java @@ -3317,14 +3317,12 @@ public class CentralSurfacesImpl extends CoreStartable implements // show the bouncer/lockscreen. if (!mKeyguardViewMediator.isHiding() && !mKeyguardUnlockAnimationController.isPlayingCannedUnlockAnimation()) { - if (mState == StatusBarState.SHADE_LOCKED - && mKeyguardUpdateMonitor.isUdfpsEnrolled()) { + if (mState == StatusBarState.SHADE_LOCKED) { // shade is showing while locked on the keyguard, so go back to showing the // lock screen where users can use the UDFPS affordance to enter the device mStatusBarKeyguardViewManager.reset(true); - } else if ((mState == StatusBarState.KEYGUARD - && !mStatusBarKeyguardViewManager.bouncerIsOrWillBeShowing()) - || mState == StatusBarState.SHADE_LOCKED) { + } else if (mState == StatusBarState.KEYGUARD + && !mStatusBarKeyguardViewManager.bouncerIsOrWillBeShowing()) { mStatusBarKeyguardViewManager.showGenericBouncer(true /* scrimmed */); } } 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 f106e54a091b4..56765f22cb4d6 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java @@ -378,11 +378,9 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb return; } else if (mNotificationPanelViewController.isUnlockHintRunning()) { mBouncer.setExpansion(KeyguardBouncer.EXPANSION_HIDDEN); - } else if (mStatusBarStateController.getState() == StatusBarState.SHADE_LOCKED - && mKeyguardUpdateManager.isUdfpsEnrolled()) { + } else if (mStatusBarStateController.getState() == StatusBarState.SHADE_LOCKED) { // Don't expand to the bouncer. Instead transition back to the lock screen (see - // CentralSurfaces#showBouncerOrLockScreenIfKeyguard) where the user can use the UDFPS - // affordance to enter the device (or swipe up to the input bouncer) + // CentralSurfaces#showBouncerOrLockScreenIfKeyguard) return; } else if (bouncerNeedsScrimming()) { mBouncer.setExpansion(KeyguardBouncer.EXPANSION_VISIBLE); 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 2dcdcfce56ebe..e790d85763d03 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 @@ -51,6 +51,7 @@ import com.android.systemui.shade.NotificationPanelViewController; import com.android.systemui.shade.ShadeController; import com.android.systemui.statusbar.NotificationMediaManager; import com.android.systemui.statusbar.NotificationShadeWindowController; +import com.android.systemui.statusbar.StatusBarState; import com.android.systemui.statusbar.SysuiStatusBarStateController; import com.android.systemui.statusbar.phone.panelstate.PanelExpansionChangeEvent; import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager; @@ -276,6 +277,17 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase { verify(mBouncer, never()).setExpansion(anyFloat()); } + @Test + public void onPanelExpansionChanged_neverTranslatesBouncerWhenShadeLocked() { + when(mStatusBarStateController.getState()).thenReturn(StatusBarState.SHADE_LOCKED); + mStatusBarKeyguardViewManager.onPanelExpansionChanged( + expansionEvent( + /* fraction= */ KeyguardBouncer.EXPANSION_VISIBLE, + /* expanded= */ true, + /* tracking= */ false)); + verify(mBouncer, never()).setExpansion(anyFloat()); + } + @Test public void setOccluded_animatesPanelExpansion_onlyIfBouncerHidden() { mStatusBarKeyguardViewManager.setOccluded(false /* occluded */, true /* animated */);