Merge "Handle touches on the bubble bar in Overview" into udc-qpr-dev am: 5e7ca0c0b3

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/24512108

Change-Id: I76d072fbf6bad5d0b779b8a753e934ccb23a8ec2
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Liran Binyamin
2023-08-23 19:15:22 +00:00
committed by Automerger Merge Worker
2 changed files with 23 additions and 2 deletions

View File

@@ -44,6 +44,7 @@ import com.android.launcher3.anim.AlphaUpdateListener
import com.android.launcher3.taskbar.TaskbarControllers.LoggableTaskbarController
import com.android.launcher3.util.DisplayController
import java.io.PrintWriter
import kotlin.jvm.optionals.getOrNull
/** Handles the insets that Taskbar provides to underlying apps and the IME. */
class TaskbarInsetsController(val context: TaskbarActivityContext) : LoggableTaskbarController {
@@ -290,9 +291,24 @@ class TaskbarInsetsController(val context: TaskbarActivityContext) : LoggableTas
controllers.uiController.isInOverview &&
DisplayController.isTransientTaskbar(context)
) {
insetsInfo.touchableRegion.set(
val region =
controllers.taskbarActivityContext.dragLayer.lastDrawnTransientRect.toRegion()
)
val bubbleBarBounds =
controllers.bubbleControllers.getOrNull()?.let { bubbleControllers ->
if (!bubbleControllers.bubbleStashController.isBubblesShowingOnOverview) {
return@let null
}
if (!bubbleControllers.bubbleBarViewController.isBubbleBarVisible) {
return@let null
}
bubbleControllers.bubbleBarViewController.bubbleBarBounds
}
// Include the bounds of the bubble bar in the touchable region if they exist.
if (bubbleBarBounds != null) {
region.op(bubbleBarBounds, Region.Op.UNION)
}
insetsInfo.touchableRegion.set(region)
} else {
insetsInfo.touchableRegion.set(touchableRegion)
}

View File

@@ -197,6 +197,11 @@ public class BubbleStashController {
}
}
/** Whether bubbles are showing on Overview. */
public boolean isBubblesShowingOnOverview() {
return mBubblesShowingOnOverview;
}
/** Called when sysui locked state changes, when locked, bubble bar is stashed. */
public void onSysuiLockedStateChange(boolean isSysuiLocked) {
if (isSysuiLocked != mIsSysuiLocked) {