diff options
| author | 2022-05-13 08:58:10 +0000 | |
|---|---|---|
| committer | 2022-05-13 08:58:10 +0000 | |
| commit | 08d79c8f4dd32a8f3ef0a8943fa99845ef75e107 (patch) | |
| tree | db13ea0a525f0db51ecd1b6c677624ca754ad8c5 | |
| parent | 993a098f611ebd85a62a4ddf51f6cebc0c661c6f (diff) | |
| parent | bfa7c5d24b0e988067c8dd94782d6d25927cfa16 (diff) | |
Merge "Do not override insets frame if not set" into tm-dev am: bfa7c5d24b
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18331263
Change-Id: I713dd877b87e9455a4f198196d0896ebe50f8d24
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | services/core/java/com/android/server/wm/DisplayPolicy.java | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/services/core/java/com/android/server/wm/DisplayPolicy.java b/services/core/java/com/android/server/wm/DisplayPolicy.java index 02b42218e800..442f70846118 100644 --- a/services/core/java/com/android/server/wm/DisplayPolicy.java +++ b/services/core/java/com/android/server/wm/DisplayPolicy.java @@ -1190,7 +1190,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; @@ -1199,7 +1200,7 @@ public class DisplayPolicy { && providedInternalImeInsets[insetsType] != null) { inOutFrame.inset(providedInternalImeInsets[insetsType]); } - }; + } : null; switch (insetsType) { case ITYPE_STATUS_BAR: mStatusBarAlt = win; @@ -1218,17 +1219,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); } } |