Merge "Update opacity of LightRevealScrim" into sc-dev
This commit is contained in:
@@ -1242,6 +1242,9 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump
|
|||||||
pw.println(mDefaultScrimAlpha);
|
pw.println(mDefaultScrimAlpha);
|
||||||
pw.print(" mExpansionFraction=");
|
pw.print(" mExpansionFraction=");
|
||||||
pw.println(mPanelExpansion);
|
pw.println(mPanelExpansion);
|
||||||
|
|
||||||
|
pw.print(" mState.getMaxLightRevealScrimAlpha=");
|
||||||
|
pw.println(mState.getMaxLightRevealScrimAlpha());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setWallpaperSupportsAmbientMode(boolean wallpaperSupportsAmbientMode) {
|
public void setWallpaperSupportsAmbientMode(boolean wallpaperSupportsAmbientMode) {
|
||||||
|
|||||||
@@ -197,7 +197,7 @@ public enum ScrimState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float getBehindAlpha() {
|
public float getMaxLightRevealScrimAlpha() {
|
||||||
return mWallpaperSupportsAmbientMode && !mHasBackdrop ? 0f : 1f;
|
return mWallpaperSupportsAmbientMode && !mHasBackdrop ? 0f : 1f;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -220,18 +220,11 @@ public enum ScrimState {
|
|||||||
mBlankScreen = mDisplayRequiresBlanking;
|
mBlankScreen = mDisplayRequiresBlanking;
|
||||||
mAnimationDuration = mWakeLockScreenSensorActive
|
mAnimationDuration = mWakeLockScreenSensorActive
|
||||||
? ScrimController.ANIMATION_DURATION_LONG : ScrimController.ANIMATION_DURATION;
|
? ScrimController.ANIMATION_DURATION_LONG : ScrimController.ANIMATION_DURATION;
|
||||||
|
|
||||||
// Wake sensor will show the wallpaper, let's fade from black. Otherwise it will
|
|
||||||
// feel like the screen is flashing if the wallpaper is light.
|
|
||||||
if (mWakeLockScreenSensorActive && previousState == AOD) {
|
|
||||||
updateScrimColor(mScrimBehind, 1f /* alpha */, Color.BLACK);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float getBehindAlpha() {
|
public float getMaxLightRevealScrimAlpha() {
|
||||||
return mWakeLockScreenSensorActive ? ScrimController.WAKE_SENSOR_SCRIM_ALPHA
|
return mWakeLockScreenSensorActive ? ScrimController.WAKE_SENSOR_SCRIM_ALPHA
|
||||||
: AOD.getBehindAlpha();
|
: AOD.getMaxLightRevealScrimAlpha();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -351,6 +344,10 @@ public enum ScrimState {
|
|||||||
return mBehindAlpha;
|
return mBehindAlpha;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public float getMaxLightRevealScrimAlpha() {
|
||||||
|
return 1f;
|
||||||
|
}
|
||||||
|
|
||||||
public float getNotifAlpha() {
|
public float getNotifAlpha() {
|
||||||
return mNotifAlpha;
|
return mNotifAlpha;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4444,6 +4444,8 @@ public class StatusBar extends SystemUI implements DemoMode,
|
|||||||
} else {
|
} else {
|
||||||
mScrimController.transitionTo(ScrimState.UNLOCKED, mUnlockScrimCallback);
|
mScrimController.transitionTo(ScrimState.UNLOCKED, mUnlockScrimCallback);
|
||||||
}
|
}
|
||||||
|
updateLightRevealScrimVisibility();
|
||||||
|
|
||||||
Trace.endSection();
|
Trace.endSection();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4894,6 +4896,7 @@ public class StatusBar extends SystemUI implements DemoMode,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mLightRevealScrim.setAlpha(mScrimController.getState().getMaxLightRevealScrimAlpha());
|
||||||
if (mFeatureFlags.useNewLockscreenAnimations()
|
if (mFeatureFlags.useNewLockscreenAnimations()
|
||||||
&& (mDozeParameters.getAlwaysOn() || mDozeParameters.isQuickPickupEnabled())) {
|
&& (mDozeParameters.getAlwaysOn() || mDozeParameters.isQuickPickupEnabled())) {
|
||||||
mLightRevealScrim.setVisibility(View.VISIBLE);
|
mLightRevealScrim.setVisibility(View.VISIBLE);
|
||||||
|
|||||||
@@ -312,6 +312,8 @@ public class ScrimControllerTest extends SysuiTestCase {
|
|||||||
mScrimBehind, true,
|
mScrimBehind, true,
|
||||||
mScrimForBubble, false
|
mScrimForBubble, false
|
||||||
));
|
));
|
||||||
|
|
||||||
|
assertEquals(1f, mScrimController.getState().getMaxLightRevealScrimAlpha(), 0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -321,8 +323,9 @@ public class ScrimControllerTest extends SysuiTestCase {
|
|||||||
|
|
||||||
assertScrimAlpha(Map.of(
|
assertScrimAlpha(Map.of(
|
||||||
mScrimInFront, TRANSPARENT,
|
mScrimInFront, TRANSPARENT,
|
||||||
mScrimBehind, OPAQUE,
|
mScrimBehind, TRANSPARENT,
|
||||||
mNotificationsScrim, TRANSPARENT));
|
mNotificationsScrim, TRANSPARENT));
|
||||||
|
assertEquals(1f, mScrimController.getState().getMaxLightRevealScrimAlpha(), 0f);
|
||||||
|
|
||||||
assertScrimTinted(Map.of(
|
assertScrimTinted(Map.of(
|
||||||
mScrimInFront, true,
|
mScrimInFront, true,
|
||||||
@@ -340,6 +343,7 @@ public class ScrimControllerTest extends SysuiTestCase {
|
|||||||
assertScrimAlpha(Map.of(
|
assertScrimAlpha(Map.of(
|
||||||
mScrimInFront, TRANSPARENT,
|
mScrimInFront, TRANSPARENT,
|
||||||
mScrimBehind, TRANSPARENT));
|
mScrimBehind, TRANSPARENT));
|
||||||
|
assertEquals(0f, mScrimController.getState().getMaxLightRevealScrimAlpha(), 0f);
|
||||||
|
|
||||||
// Pulsing notification should conserve AOD wallpaper.
|
// Pulsing notification should conserve AOD wallpaper.
|
||||||
mScrimController.transitionTo(ScrimState.PULSING);
|
mScrimController.transitionTo(ScrimState.PULSING);
|
||||||
@@ -348,6 +352,7 @@ public class ScrimControllerTest extends SysuiTestCase {
|
|||||||
assertScrimAlpha(Map.of(
|
assertScrimAlpha(Map.of(
|
||||||
mScrimInFront, TRANSPARENT,
|
mScrimInFront, TRANSPARENT,
|
||||||
mScrimBehind, TRANSPARENT));
|
mScrimBehind, TRANSPARENT));
|
||||||
|
assertEquals(0f, mScrimController.getState().getMaxLightRevealScrimAlpha(), 0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -359,7 +364,8 @@ public class ScrimControllerTest extends SysuiTestCase {
|
|||||||
|
|
||||||
assertScrimAlpha(Map.of(
|
assertScrimAlpha(Map.of(
|
||||||
mScrimInFront, TRANSPARENT,
|
mScrimInFront, TRANSPARENT,
|
||||||
mScrimBehind, OPAQUE));
|
mScrimBehind, TRANSPARENT));
|
||||||
|
assertEquals(1f, mScrimController.getState().getMaxLightRevealScrimAlpha(), 0f);
|
||||||
|
|
||||||
assertScrimTinted(Map.of(
|
assertScrimTinted(Map.of(
|
||||||
mScrimInFront, true,
|
mScrimInFront, true,
|
||||||
@@ -378,7 +384,8 @@ public class ScrimControllerTest extends SysuiTestCase {
|
|||||||
|
|
||||||
assertScrimAlpha(Map.of(
|
assertScrimAlpha(Map.of(
|
||||||
mScrimInFront, TRANSPARENT,
|
mScrimInFront, TRANSPARENT,
|
||||||
mScrimBehind, OPAQUE));
|
mScrimBehind, TRANSPARENT));
|
||||||
|
assertEquals(1f, mScrimController.getState().getMaxLightRevealScrimAlpha(), 0f);
|
||||||
|
|
||||||
assertScrimTinted(Map.of(
|
assertScrimTinted(Map.of(
|
||||||
mScrimInFront, true,
|
mScrimInFront, true,
|
||||||
@@ -403,13 +410,15 @@ public class ScrimControllerTest extends SysuiTestCase {
|
|||||||
finishAnimationsImmediately();
|
finishAnimationsImmediately();
|
||||||
assertScrimAlpha(Map.of(
|
assertScrimAlpha(Map.of(
|
||||||
mScrimInFront, SEMI_TRANSPARENT,
|
mScrimInFront, SEMI_TRANSPARENT,
|
||||||
mScrimBehind, OPAQUE));
|
mScrimBehind, TRANSPARENT));
|
||||||
|
assertEquals(1f, mScrimController.getState().getMaxLightRevealScrimAlpha(), 0f);
|
||||||
|
|
||||||
// ... and that if we set it while we're in AOD, it does take immediate effect.
|
// ... and that if we set it while we're in AOD, it does take immediate effect.
|
||||||
mScrimController.setAodFrontScrimAlpha(1f);
|
mScrimController.setAodFrontScrimAlpha(1f);
|
||||||
assertScrimAlpha(Map.of(
|
assertScrimAlpha(Map.of(
|
||||||
mScrimInFront, OPAQUE,
|
mScrimInFront, OPAQUE,
|
||||||
mScrimBehind, OPAQUE));
|
mScrimBehind, TRANSPARENT));
|
||||||
|
assertEquals(1f, mScrimController.getState().getMaxLightRevealScrimAlpha(), 0f);
|
||||||
|
|
||||||
// ... and make sure we recall the previous front scrim alpha even if we transition away
|
// ... and make sure we recall the previous front scrim alpha even if we transition away
|
||||||
// for a bit.
|
// for a bit.
|
||||||
@@ -418,7 +427,8 @@ public class ScrimControllerTest extends SysuiTestCase {
|
|||||||
finishAnimationsImmediately();
|
finishAnimationsImmediately();
|
||||||
assertScrimAlpha(Map.of(
|
assertScrimAlpha(Map.of(
|
||||||
mScrimInFront, OPAQUE,
|
mScrimInFront, OPAQUE,
|
||||||
mScrimBehind, OPAQUE));
|
mScrimBehind, TRANSPARENT));
|
||||||
|
assertEquals(1f, mScrimController.getState().getMaxLightRevealScrimAlpha(), 0f);
|
||||||
|
|
||||||
// ... and alpha updates should be completely ignored if always_on is off.
|
// ... and alpha updates should be completely ignored if always_on is off.
|
||||||
// Passing it forward would mess up the wake-up transition.
|
// Passing it forward would mess up the wake-up transition.
|
||||||
@@ -448,23 +458,28 @@ public class ScrimControllerTest extends SysuiTestCase {
|
|||||||
finishAnimationsImmediately();
|
finishAnimationsImmediately();
|
||||||
assertScrimAlpha(Map.of(
|
assertScrimAlpha(Map.of(
|
||||||
mScrimInFront, OPAQUE,
|
mScrimInFront, OPAQUE,
|
||||||
mScrimBehind, OPAQUE));
|
mScrimBehind, TRANSPARENT));
|
||||||
|
assertEquals(1f, mScrimController.getState().getMaxLightRevealScrimAlpha(), 0f);
|
||||||
|
|
||||||
// ... but will take effect after docked
|
// ... but will take effect after docked
|
||||||
when(mDockManager.isDocked()).thenReturn(true);
|
when(mDockManager.isDocked()).thenReturn(true);
|
||||||
mScrimController.transitionTo(ScrimState.KEYGUARD);
|
mScrimController.transitionTo(ScrimState.KEYGUARD);
|
||||||
mScrimController.setAodFrontScrimAlpha(0.5f);
|
mScrimController.setAodFrontScrimAlpha(0.5f);
|
||||||
mScrimController.transitionTo(ScrimState.AOD);
|
mScrimController.transitionTo(ScrimState.AOD);
|
||||||
|
finishAnimationsImmediately();
|
||||||
|
|
||||||
assertScrimAlpha(Map.of(
|
assertScrimAlpha(Map.of(
|
||||||
mScrimInFront, SEMI_TRANSPARENT,
|
mScrimInFront, SEMI_TRANSPARENT,
|
||||||
mScrimBehind, OPAQUE));
|
mScrimBehind, TRANSPARENT));
|
||||||
|
assertEquals(1f, mScrimController.getState().getMaxLightRevealScrimAlpha(), 0f);
|
||||||
|
|
||||||
// ... and that if we set it while we're in AOD, it does take immediate effect after docked.
|
// ... and that if we set it while we're in AOD, it does take immediate effect after docked.
|
||||||
mScrimController.setAodFrontScrimAlpha(1f);
|
mScrimController.setAodFrontScrimAlpha(1f);
|
||||||
|
finishAnimationsImmediately();
|
||||||
assertScrimAlpha(Map.of(
|
assertScrimAlpha(Map.of(
|
||||||
mScrimInFront, OPAQUE,
|
mScrimInFront, OPAQUE,
|
||||||
mScrimBehind, OPAQUE));
|
mScrimBehind, TRANSPARENT));
|
||||||
|
assertEquals(1f, mScrimController.getState().getMaxLightRevealScrimAlpha(), 0f);
|
||||||
|
|
||||||
// Reset value since enums are static.
|
// Reset value since enums are static.
|
||||||
mScrimController.setAodFrontScrimAlpha(0f);
|
mScrimController.setAodFrontScrimAlpha(0f);
|
||||||
@@ -480,7 +495,8 @@ public class ScrimControllerTest extends SysuiTestCase {
|
|||||||
finishAnimationsImmediately();
|
finishAnimationsImmediately();
|
||||||
assertScrimAlpha(Map.of(
|
assertScrimAlpha(Map.of(
|
||||||
mScrimInFront, TRANSPARENT,
|
mScrimInFront, TRANSPARENT,
|
||||||
mScrimBehind, OPAQUE));
|
mScrimBehind, TRANSPARENT));
|
||||||
|
assertEquals(1f, mScrimController.getState().getMaxLightRevealScrimAlpha(), 0f);
|
||||||
|
|
||||||
mScrimController.transitionTo(ScrimState.PULSING);
|
mScrimController.transitionTo(ScrimState.PULSING);
|
||||||
finishAnimationsImmediately();
|
finishAnimationsImmediately();
|
||||||
@@ -489,7 +505,8 @@ public class ScrimControllerTest extends SysuiTestCase {
|
|||||||
// Pulse callback should have been invoked
|
// Pulse callback should have been invoked
|
||||||
assertScrimAlpha(Map.of(
|
assertScrimAlpha(Map.of(
|
||||||
mScrimInFront, TRANSPARENT,
|
mScrimInFront, TRANSPARENT,
|
||||||
mScrimBehind, OPAQUE));
|
mScrimBehind, TRANSPARENT));
|
||||||
|
assertEquals(1f, mScrimController.getState().getMaxLightRevealScrimAlpha(), 0f);
|
||||||
|
|
||||||
assertScrimTinted(Map.of(
|
assertScrimTinted(Map.of(
|
||||||
mScrimInFront, true,
|
mScrimInFront, true,
|
||||||
@@ -503,13 +520,16 @@ public class ScrimControllerTest extends SysuiTestCase {
|
|||||||
// Front scrim should be semi-transparent
|
// Front scrim should be semi-transparent
|
||||||
assertScrimAlpha(Map.of(
|
assertScrimAlpha(Map.of(
|
||||||
mScrimInFront, SEMI_TRANSPARENT,
|
mScrimInFront, SEMI_TRANSPARENT,
|
||||||
mScrimBehind, OPAQUE));
|
mScrimBehind, TRANSPARENT));
|
||||||
|
assertEquals(1f, mScrimController.getState().getMaxLightRevealScrimAlpha(), 0f);
|
||||||
|
|
||||||
mScrimController.setWakeLockScreenSensorActive(true);
|
mScrimController.setWakeLockScreenSensorActive(true);
|
||||||
finishAnimationsImmediately();
|
finishAnimationsImmediately();
|
||||||
assertScrimAlpha(Map.of(
|
assertScrimAlpha(Map.of(
|
||||||
mScrimInFront, SEMI_TRANSPARENT,
|
mScrimInFront, SEMI_TRANSPARENT,
|
||||||
mScrimBehind, SEMI_TRANSPARENT));
|
mScrimBehind, TRANSPARENT));
|
||||||
|
assertEquals(ScrimController.WAKE_SENSOR_SCRIM_ALPHA,
|
||||||
|
mScrimController.getState().getMaxLightRevealScrimAlpha(), 0f);
|
||||||
|
|
||||||
// Reset value since enums are static.
|
// Reset value since enums are static.
|
||||||
mScrimController.setAodFrontScrimAlpha(0f);
|
mScrimController.setAodFrontScrimAlpha(0f);
|
||||||
|
|||||||
Reference in New Issue
Block a user