From a19e4e2063ec84120a1ec0985474c91e0f6df820 Mon Sep 17 00:00:00 2001 From: Jon Miranda Date: Wed, 23 Apr 2025 11:47:53 -0700 Subject: [PATCH] Switch taskbar overflow flag to lse_desktop_experience Both flags are in Nextfood, so there will be no change to user experience. Bug: 368119679 Bug: 375627272 Test: TaskbarOverflowTest Flag: com.android.window.flags.enable_taskbar_overflow Change-Id: Ie3ef3bd49e078f5657bd069bc92c5a48a136e7cb --- aconfig/launcher.aconfig | 7 ------- .../taskbar/KeyboardQuickSwitchController.java | 13 +++++++------ .../taskbar/KeyboardQuickSwitchViewController.java | 5 +++-- .../com/android/launcher3/taskbar/TaskbarView.java | 9 +++++---- .../launcher3/taskbar/TaskbarViewController.java | 4 ++-- .../taskbar/overlay/TaskbarOverlayController.java | 3 ++- .../launcher3/taskbar/TaskbarOverflowTest.kt | 4 ++-- .../taskbar/TaskbarViewWithLayoutTransitionTest.kt | 4 ++-- 8 files changed, 23 insertions(+), 26 deletions(-) diff --git a/aconfig/launcher.aconfig b/aconfig/launcher.aconfig index 0855de741f..368af66803 100644 --- a/aconfig/launcher.aconfig +++ b/aconfig/launcher.aconfig @@ -383,13 +383,6 @@ flag { bug: "345760034" } -flag { - name: "taskbar_overflow" - namespace: "launcher" - description: "Show recent apps in the taskbar overflow." - bug: "368119679" -} - flag { name: "enable_recents_window_proto_log" namespace: "lse_desktop_experience" diff --git a/quickstep/src/com/android/launcher3/taskbar/KeyboardQuickSwitchController.java b/quickstep/src/com/android/launcher3/taskbar/KeyboardQuickSwitchController.java index a434cd1b37..da70bb9a76 100644 --- a/quickstep/src/com/android/launcher3/taskbar/KeyboardQuickSwitchController.java +++ b/quickstep/src/com/android/launcher3/taskbar/KeyboardQuickSwitchController.java @@ -15,6 +15,8 @@ */ package com.android.launcher3.taskbar; +import static android.window.DesktopModeFlags.ENABLE_TASKBAR_OVERFLOW; + import static com.android.launcher3.taskbar.TaskbarDesktopExperienceFlags.enableAltTabKqsFlatenning; import static com.android.launcher3.taskbar.TaskbarDesktopExperienceFlags.enableAltTabKqsOnConnectedDisplays; @@ -27,7 +29,6 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; -import com.android.launcher3.Flags; import com.android.launcher3.R; import com.android.launcher3.taskbar.overlay.TaskbarOverlayContext; import com.android.launcher3.taskbar.overlay.TaskbarOverlayDragLayer; @@ -187,7 +188,7 @@ public final class KeyboardQuickSwitchController implements } mOverlayContext = mControllers.taskbarOverlayController.requestWindow(); - if (Flags.taskbarOverflow()) { + if (ENABLE_TASKBAR_OVERFLOW.isTrue()) { mOverlayContext.getDragLayer().addTouchController(this); } KeyboardQuickSwitchView keyboardQuickSwitchView = @@ -239,8 +240,8 @@ public final class KeyboardQuickSwitchController implements } private boolean shouldExcludeTask(GroupTask task, Set taskIdsToExclude) { - return Flags.taskbarOverflow() && task.getTasks().stream().anyMatch( - t -> taskIdsToExclude.contains(t.key.id)); + return ENABLE_TASKBAR_OVERFLOW.isTrue() + && task.getTasks().stream().anyMatch(t -> taskIdsToExclude.contains(t.key.id)); } private void processLoadedTasks(List tasks, Set taskIdsToExclude) { @@ -376,7 +377,7 @@ public final class KeyboardQuickSwitchController implements public boolean onControllerInterceptTouchEvent(MotionEvent ev) { if (mQuickSwitchViewController == null || mOverlayContext == null - || !Flags.taskbarOverflow()) { + || !ENABLE_TASKBAR_OVERFLOW.isTrue()) { return false; } @@ -472,7 +473,7 @@ public final class KeyboardQuickSwitchController implements } void onCloseComplete() { - if (Flags.taskbarOverflow() && mOverlayContext != null) { + if (ENABLE_TASKBAR_OVERFLOW.isTrue() && mOverlayContext != null) { mOverlayContext.getDragLayer() .removeTouchController(KeyboardQuickSwitchController.this); } diff --git a/quickstep/src/com/android/launcher3/taskbar/KeyboardQuickSwitchViewController.java b/quickstep/src/com/android/launcher3/taskbar/KeyboardQuickSwitchViewController.java index 7616ebd8d0..d31051dda4 100644 --- a/quickstep/src/com/android/launcher3/taskbar/KeyboardQuickSwitchViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/KeyboardQuickSwitchViewController.java @@ -15,6 +15,8 @@ */ package com.android.launcher3.taskbar; +import static android.window.DesktopModeFlags.ENABLE_TASKBAR_OVERFLOW; + import static com.android.launcher3.desktop.DesktopAppLaunchTransition.AppLaunchType.UNMINIMIZE; import static com.android.launcher3.taskbar.TaskbarDesktopExperienceFlags.enableAltTabKqsFlatenning; import static com.android.launcher3.util.Executors.MAIN_EXECUTOR; @@ -35,7 +37,6 @@ import androidx.annotation.Nullable; import com.android.internal.jank.Cuj; import com.android.launcher3.DeviceProfile; -import com.android.launcher3.Flags; import com.android.launcher3.R; import com.android.launcher3.Utilities; import com.android.launcher3.anim.AnimatorListeners; @@ -124,7 +125,7 @@ public class KeyboardQuickSwitchViewController { mWasDesktopTaskFilteredOut = wasDesktopTaskFilteredOut; mWasOpenedFromTaskbar = wasOpenedFromTaskbar; - if (Flags.taskbarOverflow() && wasOpenedFromTaskbar) { + if (ENABLE_TASKBAR_OVERFLOW.isTrue() && wasOpenedFromTaskbar) { mKeyboardQuickSwitchView.enableScrollArrowSupport(); } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java index ded746a6f1..e334a49e31 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java @@ -16,6 +16,7 @@ package com.android.launcher3.taskbar; import static android.view.accessibility.AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED; +import static android.window.DesktopModeFlags.ENABLE_TASKBAR_OVERFLOW; import static android.window.DesktopModeFlags.ENABLE_TASKBAR_RECENTS_LAYOUT_TRANSITION; import static com.android.launcher3.BubbleTextView.DISPLAY_TASKBAR; @@ -193,7 +194,7 @@ public class TaskbarView extends FrameLayout implements FolderIcon.FolderIconPar mTaskbarDividerContainer = new TaskbarDividerContainer(context); } - if (Flags.taskbarOverflow()) { + if (ENABLE_TASKBAR_OVERFLOW.isTrue()) { mTaskbarOverflowView = TaskbarOverflowView.inflateIcon( R.layout.taskbar_overflow_view, this, mIconTouchSize, mItemPadding); @@ -261,7 +262,7 @@ public class TaskbarView extends FrameLayout implements FolderIcon.FolderIconPar * that should be shown in the taskbar. */ boolean updateMaxNumIcons() { - if (!Flags.taskbarOverflow()) { + if (!ENABLE_TASKBAR_OVERFLOW.isTrue()) { return false; } int oldMaxNumIcons = mMaxNumIcons; @@ -359,7 +360,7 @@ public class TaskbarView extends FrameLayout implements FolderIcon.FolderIconPar mControllerCallbacks.getOverflowOnLongClickListener()); } - if (Flags.taskbarOverflow()) { + if (ENABLE_TASKBAR_OVERFLOW.isTrue()) { mMaxNumIcons = calculateMaxNumIcons(); } } @@ -617,7 +618,7 @@ public class TaskbarView extends FrameLayout implements FolderIcon.FolderIconPar } private void updateRecents(List recentTasks, int hotseatSize) { - boolean supportsOverflow = Flags.taskbarOverflow() && recentTasks.size() > 1; + boolean supportsOverflow = ENABLE_TASKBAR_OVERFLOW.isTrue() && recentTasks.size() > 1; int overflowSize = 0; boolean hasOverflow = false; if (supportsOverflow && mTaskbarOverflowView != null) { diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java index 2b3d05da3e..470bbeea26 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java @@ -20,13 +20,13 @@ import static android.animation.LayoutTransition.CHANGE_APPEARING; import static android.animation.LayoutTransition.CHANGE_DISAPPEARING; import static android.animation.LayoutTransition.DISAPPEARING; import static android.view.Display.DEFAULT_DISPLAY; +import static android.window.DesktopModeFlags.ENABLE_TASKBAR_OVERFLOW; import static android.window.DesktopModeFlags.ENABLE_TASKBAR_RECENTS_LAYOUT_TRANSITION; import static com.android.app.animation.Interpolators.EMPHASIZED; import static com.android.app.animation.Interpolators.FINAL_FRAME; import static com.android.app.animation.Interpolators.LINEAR; import static com.android.launcher3.Flags.enableScalingRevealHomeAnimation; -import static com.android.launcher3.Flags.taskbarOverflow; import static com.android.launcher3.LauncherAnimUtils.SCALE_PROPERTY; import static com.android.launcher3.LauncherAnimUtils.VIEW_ALPHA; import static com.android.launcher3.LauncherAnimUtils.VIEW_TRANSLATE_X; @@ -782,7 +782,7 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar * @return A set of Task ids of running apps that are pinned in the taskbar. */ protected Set getTaskIdsForPinnedApps() { - if (!taskbarOverflow()) { + if (!ENABLE_TASKBAR_OVERFLOW.isTrue()) { return Collections.emptySet(); } diff --git a/quickstep/src/com/android/launcher3/taskbar/overlay/TaskbarOverlayController.java b/quickstep/src/com/android/launcher3/taskbar/overlay/TaskbarOverlayController.java index a5845d6231..55afefecfc 100644 --- a/quickstep/src/com/android/launcher3/taskbar/overlay/TaskbarOverlayController.java +++ b/quickstep/src/com/android/launcher3/taskbar/overlay/TaskbarOverlayController.java @@ -18,6 +18,7 @@ package com.android.launcher3.taskbar.overlay; import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS; import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_CONSUME_IME_INSETS; import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY; +import static android.window.DesktopModeFlags.ENABLE_TASKBAR_OVERFLOW; import static com.android.launcher3.AbstractFloatingView.TYPE_ALL; import static com.android.launcher3.AbstractFloatingView.TYPE_REBIND_SAFE; @@ -315,7 +316,7 @@ public final class TaskbarOverlayController { @Override protected void handleClose(boolean animate) { if (!mIsOpen) return; - if (Flags.taskbarOverflow()) { + if (ENABLE_TASKBAR_OVERFLOW.isTrue()) { // Mark the view closed before attempting to remove it, so the drag layer does not // schedule another call to close. Needed for taskbar overflow in case the KQS // view shown for taskbar overflow needs to be reshown - delayed close call would diff --git a/quickstep/tests/multivalentTests/src/com/android/launcher3/taskbar/TaskbarOverflowTest.kt b/quickstep/tests/multivalentTests/src/com/android/launcher3/taskbar/TaskbarOverflowTest.kt index 85f1798dee..9e1d25afda 100644 --- a/quickstep/tests/multivalentTests/src/com/android/launcher3/taskbar/TaskbarOverflowTest.kt +++ b/quickstep/tests/multivalentTests/src/com/android/launcher3/taskbar/TaskbarOverflowTest.kt @@ -27,7 +27,6 @@ import androidx.test.core.app.ApplicationProvider import com.android.launcher3.BubbleTextView import com.android.launcher3.Flags.FLAG_ENABLE_ALT_TAB_KQS_FLATENNING import com.android.launcher3.Flags.FLAG_ENABLE_MULTI_INSTANCE_MENU_TASKBAR -import com.android.launcher3.Flags.FLAG_TASKBAR_OVERFLOW import com.android.launcher3.R import com.android.launcher3.dagger.LauncherAppSingleton import com.android.launcher3.dagger.LauncherComponentProvider.appComponent @@ -73,6 +72,7 @@ import com.android.systemui.shared.recents.model.Task import com.android.window.flags.Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODE import com.android.window.flags.Flags.FLAG_ENABLE_DESKTOP_WINDOWING_TASKBAR_RUNNING_APPS import com.android.window.flags.Flags.FLAG_ENABLE_PINNING_APP_WITH_CONTEXT_MENU +import com.android.window.flags.Flags.FLAG_ENABLE_TASKBAR_OVERFLOW import com.android.wm.shell.Flags.FLAG_ENABLE_BUBBLE_BAR import com.android.wm.shell.desktopmode.IDesktopTaskListener import com.google.common.truth.Truth.assertThat @@ -91,10 +91,10 @@ import org.mockito.kotlin.whenever @RunWith(LauncherMultivalentJUnit::class) @EmulatedDevices(["pixelTablet2023"]) @EnableFlags( - FLAG_TASKBAR_OVERFLOW, FLAG_ENABLE_DESKTOP_WINDOWING_TASKBAR_RUNNING_APPS, FLAG_ENABLE_DESKTOP_WINDOWING_MODE, FLAG_ENABLE_BUBBLE_BAR, + FLAG_ENABLE_TASKBAR_OVERFLOW, ) @DisableFlags(FLAG_ENABLE_MULTI_INSTANCE_MENU_TASKBAR) class TaskbarOverflowTest { diff --git a/quickstep/tests/multivalentTests/src/com/android/launcher3/taskbar/TaskbarViewWithLayoutTransitionTest.kt b/quickstep/tests/multivalentTests/src/com/android/launcher3/taskbar/TaskbarViewWithLayoutTransitionTest.kt index 2df4fab457..63fd1607f5 100644 --- a/quickstep/tests/multivalentTests/src/com/android/launcher3/taskbar/TaskbarViewWithLayoutTransitionTest.kt +++ b/quickstep/tests/multivalentTests/src/com/android/launcher3/taskbar/TaskbarViewWithLayoutTransitionTest.kt @@ -19,7 +19,6 @@ package com.android.launcher3.taskbar import android.platform.test.annotations.EnableFlags import android.platform.test.flag.junit.SetFlagsRule import android.view.View -import com.android.launcher3.Flags.FLAG_TASKBAR_OVERFLOW import com.android.launcher3.R import com.android.launcher3.statehandlers.DesktopVisibilityController import com.android.launcher3.taskbar.TaskbarControllerTestUtil.runOnMainSync @@ -36,6 +35,7 @@ import com.android.launcher3.taskbar.rules.TaskbarUnitTestRule.ForceRtl import com.android.launcher3.taskbar.rules.TaskbarWindowSandboxContext import com.android.launcher3.util.LauncherMultivalentJUnit import com.android.launcher3.util.LauncherMultivalentJUnit.EmulatedDevices +import com.android.window.flags.Flags.FLAG_ENABLE_TASKBAR_OVERFLOW import com.android.window.flags.Flags.FLAG_ENABLE_TASKBAR_RECENTS_LAYOUT_TRANSITION import com.google.common.truth.Truth.assertThat import org.junit.Before @@ -46,7 +46,7 @@ import org.mockito.kotlin.whenever @RunWith(LauncherMultivalentJUnit::class) @EmulatedDevices(["pixelFoldable2023", "pixelTablet2023"]) -@EnableFlags(FLAG_ENABLE_TASKBAR_RECENTS_LAYOUT_TRANSITION, FLAG_TASKBAR_OVERFLOW) +@EnableFlags(FLAG_ENABLE_TASKBAR_OVERFLOW, FLAG_ENABLE_TASKBAR_RECENTS_LAYOUT_TRANSITION) class TaskbarViewWithLayoutTransitionTest { @get:Rule(order = 0) val setFlagsRule = SetFlagsRule()