diff --git a/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java b/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java index 23380d67bd..896cc8424b 100644 --- a/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java +++ b/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java @@ -425,14 +425,14 @@ public class LauncherTaskbarUIController extends TaskbarUIController { } @Override - protected boolean isInOverview() { - return mTaskbarLauncherStateController.isInOverview(); + protected boolean isInOverviewUi() { + return mTaskbarLauncherStateController.isInOverviewUi(); } @Override protected boolean canToggleHomeAllApps() { return mLauncher.isResumed() - && !mTaskbarLauncherStateController.isInOverview() + && !mTaskbarLauncherStateController.isInOverviewUi() && !mLauncher.areFreeformTasksVisible(); } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java index 98ce2edae4..49d4afeb17 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java @@ -665,7 +665,7 @@ public class TaskbarActivityContext extends BaseTaskbarContext { LauncherAtom.TaskBarContainer.Builder taskbarBuilder = LauncherAtom.TaskBarContainer.newBuilder(); - if (mControllers.uiController.isInOverview()) { + if (mControllers.uiController.isInOverviewUi()) { taskbarBuilder.setTaskSwitcherContainer( LauncherAtom.TaskSwitcherContainer.newBuilder()); } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarInsetsController.kt b/quickstep/src/com/android/launcher3/taskbar/TaskbarInsetsController.kt index 8dc81cf461..6163dadca6 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarInsetsController.kt +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarInsetsController.kt @@ -375,7 +375,7 @@ class TaskbarInsetsController(val context: TaskbarActivityContext) : LoggableTas ) { // Taskbar has some touchable elements, take over the full taskbar area if ( - controllers.uiController.isInOverview && + controllers.uiController.isInOverviewUi && DisplayController.isTransientTaskbar(context) ) { val region = diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java index b0abbe9e57..17dcacea3c 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java @@ -666,8 +666,8 @@ public class TaskbarLauncherStateController { && !mLauncher.getWorkspace().isOverlayShown(); } - boolean isInOverview() { - return mLauncherState == LauncherState.OVERVIEW; + boolean isInOverviewUi() { + return mLauncherState.overviewUi; } private void playStateTransitionAnim(AnimatorSet animatorSet, long duration, diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java index 5d418fab3d..e47640b1c7 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java @@ -58,6 +58,7 @@ import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import com.android.launcher3.DeviceProfile; +import com.android.launcher3.Launcher; import com.android.launcher3.LauncherAppState; import com.android.launcher3.anim.AnimatorPlaybackController; import com.android.launcher3.statemanager.StatefulActivity; @@ -339,12 +340,12 @@ public class TaskbarManager { /** * Toggles All Apps for Taskbar or Launcher depending on the current state. - * - * @param homeAllAppsIntent Intent used if Taskbar is not enabled or Launcher is resumed. */ - public void toggleAllApps(Intent homeAllAppsIntent) { + public void toggleAllApps() { if (mTaskbarActivityContext == null || mTaskbarActivityContext.canToggleHomeAllApps()) { - mContext.startActivity(homeAllAppsIntent); + // Home All Apps should be toggled from this class, because the controllers are not + // initialized when Taskbar is disabled (i.e. TaskbarActivityContext is null). + if (mActivity instanceof Launcher l) l.toggleAllAppsSearch(); } else { mTaskbarActivityContext.toggleAllAppsSearch(); } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java index cb0fa406e8..2e78489692 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java @@ -193,7 +193,7 @@ public class TaskbarUIController { } /** Returns {@code true} if Taskbar is currently within overview. */ - protected boolean isInOverview() { + protected boolean isInOverviewUi() { return false; } diff --git a/quickstep/src/com/android/quickstep/TouchInteractionService.java b/quickstep/src/com/android/quickstep/TouchInteractionService.java index f2ee3f1483..8f1bf3478f 100644 --- a/quickstep/src/com/android/quickstep/TouchInteractionService.java +++ b/quickstep/src/com/android/quickstep/TouchInteractionService.java @@ -602,23 +602,21 @@ public class TouchInteractionService extends Service { } private PendingIntent createAllAppsPendingIntent() { - final Intent homeIntent = new Intent(mOverviewComponentObserver.getHomeIntent()) - .setAction(INTENT_ACTION_ALL_APPS_TOGGLE); - if (FeatureFlags.ENABLE_ALL_APPS_SEARCH_IN_TASKBAR.get()) { return new PendingIntent(new IIntentSender.Stub() { @Override public void send(int code, Intent intent, String resolvedType, IBinder allowlistToken, IIntentReceiver finishedReceiver, String requiredPermission, Bundle options) { - MAIN_EXECUTOR.execute(() -> mTaskbarManager.toggleAllApps(homeIntent)); + MAIN_EXECUTOR.execute(() -> mTaskbarManager.toggleAllApps()); } }); } else { return PendingIntent.getActivity( this, GLOBAL_ACTION_ACCESSIBILITY_ALL_APPS, - homeIntent, + new Intent(mOverviewComponentObserver.getHomeIntent()) + .setAction(INTENT_ACTION_ALL_APPS_TOGGLE), PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE); } } diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index dbd594ee64..65e1978ce9 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -1653,7 +1653,7 @@ public class Launcher extends StatefulActivity } else if (Intent.ACTION_ALL_APPS.equals(intent.getAction())) { showAllAppsFromIntent(alreadyOnHome); } else if (INTENT_ACTION_ALL_APPS_TOGGLE.equals(intent.getAction())) { - toggleAllAppsFromIntent(alreadyOnHome); + toggleAllAppsSearch(alreadyOnHome); } else if (Intent.ACTION_SHOW_WORK_APPS.equals(intent.getAction())) { showAllAppsWithSelectedTabFromIntent(alreadyOnHome, ActivityAllAppsContainerView.AdapterHolder.WORK); @@ -1667,7 +1667,12 @@ public class Launcher extends StatefulActivity // Overridden } - protected void toggleAllAppsFromIntent(boolean alreadyOnHome) { + /** Toggles Launcher All Apps with keyboard ready for search. */ + public void toggleAllAppsSearch() { + toggleAllAppsSearch(/* alreadyOnHome= */ true); + } + + protected void toggleAllAppsSearch(boolean alreadyOnHome) { if (getStateManager().isInStableState(ALL_APPS)) { getStateManager().goToState(NORMAL, alreadyOnHome); } else {