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

This commit is contained in:
Yunfan Chen
2023-01-30 09:36:49 +00:00
committed by Android (Google) Code Review

View File

@@ -2007,7 +2007,8 @@ public class DisplayPolicy {
dc.getDisplayPolicy().simulateLayoutDisplay(df); dc.getDisplayPolicy().simulateLayoutDisplay(df);
final InsetsState insetsState = df.mInsetsState; final InsetsState insetsState = df.mInsetsState;
final Rect displayFrame = insetsState.getDisplayFrame(); 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, final Insets statusBar = insetsState.calculateInsets(displayFrame,
Type.statusBars(), true /* ignoreVisibility */); Type.statusBars(), true /* ignoreVisibility */);
mNonDecorInsets.set(decor.left, decor.top, decor.right, decor.bottom); mNonDecorInsets.set(decor.left, decor.top, decor.right, decor.bottom);
@@ -2039,17 +2040,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 int DECOR_TYPES = Type.displayCutout() | Type.navigationBars();
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);
}
}
private final DisplayContent mDisplayContent; private final DisplayContent mDisplayContent;
private final Info[] mInfoForRotation = new Info[4]; private final Info[] mInfoForRotation = new Info[4];
@@ -2076,20 +2068,6 @@ public class DisplayPolicy {
info.mNeedUpdate = true; 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;
}
} }
/** /**