Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 37c5d61f authored by Ryan Lin's avatar Ryan Lin Committed by Automerger Merge Worker
Browse files

Merge "Fix incorrect magnification border after rotation" into sc-dev am: 9da336b4

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14909658

Change-Id: Ic4d4fb02cd2406c61900731ad7e64ec234938c1a
parents 51102406 9da336b4
Loading
Loading
Loading
Loading
+17 −16
Original line number Original line Diff line number Diff line
@@ -703,7 +703,7 @@ final class AccessibilityController {
                Slog.i(LOG_TAG, "Rotation: " + Surface.rotationToString(rotation)
                Slog.i(LOG_TAG, "Rotation: " + Surface.rotationToString(rotation)
                        + " displayId: " + displayContent.getDisplayId());
                        + " displayId: " + displayContent.getDisplayId());
            }
            }
            mMagnifedViewport.onRotationChanged(displayContent.getPendingTransaction());
            mMagnifedViewport.onRotationChanged();
            mHandler.sendEmptyMessage(MyHandler.MESSAGE_NOTIFY_ROTATION_CHANGED);
            mHandler.sendEmptyMessage(MyHandler.MESSAGE_NOTIFY_ROTATION_CHANGED);
        }
        }


@@ -858,7 +858,7 @@ final class AccessibilityController {


            private final RectF mTempRectF = new RectF();
            private final RectF mTempRectF = new RectF();


            private final Point mTempPoint = new Point();
            private final Point mScreenSize = new Point();


            private final Matrix mTempMatrix = new Matrix();
            private final Matrix mTempMatrix = new Matrix();


@@ -887,8 +887,8 @@ final class AccessibilityController {


                if (mDisplayContext.getResources().getConfiguration().isScreenRound()) {
                if (mDisplayContext.getResources().getConfiguration().isScreenRound()) {
                    mCircularPath = new Path();
                    mCircularPath = new Path();
                    mDisplay.getRealSize(mTempPoint);
                    mDisplay.getRealSize(mScreenSize);
                    final int centerXY = mTempPoint.x / 2;
                    final int centerXY = mScreenSize.x / 2;
                    mCircularPath.addCircle(centerXY, centerXY, centerXY, Path.Direction.CW);
                    mCircularPath.addCircle(centerXY, centerXY, centerXY, Path.Direction.CW);
                } else {
                } else {
                    mCircularPath = null;
                    mCircularPath = null;
@@ -917,9 +917,9 @@ final class AccessibilityController {
            }
            }


            void recomputeBounds() {
            void recomputeBounds() {
                mDisplay.getRealSize(mTempPoint);
                mDisplay.getRealSize(mScreenSize);
                final int screenWidth = mTempPoint.x;
                final int screenWidth = mScreenSize.x;
                final int screenHeight = mTempPoint.y;
                final int screenHeight = mScreenSize.y;


                mMagnificationRegion.set(0, 0, 0, 0);
                mMagnificationRegion.set(0, 0, 0, 0);
                final Region availableBounds = mTempRegion1;
                final Region availableBounds = mTempRegion1;
@@ -1052,7 +1052,7 @@ final class AccessibilityController {
                        || windowType == TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY;
                        || windowType == TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY;
            }
            }


            void onRotationChanged(SurfaceControl.Transaction t) {
            void onRotationChanged() {
                // If we are showing the magnification border, hide it immediately so
                // If we are showing the magnification border, hide it immediately so
                // the user does not see strange artifacts during rotation. The screenshot
                // the user does not see strange artifacts during rotation. The screenshot
                // used for rotation already has the border. After the rotation is complete
                // used for rotation already has the border. After the rotation is complete
@@ -1066,7 +1066,7 @@ final class AccessibilityController {
                    mHandler.sendMessageDelayed(message, delay);
                    mHandler.sendMessageDelayed(message, delay);
                }
                }
                recomputeBounds();
                recomputeBounds();
                mWindow.updateSize(t);
                mWindow.updateSize();
            }
            }


            void setMagnifiedRegionBorderShown(boolean shown, boolean animate) {
            void setMagnifiedRegionBorderShown(boolean shown, boolean animate) {
@@ -1148,9 +1148,9 @@ final class AccessibilityController {
                        /* ignore */
                        /* ignore */
                    }
                    }
                    mSurfaceControl = surfaceControl;
                    mSurfaceControl = surfaceControl;
                    mDisplay.getRealSize(mTempPoint);
                    mDisplay.getRealSize(mScreenSize);
                    mBlastBufferQueue = new BLASTBufferQueue(SURFACE_TITLE, mSurfaceControl,
                    mBlastBufferQueue = new BLASTBufferQueue(SURFACE_TITLE, mSurfaceControl,
                            mTempPoint.x, mTempPoint.y, PixelFormat.RGBA_8888);
                            mScreenSize.x, mScreenSize.y, PixelFormat.RGBA_8888);


                    final SurfaceControl.Transaction t = mService.mTransactionFactory.get();
                    final SurfaceControl.Transaction t = mService.mTransactionFactory.get();
                    final int layer =
                    final int layer =
@@ -1224,10 +1224,11 @@ final class AccessibilityController {
                    }
                    }
                }
                }


                void updateSize(SurfaceControl.Transaction t) {
                void updateSize() {
                    synchronized (mService.mGlobalLock) {
                    synchronized (mService.mGlobalLock) {
                        mDisplay.getRealSize(mTempPoint);
                        mDisplay.getRealSize(mScreenSize);
                        t.setBufferSize(mSurfaceControl, mTempPoint.x, mTempPoint.y);
                        mBlastBufferQueue.update(mSurfaceControl, mScreenSize.x, mScreenSize.y,
                                PixelFormat.RGBA_8888);
                        invalidate(mDirtyRect);
                        invalidate(mDirtyRect);
                    }
                    }
                }
                }
@@ -1296,8 +1297,8 @@ final class AccessibilityController {
                    pw.println(prefix
                    pw.println(prefix
                            + " mBounds= " + mBounds
                            + " mBounds= " + mBounds
                            + " mDirtyRect= " + mDirtyRect
                            + " mDirtyRect= " + mDirtyRect
                            + " mWidth= " + mSurfaceControl.getWidth()
                            + " mWidth= " + mScreenSize.x
                            + " mHeight= " + mSurfaceControl.getHeight());
                            + " mHeight= " + mScreenSize.y);
                }
                }


                private final class AnimationController extends Handler {
                private final class AnimationController extends Handler {