summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Candice <chihtinglo@google.com> 2025-02-08 07:47:53 +0000
committer Candice <chihtinglo@google.com> 2025-02-08 08:20:53 +0000
commitc895f7e41a19de1a467caa8a6e47bbce36f21d28 (patch)
treef1b2a55039a822a01f0466d2efdb1cb9e6ea874d
parent91989f88ec696df65859ad95cace733109b0ac92 (diff)
Fix the initialization of the system gesture top location
1. Initialize the system gesture top location in the constructor 2. Fix the calculation of system gesture top location when there is no botton inset Bug: 380320995 Test: atest WindowMagnificationControllerTest Test: atest WindowMagnificationAnimationControllerTest Flag: com.android.systemui.update_window_magnifier_bottom_boundary Change-Id: Ie6d97a6fe2be6b07ea9e1487f71d572f1d2fd397
-rw-r--r--packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationController.java10
1 files changed, 7 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 a67ec65cceda..8734d05bc894 100644
--- a/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationController.java
+++ b/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationController.java
@@ -296,6 +296,7 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
mGestureDetector =
new MagnificationGestureDetector(mContext, handler, this);
mWindowInsetChangeRunnable = this::onWindowInsetChanged;
+ mWindowInsetChangeRunnable.run();
// Initialize listeners.
mMirrorViewRunnable = new Runnable() {
@@ -367,8 +368,12 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
private boolean updateSystemGestureInsetsTop() {
final WindowMetrics windowMetrics = mWm.getCurrentWindowMetrics();
final Insets insets = windowMetrics.getWindowInsets().getInsets(systemGestures());
- final int gestureTop =
- insets.bottom != 0 ? windowMetrics.getBounds().bottom - insets.bottom : -1;
+ final int gestureTop;
+ if (Flags.updateWindowMagnifierBottomBoundary()) {
+ gestureTop = windowMetrics.getBounds().bottom - insets.bottom;
+ } else {
+ gestureTop = insets.bottom != 0 ? windowMetrics.getBounds().bottom - insets.bottom : -1;
+ }
if (gestureTop != mSystemGestureTop) {
mSystemGestureTop = gestureTop;
return true;
@@ -953,7 +958,6 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
? mSystemGestureTop - height + mOuterBorderSize
: mWindowBounds.bottom - height + mOuterBorderSize;
final int y = MathUtils.clamp(mMagnificationFrame.top - mMirrorSurfaceMargin, minY, maxY);
-
if (computeWindowSize) {
LayoutParams params = (LayoutParams) mMirrorView.getLayoutParams();
params.width = width;