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

Commit b5f6720f authored by mincheli's avatar mincheli
Browse files

Reset WindowMagnification when the density is changed

To prevent MirrorSurfaceView not cleared, when the
denisty is changed, we should call
deleteWindowMagnification and enableWindowMagnification
to reset WindowMagnification instead of just removing
the mirrorview.

Bug: 169149030
Test: atest WindowMagnificationControllerTest
Change-Id: Ie1da5f3556cf23482c562b479f483783e09ded1f
parent 168d7918
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -249,8 +249,8 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
        if ((configDiff & ActivityInfo.CONFIG_DENSITY) != 0) {
        if ((configDiff & ActivityInfo.CONFIG_DENSITY) != 0) {
            updateDimensions();
            updateDimensions();
            if (isWindowVisible()) {
            if (isWindowVisible()) {
                mWm.removeView(mMirrorView);
                deleteWindowMagnification();
                createMirrorWindow();
                enableWindowMagnification(Float.NaN, Float.NaN, Float.NaN);
            }
            }
        } else if ((configDiff & ActivityInfo.CONFIG_ORIENTATION) != 0) {
        } else if ((configDiff & ActivityInfo.CONFIG_ORIENTATION) != 0) {
            onRotate();
            onRotate();
+4 −1
Original line number Original line Diff line number Diff line
@@ -224,11 +224,12 @@ public class WindowMagnificationControllerTest extends SysuiTestCase {




    @Test
    @Test
    public void onDensityChanged_enabled_updateDimensionsAndLayout() {
    public void onDensityChanged_enabled_updateDimensionsAndResetWindowMagnification() {
        mInstrumentation.runOnMainSync(() -> {
        mInstrumentation.runOnMainSync(() -> {
            mWindowMagnificationController.enableWindowMagnification(Float.NaN, Float.NaN,
            mWindowMagnificationController.enableWindowMagnification(Float.NaN, Float.NaN,
                    Float.NaN);
                    Float.NaN);
            Mockito.reset(mWindowManager);
            Mockito.reset(mWindowManager);
            Mockito.reset(mMirrorWindowControl);
        });
        });


        mInstrumentation.runOnMainSync(() -> {
        mInstrumentation.runOnMainSync(() -> {
@@ -237,7 +238,9 @@ public class WindowMagnificationControllerTest extends SysuiTestCase {


        verify(mResources, atLeastOnce()).getDimensionPixelSize(anyInt());
        verify(mResources, atLeastOnce()).getDimensionPixelSize(anyInt());
        verify(mWindowManager).removeView(any());
        verify(mWindowManager).removeView(any());
        verify(mMirrorWindowControl).destroyControl();
        verify(mWindowManager).addView(any(), any());
        verify(mWindowManager).addView(any(), any());
        verify(mMirrorWindowControl).showControl();
    }
    }


    @Test
    @Test