From cc6a1d6584643b56d054e55828702de3c804b45f Mon Sep 17 00:00:00 2001 From: Tony Wickham Date: Thu, 9 Sep 2021 09:06:39 -0700 Subject: [PATCH] Fix taskbar education not touchable if taskbar is stashed Instead of assuming taskbar window is not touchable while taskbar is stashed, fall through to the areIconsVisible() check, which already returns false if taskbar is stashed anyway. Additionally, add a check for AbstractFloatingView so we appropriately allow touches if one exists. Test: Open Contacts, can still touch through stashed handle; start TaskbarEduView flow and can touch whether taskbar is stashed or not Fixes: 199376513 Change-Id: If362bad5cb8262fc8c489010e4b2d306ac5f252a --- .../launcher3/taskbar/LauncherTaskbarUIController.java | 2 +- .../launcher3/taskbar/TaskbarDragLayerController.java | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java b/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java index b172095e96..0c22698b67 100644 --- a/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java +++ b/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java @@ -127,7 +127,7 @@ public class LauncherTaskbarUIController extends TaskbarUIController { @Override protected boolean isTaskbarTouchable() { - return !isAnimatingToLauncher() && !mControllers.taskbarStashController.isStashed(); + return !isAnimatingToLauncher(); } private boolean isAnimatingToLauncher() { diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java index b7c5db2f17..567a0c765a 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java @@ -135,8 +135,9 @@ public class TaskbarDragLayerController { } else if (!mControllers.uiController.isTaskbarTouchable()) { // Let touches pass through us. insetsInfo.setTouchableInsets(TOUCHABLE_INSETS_REGION); - } else if (mControllers.taskbarViewController.areIconsVisible()) { - // Buttons are visible, take over the full taskbar area + } else if (mControllers.taskbarViewController.areIconsVisible() + || AbstractFloatingView.getOpenView(mActivity, TYPE_ALL) != null) { + // Taskbar has some touchable elements, take over the full taskbar area insetsInfo.setTouchableInsets(mActivity.isTaskbarWindowFullscreen() ? TOUCHABLE_INSETS_FRAME : TOUCHABLE_INSETS_CONTENT); } else {