From dabdab0121b87c94f1973675a69408a9d1ae49e6 Mon Sep 17 00:00:00 2001 From: Lucas Dupin Date: Thu, 20 Jan 2022 13:37:41 -0800 Subject: [PATCH] Adjust notification scrim tint interpolator The scrim was fading too fast on foldables, we should time it better with the content fade in. Test: manual Test: atest ScrimControllerTest Fixes: 213303985 Change-Id: I2a3a5a173de52cfbd2248d5a8f2f0cf824010743 --- .../systemui/statusbar/phone/ScrimController.java | 5 ++++- .../systemui/statusbar/phone/ScrimControllerTest.java | 10 +++++++++- 2 files changed, 13 insertions(+), 2 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 4249d767a72c0..5d83cc6259a05 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java @@ -707,7 +707,10 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump mNotificationsAlpha = behindFraction * mDefaultScrimAlpha; } else { mBehindAlpha = behindFraction * mDefaultScrimAlpha; - mNotificationsAlpha = mBehindAlpha; + // Delay fade-in of notification scrim a bit further, to coincide with the + // view fade in. Otherwise the empty panel can be quite jarring. + mNotificationsAlpha = MathUtils.constrainedMap(0f, 1f, 0.3f, 0.75f, + mPanelExpansionFraction); } mInFrontAlpha = 0; } 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 f21fca23df5b4..10f4435d3f97a 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 @@ -647,8 +647,15 @@ public class ScrimControllerTest extends SysuiTestCase { mScrimController.setRawPanelExpansionFraction(0.3f); assertScrimAlpha(Map.of( mScrimInFront, TRANSPARENT, - mNotificationsScrim, SEMI_TRANSPARENT, + mNotificationsScrim, TRANSPARENT, mScrimBehind, SEMI_TRANSPARENT)); + + // Then, notification scrim should fade in + mScrimController.setRawPanelExpansionFraction(0.7f); + assertScrimAlpha(Map.of( + mScrimInFront, TRANSPARENT, + mNotificationsScrim, SEMI_TRANSPARENT, + mScrimBehind, OPAQUE)); } @@ -1132,6 +1139,7 @@ public class ScrimControllerTest extends SysuiTestCase { @Test public void testScrimsVisible_whenShadeVisible() { + mScrimController.setClipsQsScrim(true); mScrimController.transitionTo(ScrimState.UNLOCKED); mScrimController.setRawPanelExpansionFraction(0.3f); // notifications scrim alpha change require calling setQsPosition