Account for cutouts in system insets (as done previously)

Bug: 167389393
Test: atest DecorViewTest
Change-Id: I75554224171e1e6a32892db53e0243c38a7b5169
Merged-In: I75554224171e1e6a32892db53e0243c38a7b5169
This commit is contained in:
Winson Chung
2020-09-21 16:34:52 -07:00
parent c8eaff3037
commit 7c7d7d4e25

View File

@@ -1094,13 +1094,15 @@ public class DecorView extends FrameLayout implements RootViewSurfaceTaker, Wind
mLastWindowFlags = attrs.flags;
if (insets != null) {
final Insets systemBarInsets = insets.getInsets(WindowInsets.Type.systemBars());
final Insets stableBarInsets = insets.getInsetsIgnoringVisibility(
WindowInsets.Type.systemBars());
mLastTopInset = systemBarInsets.top;
mLastBottomInset = systemBarInsets.bottom;
mLastRightInset = systemBarInsets.right;
mLastLeftInset = systemBarInsets.left;
final Insets systemInsets = 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