diff options
| author | 2025-02-08 07:47:53 +0000 | |
|---|---|---|
| committer | 2025-02-08 08:20:53 +0000 | |
| commit | c895f7e41a19de1a467caa8a6e47bbce36f21d28 (patch) | |
| tree | f1b2a55039a822a01f0466d2efdb1cb9e6ea874d | |
| parent | 91989f88ec696df65859ad95cace733109b0ac92 (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.java | 10 |
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; |