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

Commit 583ad6f4 authored by Candice Lo's avatar Candice Lo Committed by Android (Google) Code Review
Browse files

Merge "refactor(magnification): seperate compute bounds and draw border related logics" into main

parents 11568751 38309661
Loading
Loading
Loading
Loading
+8 −10
Original line number Diff line number Diff line
@@ -466,20 +466,17 @@ final class AccessibilityController {
        }
    }

    void drawMagnifiedRegionBorderIfNeeded(int displayId) {
        if (Flags.alwaysDrawMagnificationFullscreenBorder()) {
            return;
        }

    void recomputeMagnifiedRegionAndDrawMagnifiedRegionBorderIfNeeded(int displayId) {
        if (mAccessibilityTracing.isTracingEnabled(FLAGS_MAGNIFICATION_CALLBACK)) {
            mAccessibilityTracing.logTrace(
                    TAG + ".drawMagnifiedRegionBorderIfNeeded",
                    TAG + ".recomputeMagnifiedRegionAndDrawMagnifiedRegionBorderIfNeeded",
                    FLAGS_MAGNIFICATION_CALLBACK,
                    "displayId=" + displayId);
        }

        final DisplayMagnifier displayMagnifier = mDisplayMagnifiers.get(displayId);
        if (displayMagnifier != null) {
            displayMagnifier.drawMagnifiedRegionBorderIfNeeded();
            displayMagnifier.recomputeMagnifiedRegionAndDrawMagnifiedRegionBorderIfNeeded();
        }
        // Not relevant for the window observer.
    }
@@ -936,11 +933,13 @@ final class AccessibilityController {
            }
        }

        void drawMagnifiedRegionBorderIfNeeded() {
        void recomputeMagnifiedRegionAndDrawMagnifiedRegionBorderIfNeeded() {
            if (mAccessibilityTracing.isTracingEnabled(FLAGS_MAGNIFICATION_CALLBACK)) {
                mAccessibilityTracing.logTrace(LOG_TAG + ".drawMagnifiedRegionBorderIfNeeded",
                mAccessibilityTracing.logTrace(LOG_TAG
                                + ".recomputeMagnifiedRegionAndDrawMagnifiedRegionBorderIfNeeded",
                        FLAGS_MAGNIFICATION_CALLBACK);
            }
            recomputeBounds();

            if (!Flags.alwaysDrawMagnificationFullscreenBorder()) {
                mMagnifiedViewport.drawWindowIfNeeded();
@@ -1245,7 +1244,6 @@ final class AccessibilityController {
            }

            void drawWindowIfNeeded() {
                recomputeBounds();
                mWindow.postDrawIfNeeded();
            }

+3 −1
Original line number Diff line number Diff line
@@ -150,7 +150,9 @@ public class WindowAnimator {
                    dc.checkAppWindowsReadyToShow();
                }
                if (accessibilityController.hasCallbacks()) {
                    accessibilityController.drawMagnifiedRegionBorderIfNeeded(dc.mDisplayId);
                    accessibilityController
                            .recomputeMagnifiedRegionAndDrawMagnifiedRegionBorderIfNeeded(
                                    dc.mDisplayId);
                }

                if (dc.isAnimating(animationFlags, ANIMATION_TYPE_ALL)) {
+4 −2
Original line number Diff line number Diff line
@@ -1162,7 +1162,8 @@ public class WindowManagerServiceTests extends WindowTestsBase {
            invocationOnMock.callRealMethod();
            return null;
        }).when(surface).lockCanvas(any());
        mWm.mAccessibilityController.drawMagnifiedRegionBorderIfNeeded(displayId);
        mWm.mAccessibilityController
                .recomputeMagnifiedRegionAndDrawMagnifiedRegionBorderIfNeeded(displayId);
        waitUntilHandlersIdle();
        try {
            verify(surface).lockCanvas(any());
@@ -1170,7 +1171,8 @@ public class WindowManagerServiceTests extends WindowTestsBase {
            clearInvocations(surface);
            // Invalidate and redraw.
            mWm.mAccessibilityController.onDisplaySizeChanged(mDisplayContent);
            mWm.mAccessibilityController.drawMagnifiedRegionBorderIfNeeded(displayId);
            mWm.mAccessibilityController
                    .recomputeMagnifiedRegionAndDrawMagnifiedRegionBorderIfNeeded(displayId);
            // Turn off magnification to release surface.
            mWm.mAccessibilityController.setMagnificationCallbacks(displayId, null);
            waitUntilHandlersIdle();