Merge "Account for cutouts in system insets (as done previously)"

This commit is contained in:
Winson Chung
2020-09-23 19:30:13 +00:00
committed by Android (Google) Code Review

View File

@@ -1105,15 +1105,18 @@ public class DecorView extends FrameLayout implements RootViewSurfaceTaker, Wind
: controller.getSystemBarsAppearance();
if (insets != null) {
final Insets systemBarInsets = insets.getInsets(WindowInsets.Type.systemBars());
final Insets stableBarInsets = insets.getInsetsIgnoringVisibility(
WindowInsets.Type.systemBars());
final boolean clearCompatInsets = clearCompatInsets(attrs.type, attrs.flags,
getResources().getConfiguration().windowConfiguration.getWindowingMode());
mLastTopInset = clearCompatInsets ? 0 : systemBarInsets.top;
mLastBottomInset = clearCompatInsets ? 0 : systemBarInsets.bottom;
mLastRightInset = clearCompatInsets ? 0 : systemBarInsets.right;
mLastLeftInset = clearCompatInsets ? 0 : systemBarInsets.left;
final Insets stableBarInsets = insets.getInsetsIgnoringVisibility(
WindowInsets.Type.systemBars());
final Insets systemInsets = clearCompatInsets
? Insets.NONE
: Insets.min(insets.getInsets(WindowInsets.Type.systemBars()
| WindowInsets.Type.displayCutout()), stableBarInsets);
mLastTopInset = systemInsets.top;
mLastBottomInset = systemInsets.bottom;
mLastRightInset = systemInsets.right;
mLastLeftInset = systemInsets.left;
// Don't animate if the presence of stable insets has changed, because that
// indicates that the window was either just added and received them for the