Merge "Reset WindowMagnification when the density is changed"
diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationController.java b/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationController.java
index c3474bb..340ca04 100644
--- a/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationController.java
+++ b/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationController.java
@@ -249,8 +249,8 @@
         if ((configDiff & ActivityInfo.CONFIG_DENSITY) != 0) {
             updateDimensions();
             if (isWindowVisible()) {
-                mWm.removeView(mMirrorView);
-                createMirrorWindow();
+                deleteWindowMagnification();
+                enableWindowMagnification(Float.NaN, Float.NaN, Float.NaN);
             }
         } else if ((configDiff & ActivityInfo.CONFIG_ORIENTATION) != 0) {
             onRotate();
diff --git a/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationControllerTest.java
index 5f2fd69..f1606c5 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationControllerTest.java
@@ -224,11 +224,12 @@
 
 
     @Test
-    public void onDensityChanged_enabled_updateDimensionsAndLayout() {
+    public void onDensityChanged_enabled_updateDimensionsAndResetWindowMagnification() {
         mInstrumentation.runOnMainSync(() -> {
             mWindowMagnificationController.enableWindowMagnification(Float.NaN, Float.NaN,
                     Float.NaN);
             Mockito.reset(mWindowManager);
+            Mockito.reset(mMirrorWindowControl);
         });
 
         mInstrumentation.runOnMainSync(() -> {
@@ -237,7 +238,9 @@
 
         verify(mResources, atLeastOnce()).getDimensionPixelSize(anyInt());
         verify(mWindowManager).removeView(any());
+        verify(mMirrorWindowControl).destroyControl();
         verify(mWindowManager).addView(any(), any());
+        verify(mMirrorWindowControl).showControl();
     }
 
     @Test