mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-04 01:46:49 +00:00
Fix gesture insets issue for IMEs
- Setting the override frame for the gesture insets sources prevents the insets from being calculated correctly for the IME window - Update the set of provided insets based on the current nav mode so that we don't report gesture insets in button nav Bug: 265614886 Test: Dump IME window insets for button/gesture nav Change-Id: I22f9d09a66b50d6e2fb5002af19058657a06404d
This commit is contained in:
@@ -70,20 +70,9 @@ class TaskbarInsetsController(val context: TaskbarActivityContext) : LoggableTas
|
||||
fun init(controllers: TaskbarControllers) {
|
||||
this.controllers = controllers
|
||||
windowLayoutParams = context.windowLayoutParams
|
||||
windowLayoutParams.providedInsets =
|
||||
arrayOf(
|
||||
InsetsFrameProvider(insetsOwner, 0, navigationBars()),
|
||||
InsetsFrameProvider(insetsOwner, 0, tappableElement()),
|
||||
InsetsFrameProvider(insetsOwner, 0, mandatorySystemGestures()),
|
||||
InsetsFrameProvider(insetsOwner, INDEX_LEFT, systemGestures())
|
||||
.setSource(SOURCE_DISPLAY),
|
||||
InsetsFrameProvider(insetsOwner, INDEX_RIGHT, systemGestures())
|
||||
.setSource(SOURCE_DISPLAY)
|
||||
)
|
||||
|
||||
windowLayoutParams.insetsRoundedCornerFrame = true
|
||||
onTaskbarWindowHeightOrInsetsChanged()
|
||||
|
||||
windowLayoutParams.insetsRoundedCornerFrame = true
|
||||
context.addOnDeviceProfileChangeListener(deviceProfileChangeListener)
|
||||
gestureNavSettingsObserver.registerForCallingUser()
|
||||
}
|
||||
@@ -94,6 +83,25 @@ class TaskbarInsetsController(val context: TaskbarActivityContext) : LoggableTas
|
||||
}
|
||||
|
||||
fun onTaskbarWindowHeightOrInsetsChanged() {
|
||||
if (context.isGestureNav) {
|
||||
windowLayoutParams.providedInsets =
|
||||
arrayOf(
|
||||
InsetsFrameProvider(insetsOwner, 0, navigationBars()),
|
||||
InsetsFrameProvider(insetsOwner, 0, tappableElement()),
|
||||
InsetsFrameProvider(insetsOwner, 0, mandatorySystemGestures()),
|
||||
InsetsFrameProvider(insetsOwner, INDEX_LEFT, systemGestures())
|
||||
.setSource(SOURCE_DISPLAY),
|
||||
InsetsFrameProvider(insetsOwner, INDEX_RIGHT, systemGestures())
|
||||
.setSource(SOURCE_DISPLAY)
|
||||
)
|
||||
} else {
|
||||
windowLayoutParams.providedInsets =
|
||||
arrayOf(
|
||||
InsetsFrameProvider(insetsOwner, 0, navigationBars()),
|
||||
InsetsFrameProvider(insetsOwner, 0, tappableElement())
|
||||
)
|
||||
}
|
||||
|
||||
val touchableHeight = controllers.taskbarStashController.touchableHeight
|
||||
touchableRegion.set(
|
||||
0,
|
||||
@@ -146,7 +154,8 @@ class TaskbarInsetsController(val context: TaskbarActivityContext) : LoggableTas
|
||||
for (provider in windowLayoutParams.providedInsets) {
|
||||
if (context.isGestureNav && provider.type == tappableElement()) {
|
||||
provider.insetsSizeOverrides = insetsSizeOverrideForGestureNavTappableElement
|
||||
} else {
|
||||
} else if (provider.type != systemGestures()) {
|
||||
// We only override insets at the bottom of the screen
|
||||
provider.insetsSizeOverrides = insetsSizeOverride
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user