Merge "Do not override insets frame if not set" into tm-dev am: bfa7c5d24b am: 08d79c8f4d

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

Change-Id: Iaaeecf8f0e9945eeca913b041b08558e0689aa6a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Yunfan Chen
2022-05-13 08:59:58 +00:00
committed by Automerger Merge Worker

View File

@@ -1206,7 +1206,8 @@ public class DisplayPolicy {
if (attrs.providesInsetsTypes != null) {
for (@InternalInsetsType int insetsType : attrs.providesInsetsTypes) {
final TriConsumer<DisplayFrames, WindowContainer, Rect> imeFrameProvider =
(displayFrames, windowContainer, inOutFrame) -> {
win.getAttrs().providedInternalImeInsets != null
? (displayFrames, windowContainer, inOutFrame) -> {
final Insets[] providedInternalImeInsets =
win.getLayoutingAttrs(displayFrames.mRotation)
.providedInternalImeInsets;
@@ -1215,7 +1216,7 @@ public class DisplayPolicy {
&& providedInternalImeInsets[insetsType] != null) {
inOutFrame.inset(providedInternalImeInsets[insetsType]);
}
};
} : null;
switch (insetsType) {
case ITYPE_STATUS_BAR:
mStatusBarAlt = win;
@@ -1234,17 +1235,18 @@ public class DisplayPolicy {
mExtraNavBarAltPosition = getAltBarPosition(attrs);
break;
}
mDisplayContent.setInsetProvider(insetsType, win, (displayFrames,
windowContainer, inOutFrame) -> {
final Insets[] providedInternalInsets = win.getLayoutingAttrs(
displayFrames.mRotation).providedInternalInsets;
if (providedInternalInsets != null
&& providedInternalInsets.length > insetsType
&& providedInternalInsets[insetsType] != null) {
inOutFrame.inset(providedInternalInsets[insetsType]);
}
inOutFrame.inset(win.mGivenContentInsets);
}, imeFrameProvider);
mDisplayContent.setInsetProvider(insetsType, win,
win.getAttrs().providedInternalInsets != null ? (displayFrames,
windowContainer, inOutFrame) -> {
final Insets[] providedInternalInsets = win.getLayoutingAttrs(
displayFrames.mRotation).providedInternalInsets;
if (providedInternalInsets != null
&& providedInternalInsets.length > insetsType
&& providedInternalInsets[insetsType] != null) {
inOutFrame.inset(providedInternalInsets[insetsType]);
}
inOutFrame.inset(win.mGivenContentInsets);
} : null, imeFrameProvider);
mInsetsSourceWindowsExceptIme.add(win);
}
}