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

Commit c7f6a80c authored by Tiger Huang's avatar Tiger Huang Committed by Android (Google) Code Review
Browse files

Merge "Get the navigation bar insets frame from the window"

parents 96a43d64 8bf92fd2
Loading
Loading
Loading
Loading
+11 −6
Original line number Diff line number Diff line
@@ -994,7 +994,7 @@ final class AccessibilityController {
                    // navigation bar insets into nonMagnifiedBounds. It happens when
                    // navigation mode is gestural.
                    if (isUntouchableNavigationBar(windowState, mTempRegion3)) {
                        final Rect navBarInsets = getNavBarInsets(mDisplayContent);
                        final Rect navBarInsets = getSystemBarInsetsFrame(windowState);
                        nonMagnifiedBounds.op(navBarInsets, Region.Op.UNION);
                        availableBounds.op(navBarInsets, Region.Op.DIFFERENCE);
                    }
@@ -1459,10 +1459,12 @@ final class AccessibilityController {
        return touchableRegion.isEmpty();
    }

    static Rect getNavBarInsets(DisplayContent displayContent) {
        final InsetsSource source = displayContent.getInsetsStateController().getRawInsetsState()
                .peekSource(ITYPE_NAVIGATION_BAR);
        return source != null ? source.getFrame() : EMPTY_RECT;
    static Rect getSystemBarInsetsFrame(WindowState win) {
        if (win == null) {
            return EMPTY_RECT;
        }
        final InsetsSourceProvider provider = win.getControllableInsetProvider();
        return provider != null ? provider.getSource().getFrame() : EMPTY_RECT;
    }

    /**
@@ -1615,7 +1617,10 @@ final class AccessibilityController {
                        // region of navigation bar inset because all touch events from this region
                        // would be received by launcher, i.e. this region is a un-touchable one
                        // for the application.
                        unaccountedSpace.op(getNavBarInsets(dc), unaccountedSpace,
                        unaccountedSpace.op(
                                getSystemBarInsetsFrame(
                                        mService.mWindowMap.get(a11yWindow.getWindowInfo().token)),
                                unaccountedSpace,
                                Region.Op.REVERSE_DIFFERENCE);
                    }