Loading aconfig/launcher.aconfig +7 −0 Original line number Original line Diff line number Diff line Loading @@ -41,3 +41,10 @@ flag { description: "Enable updated overview icon and menu within task." description: "Enable updated overview icon and menu within task." bug: "257950105" bug: "257950105" } } flag { name: "enable_taskbar_no_recreate" namespace: "launcher" description: "Enables taskbar with no recreation from lifecycle changes of TaskbarActivityContext." bug: "299193589" } quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java +4 −4 Original line number Original line Diff line number Diff line Loading @@ -29,8 +29,8 @@ import static com.android.launcher3.AbstractFloatingView.TYPE_TASKBAR_OVERLAY_PR import static com.android.launcher3.Flags.enableCursorHoverStates; import static com.android.launcher3.Flags.enableCursorHoverStates; import static com.android.launcher3.Utilities.calculateTextHeight; import static com.android.launcher3.Utilities.calculateTextHeight; import static com.android.launcher3.Utilities.isRunningInTestHarness; import static com.android.launcher3.Utilities.isRunningInTestHarness; import static com.android.launcher3.config.FeatureFlags.ENABLE_TASKBAR_NO_RECREATION; import static com.android.launcher3.config.FeatureFlags.ENABLE_TASKBAR_PINNING; import static com.android.launcher3.config.FeatureFlags.ENABLE_TASKBAR_PINNING; import static com.android.launcher3.config.FeatureFlags.enableTaskbarNoRecreate; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_FOLDER_OPEN; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_FOLDER_OPEN; import static com.android.launcher3.taskbar.TaskbarAutohideSuspendController.FLAG_AUTOHIDE_SUSPEND_DRAGGING; import static com.android.launcher3.taskbar.TaskbarAutohideSuspendController.FLAG_AUTOHIDE_SUSPEND_DRAGGING; import static com.android.launcher3.taskbar.TaskbarAutohideSuspendController.FLAG_AUTOHIDE_SUSPEND_FULLSCREEN; import static com.android.launcher3.taskbar.TaskbarAutohideSuspendController.FLAG_AUTOHIDE_SUSPEND_FULLSCREEN; Loading Loading @@ -339,7 +339,7 @@ public class TaskbarActivityContext extends BaseTaskbarContext { mIsDestroyed = false; mIsDestroyed = false; } } if (!ENABLE_TASKBAR_NO_RECREATION.get() && !mAddedWindow) { if (!enableTaskbarNoRecreate() && !mAddedWindow) { mWindowManager.addView(mDragLayer, mWindowLayoutParams); mWindowManager.addView(mDragLayer, mWindowLayoutParams); mAddedWindow = true; mAddedWindow = true; } else { } else { Loading Loading @@ -695,7 +695,7 @@ public class TaskbarActivityContext extends BaseTaskbarContext { mIsDestroyed = true; mIsDestroyed = true; setUIController(TaskbarUIController.DEFAULT); setUIController(TaskbarUIController.DEFAULT); mControllers.onDestroy(); mControllers.onDestroy(); if (!ENABLE_TASKBAR_NO_RECREATION.get() && !FLAG_HIDE_NAVBAR_WINDOW) { if (!enableTaskbarNoRecreate() && !FLAG_HIDE_NAVBAR_WINDOW) { mWindowManager.removeViewImmediate(mDragLayer); mWindowManager.removeViewImmediate(mDragLayer); mAddedWindow = false; mAddedWindow = false; } } Loading Loading @@ -1290,7 +1290,7 @@ public class TaskbarActivityContext extends BaseTaskbarContext { void notifyUpdateLayoutParams() { void notifyUpdateLayoutParams() { if (mDragLayer.isAttachedToWindow()) { if (mDragLayer.isAttachedToWindow()) { if (ENABLE_TASKBAR_NO_RECREATION.get()) { if (enableTaskbarNoRecreate()) { mWindowManager.updateViewLayout(mDragLayer.getRootView(), mWindowLayoutParams); mWindowManager.updateViewLayout(mDragLayer.getRootView(), mWindowLayoutParams); } else { } else { mWindowManager.updateViewLayout(mDragLayer, mWindowLayoutParams); mWindowManager.updateViewLayout(mDragLayer, mWindowLayoutParams); Loading quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java +7 −8 Original line number Original line Diff line number Diff line Loading @@ -23,7 +23,7 @@ import static android.view.WindowManager.LayoutParams.TYPE_NAVIGATION_BAR_PANEL; import static com.android.launcher3.LauncherPrefs.TASKBAR_PINNING; import static com.android.launcher3.LauncherPrefs.TASKBAR_PINNING; import static com.android.launcher3.LauncherPrefs.TASKBAR_PINNING_KEY; import static com.android.launcher3.LauncherPrefs.TASKBAR_PINNING_KEY; import static com.android.launcher3.LauncherState.OVERVIEW; import static com.android.launcher3.LauncherState.OVERVIEW; import static com.android.launcher3.config.FeatureFlags.ENABLE_TASKBAR_NO_RECREATION; import static com.android.launcher3.config.FeatureFlags.enableTaskbarNoRecreate; import static com.android.launcher3.util.DisplayController.TASKBAR_NOT_DESTROYED_TAG; import static com.android.launcher3.util.DisplayController.TASKBAR_NOT_DESTROYED_TAG; import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR; import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR; import static com.android.launcher3.util.FlagDebugUtils.formatFlagChange; import static com.android.launcher3.util.FlagDebugUtils.formatFlagChange; Loading Loading @@ -210,7 +210,7 @@ public class TaskbarManager { Display display = Display display = service.getSystemService(DisplayManager.class).getDisplay(DEFAULT_DISPLAY); service.getSystemService(DisplayManager.class).getDisplay(DEFAULT_DISPLAY); mContext = service.createWindowContext(display, TYPE_NAVIGATION_BAR_PANEL, null); mContext = service.createWindowContext(display, TYPE_NAVIGATION_BAR_PANEL, null); if (ENABLE_TASKBAR_NO_RECREATION.get()) { if (enableTaskbarNoRecreate()) { mWindowManager = mContext.getSystemService(WindowManager.class); mWindowManager = mContext.getSystemService(WindowManager.class); mTaskbarRootLayout = new FrameLayout(mContext) { mTaskbarRootLayout = new FrameLayout(mContext) { @Override @Override Loading Loading @@ -308,7 +308,7 @@ public class TaskbarManager { LauncherPrefs.get(mContext).removeListener(mTaskbarPinningPreferenceChangeListener, LauncherPrefs.get(mContext).removeListener(mTaskbarPinningPreferenceChangeListener, TASKBAR_PINNING); TASKBAR_PINNING); mTaskbarActivityContext.onDestroy(); mTaskbarActivityContext.onDestroy(); if (!FLAG_HIDE_NAVBAR_WINDOW || ENABLE_TASKBAR_NO_RECREATION.get()) { if (!FLAG_HIDE_NAVBAR_WINDOW || enableTaskbarNoRecreate()) { mTaskbarActivityContext = null; mTaskbarActivityContext = null; } } } } Loading Loading @@ -448,7 +448,7 @@ public class TaskbarManager { return; return; } } if (ENABLE_TASKBAR_NO_RECREATION.get() || mTaskbarActivityContext == null) { if (enableTaskbarNoRecreate() || mTaskbarActivityContext == null) { mTaskbarActivityContext = new TaskbarActivityContext(mContext, dp, mTaskbarActivityContext = new TaskbarActivityContext(mContext, dp, mNavButtonController, mUnfoldProgressProvider); mNavButtonController, mUnfoldProgressProvider); } else { } else { Loading @@ -461,7 +461,7 @@ public class TaskbarManager { createTaskbarUIControllerForActivity(mActivity)); createTaskbarUIControllerForActivity(mActivity)); } } if (ENABLE_TASKBAR_NO_RECREATION.get()) { if (enableTaskbarNoRecreate()) { addTaskbarRootViewToWindow(); addTaskbarRootViewToWindow(); mTaskbarRootLayout.removeAllViews(); mTaskbarRootLayout.removeAllViews(); mTaskbarRootLayout.addView(mTaskbarActivityContext.getDragLayer()); mTaskbarRootLayout.addView(mTaskbarActivityContext.getDragLayer()); Loading Loading @@ -603,8 +603,7 @@ public class TaskbarManager { } } private void addTaskbarRootViewToWindow() { private void addTaskbarRootViewToWindow() { if (ENABLE_TASKBAR_NO_RECREATION.get() && !mAddedWindow if (enableTaskbarNoRecreate() && !mAddedWindow && mTaskbarActivityContext != null) { && mTaskbarActivityContext != null) { mWindowManager.addView(mTaskbarRootLayout, mWindowManager.addView(mTaskbarRootLayout, mTaskbarActivityContext.getWindowLayoutParams()); mTaskbarActivityContext.getWindowLayoutParams()); mAddedWindow = true; mAddedWindow = true; Loading @@ -612,7 +611,7 @@ public class TaskbarManager { } } private void removeTaskbarRootViewFromWindow() { private void removeTaskbarRootViewFromWindow() { if (ENABLE_TASKBAR_NO_RECREATION.get() && mAddedWindow) { if (enableTaskbarNoRecreate() && mAddedWindow) { mWindowManager.removeViewImmediate(mTaskbarRootLayout); mWindowManager.removeViewImmediate(mTaskbarRootLayout); mAddedWindow = false; mAddedWindow = false; } } Loading src/com/android/launcher3/config/FeatureFlags.java +4 −0 Original line number Original line Diff line number Diff line Loading @@ -209,9 +209,13 @@ public final class FeatureFlags { public static final BooleanFlag ENABLE_TRANSIENT_TASKBAR = getDebugFlag(270395798, public static final BooleanFlag ENABLE_TRANSIENT_TASKBAR = getDebugFlag(270395798, "ENABLE_TRANSIENT_TASKBAR", ENABLED, "Enables transient taskbar."); "ENABLE_TRANSIENT_TASKBAR", ENABLED, "Enables transient taskbar."); // Aconfig migration complete for ENABLE_TASKBAR_NO_RECREATION. public static final BooleanFlag ENABLE_TASKBAR_NO_RECREATION = getDebugFlag(299193589, public static final BooleanFlag ENABLE_TASKBAR_NO_RECREATION = getDebugFlag(299193589, "ENABLE_TASKBAR_NO_RECREATION", DISABLED, "ENABLE_TASKBAR_NO_RECREATION", DISABLED, "Enables taskbar with no recreation from lifecycle changes of TaskbarActivityContext."); "Enables taskbar with no recreation from lifecycle changes of TaskbarActivityContext."); public static boolean enableTaskbarNoRecreate() { return ENABLE_TASKBAR_NO_RECREATION.get() || Flags.enableTaskbarNoRecreate(); } // TODO(Block 16): Clean up flags // TODO(Block 16): Clean up flags // When enabled the promise icon is visible in all apps while installation an app. // When enabled the promise icon is visible in all apps while installation an app. Loading Loading
aconfig/launcher.aconfig +7 −0 Original line number Original line Diff line number Diff line Loading @@ -41,3 +41,10 @@ flag { description: "Enable updated overview icon and menu within task." description: "Enable updated overview icon and menu within task." bug: "257950105" bug: "257950105" } } flag { name: "enable_taskbar_no_recreate" namespace: "launcher" description: "Enables taskbar with no recreation from lifecycle changes of TaskbarActivityContext." bug: "299193589" }
quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java +4 −4 Original line number Original line Diff line number Diff line Loading @@ -29,8 +29,8 @@ import static com.android.launcher3.AbstractFloatingView.TYPE_TASKBAR_OVERLAY_PR import static com.android.launcher3.Flags.enableCursorHoverStates; import static com.android.launcher3.Flags.enableCursorHoverStates; import static com.android.launcher3.Utilities.calculateTextHeight; import static com.android.launcher3.Utilities.calculateTextHeight; import static com.android.launcher3.Utilities.isRunningInTestHarness; import static com.android.launcher3.Utilities.isRunningInTestHarness; import static com.android.launcher3.config.FeatureFlags.ENABLE_TASKBAR_NO_RECREATION; import static com.android.launcher3.config.FeatureFlags.ENABLE_TASKBAR_PINNING; import static com.android.launcher3.config.FeatureFlags.ENABLE_TASKBAR_PINNING; import static com.android.launcher3.config.FeatureFlags.enableTaskbarNoRecreate; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_FOLDER_OPEN; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_FOLDER_OPEN; import static com.android.launcher3.taskbar.TaskbarAutohideSuspendController.FLAG_AUTOHIDE_SUSPEND_DRAGGING; import static com.android.launcher3.taskbar.TaskbarAutohideSuspendController.FLAG_AUTOHIDE_SUSPEND_DRAGGING; import static com.android.launcher3.taskbar.TaskbarAutohideSuspendController.FLAG_AUTOHIDE_SUSPEND_FULLSCREEN; import static com.android.launcher3.taskbar.TaskbarAutohideSuspendController.FLAG_AUTOHIDE_SUSPEND_FULLSCREEN; Loading Loading @@ -339,7 +339,7 @@ public class TaskbarActivityContext extends BaseTaskbarContext { mIsDestroyed = false; mIsDestroyed = false; } } if (!ENABLE_TASKBAR_NO_RECREATION.get() && !mAddedWindow) { if (!enableTaskbarNoRecreate() && !mAddedWindow) { mWindowManager.addView(mDragLayer, mWindowLayoutParams); mWindowManager.addView(mDragLayer, mWindowLayoutParams); mAddedWindow = true; mAddedWindow = true; } else { } else { Loading Loading @@ -695,7 +695,7 @@ public class TaskbarActivityContext extends BaseTaskbarContext { mIsDestroyed = true; mIsDestroyed = true; setUIController(TaskbarUIController.DEFAULT); setUIController(TaskbarUIController.DEFAULT); mControllers.onDestroy(); mControllers.onDestroy(); if (!ENABLE_TASKBAR_NO_RECREATION.get() && !FLAG_HIDE_NAVBAR_WINDOW) { if (!enableTaskbarNoRecreate() && !FLAG_HIDE_NAVBAR_WINDOW) { mWindowManager.removeViewImmediate(mDragLayer); mWindowManager.removeViewImmediate(mDragLayer); mAddedWindow = false; mAddedWindow = false; } } Loading Loading @@ -1290,7 +1290,7 @@ public class TaskbarActivityContext extends BaseTaskbarContext { void notifyUpdateLayoutParams() { void notifyUpdateLayoutParams() { if (mDragLayer.isAttachedToWindow()) { if (mDragLayer.isAttachedToWindow()) { if (ENABLE_TASKBAR_NO_RECREATION.get()) { if (enableTaskbarNoRecreate()) { mWindowManager.updateViewLayout(mDragLayer.getRootView(), mWindowLayoutParams); mWindowManager.updateViewLayout(mDragLayer.getRootView(), mWindowLayoutParams); } else { } else { mWindowManager.updateViewLayout(mDragLayer, mWindowLayoutParams); mWindowManager.updateViewLayout(mDragLayer, mWindowLayoutParams); Loading
quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java +7 −8 Original line number Original line Diff line number Diff line Loading @@ -23,7 +23,7 @@ import static android.view.WindowManager.LayoutParams.TYPE_NAVIGATION_BAR_PANEL; import static com.android.launcher3.LauncherPrefs.TASKBAR_PINNING; import static com.android.launcher3.LauncherPrefs.TASKBAR_PINNING; import static com.android.launcher3.LauncherPrefs.TASKBAR_PINNING_KEY; import static com.android.launcher3.LauncherPrefs.TASKBAR_PINNING_KEY; import static com.android.launcher3.LauncherState.OVERVIEW; import static com.android.launcher3.LauncherState.OVERVIEW; import static com.android.launcher3.config.FeatureFlags.ENABLE_TASKBAR_NO_RECREATION; import static com.android.launcher3.config.FeatureFlags.enableTaskbarNoRecreate; import static com.android.launcher3.util.DisplayController.TASKBAR_NOT_DESTROYED_TAG; import static com.android.launcher3.util.DisplayController.TASKBAR_NOT_DESTROYED_TAG; import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR; import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR; import static com.android.launcher3.util.FlagDebugUtils.formatFlagChange; import static com.android.launcher3.util.FlagDebugUtils.formatFlagChange; Loading Loading @@ -210,7 +210,7 @@ public class TaskbarManager { Display display = Display display = service.getSystemService(DisplayManager.class).getDisplay(DEFAULT_DISPLAY); service.getSystemService(DisplayManager.class).getDisplay(DEFAULT_DISPLAY); mContext = service.createWindowContext(display, TYPE_NAVIGATION_BAR_PANEL, null); mContext = service.createWindowContext(display, TYPE_NAVIGATION_BAR_PANEL, null); if (ENABLE_TASKBAR_NO_RECREATION.get()) { if (enableTaskbarNoRecreate()) { mWindowManager = mContext.getSystemService(WindowManager.class); mWindowManager = mContext.getSystemService(WindowManager.class); mTaskbarRootLayout = new FrameLayout(mContext) { mTaskbarRootLayout = new FrameLayout(mContext) { @Override @Override Loading Loading @@ -308,7 +308,7 @@ public class TaskbarManager { LauncherPrefs.get(mContext).removeListener(mTaskbarPinningPreferenceChangeListener, LauncherPrefs.get(mContext).removeListener(mTaskbarPinningPreferenceChangeListener, TASKBAR_PINNING); TASKBAR_PINNING); mTaskbarActivityContext.onDestroy(); mTaskbarActivityContext.onDestroy(); if (!FLAG_HIDE_NAVBAR_WINDOW || ENABLE_TASKBAR_NO_RECREATION.get()) { if (!FLAG_HIDE_NAVBAR_WINDOW || enableTaskbarNoRecreate()) { mTaskbarActivityContext = null; mTaskbarActivityContext = null; } } } } Loading Loading @@ -448,7 +448,7 @@ public class TaskbarManager { return; return; } } if (ENABLE_TASKBAR_NO_RECREATION.get() || mTaskbarActivityContext == null) { if (enableTaskbarNoRecreate() || mTaskbarActivityContext == null) { mTaskbarActivityContext = new TaskbarActivityContext(mContext, dp, mTaskbarActivityContext = new TaskbarActivityContext(mContext, dp, mNavButtonController, mUnfoldProgressProvider); mNavButtonController, mUnfoldProgressProvider); } else { } else { Loading @@ -461,7 +461,7 @@ public class TaskbarManager { createTaskbarUIControllerForActivity(mActivity)); createTaskbarUIControllerForActivity(mActivity)); } } if (ENABLE_TASKBAR_NO_RECREATION.get()) { if (enableTaskbarNoRecreate()) { addTaskbarRootViewToWindow(); addTaskbarRootViewToWindow(); mTaskbarRootLayout.removeAllViews(); mTaskbarRootLayout.removeAllViews(); mTaskbarRootLayout.addView(mTaskbarActivityContext.getDragLayer()); mTaskbarRootLayout.addView(mTaskbarActivityContext.getDragLayer()); Loading Loading @@ -603,8 +603,7 @@ public class TaskbarManager { } } private void addTaskbarRootViewToWindow() { private void addTaskbarRootViewToWindow() { if (ENABLE_TASKBAR_NO_RECREATION.get() && !mAddedWindow if (enableTaskbarNoRecreate() && !mAddedWindow && mTaskbarActivityContext != null) { && mTaskbarActivityContext != null) { mWindowManager.addView(mTaskbarRootLayout, mWindowManager.addView(mTaskbarRootLayout, mTaskbarActivityContext.getWindowLayoutParams()); mTaskbarActivityContext.getWindowLayoutParams()); mAddedWindow = true; mAddedWindow = true; Loading @@ -612,7 +611,7 @@ public class TaskbarManager { } } private void removeTaskbarRootViewFromWindow() { private void removeTaskbarRootViewFromWindow() { if (ENABLE_TASKBAR_NO_RECREATION.get() && mAddedWindow) { if (enableTaskbarNoRecreate() && mAddedWindow) { mWindowManager.removeViewImmediate(mTaskbarRootLayout); mWindowManager.removeViewImmediate(mTaskbarRootLayout); mAddedWindow = false; mAddedWindow = false; } } Loading
src/com/android/launcher3/config/FeatureFlags.java +4 −0 Original line number Original line Diff line number Diff line Loading @@ -209,9 +209,13 @@ public final class FeatureFlags { public static final BooleanFlag ENABLE_TRANSIENT_TASKBAR = getDebugFlag(270395798, public static final BooleanFlag ENABLE_TRANSIENT_TASKBAR = getDebugFlag(270395798, "ENABLE_TRANSIENT_TASKBAR", ENABLED, "Enables transient taskbar."); "ENABLE_TRANSIENT_TASKBAR", ENABLED, "Enables transient taskbar."); // Aconfig migration complete for ENABLE_TASKBAR_NO_RECREATION. public static final BooleanFlag ENABLE_TASKBAR_NO_RECREATION = getDebugFlag(299193589, public static final BooleanFlag ENABLE_TASKBAR_NO_RECREATION = getDebugFlag(299193589, "ENABLE_TASKBAR_NO_RECREATION", DISABLED, "ENABLE_TASKBAR_NO_RECREATION", DISABLED, "Enables taskbar with no recreation from lifecycle changes of TaskbarActivityContext."); "Enables taskbar with no recreation from lifecycle changes of TaskbarActivityContext."); public static boolean enableTaskbarNoRecreate() { return ENABLE_TASKBAR_NO_RECREATION.get() || Flags.enableTaskbarNoRecreate(); } // TODO(Block 16): Clean up flags // TODO(Block 16): Clean up flags // When enabled the promise icon is visible in all apps while installation an app. // When enabled the promise icon is visible in all apps while installation an app. Loading