Loading packages/SystemUI/src/com/android/systemui/accessibility/MagnificationModeSwitch.java +11 −9 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.systemui.accessibility; import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_NONE; import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW; import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS; import android.annotation.NonNull; import android.annotation.UiContext; Loading @@ -36,6 +37,7 @@ import android.view.View; import android.view.WindowInsets; import android.view.WindowManager; import android.view.WindowManager.LayoutParams; import android.view.WindowMetrics; import android.view.accessibility.AccessibilityManager; import android.view.accessibility.AccessibilityNodeInfo; import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction; Loading Loading @@ -362,21 +364,21 @@ class MagnificationModeSwitch implements MagnificationGestureDetector.OnGestureL PixelFormat.TRANSPARENT); params.gravity = Gravity.TOP | Gravity.LEFT; params.accessibilityTitle = getAccessibilityWindowTitle(context); params.layoutInDisplayCutoutMode = LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS; return params; } private Rect getDraggableWindowBounds() { final int layoutMargin = mContext.getResources().getDimensionPixelSize( R.dimen.magnification_switch_button_margin); final Rect boundRect = new Rect(mWindowManager.getCurrentWindowMetrics().getBounds()); final Insets systemBars = mWindowManager.getCurrentWindowMetrics().getWindowInsets() .getInsetsIgnoringVisibility(WindowInsets.Type.systemBars()); final Rect insets = new Rect(layoutMargin, systemBars.top + layoutMargin, mParams.width + layoutMargin, mParams.height + layoutMargin + systemBars.bottom); boundRect.inset(insets); final WindowMetrics windowMetrics = mWindowManager.getCurrentWindowMetrics(); final Insets windowInsets = windowMetrics.getWindowInsets().getInsetsIgnoringVisibility( WindowInsets.Type.systemBars() | WindowInsets.Type.displayCutout()); final Rect boundRect = new Rect(windowMetrics.getBounds()); boundRect.offsetTo(0, 0); boundRect.inset(0, 0, mParams.width, mParams.height); boundRect.inset(windowInsets); boundRect.inset(layoutMargin, layoutMargin); return boundRect; } Loading packages/SystemUI/tests/src/com/android/systemui/accessibility/MagnificationModeSwitchTest.java +15 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import static android.view.MotionEvent.ACTION_CANCEL; import static android.view.MotionEvent.ACTION_DOWN; import static android.view.MotionEvent.ACTION_MOVE; import static android.view.MotionEvent.ACTION_UP; import static android.view.WindowInsets.Type.displayCutout; import static android.view.WindowInsets.Type.systemBars; import static android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction.ACTION_CLICK; Loading Loading @@ -225,7 +226,7 @@ public class MagnificationModeSwitchTest extends SysuiTestCase { } @Test public void onApplyWindowInsetsWithWindowInsetsChange_buttonIsShowing_draggableBoundsChanged() { public void onSystemBarsInsetsChanged_buttonIsShowing_draggableBoundsChanged() { mMagnificationModeSwitch.showButton(ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN); final Rect oldDraggableBounds = new Rect(mMagnificationModeSwitch.mDraggableWindowBounds); Loading @@ -237,6 +238,19 @@ public class MagnificationModeSwitchTest extends SysuiTestCase { assertNotEquals(oldDraggableBounds, mMagnificationModeSwitch.mDraggableWindowBounds); } @Test public void onDisplayCutoutInsetsChanged_buttonIsShowing_draggableBoundsChanged() { mMagnificationModeSwitch.showButton(ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN); final Rect oldDraggableBounds = new Rect(mMagnificationModeSwitch.mDraggableWindowBounds); mWindowManager.setWindowInsets(new WindowInsets.Builder() .setInsetsIgnoringVisibility(displayCutout(), Insets.of(20, 30, 20, 30)) .build()); mSpyImageView.onApplyWindowInsets(WindowInsets.CONSUMED); assertNotEquals(oldDraggableBounds, mMagnificationModeSwitch.mDraggableWindowBounds); } @Test public void onDraggingGestureFinish_buttonIsShowing_stickToRightEdge() { final int windowHalfWidth = Loading Loading
packages/SystemUI/src/com/android/systemui/accessibility/MagnificationModeSwitch.java +11 −9 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.systemui.accessibility; import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_NONE; import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW; import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS; import android.annotation.NonNull; import android.annotation.UiContext; Loading @@ -36,6 +37,7 @@ import android.view.View; import android.view.WindowInsets; import android.view.WindowManager; import android.view.WindowManager.LayoutParams; import android.view.WindowMetrics; import android.view.accessibility.AccessibilityManager; import android.view.accessibility.AccessibilityNodeInfo; import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction; Loading Loading @@ -362,21 +364,21 @@ class MagnificationModeSwitch implements MagnificationGestureDetector.OnGestureL PixelFormat.TRANSPARENT); params.gravity = Gravity.TOP | Gravity.LEFT; params.accessibilityTitle = getAccessibilityWindowTitle(context); params.layoutInDisplayCutoutMode = LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS; return params; } private Rect getDraggableWindowBounds() { final int layoutMargin = mContext.getResources().getDimensionPixelSize( R.dimen.magnification_switch_button_margin); final Rect boundRect = new Rect(mWindowManager.getCurrentWindowMetrics().getBounds()); final Insets systemBars = mWindowManager.getCurrentWindowMetrics().getWindowInsets() .getInsetsIgnoringVisibility(WindowInsets.Type.systemBars()); final Rect insets = new Rect(layoutMargin, systemBars.top + layoutMargin, mParams.width + layoutMargin, mParams.height + layoutMargin + systemBars.bottom); boundRect.inset(insets); final WindowMetrics windowMetrics = mWindowManager.getCurrentWindowMetrics(); final Insets windowInsets = windowMetrics.getWindowInsets().getInsetsIgnoringVisibility( WindowInsets.Type.systemBars() | WindowInsets.Type.displayCutout()); final Rect boundRect = new Rect(windowMetrics.getBounds()); boundRect.offsetTo(0, 0); boundRect.inset(0, 0, mParams.width, mParams.height); boundRect.inset(windowInsets); boundRect.inset(layoutMargin, layoutMargin); return boundRect; } Loading
packages/SystemUI/tests/src/com/android/systemui/accessibility/MagnificationModeSwitchTest.java +15 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import static android.view.MotionEvent.ACTION_CANCEL; import static android.view.MotionEvent.ACTION_DOWN; import static android.view.MotionEvent.ACTION_MOVE; import static android.view.MotionEvent.ACTION_UP; import static android.view.WindowInsets.Type.displayCutout; import static android.view.WindowInsets.Type.systemBars; import static android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction.ACTION_CLICK; Loading Loading @@ -225,7 +226,7 @@ public class MagnificationModeSwitchTest extends SysuiTestCase { } @Test public void onApplyWindowInsetsWithWindowInsetsChange_buttonIsShowing_draggableBoundsChanged() { public void onSystemBarsInsetsChanged_buttonIsShowing_draggableBoundsChanged() { mMagnificationModeSwitch.showButton(ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN); final Rect oldDraggableBounds = new Rect(mMagnificationModeSwitch.mDraggableWindowBounds); Loading @@ -237,6 +238,19 @@ public class MagnificationModeSwitchTest extends SysuiTestCase { assertNotEquals(oldDraggableBounds, mMagnificationModeSwitch.mDraggableWindowBounds); } @Test public void onDisplayCutoutInsetsChanged_buttonIsShowing_draggableBoundsChanged() { mMagnificationModeSwitch.showButton(ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN); final Rect oldDraggableBounds = new Rect(mMagnificationModeSwitch.mDraggableWindowBounds); mWindowManager.setWindowInsets(new WindowInsets.Builder() .setInsetsIgnoringVisibility(displayCutout(), Insets.of(20, 30, 20, 30)) .build()); mSpyImageView.onApplyWindowInsets(WindowInsets.CONSUMED); assertNotEquals(oldDraggableBounds, mMagnificationModeSwitch.mDraggableWindowBounds); } @Test public void onDraggingGestureFinish_buttonIsShowing_stickToRightEdge() { final int windowHalfWidth = Loading