diff options
| author | 2024-03-11 14:52:12 -0700 | |
|---|---|---|
| committer | 2024-03-11 15:54:14 -0700 | |
| commit | 97c2777e1719685db1cc0c320fd752eed9ce1d00 (patch) | |
| tree | f0d99fbe0a313caf948460ab186b73d345349275 | |
| parent | 253a041adefbdd63f2f7bdd298117a6e3e5ea7e6 (diff) | |
Fix white scrim background being white over hub on dream
Each ScrimState is a separate class instance, so calling prepare in an
attempt to reuse code didn't work as intended.
Also updated tests to properly test the intended behavior instead of
passing trivially. Verified updated openShadeOnHubOverDream test fails
without the corresponding ScrimController change and passes afterwards.
Bug: 323036128
Fixed: 323036128
Test: atest ScrimControllerTest
also manually verified on device
Flag: ACONFIG com.android.systemui.communal_hub TEAMFOOD
Change-Id: I545dddfd42117310bb5630c2b85a2715469c482b
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java | 9 | ||||
| -rw-r--r-- | packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java | 21 |
2 files changed, 23 insertions, 7 deletions
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 d4960d7a8dec..712f65df2e59 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java @@ -328,7 +328,14 @@ public enum ScrimState { GLANCEABLE_HUB_OVER_DREAM { @Override public void prepare(ScrimState previousState) { - GLANCEABLE_HUB.prepare(previousState); + // No scrims should be visible by default in this state. + mBehindAlpha = 0; + mNotifAlpha = 0; + mFrontAlpha = 0; + + mFrontTint = Color.TRANSPARENT; + mBehindTint = mBackgroundColor; + mNotifTint = mClipQsScrim ? mBackgroundColor : Color.TRANSPARENT; } }; 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 cdbbc9368db3..f9476400eb82 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 @@ -747,14 +747,16 @@ public class ScrimControllerTest extends SysuiTestCase { // Open the bouncer. mScrimController.setRawPanelExpansionFraction(0f); + when(mStatusBarKeyguardViewManager.isPrimaryBouncerInTransit()).thenReturn(true); mScrimController.setBouncerHiddenFraction(KeyguardBouncerConstants.EXPANSION_VISIBLE); finishAnimationsImmediately(); - // Only behind widget is visible. + // Only behind scrim is visible. assertScrimAlpha(Map.of( mScrimInFront, TRANSPARENT, mNotificationsScrim, TRANSPARENT, mScrimBehind, OPAQUE)); + assertScrimTint(mScrimBehind, mSurfaceColor); // Bouncer is closed. mScrimController.setBouncerHiddenFraction(KeyguardBouncerConstants.EXPANSION_HIDDEN); @@ -773,8 +775,9 @@ public class ScrimControllerTest extends SysuiTestCase { mScrimController.transitionTo(ScrimState.GLANCEABLE_HUB); // Open the shade. - mScrimController.transitionTo(SHADE_LOCKED); mScrimController.setQsPosition(1f, 0); + mScrimController.setRawPanelExpansionFraction(1); + mScrimController.setTransitionToFullShadeProgress(1, 0); finishAnimationsImmediately(); // Shade scrims are visible. @@ -782,8 +785,10 @@ public class ScrimControllerTest extends SysuiTestCase { mNotificationsScrim, OPAQUE, mScrimInFront, TRANSPARENT, mScrimBehind, OPAQUE)); + assertScrimTint(mScrimBehind, Color.BLACK); + assertScrimTint(mNotificationsScrim, Color.TRANSPARENT); - mScrimController.transitionTo(ScrimState.GLANCEABLE_HUB); + mScrimController.setTransitionToFullShadeProgress(0, 0); finishAnimationsImmediately(); // All scrims are transparent. @@ -813,14 +818,16 @@ public class ScrimControllerTest extends SysuiTestCase { // Open the bouncer. mScrimController.setRawPanelExpansionFraction(0f); + when(mStatusBarKeyguardViewManager.isPrimaryBouncerInTransit()).thenReturn(true); mScrimController.setBouncerHiddenFraction(KeyguardBouncerConstants.EXPANSION_VISIBLE); finishAnimationsImmediately(); - // Only behind widget is visible. + // Only behind scrim is visible. assertScrimAlpha(Map.of( mScrimInFront, TRANSPARENT, mNotificationsScrim, TRANSPARENT, mScrimBehind, OPAQUE)); + assertScrimTint(mScrimBehind, mSurfaceColor); // Bouncer is closed. mScrimController.setBouncerHiddenFraction(KeyguardBouncerConstants.EXPANSION_HIDDEN); @@ -839,7 +846,6 @@ public class ScrimControllerTest extends SysuiTestCase { mScrimController.transitionTo(ScrimState.GLANCEABLE_HUB_OVER_DREAM); // Open the shade. - mScrimController.transitionTo(SHADE_LOCKED); mScrimController.setQsPosition(1f, 0); mScrimController.setRawPanelExpansionFraction(1f); finishAnimationsImmediately(); @@ -849,8 +855,11 @@ public class ScrimControllerTest extends SysuiTestCase { mNotificationsScrim, OPAQUE, mScrimInFront, TRANSPARENT, mScrimBehind, OPAQUE)); + assertScrimTint(mScrimBehind, Color.BLACK); + assertScrimTint(mNotificationsScrim, Color.TRANSPARENT); - mScrimController.transitionTo(ScrimState.GLANCEABLE_HUB_OVER_DREAM); + mScrimController.setQsPosition(0f, 0); + mScrimController.setRawPanelExpansionFraction(0f); finishAnimationsImmediately(); // All scrims are transparent. |