diff --git a/aconfig/launcher.aconfig b/aconfig/launcher.aconfig index 7c6d7a811f..ace22102e6 100644 --- a/aconfig/launcher.aconfig +++ b/aconfig/launcher.aconfig @@ -48,3 +48,10 @@ flag { description: "Enables taskbar with no recreation from lifecycle changes of TaskbarActivityContext." bug: "299193589" } + +flag { + name: "enable_home_transition_listener" + namespace: "launcher" + description: "Enables launcher to listen to all transitions that include home activity" + bug: "306053414" +} diff --git a/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java b/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java index 445a1bd7a2..09376d7af8 100644 --- a/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java +++ b/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java @@ -16,7 +16,6 @@ package com.android.launcher3.taskbar; import static com.android.launcher3.QuickstepTransitionManager.TRANSIENT_TASKBAR_TRANSITION_DURATION; -import static com.android.launcher3.config.FeatureFlags.ENABLE_HOME_TRANSITION_LISTENER; import static com.android.launcher3.statemanager.BaseState.FLAG_NON_INTERACTIVE; import static com.android.launcher3.taskbar.TaskbarEduTooltipControllerKt.TOOLTIP_STEP_FEATURES; import static com.android.launcher3.taskbar.TaskbarLauncherStateController.FLAG_VISIBLE; @@ -39,6 +38,7 @@ import com.android.launcher3.QuickstepTransitionManager; import com.android.launcher3.R; import com.android.launcher3.Utilities; import com.android.launcher3.anim.AnimatedFloat; +import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.logging.InstanceId; import com.android.launcher3.logging.InstanceIdSequence; import com.android.launcher3.model.data.ItemInfo; @@ -101,7 +101,7 @@ public class LauncherTaskbarUIController extends TaskbarUIController { mLauncher.setTaskbarUIController(this); - if (!ENABLE_HOME_TRANSITION_LISTENER.get()) { + if (!FeatureFlags.enableHomeTransitionListener()) { onLauncherVisibilityChanged(mLauncher.hasBeenResumed(), true /* fromInit */); } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java index d4f42d88f1..267b15c5bf 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java @@ -206,7 +206,9 @@ public class TaskbarLauncherStateController { updateStateForFlag(FLAG_LAUNCHER_IN_STATE_TRANSITION, false); // TODO(b/279514548) Cleans up bad state that can occur when user interacts with // taskbar on top of transparent activity. - if (finalState == LauncherState.NORMAL && mLauncher.hasBeenResumed()) { + if (!FeatureFlags.enableHomeTransitionListener() + && finalState == LauncherState.NORMAL + && mLauncher.hasBeenResumed()) { updateStateForFlag(FLAG_VISIBLE, true); } applyState(); diff --git a/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java b/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java index 009b1bd286..8b9eeb17e0 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java +++ b/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java @@ -34,6 +34,7 @@ import static com.android.launcher3.LauncherState.OVERVIEW_MODAL_TASK; import static com.android.launcher3.LauncherState.OVERVIEW_SPLIT_SELECT; import static com.android.launcher3.compat.AccessibilityManagerCompat.sendCustomAccessibilityEvent; import static com.android.launcher3.config.FeatureFlags.ENABLE_HOME_TRANSITION_LISTENER; +import static com.android.launcher3.config.FeatureFlags.ENABLE_SPLIT_FROM_WORKSPACE_TO_WORKSPACE; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_APP_LAUNCH_TAP; import static com.android.launcher3.model.data.ItemInfo.NO_MATCHING_ID; import static com.android.launcher3.popup.QuickstepSystemShortcut.getSplitSelectShortcutByPosition; @@ -264,7 +265,7 @@ public class QuickstepLauncher extends Launcher { mAppTransitionManager.registerRemoteAnimations(); mAppTransitionManager.registerRemoteTransitions(); - if (ENABLE_HOME_TRANSITION_LISTENER.get()) { + if (FeatureFlags.enableHomeTransitionListener()) { mHomeTransitionController = new HomeTransitionController(this); mHomeTransitionController.registerHomeTransitionListener(); } @@ -376,7 +377,7 @@ public class QuickstepLauncher extends Launcher { } if ((changeBits & ACTIVITY_STATE_RESUMED) != 0) { - if (!ENABLE_HOME_TRANSITION_LISTENER.get() && mTaskbarUIController != null) { + if (!FeatureFlags.enableHomeTransitionListener() && mTaskbarUIController != null) { mTaskbarUIController.onLauncherVisibilityChanged(hasBeenResumed()); } } diff --git a/quickstep/src/com/android/quickstep/SystemUiProxy.java b/quickstep/src/com/android/quickstep/SystemUiProxy.java index 468d96a82f..038a022510 100644 --- a/quickstep/src/com/android/quickstep/SystemUiProxy.java +++ b/quickstep/src/com/android/quickstep/SystemUiProxy.java @@ -17,7 +17,6 @@ package com.android.quickstep; import static android.app.ActivityManager.RECENT_IGNORE_UNAVAILABLE; -import static com.android.launcher3.config.FeatureFlags.ENABLE_HOME_TRANSITION_LISTENER; import static com.android.launcher3.util.Executors.MAIN_EXECUTOR; import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR; import static com.android.launcher3.util.SplitConfigurationOptions.StagePosition; @@ -63,6 +62,7 @@ import androidx.annotation.WorkerThread; import com.android.internal.logging.InstanceId; import com.android.internal.util.ScreenshotRequest; import com.android.internal.view.AppearanceRegion; +import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.util.MainThreadInitializedObject; import com.android.launcher3.util.Preconditions; import com.android.quickstep.util.ActiveGestureLog; @@ -1048,7 +1048,7 @@ public class SystemUiProxy implements ISystemUiProxy { } public void setHomeTransitionListener(IHomeTransitionListener listener) { - if (!ENABLE_HOME_TRANSITION_LISTENER.get()) { + if (!FeatureFlags.enableHomeTransitionListener()) { return; } diff --git a/src/com/android/launcher3/config/FeatureFlags.java b/src/com/android/launcher3/config/FeatureFlags.java index 4d8166c109..fc02c7768f 100644 --- a/src/com/android/launcher3/config/FeatureFlags.java +++ b/src/com/android/launcher3/config/FeatureFlags.java @@ -305,10 +305,15 @@ public final class FeatureFlags { "ENABLE_DYNAMIC_TASKBAR_THRESHOLDS", ENABLED, "Enables taskbar thresholds that scale based on screen size."); + // Aconfig migration complete for ENABLE_HOME_TRANSITION_LISTENER. public static final BooleanFlag ENABLE_HOME_TRANSITION_LISTENER = getDebugFlag(306053414, - "ENABLE_HOME_TRANSITION_LISTENER", DISABLED, + "ENABLE_HOME_TRANSITION_LISTENER", TEAMFOOD, "Enables launcher to listen to all transitions that include home activity."); + public static boolean enableHomeTransitionListener() { + return ENABLE_HOME_TRANSITION_LISTENER.get() || Flags.enableHomeTransitionListener(); + } + // TODO(Block 21): Clean up flags public static final BooleanFlag ENABLE_APP_ICON_FOR_INLINE_SHORTCUTS = getDebugFlag(270395087, "ENABLE_APP_ICON_IN_INLINE_SHORTCUTS", DISABLED, "Show app icon for inline shortcut");