Merge "Remove Type.statusBars from compatInsetsTypes if FLAG_FULLSCREEN" into rvc-dev am: 0b237bb06f
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12157384 Change-Id: I82021bdc4f4d737feda4a20febf532db9fa1c850
This commit is contained in:
@@ -308,7 +308,7 @@ public class InsetsAnimationControlImpl implements WindowInsetsAnimationControll
|
||||
false /* isScreenRound */,
|
||||
false /* alwaysConsumeSystemBars */, null /* displayCutout */,
|
||||
LayoutParams.SOFT_INPUT_ADJUST_RESIZE /* legacySoftInputMode*/,
|
||||
0 /* legacySystemUiFlags */, typeSideMap)
|
||||
0 /* legacyWindowFlags */, 0 /* legacySystemUiFlags */, typeSideMap)
|
||||
.getInsets(mTypes);
|
||||
}
|
||||
|
||||
|
||||
@@ -501,6 +501,7 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
|
||||
private PendingControlRequest mPendingImeControlRequest;
|
||||
|
||||
private int mLastLegacySoftInputMode;
|
||||
private int mLastLegacyWindowFlags;
|
||||
private int mLastLegacySystemUiFlags;
|
||||
private DisplayCutout mLastDisplayCutout;
|
||||
private boolean mStartingAnimation;
|
||||
@@ -569,8 +570,8 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
|
||||
|
||||
WindowInsets insets = state.calculateInsets(mFrame, mState /* ignoringVisibilityState*/,
|
||||
mLastInsets.isRound(), mLastInsets.shouldAlwaysConsumeSystemBars(),
|
||||
mLastDisplayCutout, mLastLegacySoftInputMode, mLastLegacySystemUiFlags,
|
||||
null /* typeSideMap */);
|
||||
mLastDisplayCutout, mLastLegacySoftInputMode, mLastLegacyWindowFlags,
|
||||
mLastLegacySystemUiFlags, null /* typeSideMap */);
|
||||
mHost.dispatchWindowInsetsAnimationProgress(insets, mUnmodifiableTmpRunningAnims);
|
||||
if (DEBUG) {
|
||||
for (WindowInsetsAnimation anim : mUnmodifiableTmpRunningAnims) {
|
||||
@@ -706,13 +707,14 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
|
||||
@VisibleForTesting
|
||||
public WindowInsets calculateInsets(boolean isScreenRound,
|
||||
boolean alwaysConsumeSystemBars, DisplayCutout cutout,
|
||||
int legacySoftInputMode, int legacySystemUiFlags) {
|
||||
int legacySoftInputMode, int legacyWindowFlags, int legacySystemUiFlags) {
|
||||
mLastLegacySoftInputMode = legacySoftInputMode;
|
||||
mLastLegacyWindowFlags = legacyWindowFlags;
|
||||
mLastLegacySystemUiFlags = legacySystemUiFlags;
|
||||
mLastDisplayCutout = cutout;
|
||||
mLastInsets = mState.calculateInsets(mFrame, null /* ignoringVisibilityState*/,
|
||||
isScreenRound, alwaysConsumeSystemBars, cutout,
|
||||
legacySoftInputMode, legacySystemUiFlags,
|
||||
legacySoftInputMode, legacyWindowFlags, legacySystemUiFlags,
|
||||
null /* typeSideMap */);
|
||||
return mLastInsets;
|
||||
}
|
||||
|
||||
@@ -22,13 +22,14 @@ import static android.view.ViewRootImpl.NEW_INSETS_MODE_IME;
|
||||
import static android.view.ViewRootImpl.NEW_INSETS_MODE_NONE;
|
||||
import static android.view.ViewRootImpl.sNewInsetsMode;
|
||||
import static android.view.WindowInsets.Type.MANDATORY_SYSTEM_GESTURES;
|
||||
import static android.view.WindowInsets.Type.SIZE;
|
||||
import static android.view.WindowInsets.Type.SYSTEM_GESTURES;
|
||||
import static android.view.WindowInsets.Type.displayCutout;
|
||||
import static android.view.WindowInsets.Type.ime;
|
||||
import static android.view.WindowInsets.Type.indexOf;
|
||||
import static android.view.WindowInsets.Type.isVisibleInsetsType;
|
||||
import static android.view.WindowInsets.Type.statusBars;
|
||||
import static android.view.WindowInsets.Type.systemBars;
|
||||
import static android.view.WindowManager.LayoutParams.FLAG_FULLSCREEN;
|
||||
import static android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE;
|
||||
import static android.view.WindowManager.LayoutParams.SOFT_INPUT_MASK_ADJUST;
|
||||
|
||||
@@ -38,7 +39,6 @@ import android.graphics.Insets;
|
||||
import android.graphics.Rect;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import android.util.ArrayMap;
|
||||
import android.util.ArraySet;
|
||||
import android.util.SparseIntArray;
|
||||
import android.view.WindowInsets.Type;
|
||||
@@ -171,7 +171,7 @@ public class InsetsState implements Parcelable {
|
||||
*/
|
||||
public WindowInsets calculateInsets(Rect frame, @Nullable InsetsState ignoringVisibilityState,
|
||||
boolean isScreenRound, boolean alwaysConsumeSystemBars, DisplayCutout cutout,
|
||||
int legacySoftInputMode, int legacySystemUiFlags,
|
||||
int legacySoftInputMode, int legacyWindowFlags, int legacySystemUiFlags,
|
||||
@Nullable @InternalInsetsSide SparseIntArray typeSideMap) {
|
||||
Insets[] typeInsetsMap = new Insets[Type.SIZE];
|
||||
Insets[] typeMaxInsetsMap = new Insets[Type.SIZE];
|
||||
@@ -218,10 +218,17 @@ public class InsetsState implements Parcelable {
|
||||
}
|
||||
}
|
||||
final int softInputAdjustMode = legacySoftInputMode & SOFT_INPUT_MASK_ADJUST;
|
||||
|
||||
@InsetsType int compatInsetsTypes = systemBars() | displayCutout();
|
||||
if (softInputAdjustMode == SOFT_INPUT_ADJUST_RESIZE) {
|
||||
compatInsetsTypes |= ime();
|
||||
}
|
||||
if ((legacyWindowFlags & FLAG_FULLSCREEN) != 0) {
|
||||
compatInsetsTypes &= ~statusBars();
|
||||
}
|
||||
|
||||
return new WindowInsets(typeInsetsMap, typeMaxInsetsMap, typeVisibilityMap, isScreenRound,
|
||||
alwaysConsumeSystemBars, cutout, softInputAdjustMode == SOFT_INPUT_ADJUST_RESIZE
|
||||
? systemBars() | displayCutout() | ime()
|
||||
: systemBars() | displayCutout(),
|
||||
alwaysConsumeSystemBars, cutout, compatInsetsTypes,
|
||||
sNewInsetsMode == NEW_INSETS_MODE_FULL
|
||||
&& (legacySystemUiFlags & SYSTEM_UI_FLAG_LAYOUT_STABLE) != 0);
|
||||
}
|
||||
|
||||
@@ -2265,7 +2265,8 @@ public final class ViewRootImpl implements ViewParent,
|
||||
mLastWindowInsets = mInsetsController.calculateInsets(
|
||||
mContext.getResources().getConfiguration().isScreenRound(),
|
||||
mAttachInfo.mAlwaysConsumeSystemBars, mPendingDisplayCutout.get(),
|
||||
mWindowAttributes.softInputMode, (mWindowAttributes.systemUiVisibility
|
||||
mWindowAttributes.softInputMode, mWindowAttributes.flags,
|
||||
(mWindowAttributes.systemUiVisibility
|
||||
| mWindowAttributes.subtreeSystemUiVisibility));
|
||||
|
||||
Rect visibleInsets = mInsetsController.calculateVisibleInsets(
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
|
||||
package android.view;
|
||||
|
||||
import static android.view.WindowInsets.Type.CAPTION_BAR;
|
||||
import static android.view.WindowInsets.Type.DISPLAY_CUTOUT;
|
||||
import static android.view.WindowInsets.Type.FIRST;
|
||||
import static android.view.WindowInsets.Type.IME;
|
||||
@@ -95,7 +94,7 @@ public final class WindowInsets {
|
||||
private final boolean mStableInsetsConsumed;
|
||||
private final boolean mDisplayCutoutConsumed;
|
||||
|
||||
private final int mCompatInsetTypes;
|
||||
private final int mCompatInsetsTypes;
|
||||
private final boolean mCompatIgnoreVisibility;
|
||||
|
||||
/**
|
||||
@@ -150,8 +149,8 @@ public final class WindowInsets {
|
||||
@Nullable Insets[] typeMaxInsetsMap,
|
||||
boolean[] typeVisibilityMap,
|
||||
boolean isRound,
|
||||
boolean alwaysConsumeSystemBars, DisplayCutout displayCutout, int compatInsetTypes,
|
||||
boolean compatIgnoreVisibility) {
|
||||
boolean alwaysConsumeSystemBars, DisplayCutout displayCutout,
|
||||
@InsetsType int compatInsetsTypes, boolean compatIgnoreVisibility) {
|
||||
mSystemWindowInsetsConsumed = typeInsetsMap == null;
|
||||
mTypeInsetsMap = mSystemWindowInsetsConsumed
|
||||
? new Insets[SIZE]
|
||||
@@ -165,7 +164,7 @@ public final class WindowInsets {
|
||||
mTypeVisibilityMap = typeVisibilityMap;
|
||||
mIsRound = isRound;
|
||||
mAlwaysConsumeSystemBars = alwaysConsumeSystemBars;
|
||||
mCompatInsetTypes = compatInsetTypes;
|
||||
mCompatInsetsTypes = compatInsetsTypes;
|
||||
mCompatIgnoreVisibility = compatIgnoreVisibility;
|
||||
|
||||
mDisplayCutoutConsumed = displayCutout == null;
|
||||
@@ -183,7 +182,7 @@ public final class WindowInsets {
|
||||
src.mStableInsetsConsumed ? null : src.mTypeMaxInsetsMap,
|
||||
src.mTypeVisibilityMap, src.mIsRound,
|
||||
src.mAlwaysConsumeSystemBars, displayCutoutCopyConstructorArgument(src),
|
||||
src.mCompatInsetTypes,
|
||||
src.mCompatInsetsTypes,
|
||||
src.mCompatIgnoreVisibility);
|
||||
}
|
||||
|
||||
@@ -310,11 +309,11 @@ public final class WindowInsets {
|
||||
@NonNull
|
||||
public Insets getSystemWindowInsets() {
|
||||
Insets result = mCompatIgnoreVisibility
|
||||
? getInsetsIgnoringVisibility(mCompatInsetTypes & ~ime())
|
||||
: getInsets(mCompatInsetTypes);
|
||||
? getInsetsIgnoringVisibility(mCompatInsetsTypes & ~ime())
|
||||
: getInsets(mCompatInsetsTypes);
|
||||
|
||||
// We can't query max insets for IME, so we need to add it manually after.
|
||||
if ((mCompatInsetTypes & ime()) != 0 && mCompatIgnoreVisibility) {
|
||||
if ((mCompatInsetsTypes & ime()) != 0 && mCompatIgnoreVisibility) {
|
||||
result = Insets.max(result, getInsets(ime()));
|
||||
}
|
||||
return result;
|
||||
@@ -503,7 +502,7 @@ public final class WindowInsets {
|
||||
mTypeVisibilityMap,
|
||||
mIsRound, mAlwaysConsumeSystemBars,
|
||||
null /* displayCutout */,
|
||||
mCompatInsetTypes, mCompatIgnoreVisibility);
|
||||
mCompatInsetsTypes, mCompatIgnoreVisibility);
|
||||
}
|
||||
|
||||
|
||||
@@ -554,7 +553,7 @@ public final class WindowInsets {
|
||||
mTypeVisibilityMap,
|
||||
mIsRound, mAlwaysConsumeSystemBars,
|
||||
displayCutoutCopyConstructorArgument(this),
|
||||
mCompatInsetTypes, mCompatIgnoreVisibility);
|
||||
mCompatInsetsTypes, mCompatIgnoreVisibility);
|
||||
}
|
||||
|
||||
// TODO(b/119190588): replace @code with @link below
|
||||
@@ -627,7 +626,7 @@ public final class WindowInsets {
|
||||
@Deprecated
|
||||
@NonNull
|
||||
public Insets getStableInsets() {
|
||||
return getInsets(mTypeMaxInsetsMap, mCompatInsetTypes);
|
||||
return getInsets(mTypeMaxInsetsMap, mCompatInsetsTypes);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -939,7 +938,7 @@ public final class WindowInsets {
|
||||
: mDisplayCutout == null
|
||||
? DisplayCutout.NO_CUTOUT
|
||||
: mDisplayCutout.inset(left, top, right, bottom),
|
||||
mCompatInsetTypes, mCompatIgnoreVisibility);
|
||||
mCompatInsetsTypes, mCompatIgnoreVisibility);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -276,7 +276,7 @@ public final class WindowManagerImpl implements WindowManager {
|
||||
if (ViewRootImpl.sNewInsetsMode == NEW_INSETS_MODE_FULL) {
|
||||
return insetsState.calculateInsets(bounds, null /* ignoringVisibilityState*/,
|
||||
isScreenRound, alwaysConsumeSystemBars, displayCutout.get(),
|
||||
SOFT_INPUT_ADJUST_NOTHING,
|
||||
SOFT_INPUT_ADJUST_NOTHING, attrs.flags,
|
||||
SYSTEM_UI_FLAG_VISIBLE, null /* typeSideMap */);
|
||||
} else {
|
||||
return new WindowInsets.Builder()
|
||||
|
||||
@@ -86,7 +86,7 @@ public class ImeInsetsSourceConsumerTest {
|
||||
false,
|
||||
new DisplayCutout(
|
||||
Insets.of(10, 10, 10, 10), rect, rect, rect, rect),
|
||||
SOFT_INPUT_ADJUST_RESIZE, 0);
|
||||
SOFT_INPUT_ADJUST_RESIZE, 0, 0);
|
||||
mImeConsumer = (ImeInsetsSourceConsumer) mController.getSourceConsumer(ITYPE_IME);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -165,7 +165,7 @@ public class InsetsControllerTest {
|
||||
false,
|
||||
new DisplayCutout(
|
||||
Insets.of(10, 10, 10, 10), rect, rect, rect, rect),
|
||||
SOFT_INPUT_ADJUST_RESIZE, 0);
|
||||
SOFT_INPUT_ADJUST_RESIZE, 0, 0);
|
||||
mController.onFrameChanged(new Rect(0, 0, 100, 100));
|
||||
});
|
||||
InstrumentationRegistry.getInstrumentation().waitForIdleSync();
|
||||
|
||||
@@ -29,6 +29,7 @@ import static android.view.View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
|
||||
import static android.view.WindowInsets.Type.ime;
|
||||
import static android.view.WindowInsets.Type.navigationBars;
|
||||
import static android.view.WindowInsets.Type.statusBars;
|
||||
import static android.view.WindowManager.LayoutParams.FLAG_FULLSCREEN;
|
||||
import static android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING;
|
||||
import static android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN;
|
||||
import static android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE;
|
||||
@@ -77,7 +78,7 @@ public class InsetsStateTest {
|
||||
mState.getSource(ITYPE_IME).setVisible(true);
|
||||
SparseIntArray typeSideMap = new SparseIntArray();
|
||||
WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), null, false,
|
||||
false, DisplayCutout.NO_CUTOUT, SOFT_INPUT_ADJUST_RESIZE, 0, typeSideMap);
|
||||
false, DisplayCutout.NO_CUTOUT, SOFT_INPUT_ADJUST_RESIZE, 0, 0, typeSideMap);
|
||||
assertEquals(Insets.of(0, 100, 0, 100), insets.getSystemWindowInsets());
|
||||
assertEquals(Insets.of(0, 100, 0, 100), insets.getInsets(Type.all()));
|
||||
assertEquals(ISIDE_TOP, typeSideMap.get(ITYPE_STATUS_BAR));
|
||||
@@ -96,7 +97,7 @@ public class InsetsStateTest {
|
||||
mState.getSource(ITYPE_IME).setFrame(new Rect(0, 100, 100, 300));
|
||||
mState.getSource(ITYPE_IME).setVisible(true);
|
||||
WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), null, false,
|
||||
false, DisplayCutout.NO_CUTOUT, SOFT_INPUT_ADJUST_RESIZE, 0, null);
|
||||
false, DisplayCutout.NO_CUTOUT, SOFT_INPUT_ADJUST_RESIZE, 0, 0, null);
|
||||
assertEquals(100, insets.getStableInsetBottom());
|
||||
assertEquals(Insets.of(0, 0, 0, 100), insets.getInsetsIgnoringVisibility(Type.systemBars()));
|
||||
assertEquals(Insets.of(0, 0, 0, 200), insets.getSystemWindowInsets());
|
||||
@@ -115,7 +116,7 @@ public class InsetsStateTest {
|
||||
mState.getSource(ITYPE_NAVIGATION_BAR).setFrame(new Rect(80, 0, 100, 300));
|
||||
mState.getSource(ITYPE_NAVIGATION_BAR).setVisible(true);
|
||||
WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), null, false,
|
||||
false, DisplayCutout.NO_CUTOUT, 0, 0, null);
|
||||
false, DisplayCutout.NO_CUTOUT, 0, 0, 0, null);
|
||||
assertEquals(Insets.of(0, 100, 20, 0), insets.getSystemWindowInsets());
|
||||
assertEquals(Insets.of(0, 100, 0, 0), insets.getInsets(Type.statusBars()));
|
||||
assertEquals(Insets.of(0, 0, 20, 0), insets.getInsets(Type.navigationBars()));
|
||||
@@ -131,7 +132,7 @@ public class InsetsStateTest {
|
||||
mState.getSource(ITYPE_IME).setFrame(new Rect(0, 200, 100, 300));
|
||||
mState.getSource(ITYPE_IME).setVisible(true);
|
||||
WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), null, false,
|
||||
false, DisplayCutout.NO_CUTOUT, SOFT_INPUT_ADJUST_NOTHING, 0, null);
|
||||
false, DisplayCutout.NO_CUTOUT, SOFT_INPUT_ADJUST_NOTHING, 0, 0, null);
|
||||
assertEquals(0, insets.getSystemWindowInsetBottom());
|
||||
assertEquals(100, insets.getInsets(ime()).bottom);
|
||||
assertTrue(insets.isVisible(ime()));
|
||||
@@ -147,11 +148,28 @@ public class InsetsStateTest {
|
||||
mState.getSource(ITYPE_IME).setFrame(new Rect(0, 200, 100, 300));
|
||||
mState.getSource(ITYPE_IME).setVisible(true);
|
||||
WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), null, false,
|
||||
false, DisplayCutout.NO_CUTOUT, SOFT_INPUT_ADJUST_NOTHING,
|
||||
false, DisplayCutout.NO_CUTOUT, SOFT_INPUT_ADJUST_NOTHING, 0,
|
||||
SYSTEM_UI_FLAG_LAYOUT_STABLE, null);
|
||||
assertEquals(100, insets.getSystemWindowInsetTop());
|
||||
insets = mState.calculateInsets(new Rect(0, 0, 100, 300), null, false, false,
|
||||
DisplayCutout.NO_CUTOUT, SOFT_INPUT_ADJUST_NOTHING,
|
||||
DisplayCutout.NO_CUTOUT, SOFT_INPUT_ADJUST_NOTHING, 0,
|
||||
0 /* legacySystemUiFlags */, null);
|
||||
assertEquals(0, insets.getSystemWindowInsetTop());
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCalculateInsets_systemUiFlagLayoutStable_windowFlagFullscreen() {
|
||||
try (final InsetsModeSession session =
|
||||
new InsetsModeSession(ViewRootImpl.NEW_INSETS_MODE_FULL)) {
|
||||
mState.getSource(ITYPE_STATUS_BAR).setFrame(new Rect(0, 0, 100, 100));
|
||||
mState.getSource(ITYPE_STATUS_BAR).setVisible(false);
|
||||
WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), null, false,
|
||||
false, DisplayCutout.NO_CUTOUT, SOFT_INPUT_ADJUST_NOTHING, FLAG_FULLSCREEN,
|
||||
SYSTEM_UI_FLAG_LAYOUT_STABLE, null);
|
||||
assertEquals(0, insets.getSystemWindowInsetTop());
|
||||
insets = mState.calculateInsets(new Rect(0, 0, 100, 300), null, false, false,
|
||||
DisplayCutout.NO_CUTOUT, SOFT_INPUT_ADJUST_NOTHING, 0,
|
||||
0 /* legacySystemUiFlags */, null);
|
||||
assertEquals(0, insets.getSystemWindowInsetTop());
|
||||
}
|
||||
@@ -195,7 +213,7 @@ public class InsetsStateTest {
|
||||
mState.getSource(ITYPE_EXTRA_NAVIGATION_BAR).setFrame(new Rect(80, 0, 100, 300));
|
||||
mState.getSource(ITYPE_EXTRA_NAVIGATION_BAR).setVisible(true);
|
||||
WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), null, false,
|
||||
false, DisplayCutout.NO_CUTOUT, 0, 0, null);
|
||||
false, DisplayCutout.NO_CUTOUT, 0, 0, 0, null);
|
||||
assertEquals(Insets.of(0, 100, 20, 0), insets.getSystemWindowInsets());
|
||||
assertEquals(Insets.of(0, 100, 0, 0), insets.getInsets(Type.statusBars()));
|
||||
assertEquals(Insets.of(0, 0, 20, 0), insets.getInsets(Type.navigationBars()));
|
||||
@@ -211,7 +229,7 @@ public class InsetsStateTest {
|
||||
mState.getSource(ITYPE_NAVIGATION_BAR).setFrame(new Rect(80, 0, 100, 300));
|
||||
mState.getSource(ITYPE_NAVIGATION_BAR).setVisible(true);
|
||||
WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), null, false,
|
||||
false, DisplayCutout.NO_CUTOUT, 0, 0, null);
|
||||
false, DisplayCutout.NO_CUTOUT, 0, 0, 0, null);
|
||||
assertEquals(Insets.of(0, 100, 20, 0), insets.getSystemWindowInsets());
|
||||
assertEquals(Insets.of(0, 100, 0, 0), insets.getInsets(Type.statusBars()));
|
||||
assertEquals(Insets.of(0, 0, 20, 0), insets.getInsets(Type.navigationBars()));
|
||||
@@ -226,7 +244,7 @@ public class InsetsStateTest {
|
||||
mState.getSource(ITYPE_IME).setVisible(true);
|
||||
mState.removeSource(ITYPE_IME);
|
||||
WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), null, false, false,
|
||||
DisplayCutout.NO_CUTOUT, SOFT_INPUT_ADJUST_RESIZE, 0, null);
|
||||
DisplayCutout.NO_CUTOUT, SOFT_INPUT_ADJUST_RESIZE, 0, 0, null);
|
||||
assertEquals(0, insets.getSystemWindowInsetBottom());
|
||||
}
|
||||
|
||||
|
||||
@@ -615,8 +615,9 @@ class TaskSnapshotController {
|
||||
static Rect getSystemBarInsets(Rect frame, InsetsState state) {
|
||||
return state.calculateInsets(frame, null /* ignoringVisibilityState */,
|
||||
false /* isScreenRound */, false /* alwaysConsumeSystemBars */,
|
||||
null /* displayCutout */, 0 /* legacySoftInputMode */, 0 /* legacySystemUiFlags */,
|
||||
null /* typeSideMap */).getInsets(WindowInsets.Type.systemBars()).toRect();
|
||||
null /* displayCutout */, 0 /* legacySoftInputMode */, 0 /* legacyWindowFlags */,
|
||||
0 /* legacySystemUiFlags */, null /* typeSideMap */).getInsets(
|
||||
WindowInsets.Type.systemBars()).toRect();
|
||||
}
|
||||
|
||||
void dump(PrintWriter pw, String prefix) {
|
||||
|
||||
Reference in New Issue
Block a user