summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java6
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java12
2 files changed, 17 insertions, 1 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 8c1ed19a8dcc..35aee6645289 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
@@ -850,7 +850,11 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump
// At the end of a launch animation over the lockscreen, the state is either KEYGUARD or
// SHADE_LOCKED and this code is called. We have to set the notification alpha to 0
// otherwise there is a flicker to its previous value.
- if (mKeyguardOccluded) {
+ boolean hideNotificationScrim = (mState == ScrimState.KEYGUARD
+ && mTransitionToFullShadeProgress == 0
+ && mQsExpansion == 0
+ && !mClipsQsScrim);
+ if (mKeyguardOccluded || hideNotificationScrim) {
mNotificationsAlpha = 0;
}
if (mUnOcclusionAnimationRunning && mState == ScrimState.KEYGUARD) {
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 ff2c05b04160..dce520c0973d 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
@@ -1270,6 +1270,7 @@ public class ScrimControllerTest extends SysuiTestCase {
@Test
public void notificationAlpha_unnocclusionAnimating_bouncerActive_usesKeyguardNotifAlpha() {
when(mStatusBarKeyguardViewManager.isBouncerInTransit()).thenReturn(true);
+ mScrimController.setClipsQsScrim(true);
mScrimController.transitionTo(ScrimState.KEYGUARD);
mScrimController.setUnocclusionAnimationRunning(true);
@@ -1312,6 +1313,7 @@ public class ScrimControllerTest extends SysuiTestCase {
@Test
public void notificationAlpha_inKeyguardState_bouncerActive_usesInvertedBouncerInterpolator() {
when(mStatusBarKeyguardViewManager.isBouncerInTransit()).thenReturn(true);
+ mScrimController.setClipsQsScrim(true);
mScrimController.transitionTo(ScrimState.KEYGUARD);
@@ -1331,6 +1333,7 @@ public class ScrimControllerTest extends SysuiTestCase {
@Test
public void notificationAlpha_inKeyguardState_bouncerNotActive_usesInvertedShadeInterpolator() {
when(mStatusBarKeyguardViewManager.isBouncerInTransit()).thenReturn(false);
+ mScrimController.setClipsQsScrim(true);
mScrimController.transitionTo(ScrimState.KEYGUARD);
@@ -1478,6 +1481,15 @@ public class ScrimControllerTest extends SysuiTestCase {
mNotificationsScrim, TRANSPARENT));
}
+ @Test
+ public void notificationAlpha_inKeyguardState_bouncerNotActive_clipsQsScrimFalse() {
+ mScrimController.setClipsQsScrim(false);
+ mScrimController.transitionTo(ScrimState.KEYGUARD);
+
+ float expansion = 0.8f;
+ assertAlphaAfterExpansion(mNotificationsScrim, 0f, expansion);
+ }
+
private void assertAlphaAfterExpansion(ScrimView scrim, float expectedAlpha, float expansion) {
mScrimController.setRawPanelExpansionFraction(expansion);
finishAnimationsImmediately();