diff --git a/aconfig/launcher.aconfig b/aconfig/launcher.aconfig index c56459429b..a87e290521 100644 --- a/aconfig/launcher.aconfig +++ b/aconfig/launcher.aconfig @@ -517,13 +517,6 @@ flag { bug: "377496684" } -flag { - name: "taskbar_recents_layout_transition" - namespace: "launcher" - description: "Enable Taskbar LayoutTransition for Recent Apps" - bug: "343521765" -} - flag { name: "enable_pinning_app_with_context_menu" namespace: "launcher" diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java index e589c87ef5..529247083e 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java @@ -16,11 +16,11 @@ package com.android.launcher3.taskbar; import static android.view.accessibility.AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED; +import static android.window.DesktopModeFlags.ENABLE_TASKBAR_RECENTS_LAYOUT_TRANSITION; import static com.android.launcher3.BubbleTextView.DISPLAY_TASKBAR; import static com.android.launcher3.Flags.enableCursorHoverStates; import static com.android.launcher3.Flags.enableRecentsInTaskbar; -import static com.android.launcher3.Flags.taskbarRecentsLayoutTransition; import static com.android.launcher3.LauncherSettings.Favorites.ITEM_TYPE_APP_PAIR; import static com.android.launcher3.LauncherSettings.Favorites.ITEM_TYPE_FOLDER; import static com.android.launcher3.config.FeatureFlags.enableTaskbarPinning; @@ -201,8 +201,10 @@ public class TaskbarView extends FrameLayout implements FolderIcon.FolderIconPar // TODO: Disable touch events on QSB otherwise it can crash. mQsb = LayoutInflater.from(context).inflate(R.layout.search_container_hotseat, this, false); - mNumStaticViews = taskbarRecentsLayoutTransition() && !mActivityContext.isPhoneMode() - ? addStaticViews() : 0; + mNumStaticViews = + ENABLE_TASKBAR_RECENTS_LAYOUT_TRANSITION.isTrue() && !mActivityContext.isPhoneMode() + ? addStaticViews() + : 0; } /** @@ -399,7 +401,7 @@ public class TaskbarView extends FrameLayout implements FolderIcon.FolderIconPar // TODO(b/343289567 and b/316004172): support app pairs and desktop mode. recentTasks = recentTasks.stream().filter(it -> it instanceof SingleTask).toList(); - if (taskbarRecentsLayoutTransition()) { + if (ENABLE_TASKBAR_RECENTS_LAYOUT_TRANSITION.isTrue()) { updateItemsWithLayoutTransition(hotseatItemInfos, recentTasks); } else { updateItemsWithoutLayoutTransition(hotseatItemInfos, recentTasks); @@ -663,7 +665,7 @@ public class TaskbarView extends FrameLayout implements FolderIcon.FolderIconPar View recentIcon = null; // If a task is new, we should not reuse a view so that it animates in when it is added. - final boolean canReuseView = !taskbarRecentsLayoutTransition() + final boolean canReuseView = !ENABLE_TASKBAR_RECENTS_LAYOUT_TRANSITION.isTrue() || mPrevRecentTasks.contains(task); while (canReuseView && isNextViewInSection(GroupTask.class)) { recentIcon = getChildAt(mNextViewIndex); @@ -672,7 +674,7 @@ public class TaskbarView extends FrameLayout implements FolderIcon.FolderIconPar if ((recentIcon.getSourceLayoutResId() != expectedLayoutResId) || (isCollection && (recentIcon.getTag() != task)) // Remove view corresponding to removed task so that it animates out. - || (taskbarRecentsLayoutTransition() + || (ENABLE_TASKBAR_RECENTS_LAYOUT_TRANSITION.isTrue() && !recentTasksSet.contains(recentIcon.getTag()))) { removeAndRecycle(recentIcon); recentIcon = null; diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarViewCallbacks.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarViewCallbacks.java index 066d4df2f3..dcb9fbff42 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarViewCallbacks.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarViewCallbacks.java @@ -16,7 +16,8 @@ package com.android.launcher3.taskbar; -import static com.android.launcher3.Flags.taskbarRecentsLayoutTransition; +import static android.window.DesktopModeFlags.ENABLE_TASKBAR_RECENTS_LAYOUT_TRANSITION; + import static com.android.launcher3.config.FeatureFlags.enableTaskbarPinning; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_TASKBAR_ALLAPPS_BUTTON_LONG_PRESS; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_TASKBAR_ALLAPPS_BUTTON_TAP; @@ -123,7 +124,7 @@ public class TaskbarViewCallbacks { /** Callback invoked before Taskbar icons are laid out. */ void onPreLayoutChildren() { - if (enableTaskbarPinning() && taskbarRecentsLayoutTransition()) { + if (enableTaskbarPinning() && ENABLE_TASKBAR_RECENTS_LAYOUT_TRANSITION.isTrue()) { mControllers.taskbarViewController.updateTaskbarIconTranslationXForPinning(); } } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java index 6ae13d4b18..7f980aa8f1 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java @@ -19,13 +19,13 @@ import static android.animation.LayoutTransition.APPEARING; import static android.animation.LayoutTransition.CHANGE_APPEARING; import static android.animation.LayoutTransition.CHANGE_DISAPPEARING; import static android.animation.LayoutTransition.DISAPPEARING; +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.Flags.taskbarRecentsLayoutTransition; 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; @@ -189,7 +189,7 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar private final View.OnLayoutChangeListener mTaskbarViewLayoutChangeListener = (v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> { - if (!taskbarRecentsLayoutTransition()) { + if (!ENABLE_TASKBAR_RECENTS_LAYOUT_TRANSITION.isTrue()) { // update shiftX is handled with the animation at the end of the method updateTaskbarIconTranslationXForPinning(/* updateShiftXForBubbleBar = */ false); } @@ -1206,7 +1206,8 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar /** Called when there's a change in running apps to update the UI. */ public void commitRunningAppsToUI() { mModelCallbacks.commitRunningAppsToUI(); - if (taskbarRecentsLayoutTransition() && mTaskbarView.getLayoutTransition() == null) { + if (ENABLE_TASKBAR_RECENTS_LAYOUT_TRANSITION.isTrue() + && mTaskbarView.getLayoutTransition() == null) { // Set up after the first commit so that the initial recents do not animate (janky). mTaskbarView.setLayoutTransition(createLayoutTransitionForRunningApps()); } diff --git a/quickstep/tests/multivalentTests/src/com/android/launcher3/taskbar/TaskbarViewTest.kt b/quickstep/tests/multivalentTests/src/com/android/launcher3/taskbar/TaskbarViewTest.kt index 44d31c49c9..24ed81f4fa 100644 --- a/quickstep/tests/multivalentTests/src/com/android/launcher3/taskbar/TaskbarViewTest.kt +++ b/quickstep/tests/multivalentTests/src/com/android/launcher3/taskbar/TaskbarViewTest.kt @@ -19,7 +19,6 @@ package com.android.launcher3.taskbar import android.platform.test.flag.junit.FlagsParameterization import android.platform.test.flag.junit.FlagsParameterization.allCombinationsOf import android.platform.test.flag.junit.SetFlagsRule -import com.android.launcher3.Flags.FLAG_TASKBAR_RECENTS_LAYOUT_TRANSITION import com.android.launcher3.R import com.android.launcher3.taskbar.TaskbarControllerTestUtil.runOnMainSync import com.android.launcher3.taskbar.TaskbarIconType.ALL_APPS @@ -34,6 +33,7 @@ import com.android.launcher3.taskbar.rules.TaskbarUnitTestRule import com.android.launcher3.taskbar.rules.TaskbarUnitTestRule.ForceRtl import com.android.launcher3.taskbar.rules.TaskbarWindowSandboxContext import com.android.launcher3.util.LauncherMultivalentJUnit.Companion.isRunningInRobolectric +import com.android.window.flags.Flags.FLAG_ENABLE_TASKBAR_RECENTS_LAYOUT_TRANSITION import org.junit.Before import org.junit.Rule import org.junit.Test @@ -54,7 +54,7 @@ class TaskbarViewTest(deviceName: String, flags: FlagsParameterization) { } else { listOf("onDevice") // Unused. } - val flags = allCombinationsOf(FLAG_TASKBAR_RECENTS_LAYOUT_TRANSITION) + val flags = allCombinationsOf(FLAG_ENABLE_TASKBAR_RECENTS_LAYOUT_TRANSITION) return devices.flatMap { d -> flags.map { f -> arrayOf(d, f) } } // Cartesian product. } } 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 ac1572e3ed..53b4d9c40a 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_RECENTS_LAYOUT_TRANSITION import com.android.launcher3.R import com.android.launcher3.statehandlers.DesktopVisibilityController import com.android.launcher3.taskbar.TaskbarControllerTestUtil.runOnMainSync @@ -35,6 +34,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_RECENTS_LAYOUT_TRANSITION import com.google.common.truth.Truth.assertThat import org.junit.Before import org.junit.Rule @@ -44,7 +44,7 @@ import org.mockito.kotlin.whenever @RunWith(LauncherMultivalentJUnit::class) @EmulatedDevices(["pixelFoldable2023", "pixelTablet2023"]) -@EnableFlags(FLAG_TASKBAR_RECENTS_LAYOUT_TRANSITION) +@EnableFlags(FLAG_ENABLE_TASKBAR_RECENTS_LAYOUT_TRANSITION) class TaskbarViewWithLayoutTransitionTest { @get:Rule(order = 0) val setFlagsRule = SetFlagsRule()