From e3f7624ecb9ac53d12d55f302b11ae357c53e00a Mon Sep 17 00:00:00 2001 From: Yunfan Chen Date: Thu, 31 Mar 2022 16:21:18 +0900 Subject: [PATCH] Adjust the insets frame providing method per API change The frameworks side made a change to provide different insets frames for different types of insets. Update the corresponding code to reflect that change. Test: build Bug: 215411414 Change-Id: I57ecbb778fd0f0d3a19cc6712d747cad6664644b --- .../launcher3/taskbar/TaskbarActivityContext.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java index 0f3a6eee47..2278da8bcd 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java @@ -28,6 +28,7 @@ import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_N import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_QUICK_SETTINGS_EXPANDED; import static com.android.systemui.shared.system.WindowManagerWrapper.ITYPE_BOTTOM_TAPPABLE_ELEMENT; import static com.android.systemui.shared.system.WindowManagerWrapper.ITYPE_EXTRA_NAVIGATION_BAR; +import static com.android.systemui.shared.system.WindowManagerWrapper.ITYPE_SIZE; import android.animation.AnimatorSet; import android.app.ActivityOptions; @@ -211,8 +212,12 @@ public class TaskbarActivityContext extends BaseTaskbarContext { ); // Adjust the frame by the rounded corners (ie. leaving just the bar as the inset) when // the IME is showing - mWindowLayoutParams.providedInternalImeInsets = Insets.of(0, + mWindowLayoutParams.providedInternalImeInsets = new Insets[ITYPE_SIZE]; + final Insets reducingSize = Insets.of(0, getDefaultTaskbarWindowHeight() - mTaskbarHeightForIme, 0, 0); + mWindowLayoutParams.providedInternalImeInsets[ITYPE_EXTRA_NAVIGATION_BAR] = reducingSize; + mWindowLayoutParams.providedInternalImeInsets[ITYPE_BOTTOM_TAPPABLE_ELEMENT] = + reducingSize; mWindowLayoutParams.insetsRoundedCornerFrame = true; @@ -548,8 +553,14 @@ public class TaskbarActivityContext extends BaseTaskbarContext { } } mWindowLayoutParams.height = height; - mWindowLayoutParams.providedInternalImeInsets = + final Insets reducingSize = Insets.of(0, height - mTaskbarHeightForIme, 0, 0); + if (mWindowLayoutParams.providedInternalImeInsets == null) { + mWindowLayoutParams.providedInternalImeInsets = new Insets[ITYPE_SIZE]; + } + mWindowLayoutParams.providedInternalImeInsets[ITYPE_EXTRA_NAVIGATION_BAR] = reducingSize; + mWindowLayoutParams.providedInternalImeInsets[ITYPE_BOTTOM_TAPPABLE_ELEMENT] = + reducingSize; mWindowManager.updateViewLayout(mDragLayer, mWindowLayoutParams); }