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

Commit 25e6af39 authored by Shawn Lin's avatar Shawn Lin Committed by Automerger Merge Worker
Browse files

Merge "Fix WindowInsetsBehaviorTests failure" into sc-qpr1-dev am: 2da350d9...

Merge "Fix WindowInsetsBehaviorTests failure" into sc-qpr1-dev am: 2da350d9 am: 271c52a9 am: 00e82d25

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

Change-Id: I0784c45f2f33ae36fe7c9cefe9197e080053b71e
parents 48e454e9 00e82d25
Loading
Loading
Loading
Loading
+19 −1
Original line number Diff line number Diff line
@@ -378,6 +378,8 @@ public class DisplayPolicy {

    private PointerLocationView mPointerLocationView;

    private int mDisplayCutoutTouchableRegionSize;

    /**
     * The area covered by system windows which belong to another display. Forwarded insets is set
     * in case this is a virtual display, this is displayed on another display that has insets, and
@@ -1126,8 +1128,21 @@ public class DisplayPolicy {
                                rect.bottom = rect.top + getStatusBarHeight(displayFrames);
                            }
                        };
                final TriConsumer<DisplayFrames, WindowState, Rect> gestureFrameProvider =
                        (displayFrames, windowState, rect) -> {
                            rect.bottom = rect.top + getStatusBarHeight(displayFrames);
                            final DisplayCutout cutout =
                                    displayFrames.mInsetsState.getDisplayCutout();
                            if (cutout != null) {
                                final Rect top = cutout.getBoundingRectTop();
                                if (!top.isEmpty()) {
                                    rect.bottom = rect.bottom + mDisplayCutoutTouchableRegionSize;
                                }
                            }
                        };
                mDisplayContent.setInsetProvider(ITYPE_STATUS_BAR, win, frameProvider);
                mDisplayContent.setInsetProvider(ITYPE_TOP_MANDATORY_GESTURES, win, frameProvider);
                mDisplayContent.setInsetProvider(
                        ITYPE_TOP_MANDATORY_GESTURES, win, gestureFrameProvider);
                mDisplayContent.setInsetProvider(ITYPE_TOP_TAPPABLE_ELEMENT, win, frameProvider);
                break;
            case TYPE_NAVIGATION_BAR:
@@ -2108,11 +2123,14 @@ public class DisplayPolicy {
            mStatusBarHeightForRotation[landscapeRotation] =
                    mStatusBarHeightForRotation[seascapeRotation] =
                            res.getDimensionPixelSize(R.dimen.status_bar_height_landscape);
            mDisplayCutoutTouchableRegionSize = res.getDimensionPixelSize(
                    R.dimen.display_cutout_touchable_region_size);
        } else {
            mStatusBarHeightForRotation[portraitRotation] =
                    mStatusBarHeightForRotation[upsideDownRotation] =
                            mStatusBarHeightForRotation[landscapeRotation] =
                                    mStatusBarHeightForRotation[seascapeRotation] = 0;
            mDisplayCutoutTouchableRegionSize = 0;
        }

        // Height of the navigation bar when presented horizontally at bottom