diff options
3 files changed, 34 insertions, 11 deletions
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 cf3a48cf5000..e744c7932c47 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java @@ -820,15 +820,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump mNotificationsAlpha = KEYGUARD_SCRIM_ALPHA; } } else if (mState == ScrimState.AUTH_SCRIMMED_SHADE) { - float behindFraction = getInterpolatedFraction(); - behindFraction = (float) Math.pow(behindFraction, 0.8f); - - mBehindAlpha = behindFraction * mDefaultScrimAlpha; - mNotificationsAlpha = mBehindAlpha; - if (mClipsQsScrim) { - mBehindAlpha = 1; - mBehindTint = Color.BLACK; - } + mNotificationsAlpha = (float) Math.pow(getInterpolatedFraction(), 0.8f); } else if (mState == ScrimState.KEYGUARD || mState == ScrimState.SHADE_LOCKED || mState == ScrimState.PULSING) { Pair<Integer, Float> result = calculateBackStateForState(mState); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java index b447f0d36c10..52430d33cbf0 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java @@ -90,11 +90,14 @@ public enum ScrimState { AUTH_SCRIMMED_SHADE { @Override public void prepare(ScrimState previousState) { - // notif & behind scrim alpha values are determined by ScrimController#applyState + // notif scrim alpha values are determined by ScrimController#applyState // based on the shade expansion mFrontTint = Color.BLACK; mFrontAlpha = .66f; + + mBehindTint = Color.BLACK; + mBehindAlpha = 1f; } }, 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 a5deaa45bf0f..696775a24074 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 @@ -1150,7 +1150,7 @@ public class ScrimControllerTest extends SysuiTestCase { } @Test - public void testAuthScrim_notifScrimOpaque_whenShadeFullyExpanded() { + public void testAuthScrim_setClipQSScrimTrue_notifScrimOpaque_whenShadeFullyExpanded() { // GIVEN device has an activity showing ('UNLOCKED' state can occur on the lock screen // with the camera app occluding the keyguard) mScrimController.transitionTo(ScrimState.UNLOCKED); @@ -1176,6 +1176,34 @@ public class ScrimControllerTest extends SysuiTestCase { )); } + + @Test + public void testAuthScrim_setClipQSScrimFalse_notifScrimOpaque_whenShadeFullyExpanded() { + // GIVEN device has an activity showing ('UNLOCKED' state can occur on the lock screen + // with the camera app occluding the keyguard) + mScrimController.transitionTo(ScrimState.UNLOCKED); + mScrimController.setClipsQsScrim(false); + mScrimController.setRawPanelExpansionFraction(1); + // notifications scrim alpha change require calling setQsPosition + mScrimController.setQsPosition(0, 300); + finishAnimationsImmediately(); + + // WHEN the user triggers the auth bouncer + mScrimController.transitionTo(ScrimState.AUTH_SCRIMMED_SHADE); + finishAnimationsImmediately(); + + assertEquals("Behind scrim should be opaque", + mScrimBehind.getViewAlpha(), 1, 0.0); + assertEquals("Notifications scrim should be opaque", + mNotificationsScrim.getViewAlpha(), 1, 0.0); + + assertScrimTinted(Map.of( + mScrimInFront, true, + mScrimBehind, true, + mNotificationsScrim, false + )); + } + @Test public void testAuthScrimKeyguard() { // GIVEN device is on the keyguard |