From 113377d8b8a213e72126f4f67aba5e778adaa491 Mon Sep 17 00:00:00 2001 From: Vinit Nayak Date: Tue, 15 Jun 2021 15:12:17 -0700 Subject: [PATCH] Tap on recents button twice to go to last app Fixes: 190660016 Test: Tapped on recents twice and saw last app. Tapped on recents and tried to tap on other app icons and none of them launched. Change-Id: Ie89f1ec0464f194087dc07ab99deb8223ab6ddb8 --- .../launcher3/taskbar/TaskbarDragLayerController.java | 8 ++++++-- .../launcher3/taskbar/TaskbarNavButtonController.java | 6 ++++-- .../src/com/android/quickstep/OverviewCommandHelper.java | 5 +++++ 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java index 2efbd4fa37..743619b6be 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java @@ -93,6 +93,12 @@ public class TaskbarDragLayerController { */ public void updateInsetsTouchability(InsetsInfo insetsInfo) { insetsInfo.touchableRegion.setEmpty(); + if (mActivity.canShowNavButtons()) { + // Always have nav buttons be touchable + mControllers.navbarButtonsViewController.addVisibleButtonsRegion( + mTaskbarDragLayer, insetsInfo.touchableRegion); + } + if (mTaskbarDragLayer.getAlpha() < AlphaUpdateListener.ALPHA_CUTOFF_THRESHOLD) { // Let touches pass through us. insetsInfo.setTouchableInsets(TOUCHABLE_INSETS_REGION); @@ -105,8 +111,6 @@ public class TaskbarDragLayerController { // Buttons are visible, take over the full taskbar area insetsInfo.setTouchableInsets(TOUCHABLE_INSETS_FRAME); } else { - mControllers.navbarButtonsViewController.addVisibleButtonsRegion( - mTaskbarDragLayer, insetsInfo.touchableRegion); insetsInfo.setTouchableInsets(TOUCHABLE_INSETS_REGION); } } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarNavButtonController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarNavButtonController.java index 002d42da3b..8549ca2ac5 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarNavButtonController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarNavButtonController.java @@ -94,8 +94,10 @@ public class TaskbarNavButtonController { } private void navigateToOverview() { - mService.getOverviewCommandHelper() - .addCommand(OverviewCommandHelper.TYPE_SHOW); + int commandType = mService.getOverviewCommandHelper().isOverviewVisible() ? + OverviewCommandHelper.TYPE_TOGGLE : + OverviewCommandHelper.TYPE_SHOW; + mService.getOverviewCommandHelper().addCommand(commandType); } private void executeBack() { diff --git a/quickstep/src/com/android/quickstep/OverviewCommandHelper.java b/quickstep/src/com/android/quickstep/OverviewCommandHelper.java index dbdd75fc13..b06c1ca8f1 100644 --- a/quickstep/src/com/android/quickstep/OverviewCommandHelper.java +++ b/quickstep/src/com/android/quickstep/OverviewCommandHelper.java @@ -136,6 +136,11 @@ public class OverviewCommandHelper { } } + public boolean isOverviewVisible() { + BaseActivityInterface activityInterface = + mOverviewComponentObserver.getActivityInterface(); + return activityInterface.getVisibleRecentsView() != null; + } /** * Executes the task and returns true if next task can be executed. If false, then the next * task is deferred until {@link #scheduleNextTask} is called