From d1423f202acddf8fc95ecbadfbec96ac7c8e0da7 Mon Sep 17 00:00:00 2001 From: Josh Tsuji Date: Thu, 17 Aug 2023 13:33:25 -0400 Subject: [PATCH] Notify ScrimController when unlock finishes, so we can update relevant conditions. Fixes: 294943235 Test: atest SystemUITests Test: swipe down on the shade immediately after unlocking Change-Id: I538e709612603f17d682914eb92106547237a316 --- .../systemui/shade/NotificationPanelViewController.java | 1 + .../systemui/statusbar/phone/ScrimController.java | 5 +++++ .../systemui/statusbar/phone/ScrimControllerTest.java | 9 +++++++++ 3 files changed, 15 insertions(+) diff --git a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java index 132cd6115bc7d..6deb96ecfa921 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java @@ -985,6 +985,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump // Make sure the clock is in the correct position after the unlock animation // so that it's not in the wrong place when we show the keyguard again. positionClockAndNotifications(true /* forceClockUpdate */); + mScrimController.onUnlockAnimationFinished(); } private void unlockAnimationStarted( diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java index fc661384146c2..62a8cfde80da9 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java @@ -709,6 +709,11 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump } } + public void onUnlockAnimationFinished() { + mAnimatingPanelExpansionOnUnlock = false; + applyAndDispatchState(); + } + /** * Set the amount of progress we are currently in if we're transitioning to the full shade. * 0.0f means we're not transitioning yet, while 1 means we're all the way in the full diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java index 0dc1d9a4b177e..6b3bd22d5e625 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java @@ -1802,6 +1802,15 @@ public class ScrimControllerTest extends SysuiTestCase { assertFalse(ScrimState.UNLOCKED.mAnimateChange); } + @Test + public void testNotifScrimAlpha_1f_afterUnlockFinishedAndExpanded() { + mScrimController.transitionTo(ScrimState.KEYGUARD); + when(mKeyguardUnlockAnimationController.isPlayingCannedUnlockAnimation()).thenReturn(true); + mScrimController.transitionTo(ScrimState.UNLOCKED); + mScrimController.onUnlockAnimationFinished(); + assertAlphaAfterExpansion(mNotificationsScrim, 1f, 1f); + } + private void assertAlphaAfterExpansion(ScrimView scrim, float expectedAlpha, float expansion) { mScrimController.setRawPanelExpansionFraction(expansion); finishAnimationsImmediately();