Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b671bdbb authored by Lucas Dupin's avatar Lucas Dupin Committed by Presubmit Automerger Backend
Browse files

[automerge] Do not relayout window whenn pulling shade 2p: 3cc59ab8 2p: 7d2c92fd

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17413762

Change-Id: If06ba5d3c9a76aa59ad6bb9a04ac93f9532155a5
parents 6a03c4aa 7d2c92fd
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -285,14 +285,12 @@ public class NotificationShadeWindowControllerImpl implements NotificationShadeW
    }

    private void applyKeyguardFlags(State state) {
        final boolean scrimsOccludingWallpaper =
                state.mScrimsVisibility == ScrimController.OPAQUE || state.mLightRevealScrimOpaque;
        final boolean keyguardOrAod = state.mKeyguardShowing
                || (state.mDozing && mDozeParameters.getAlwaysOn());
        if ((keyguardOrAod && !state.mBackdropShowing && !scrimsOccludingWallpaper)
        if ((keyguardOrAod && !state.mBackdropShowing && !state.mLightRevealScrimOpaque)
                || mKeyguardViewMediator.isAnimatingBetweenKeyguardAndSurfaceBehindOrWillBe()) {
            // 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
            // backdrop for this animation.
            mLpChanged.flags |= LayoutParams.FLAG_SHOW_WALLPAPER;
+5 −3
Original line number Diff line number Diff line
@@ -155,14 +155,16 @@ public class NotificationShadeWindowControllerImplTest extends SysuiTestCase {
    }

    @Test
    public void attach_scrimHidesWallpaper() {
    public void attach_scrimDoesntHideWallpaper() {
        when(mKeyguardViewMediator.isShowingAndNotOccluded()).thenReturn(true);
        mNotificationShadeWindowController.attach();

        clearInvocations(mWindowManager);
        mNotificationShadeWindowController.setScrimsVisibility(ScrimController.OPAQUE);
        verify(mWindowManager).updateViewLayout(any(), mLayoutParameters.capture());
        assertThat((mLayoutParameters.getValue().flags & FLAG_SHOW_WALLPAPER) == 0).isTrue();
        // The scrim used to remove the wallpaper flag, but this causes a relayout.
        // Instead, we're not relying on SurfaceControl#setOpaque on
        // NotificationShadeDepthController.
        verify(mWindowManager, never()).updateViewLayout(any(), mLayoutParameters.capture());
    }

    @Test