Report gesture height for mandatory system gestures

- We are currently reporting the content insets for the mandatory system
  gestures in taskbar, but for button nav we should actually be
  reporting zero, and for gesture nav we should either report the
  content height if the taskbar is pinned, or the gesture height
  otherwise as the bottom mandatory gesture inset

Bug: 340134342
Test: atest android.systemui.cts.WindowInsetsBehaviorTests
Change-Id: Ie4d56b62c903c273db95c19c9d34fcfe6c9ce486
This commit is contained in:
Winson Chung
2024-05-23 06:54:03 +00:00
parent 38ad424a17
commit 05682a059f

View File

@@ -51,6 +51,7 @@ import com.android.launcher3.anim.AlphaUpdateListener
import com.android.launcher3.config.FeatureFlags.ENABLE_TASKBAR_NAVBAR_UNIFICATION
import com.android.launcher3.config.FeatureFlags.enableTaskbarNoRecreate
import com.android.launcher3.taskbar.TaskbarControllers.LoggableTaskbarController
import com.android.launcher3.testing.shared.ResourceUtils
import com.android.launcher3.util.DisplayController
import java.io.PrintWriter
import kotlin.jvm.optionals.getOrNull
@@ -231,8 +232,24 @@ class TaskbarInsetsController(val context: TaskbarActivityContext) : LoggableTas
val contentHeight = controllers.taskbarStashController.contentHeightToReportToApps
val tappableHeight = controllers.taskbarStashController.tappableHeightToReportToApps
val res = context.resources
if (provider.type == navigationBars() || provider.type == mandatorySystemGestures()) {
if (provider.type == navigationBars()) {
provider.insetsSize = getInsetsForGravityWithCutout(contentHeight, gravity, endRotation)
} else if (provider.type == mandatorySystemGestures()) {
if (context.isThreeButtonNav) {
provider.insetsSize = Insets.of(0, 0, 0, 0)
} else {
val gestureHeight =
ResourceUtils.getNavbarSize(
ResourceUtils.NAVBAR_BOTTOM_GESTURE_SIZE,
context.resources)
val isPinnedTaskbar = context.deviceProfile.isTaskbarPresent
&& !context.deviceProfile.isTransientTaskbar
val mandatoryGestureHeight =
if (isPinnedTaskbar) contentHeight
else gestureHeight
provider.insetsSize = getInsetsForGravityWithCutout(mandatoryGestureHeight, gravity,
endRotation)
}
} else if (provider.type == tappableElement()) {
provider.insetsSize = getInsetsForGravity(tappableHeight, gravity)
} else if (provider.type == systemGestures() && provider.index == INDEX_LEFT) {