Merge "Switch taskbar overflow flag to lse_desktop_experience" into main

This commit is contained in:
Jon Miranda
2025-04-23 18:04:05 -07:00
committed by Android (Google) Code Review
8 changed files with 23 additions and 26 deletions
-7
View File
@@ -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"
@@ -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<Integer> 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<GroupTask> tasks, Set<Integer> 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);
}
@@ -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();
}
@@ -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<GroupTask> 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) {
@@ -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<Integer> getTaskIdsForPinnedApps() {
if (!taskbarOverflow()) {
if (!ENABLE_TASKBAR_OVERFLOW.isTrue()) {
return Collections.emptySet();
}
@@ -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
@@ -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 {
@@ -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()