Revert "Revert "Make extra navigation bar count towards non decor frame (3/3)""
This reverts commit aa0e31a7d2.
Reason for revert: This is still needed to avoid compatibility issue on taskbar devices.
Test: CtsWidgetTestCases, InputMethodServiceTest
Test: android.platform.test.scenario, ViewTests
Bug: 236927938
Bug: 233945217
Change-Id: I4527a15ddc26ffc43f19267d194b4bf6af2696b8
This commit is contained in:
@@ -2006,7 +2006,8 @@ public class DisplayPolicy {
|
||||
dc.getDisplayPolicy().simulateLayoutDisplay(df);
|
||||
final InsetsState insetsState = df.mInsetsState;
|
||||
final Rect displayFrame = insetsState.getDisplayFrame();
|
||||
final Insets decor = calculateDecorInsetsWithInternalTypes(insetsState);
|
||||
final Insets decor = insetsState.calculateInsets(displayFrame, DECOR_TYPES,
|
||||
true /* ignoreVisibility */);
|
||||
final Insets statusBar = insetsState.calculateInsets(displayFrame,
|
||||
Type.statusBars(), true /* ignoreVisibility */);
|
||||
mNonDecorInsets.set(decor.left, decor.top, decor.right, decor.bottom);
|
||||
@@ -2038,17 +2039,8 @@ public class DisplayPolicy {
|
||||
}
|
||||
}
|
||||
|
||||
// TODO (b/235842600): Use public type once we can treat task bar as navigation bar.
|
||||
static final int[] INTERNAL_DECOR_TYPES;
|
||||
static {
|
||||
final ArraySet<Integer> decorTypes = InsetsState.toInternalType(
|
||||
Type.displayCutout() | Type.navigationBars());
|
||||
decorTypes.remove(ITYPE_EXTRA_NAVIGATION_BAR);
|
||||
INTERNAL_DECOR_TYPES = new int[decorTypes.size()];
|
||||
for (int i = 0; i < INTERNAL_DECOR_TYPES.length; i++) {
|
||||
INTERNAL_DECOR_TYPES[i] = decorTypes.valueAt(i);
|
||||
}
|
||||
}
|
||||
|
||||
static final int DECOR_TYPES = Type.displayCutout() | Type.navigationBars();
|
||||
|
||||
private final DisplayContent mDisplayContent;
|
||||
private final Info[] mInfoForRotation = new Info[4];
|
||||
@@ -2075,20 +2067,6 @@ public class DisplayPolicy {
|
||||
info.mNeedUpdate = true;
|
||||
}
|
||||
}
|
||||
|
||||
// TODO (b/235842600): Remove this method once we can treat task bar as navigation bar.
|
||||
private static Insets calculateDecorInsetsWithInternalTypes(InsetsState state) {
|
||||
final Rect frame = state.getDisplayFrame();
|
||||
Insets insets = Insets.NONE;
|
||||
for (int i = INTERNAL_DECOR_TYPES.length - 1; i >= 0; i--) {
|
||||
final InsetsSource source = state.peekSource(INTERNAL_DECOR_TYPES[i]);
|
||||
if (source != null) {
|
||||
insets = Insets.max(source.calculateInsets(frame, true /* ignoreVisibility */),
|
||||
insets);
|
||||
}
|
||||
}
|
||||
return insets;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user