Merge "Fix WindowInsetsBehaviorTests failure" into sc-qpr1-dev
This commit is contained in:
@@ -355,6 +355,8 @@ public class DisplayPolicy {
|
|||||||
|
|
||||||
private PointerLocationView mPointerLocationView;
|
private PointerLocationView mPointerLocationView;
|
||||||
|
|
||||||
|
private int mDisplayCutoutTouchableRegionSize;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The area covered by system windows which belong to another display. Forwarded insets is set
|
* 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
|
* in case this is a virtual display, this is displayed on another display that has insets, and
|
||||||
@@ -1081,8 +1083,21 @@ public class DisplayPolicy {
|
|||||||
(displayFrames, windowState, rect) -> {
|
(displayFrames, windowState, rect) -> {
|
||||||
rect.bottom = rect.top + getStatusBarHeight(displayFrames);
|
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_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);
|
mDisplayContent.setInsetProvider(ITYPE_TOP_TAPPABLE_ELEMENT, win, frameProvider);
|
||||||
break;
|
break;
|
||||||
case TYPE_NAVIGATION_BAR:
|
case TYPE_NAVIGATION_BAR:
|
||||||
@@ -1993,11 +2008,14 @@ public class DisplayPolicy {
|
|||||||
mStatusBarHeightForRotation[landscapeRotation] =
|
mStatusBarHeightForRotation[landscapeRotation] =
|
||||||
mStatusBarHeightForRotation[seascapeRotation] =
|
mStatusBarHeightForRotation[seascapeRotation] =
|
||||||
res.getDimensionPixelSize(R.dimen.status_bar_height_landscape);
|
res.getDimensionPixelSize(R.dimen.status_bar_height_landscape);
|
||||||
|
mDisplayCutoutTouchableRegionSize = res.getDimensionPixelSize(
|
||||||
|
R.dimen.display_cutout_touchable_region_size);
|
||||||
} else {
|
} else {
|
||||||
mStatusBarHeightForRotation[portraitRotation] =
|
mStatusBarHeightForRotation[portraitRotation] =
|
||||||
mStatusBarHeightForRotation[upsideDownRotation] =
|
mStatusBarHeightForRotation[upsideDownRotation] =
|
||||||
mStatusBarHeightForRotation[landscapeRotation] =
|
mStatusBarHeightForRotation[landscapeRotation] =
|
||||||
mStatusBarHeightForRotation[seascapeRotation] = 0;
|
mStatusBarHeightForRotation[seascapeRotation] = 0;
|
||||||
|
mDisplayCutoutTouchableRegionSize = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Height of the navigation bar when presented horizontally at bottom
|
// Height of the navigation bar when presented horizontally at bottom
|
||||||
|
|||||||
Reference in New Issue
Block a user