Loading packages/SystemUI/src/com/android/systemui/accessibility/MagnificationModeSwitch.java +2 −1 Original line number Diff line number Diff line Loading @@ -310,7 +310,8 @@ class MagnificationModeSwitch implements MagnificationGestureDetector.OnGestureL } void onConfigurationChanged(int configDiff) { if ((configDiff & ActivityInfo.CONFIG_ORIENTATION) != 0) { if ((configDiff & (ActivityInfo.CONFIG_ORIENTATION | ActivityInfo.CONFIG_SCREEN_SIZE)) != 0) { final Rect previousDraggableBounds = new Rect(mDraggableWindowBounds); mDraggableWindowBounds.set(getDraggableWindowBounds()); // Keep the Y position with the same height ratio before the window bounds and Loading packages/SystemUI/tests/src/com/android/systemui/accessibility/MagnificationModeSwitchTest.java +24 −0 Original line number Diff line number Diff line Loading @@ -507,6 +507,30 @@ public class MagnificationModeSwitchTest extends SysuiTestCase { expectedY, mWindowManager.getLayoutParamsFromAttachedView().y); } @Test public void onScreenSizeChanged_buttonIsShowingOnTheRightSide_expectedPosition() { final Rect windowBounds = mWindowManager.getCurrentWindowMetrics().getBounds(); mMagnificationModeSwitch.showButton(ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN); final Rect oldDraggableBounds = new Rect(mMagnificationModeSwitch.mDraggableWindowBounds); final float windowHeightFraction = (float) (mWindowManager.getLayoutParamsFromAttachedView().y - oldDraggableBounds.top) / oldDraggableBounds.height(); // The window bounds and the draggable bounds are changed due to the screen size change. final Rect tmpRect = new Rect(windowBounds); tmpRect.scale(2); final Rect newWindowBounds = new Rect(tmpRect); mWindowManager.setWindowBounds(newWindowBounds); mMagnificationModeSwitch.onConfigurationChanged(ActivityInfo.CONFIG_SCREEN_SIZE); final int expectedX = mMagnificationModeSwitch.mDraggableWindowBounds.right; final int expectedY = (int) (windowHeightFraction * mMagnificationModeSwitch.mDraggableWindowBounds.height()) + mMagnificationModeSwitch.mDraggableWindowBounds.top; assertEquals(expectedX, mWindowManager.getLayoutParamsFromAttachedView().x); assertEquals(expectedY, mWindowManager.getLayoutParamsFromAttachedView().y); } private void assertModeUnchanged(int expectedMode) { final int actualMode = Settings.Secure.getInt(mContext.getContentResolver(), Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE, 0); Loading Loading
packages/SystemUI/src/com/android/systemui/accessibility/MagnificationModeSwitch.java +2 −1 Original line number Diff line number Diff line Loading @@ -310,7 +310,8 @@ class MagnificationModeSwitch implements MagnificationGestureDetector.OnGestureL } void onConfigurationChanged(int configDiff) { if ((configDiff & ActivityInfo.CONFIG_ORIENTATION) != 0) { if ((configDiff & (ActivityInfo.CONFIG_ORIENTATION | ActivityInfo.CONFIG_SCREEN_SIZE)) != 0) { final Rect previousDraggableBounds = new Rect(mDraggableWindowBounds); mDraggableWindowBounds.set(getDraggableWindowBounds()); // Keep the Y position with the same height ratio before the window bounds and Loading
packages/SystemUI/tests/src/com/android/systemui/accessibility/MagnificationModeSwitchTest.java +24 −0 Original line number Diff line number Diff line Loading @@ -507,6 +507,30 @@ public class MagnificationModeSwitchTest extends SysuiTestCase { expectedY, mWindowManager.getLayoutParamsFromAttachedView().y); } @Test public void onScreenSizeChanged_buttonIsShowingOnTheRightSide_expectedPosition() { final Rect windowBounds = mWindowManager.getCurrentWindowMetrics().getBounds(); mMagnificationModeSwitch.showButton(ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN); final Rect oldDraggableBounds = new Rect(mMagnificationModeSwitch.mDraggableWindowBounds); final float windowHeightFraction = (float) (mWindowManager.getLayoutParamsFromAttachedView().y - oldDraggableBounds.top) / oldDraggableBounds.height(); // The window bounds and the draggable bounds are changed due to the screen size change. final Rect tmpRect = new Rect(windowBounds); tmpRect.scale(2); final Rect newWindowBounds = new Rect(tmpRect); mWindowManager.setWindowBounds(newWindowBounds); mMagnificationModeSwitch.onConfigurationChanged(ActivityInfo.CONFIG_SCREEN_SIZE); final int expectedX = mMagnificationModeSwitch.mDraggableWindowBounds.right; final int expectedY = (int) (windowHeightFraction * mMagnificationModeSwitch.mDraggableWindowBounds.height()) + mMagnificationModeSwitch.mDraggableWindowBounds.top; assertEquals(expectedX, mWindowManager.getLayoutParamsFromAttachedView().x); assertEquals(expectedY, mWindowManager.getLayoutParamsFromAttachedView().y); } private void assertModeUnchanged(int expectedMode) { final int actualMode = Settings.Secure.getInt(mContext.getContentResolver(), Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE, 0); Loading