Merge "Do not relayout window whenn pulling shade" into tm-dev
This commit is contained in:
@@ -285,14 +285,12 @@ public class NotificationShadeWindowControllerImpl implements NotificationShadeW
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void applyKeyguardFlags(State state) {
|
private void applyKeyguardFlags(State state) {
|
||||||
final boolean scrimsOccludingWallpaper =
|
|
||||||
state.mScrimsVisibility == ScrimController.OPAQUE || state.mLightRevealScrimOpaque;
|
|
||||||
final boolean keyguardOrAod = state.mKeyguardShowing
|
final boolean keyguardOrAod = state.mKeyguardShowing
|
||||||
|| (state.mDozing && mDozeParameters.getAlwaysOn());
|
|| (state.mDozing && mDozeParameters.getAlwaysOn());
|
||||||
if ((keyguardOrAod && !state.mBackdropShowing && !scrimsOccludingWallpaper)
|
if ((keyguardOrAod && !state.mBackdropShowing && !state.mLightRevealScrimOpaque)
|
||||||
|| mKeyguardViewMediator.isAnimatingBetweenKeyguardAndSurfaceBehindOrWillBe()) {
|
|| mKeyguardViewMediator.isAnimatingBetweenKeyguardAndSurfaceBehindOrWillBe()) {
|
||||||
// Show the wallpaper if we're on keyguard/AOD and the wallpaper is not occluded by a
|
// Show the wallpaper if we're on keyguard/AOD and the wallpaper is not occluded by a
|
||||||
// solid backdrop or scrim. Also, show it if we are currently animating between the
|
// solid backdrop. Also, show it if we are currently animating between the
|
||||||
// keyguard and the surface behind the keyguard - we want to use the wallpaper as a
|
// keyguard and the surface behind the keyguard - we want to use the wallpaper as a
|
||||||
// backdrop for this animation.
|
// backdrop for this animation.
|
||||||
mLpChanged.flags |= LayoutParams.FLAG_SHOW_WALLPAPER;
|
mLpChanged.flags |= LayoutParams.FLAG_SHOW_WALLPAPER;
|
||||||
|
|||||||
@@ -155,14 +155,16 @@ public class NotificationShadeWindowControllerImplTest extends SysuiTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void attach_scrimHidesWallpaper() {
|
public void attach_scrimDoesntHideWallpaper() {
|
||||||
when(mKeyguardViewMediator.isShowingAndNotOccluded()).thenReturn(true);
|
when(mKeyguardViewMediator.isShowingAndNotOccluded()).thenReturn(true);
|
||||||
mNotificationShadeWindowController.attach();
|
mNotificationShadeWindowController.attach();
|
||||||
|
|
||||||
clearInvocations(mWindowManager);
|
clearInvocations(mWindowManager);
|
||||||
mNotificationShadeWindowController.setScrimsVisibility(ScrimController.OPAQUE);
|
mNotificationShadeWindowController.setScrimsVisibility(ScrimController.OPAQUE);
|
||||||
verify(mWindowManager).updateViewLayout(any(), mLayoutParameters.capture());
|
// The scrim used to remove the wallpaper flag, but this causes a relayout.
|
||||||
assertThat((mLayoutParameters.getValue().flags & FLAG_SHOW_WALLPAPER) == 0).isTrue();
|
// Instead, we're not relying on SurfaceControl#setOpaque on
|
||||||
|
// NotificationShadeDepthController.
|
||||||
|
verify(mWindowManager, never()).updateViewLayout(any(), mLayoutParameters.capture());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
Reference in New Issue
Block a user