From eeaa58556b72f593eb8a675358b1cdcef5abce52 Mon Sep 17 00:00:00 2001 From: mpodolian Date: Tue, 15 Apr 2025 17:55:46 -0700 Subject: [PATCH] Fix bubble bar drag-to-dismiss target over the taskbar interruption Added an additional check for BubbleDragController drag state to the TaskbarStashViaTouchController. T Bug: 410908600 Flag: com.android.wm.shell.enable_bubble_bar Test: Manual. 1. Go to overview screen with a transient taskbar. 2. Create any bubble. 3. Collapse the bubble bar. 4. Drag the collapsed bar towards the dismiss target location (usually bottom center) ensuring the drag path crosses the taskbar area. Verify dismissal works correctly without interference from the taskbar touch handling. Change-Id: I8c58135359dc6ea30479a778caa8e7b6eebc9c80 --- .../launcher3/taskbar/TaskbarStashViaTouchController.kt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashViaTouchController.kt b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashViaTouchController.kt index df10d24d2a..cbb69ba7c7 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashViaTouchController.kt +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashViaTouchController.kt @@ -126,6 +126,14 @@ class TaskbarStashViaTouchController(val controllers: TaskbarControllers) : Touc if (ev.action == MotionEvent.ACTION_OUTSIDE) { controllers.taskbarStashController.updateAndAnimateTransientTaskbar(true) } else if (controllers.taskbarViewController.isEventOverAnyItem(screenCoordinatesEv)) { + // TODO (b/411155437) remove this once BubbleDragController implements TouchController + val bubbleBarDragInProgress = + controllers.bubbleControllers + .map { it.bubbleDragController.isDragging } + .orElse(false) + if (bubbleBarDragInProgress) { + return false + } swipeDownDetector.onTouchEvent(ev) if (swipeDownDetector.isDraggingState) { return true