Merge "Revert "Revert "Revert "Revert "Make extra navigation bar count towards non decor frame (3/3)""""" into tm-qpr-dev am: ba3d01f1eb am: 96ba88202c

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/21547640

Change-Id: If4071179d13d3c30fb5fbcfd29a2ece008f02868
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Jorim Jaggi
2023-02-23 16:48:18 +00:00
committed by Automerger Merge Worker

View File

@@ -1801,7 +1801,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);
@@ -1833,17 +1834,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];
@@ -1870,20 +1862,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;
}
}
/**