Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java +12 −0 Original line number Diff line number Diff line Loading @@ -449,6 +449,18 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo mScrimBehind.setDrawable(drawable); } /** * Sets the front alpha while in AOD. */ public void setAodFrontScrimAlpha(float alpha) { if (mState == ScrimState.AOD && mCurrentInFrontAlpha != alpha) { mCurrentInFrontAlpha = alpha; scheduleUpdate(); } mState.AOD.setAodFrontScrimAlpha(alpha); } protected void scheduleUpdate() { if (mUpdatePending) return; Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +1 −1 Original line number Diff line number Diff line Loading @@ -4883,7 +4883,7 @@ public class StatusBar extends SystemUI implements DemoMode, @Override public void setAodDimmingScrim(float scrimOpacity) { ScrimState.AOD.setAodFrontScrimAlpha(scrimOpacity); mScrimController.setAodFrontScrimAlpha(scrimOpacity); } public void dispatchDoubleTap(float viewX, float viewY) { Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java +32 −0 Original line number Diff line number Diff line Loading @@ -156,6 +156,38 @@ public class ScrimControllerTest extends SysuiTestCase { assertScrimTint(mScrimInFront, true /* tinted */); } @Test public void transitionToAod_withFrontAlphaUpdates() { // Assert that setting the AOD front scrim alpha doesn't take effect in a non-AOD state. mScrimController.transitionTo(ScrimState.KEYGUARD); mScrimController.setAodFrontScrimAlpha(0.5f); mScrimController.finishAnimationsImmediately(); // Front scrim should be transparent // Back scrim should be visible without tint assertScrimVisibility(VISIBILITY_FULLY_TRANSPARENT, VISIBILITY_SEMI_TRANSPARENT); // ... but that it does take effect once we enter the AOD state. mScrimController.transitionTo(ScrimState.AOD); mScrimController.finishAnimationsImmediately(); // Front scrim should be semi-transparent // Back scrim should be visible assertScrimVisibility(VISIBILITY_SEMI_TRANSPARENT, VISIBILITY_FULLY_OPAQUE); // ... and that if we set it while we're in AOD, it does take immediate effect. mScrimController.setAodFrontScrimAlpha(1f); assertScrimVisibility(VISIBILITY_FULLY_OPAQUE, VISIBILITY_FULLY_OPAQUE); // ... and make sure we recall the previous front scrim alpha even if we transition away // for a bit. mScrimController.transitionTo(ScrimState.UNLOCKED); mScrimController.transitionTo(ScrimState.AOD); mScrimController.finishAnimationsImmediately(); assertScrimVisibility(VISIBILITY_FULLY_OPAQUE, VISIBILITY_FULLY_OPAQUE); // Reset value since enums are static. mScrimController.setAodFrontScrimAlpha(0f); } @Test public void transitionToPulsing() { // Pre-condition Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java +12 −0 Original line number Diff line number Diff line Loading @@ -449,6 +449,18 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo mScrimBehind.setDrawable(drawable); } /** * Sets the front alpha while in AOD. */ public void setAodFrontScrimAlpha(float alpha) { if (mState == ScrimState.AOD && mCurrentInFrontAlpha != alpha) { mCurrentInFrontAlpha = alpha; scheduleUpdate(); } mState.AOD.setAodFrontScrimAlpha(alpha); } protected void scheduleUpdate() { if (mUpdatePending) return; Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +1 −1 Original line number Diff line number Diff line Loading @@ -4883,7 +4883,7 @@ public class StatusBar extends SystemUI implements DemoMode, @Override public void setAodDimmingScrim(float scrimOpacity) { ScrimState.AOD.setAodFrontScrimAlpha(scrimOpacity); mScrimController.setAodFrontScrimAlpha(scrimOpacity); } public void dispatchDoubleTap(float viewX, float viewY) { Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java +32 −0 Original line number Diff line number Diff line Loading @@ -156,6 +156,38 @@ public class ScrimControllerTest extends SysuiTestCase { assertScrimTint(mScrimInFront, true /* tinted */); } @Test public void transitionToAod_withFrontAlphaUpdates() { // Assert that setting the AOD front scrim alpha doesn't take effect in a non-AOD state. mScrimController.transitionTo(ScrimState.KEYGUARD); mScrimController.setAodFrontScrimAlpha(0.5f); mScrimController.finishAnimationsImmediately(); // Front scrim should be transparent // Back scrim should be visible without tint assertScrimVisibility(VISIBILITY_FULLY_TRANSPARENT, VISIBILITY_SEMI_TRANSPARENT); // ... but that it does take effect once we enter the AOD state. mScrimController.transitionTo(ScrimState.AOD); mScrimController.finishAnimationsImmediately(); // Front scrim should be semi-transparent // Back scrim should be visible assertScrimVisibility(VISIBILITY_SEMI_TRANSPARENT, VISIBILITY_FULLY_OPAQUE); // ... and that if we set it while we're in AOD, it does take immediate effect. mScrimController.setAodFrontScrimAlpha(1f); assertScrimVisibility(VISIBILITY_FULLY_OPAQUE, VISIBILITY_FULLY_OPAQUE); // ... and make sure we recall the previous front scrim alpha even if we transition away // for a bit. mScrimController.transitionTo(ScrimState.UNLOCKED); mScrimController.transitionTo(ScrimState.AOD); mScrimController.finishAnimationsImmediately(); assertScrimVisibility(VISIBILITY_FULLY_OPAQUE, VISIBILITY_FULLY_OPAQUE); // Reset value since enums are static. mScrimController.setAodFrontScrimAlpha(0f); } @Test public void transitionToPulsing() { // Pre-condition Loading