From 7f6eb29b9a3ff2418b3a95a98f206ce22a954ef3 Mon Sep 17 00:00:00 2001 From: Yunfan Chen Date: Wed, 29 Jun 2022 16:54:24 +0900 Subject: [PATCH] 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 --- .../taskbar/TaskbarInsetsController.kt | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarInsetsController.kt b/quickstep/src/com/android/launcher3/taskbar/TaskbarInsetsController.kt index e4f82d25eb..dc5c22d017 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarInsetsController.kt +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarInsetsController.kt @@ -17,9 +17,11 @@ package com.android.launcher3.taskbar 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 @@ class TaskbarInsetsController(val context: TaskbarActivityContext): LoggableTask } 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 @@ class TaskbarInsetsController(val context: TaskbarActivityContext): LoggableTask 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() } } }