From 5a85b4f2df40037631dcedbba72da943bffd99e8 Mon Sep 17 00:00:00 2001 From: Schneider Victor-tulias Date: Wed, 13 Mar 2024 16:19:21 -0400 Subject: [PATCH] Close the KQS view when touching the gesture nav region Also, stop handling KQS open/close during gestures Flag: LEGACY ENABLE_KEYBOARD_QUICK_SWITCH ENABLED Fixes: 328689890 Fixes: 328689534 Fixes: 328692760 Test: attempted gestures while KQS is shown. attempted KQS while attempting gestures (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:14d912b062e69fe8bc4729b6f8b40e53d5b4a669) Merged-In: Idbd1f9cef09d9fbf611350d0847d94ccf8300369 Change-Id: Idbd1f9cef09d9fbf611350d0847d94ccf8300369 24D1-dev is based on 24Q2-release. Therefore, we merged this CL to 24D1-dev. --- .../KeyboardQuickSwitchController.java | 6 ++- .../taskbar/TaskbarActivityContext.java | 5 +++ .../quickstep/OverviewCommandHelper.java | 8 ++++ .../quickstep/TouchInteractionService.java | 4 ++ .../android/quickstep/views/RecentsView.java | 45 ++++++++++--------- 5 files changed, 45 insertions(+), 23 deletions(-) diff --git a/quickstep/src/com/android/launcher3/taskbar/KeyboardQuickSwitchController.java b/quickstep/src/com/android/launcher3/taskbar/KeyboardQuickSwitchController.java index f15d12b12d..8566e20e14 100644 --- a/quickstep/src/com/android/launcher3/taskbar/KeyboardQuickSwitchController.java +++ b/quickstep/src/com/android/launcher3/taskbar/KeyboardQuickSwitchController.java @@ -193,10 +193,14 @@ public final class KeyboardQuickSwitchController implements } void closeQuickSwitchView() { + closeQuickSwitchView(true); + } + + void closeQuickSwitchView(boolean animate) { if (mQuickSwitchViewController == null) { return; } - mQuickSwitchViewController.closeQuickSwitchView(true); + mQuickSwitchViewController.closeQuickSwitchView(animate); } /** diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java index c54330765e..138950795e 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java @@ -1558,4 +1558,9 @@ public class TaskbarActivityContext extends BaseTaskbarContext { public float getStashedTaskbarScale() { return mControllers.stashedHandleViewController.getStashedHandleHintScale().value; } + + /** Closes the KeyboardQuickSwitchView without an animation if open. */ + public void closeKeyboardQuickSwitchView() { + mControllers.keyboardQuickSwitchController.closeQuickSwitchView(false); + } } diff --git a/quickstep/src/com/android/quickstep/OverviewCommandHelper.java b/quickstep/src/com/android/quickstep/OverviewCommandHelper.java index 65b5397fd1..56c9a00016 100644 --- a/quickstep/src/com/android/quickstep/OverviewCommandHelper.java +++ b/quickstep/src/com/android/quickstep/OverviewCommandHelper.java @@ -248,7 +248,15 @@ public class OverviewCommandHelper { case TYPE_SHOW: // already visible return true; + case TYPE_KEYBOARD_INPUT: { + if (visibleRecentsView.isHandlingTouch()) { + return true; + } + } case TYPE_HIDE: { + if (visibleRecentsView.isHandlingTouch()) { + return true; + } mKeyboardTaskFocusIndex = INVALID_PAGE; int currentPage = visibleRecentsView.getNextPage(); TaskView tv = (currentPage >= 0 diff --git a/quickstep/src/com/android/quickstep/TouchInteractionService.java b/quickstep/src/com/android/quickstep/TouchInteractionService.java index 788012445b..719c4f7f70 100644 --- a/quickstep/src/com/android/quickstep/TouchInteractionService.java +++ b/quickstep/src/com/android/quickstep/TouchInteractionService.java @@ -754,6 +754,10 @@ public class TouchInteractionService extends Service { boolean isOneHandedModeActive = mDeviceState.isOneHandedModeActive(); boolean isInSwipeUpTouchRegion = mRotationTouchHelper.isInSwipeUpTouchRegion(event); + TaskbarActivityContext tac = mTaskbarManager.getCurrentActivityContext(); + if (isInSwipeUpTouchRegion && tac != null) { + tac.closeKeyboardQuickSwitchView(); + } if ((!isOneHandedModeActive && isInSwipeUpTouchRegion) || isHoverActionWithoutConsumer) { reasonString.append(!isOneHandedModeActive && isInSwipeUpTouchRegion diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java index 760d84b0e8..f10413273c 100644 --- a/quickstep/src/com/android/quickstep/views/RecentsView.java +++ b/quickstep/src/com/android/quickstep/views/RecentsView.java @@ -4231,30 +4231,31 @@ public abstract class RecentsView