summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author mincheli <mincheli@google.com> 2020-10-13 15:34:27 +0800
committer mincheli <mincheli@google.com> 2020-10-13 15:34:27 +0800
commitb5f6720f9c97d577205289cf63566abc9c6b79a6 (patch)
tree8d8945fa68a9c0374cf2f249f6fb6a7bcea42597
parent168d7918b807477084a84cb365d0d72d45cfdd9a (diff)
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
-rw-r--r--packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationController.java4
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationControllerTest.java5
2 files changed, 6 insertions, 3 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationController.java b/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationController.java
index c3474bb7ca57..340ca044a1ef 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 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
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 5f2fd697b86d..f1606c5660ed 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 @@ public class WindowMagnificationControllerTest extends SysuiTestCase {
@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 @@ public class WindowMagnificationControllerTest extends SysuiTestCase {
verify(mResources, atLeastOnce()).getDimensionPixelSize(anyInt());
verify(mWindowManager).removeView(any());
+ verify(mMirrorWindowControl).destroyControl();
verify(mWindowManager).addView(any(), any());
+ verify(mMirrorWindowControl).showControl();
}
@Test