Provide IME insets with insetsSizeOverrides
The frameworks extended the API to let window provide insets to given
typed window with insetsSizeOverrides. Migrate to the method to
provide insets for IME.
Test: build
Test: the IME can receive correct insets
Bug: 225200928
Change-Id: Ic8eab5198221bc8de6eca432e8b3e11067c83d57
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarInsetsController.kt b/quickstep/src/com/android/launcher3/taskbar/TaskbarInsetsController.kt
index e4f82d2..dc5c22d 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarInsetsController.kt
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarInsetsController.kt
@@ -17,9 +17,11 @@
import android.graphics.Insets
import android.graphics.Region
+import android.view.InsetsFrameProvider
import android.view.InsetsState.ITYPE_BOTTOM_MANDATORY_GESTURES
import android.view.InsetsState
import android.view.WindowManager
+import android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD
import com.android.launcher3.AbstractFloatingView
import com.android.launcher3.AbstractFloatingView.TYPE_TASKBAR_ALL_APPS
import com.android.launcher3.DeviceProfile
@@ -87,8 +89,14 @@
}
var imeInsetsSize = Insets.of(0, 0, 0, taskbarHeightForIme)
+ var insetsSizeOverride = arrayOf(
+ InsetsFrameProvider.InsetsSizeOverride(
+ TYPE_INPUT_METHOD,
+ imeInsetsSize
+ )
+ )
for (provider in windowLayoutParams.providedInsets) {
- provider.imeInsetsSize = imeInsetsSize
+ provider.insetsSizeOverrides = insetsSizeOverride
}
}
@@ -141,9 +149,16 @@
pw.println(prefix + "TaskbarInsetsController:")
pw.println("$prefix\twindowHeight=${windowLayoutParams.height}")
for (provider in windowLayoutParams.providedInsets) {
- pw.println("$prefix\tprovidedInsets: (type=" + InsetsState.typeToString(provider.type)
- + " insetsSize=" + provider.insetsSize
- + " imeInsetsSize=" + provider.imeInsetsSize + ")")
+ pw.print("$prefix\tprovidedInsets: (type=" + InsetsState.typeToString(provider.type)
+ + " insetsSize=" + provider.insetsSize)
+ if (provider.insetsSizeOverrides != null) {
+ pw.print(" insetsSizeOverrides={")
+ for (overrideSize in provider.insetsSizeOverrides) {
+ pw.print(overrideSize)
+ }
+ pw.print("})")
+ }
+ pw.println()
}
}
}