feat: Flags Android 16 QPR1

This commit is contained in:
Pun Butrach
2025-11-16 17:45:20 +07:00
parent e42459a324
commit b4ec75bb34
20 changed files with 3732 additions and 4181 deletions
@@ -1,6 +1,5 @@
package com.android.wm.shell;
// TODO(b/303773055): Remove the annotation after access issue is resolved.
import java.util.Arrays;
import java.util.HashSet;
@@ -18,13 +17,6 @@ public class CustomFeatureFlags implements FeatureFlags {
}
@Override
public boolean bubbleViewInfoExecutors() {
return getValue(Flags.FLAG_BUBBLE_VIEW_INFO_EXECUTORS,
FeatureFlags::bubbleViewInfoExecutors);
}
@Override
public boolean enableAutoTaskStackController() {
return getValue(Flags.FLAG_ENABLE_AUTO_TASK_STACK_CONTROLLER,
FeatureFlags::enableAutoTaskStackController);
@@ -39,6 +31,13 @@ public class CustomFeatureFlags implements FeatureFlags {
@Override
public boolean enableBubbleAppCompatFixes() {
return getValue(Flags.FLAG_ENABLE_BUBBLE_APP_COMPAT_FIXES,
FeatureFlags::enableBubbleAppCompatFixes);
}
@Override
public boolean enableBubbleBar() {
return getValue(Flags.FLAG_ENABLE_BUBBLE_BAR,
FeatureFlags::enableBubbleBar);
@@ -60,6 +59,13 @@ public class CustomFeatureFlags implements FeatureFlags {
@Override
public boolean enableBubbleSwipeUpCleanup() {
return getValue(Flags.FLAG_ENABLE_BUBBLE_SWIPE_UP_CLEANUP,
FeatureFlags::enableBubbleSwipeUpCleanup);
}
@Override
public boolean enableBubbleTaskViewListener() {
return getValue(Flags.FLAG_ENABLE_BUBBLE_TASK_VIEW_LISTENER,
FeatureFlags::enableBubbleTaskViewListener);
@@ -95,6 +101,13 @@ public class CustomFeatureFlags implements FeatureFlags {
@Override
public boolean enableEnterSplitRemoveBubble() {
return getValue(Flags.FLAG_ENABLE_ENTER_SPLIT_REMOVE_BUBBLE,
FeatureFlags::enableEnterSplitRemoveBubble);
}
@Override
public boolean enableFlexibleSplit() {
return getValue(Flags.FLAG_ENABLE_FLEXIBLE_SPLIT,
FeatureFlags::enableFlexibleSplit);
@@ -144,6 +157,13 @@ public class CustomFeatureFlags implements FeatureFlags {
@Override
public boolean enablePipBoxShadows() {
return getValue(Flags.FLAG_ENABLE_PIP_BOX_SHADOWS,
FeatureFlags::enablePipBoxShadows);
}
@Override
public boolean enablePipUmoExperience() {
return getValue(Flags.FLAG_ENABLE_PIP_UMO_EXPERIENCE,
FeatureFlags::enablePipUmoExperience);
@@ -172,13 +192,6 @@ public class CustomFeatureFlags implements FeatureFlags {
@Override
public boolean enableTaskViewControllerCleanup() {
return getValue(Flags.FLAG_ENABLE_TASK_VIEW_CONTROLLER_CLEANUP,
FeatureFlags::enableTaskViewControllerCleanup);
}
@Override
public boolean enableTaskbarNavbarUnification() {
return getValue(Flags.FLAG_ENABLE_TASKBAR_NAVBAR_UNIFICATION,
FeatureFlags::enableTaskbarNavbarUnification);
@@ -219,6 +232,13 @@ public class CustomFeatureFlags implements FeatureFlags {
FeatureFlags::taskViewRepository);
}
@Override
public boolean taskViewTransitionsRefactor() {
return getValue(Flags.FLAG_TASK_VIEW_TRANSITIONS_REFACTOR,
FeatureFlags::taskViewTransitionsRefactor);
}
public boolean isFlagReadOnlyOptimized(String flagName) {
if (mReadOnlyFlagsSet.contains(flagName) &&
isOptimizationEnabled()) {
@@ -238,17 +258,19 @@ public class CustomFeatureFlags implements FeatureFlags {
public List<String> getFlagNames() {
return Arrays.asList(
Flags.FLAG_BUBBLE_VIEW_INFO_EXECUTORS,
Flags.FLAG_ENABLE_AUTO_TASK_STACK_CONTROLLER,
Flags.FLAG_ENABLE_BUBBLE_ANYTHING,
Flags.FLAG_ENABLE_BUBBLE_APP_COMPAT_FIXES,
Flags.FLAG_ENABLE_BUBBLE_BAR,
Flags.FLAG_ENABLE_BUBBLE_BAR_ON_PHONES,
Flags.FLAG_ENABLE_BUBBLE_STASHING,
Flags.FLAG_ENABLE_BUBBLE_SWIPE_UP_CLEANUP,
Flags.FLAG_ENABLE_BUBBLE_TASK_VIEW_LISTENER,
Flags.FLAG_ENABLE_BUBBLE_TO_FULLSCREEN,
Flags.FLAG_ENABLE_BUBBLES_LONG_PRESS_NAV_HANDLE,
Flags.FLAG_ENABLE_CREATE_ANY_BUBBLE,
Flags.FLAG_ENABLE_DYNAMIC_INSETS_FOR_APP_LAUNCH,
Flags.FLAG_ENABLE_ENTER_SPLIT_REMOVE_BUBBLE,
Flags.FLAG_ENABLE_FLEXIBLE_SPLIT,
Flags.FLAG_ENABLE_FLEXIBLE_TWO_APP_SPLIT,
Flags.FLAG_ENABLE_GSF,
@@ -256,51 +278,55 @@ public class CustomFeatureFlags implements FeatureFlags {
Flags.FLAG_ENABLE_NEW_BUBBLE_ANIMATIONS,
Flags.FLAG_ENABLE_OPTIONAL_BUBBLE_OVERFLOW,
Flags.FLAG_ENABLE_PIP2,
Flags.FLAG_ENABLE_PIP_BOX_SHADOWS,
Flags.FLAG_ENABLE_PIP_UMO_EXPERIENCE,
Flags.FLAG_ENABLE_RECENTS_BOOKEND_TRANSITION,
Flags.FLAG_ENABLE_RETRIEVABLE_BUBBLES,
Flags.FLAG_ENABLE_SHELL_TOP_TASK_TRACKING,
Flags.FLAG_ENABLE_TASK_VIEW_CONTROLLER_CLEANUP,
Flags.FLAG_ENABLE_TASKBAR_NAVBAR_UNIFICATION,
Flags.FLAG_ENABLE_TASKBAR_ON_PHONES,
Flags.FLAG_ENABLE_TINY_TASKBAR,
Flags.FLAG_FIX_MISSING_USER_CHANGE_CALLBACKS,
Flags.FLAG_ONLY_REUSE_BUBBLED_TASK_WHEN_LAUNCHED_FROM_BUBBLE,
Flags.FLAG_TASK_VIEW_REPOSITORY
);
}
private Set<String> mReadOnlyFlagsSet = new HashSet<>(
Arrays.asList(
Flags.FLAG_BUBBLE_VIEW_INFO_EXECUTORS,
Flags.FLAG_ENABLE_AUTO_TASK_STACK_CONTROLLER,
Flags.FLAG_ENABLE_BUBBLE_ANYTHING,
Flags.FLAG_ENABLE_BUBBLE_BAR,
Flags.FLAG_ENABLE_BUBBLE_BAR_ON_PHONES,
Flags.FLAG_ENABLE_BUBBLE_STASHING,
Flags.FLAG_ENABLE_BUBBLE_TASK_VIEW_LISTENER,
Flags.FLAG_ENABLE_BUBBLE_TO_FULLSCREEN,
Flags.FLAG_ENABLE_BUBBLES_LONG_PRESS_NAV_HANDLE,
Flags.FLAG_ENABLE_CREATE_ANY_BUBBLE,
Flags.FLAG_ENABLE_DYNAMIC_INSETS_FOR_APP_LAUNCH,
Flags.FLAG_ENABLE_FLEXIBLE_SPLIT,
Flags.FLAG_ENABLE_FLEXIBLE_TWO_APP_SPLIT,
Flags.FLAG_ENABLE_GSF,
Flags.FLAG_ENABLE_MAGNETIC_SPLIT_DIVIDER,
Flags.FLAG_ENABLE_NEW_BUBBLE_ANIMATIONS,
Flags.FLAG_ENABLE_OPTIONAL_BUBBLE_OVERFLOW,
Flags.FLAG_ENABLE_PIP2,
Flags.FLAG_ENABLE_PIP_UMO_EXPERIENCE,
Flags.FLAG_ENABLE_RECENTS_BOOKEND_TRANSITION,
Flags.FLAG_ENABLE_RETRIEVABLE_BUBBLES,
Flags.FLAG_ENABLE_SHELL_TOP_TASK_TRACKING,
Flags.FLAG_ENABLE_TASK_VIEW_CONTROLLER_CLEANUP,
Flags.FLAG_ENABLE_TASKBAR_NAVBAR_UNIFICATION,
Flags.FLAG_ENABLE_TASKBAR_ON_PHONES,
Flags.FLAG_ENABLE_TINY_TASKBAR,
Flags.FLAG_FIX_MISSING_USER_CHANGE_CALLBACKS,
Flags.FLAG_ONLY_REUSE_BUBBLED_TASK_WHEN_LAUNCHED_FROM_BUBBLE,
Flags.FLAG_TASK_VIEW_REPOSITORY,
Flags.FLAG_TASK_VIEW_TRANSITIONS_REFACTOR
);
}
private Set<String> mReadOnlyFlagsSet = new HashSet<>(
Arrays.asList(
Flags.FLAG_ENABLE_AUTO_TASK_STACK_CONTROLLER,
Flags.FLAG_ENABLE_BUBBLE_ANYTHING,
Flags.FLAG_ENABLE_BUBBLE_APP_COMPAT_FIXES,
Flags.FLAG_ENABLE_BUBBLE_BAR,
Flags.FLAG_ENABLE_BUBBLE_BAR_ON_PHONES,
Flags.FLAG_ENABLE_BUBBLE_STASHING,
Flags.FLAG_ENABLE_BUBBLE_SWIPE_UP_CLEANUP,
Flags.FLAG_ENABLE_BUBBLE_TASK_VIEW_LISTENER,
Flags.FLAG_ENABLE_BUBBLE_TO_FULLSCREEN,
Flags.FLAG_ENABLE_BUBBLES_LONG_PRESS_NAV_HANDLE,
Flags.FLAG_ENABLE_CREATE_ANY_BUBBLE,
Flags.FLAG_ENABLE_DYNAMIC_INSETS_FOR_APP_LAUNCH,
Flags.FLAG_ENABLE_ENTER_SPLIT_REMOVE_BUBBLE,
Flags.FLAG_ENABLE_FLEXIBLE_SPLIT,
Flags.FLAG_ENABLE_FLEXIBLE_TWO_APP_SPLIT,
Flags.FLAG_ENABLE_GSF,
Flags.FLAG_ENABLE_MAGNETIC_SPLIT_DIVIDER,
Flags.FLAG_ENABLE_NEW_BUBBLE_ANIMATIONS,
Flags.FLAG_ENABLE_OPTIONAL_BUBBLE_OVERFLOW,
Flags.FLAG_ENABLE_PIP2,
Flags.FLAG_ENABLE_PIP_BOX_SHADOWS,
Flags.FLAG_ENABLE_PIP_UMO_EXPERIENCE,
Flags.FLAG_ENABLE_RECENTS_BOOKEND_TRANSITION,
Flags.FLAG_ENABLE_RETRIEVABLE_BUBBLES,
Flags.FLAG_ENABLE_SHELL_TOP_TASK_TRACKING,
Flags.FLAG_ENABLE_TASKBAR_NAVBAR_UNIFICATION,
Flags.FLAG_ENABLE_TASKBAR_ON_PHONES,
Flags.FLAG_ENABLE_TINY_TASKBAR,
Flags.FLAG_FIX_MISSING_USER_CHANGE_CALLBACKS,
Flags.FLAG_ONLY_REUSE_BUBBLED_TASK_WHEN_LAUNCHED_FROM_BUBBLE,
Flags.FLAG_TASK_VIEW_REPOSITORY,
Flags.FLAG_TASK_VIEW_TRANSITIONS_REFACTOR,
""
)
);
@@ -1,5 +1,4 @@
package com.android.wm.shell;
// TODO(b/303773055): Remove the annotation after access issue is resolved.
/** @hide */
public interface FeatureFlags {
@@ -7,10 +6,6 @@ public interface FeatureFlags {
boolean bubbleViewInfoExecutors();
boolean enableAutoTaskStackController();
@@ -19,6 +14,10 @@ public interface FeatureFlags {
boolean enableBubbleAppCompatFixes();
boolean enableBubbleBar();
@@ -31,6 +30,10 @@ public interface FeatureFlags {
boolean enableBubbleSwipeUpCleanup();
boolean enableBubbleTaskViewListener();
@@ -51,6 +54,10 @@ public interface FeatureFlags {
boolean enableEnterSplitRemoveBubble();
boolean enableFlexibleSplit();
@@ -79,6 +86,10 @@ public interface FeatureFlags {
boolean enablePipBoxShadows();
boolean enablePipUmoExperience();
@@ -95,10 +106,6 @@ public interface FeatureFlags {
boolean enableTaskViewControllerCleanup();
boolean enableTaskbarNavbarUnification();
@@ -120,4 +127,8 @@ public interface FeatureFlags {
boolean taskViewRepository();
boolean taskViewTransitionsRefactor();
}
@@ -1,18 +1,10 @@
package com.android.wm.shell;
// TODO(b/303773055): Remove the annotation after access issue is resolved.
/** @hide */
public final class FeatureFlagsImpl implements FeatureFlags {
@Override
public boolean bubbleViewInfoExecutors() {
return true;
}
@Override
public boolean enableAutoTaskStackController() {
return false;
}
@@ -27,6 +19,13 @@ public final class FeatureFlagsImpl implements FeatureFlags {
@Override
public boolean enableBubbleAppCompatFixes() {
return true;
}
@Override
public boolean enableBubbleBar() {
return false;
}
@@ -48,6 +47,13 @@ public final class FeatureFlagsImpl implements FeatureFlags {
@Override
public boolean enableBubbleSwipeUpCleanup() {
return true;
}
@Override
public boolean enableBubbleTaskViewListener() {
return false;
}
@@ -77,6 +83,13 @@ public final class FeatureFlagsImpl implements FeatureFlags {
public boolean enableDynamicInsetsForAppLaunch() {
return true;
}
@Override
public boolean enableEnterSplitRemoveBubble() {
return false;
}
@@ -132,6 +145,13 @@ public final class FeatureFlagsImpl implements FeatureFlags {
@Override
public boolean enablePipBoxShadows() {
return false;
}
@Override
public boolean enablePipUmoExperience() {
return false;
}
@@ -140,7 +160,7 @@ public final class FeatureFlagsImpl implements FeatureFlags {
public boolean enableRecentsBookendTransition() {
return false;
return true;
}
@Override
@@ -160,13 +180,6 @@ public final class FeatureFlagsImpl implements FeatureFlags {
@Override
public boolean enableTaskViewControllerCleanup() {
return true;
}
@Override
public boolean enableTaskbarNavbarUnification() {
return true;
}
@@ -189,7 +202,7 @@ public final class FeatureFlagsImpl implements FeatureFlags {
public boolean fixMissingUserChangeCallbacks() {
return false;
return true;
}
@Override
@@ -203,6 +216,13 @@ public final class FeatureFlagsImpl implements FeatureFlags {
public boolean taskViewRepository() {
return true;
}
@Override
public boolean taskViewTransitionsRefactor() {
return false;
}
+36 -42
View File
@@ -1,22 +1,23 @@
package com.android.wm.shell;
// TODO(b/303773055): Remove the annotation after access issue is resolved.
/** @hide */
public final class Flags {
/** @hide */
public static final String FLAG_BUBBLE_VIEW_INFO_EXECUTORS = "com.android.wm.shell.bubble_view_info_executors";
/** @hide */
public static final String FLAG_ENABLE_AUTO_TASK_STACK_CONTROLLER = "com.android.wm.shell.enable_auto_task_stack_controller";
/** @hide */
public static final String FLAG_ENABLE_BUBBLE_ANYTHING = "com.android.wm.shell.enable_bubble_anything";
/** @hide */
public static final String FLAG_ENABLE_BUBBLE_APP_COMPAT_FIXES = "com.android.wm.shell.enable_bubble_app_compat_fixes";
/** @hide */
public static final String FLAG_ENABLE_BUBBLE_BAR = "com.android.wm.shell.enable_bubble_bar";
/** @hide */
public static final String FLAG_ENABLE_BUBBLE_BAR_ON_PHONES = "com.android.wm.shell.enable_bubble_bar_on_phones";
/** @hide */
public static final String FLAG_ENABLE_BUBBLE_STASHING = "com.android.wm.shell.enable_bubble_stashing";
/** @hide */
public static final String FLAG_ENABLE_BUBBLE_SWIPE_UP_CLEANUP = "com.android.wm.shell.enable_bubble_swipe_up_cleanup";
/** @hide */
public static final String FLAG_ENABLE_BUBBLE_TASK_VIEW_LISTENER = "com.android.wm.shell.enable_bubble_task_view_listener";
/** @hide */
public static final String FLAG_ENABLE_BUBBLE_TO_FULLSCREEN = "com.android.wm.shell.enable_bubble_to_fullscreen";
@@ -27,6 +28,8 @@ public final class Flags {
/** @hide */
public static final String FLAG_ENABLE_DYNAMIC_INSETS_FOR_APP_LAUNCH = "com.android.wm.shell.enable_dynamic_insets_for_app_launch";
/** @hide */
public static final String FLAG_ENABLE_ENTER_SPLIT_REMOVE_BUBBLE = "com.android.wm.shell.enable_enter_split_remove_bubble";
/** @hide */
public static final String FLAG_ENABLE_FLEXIBLE_SPLIT = "com.android.wm.shell.enable_flexible_split";
/** @hide */
public static final String FLAG_ENABLE_FLEXIBLE_TWO_APP_SPLIT = "com.android.wm.shell.enable_flexible_two_app_split";
@@ -41,6 +44,8 @@ public final class Flags {
/** @hide */
public static final String FLAG_ENABLE_PIP2 = "com.android.wm.shell.enable_pip2";
/** @hide */
public static final String FLAG_ENABLE_PIP_BOX_SHADOWS = "com.android.wm.shell.enable_pip_box_shadows";
/** @hide */
public static final String FLAG_ENABLE_PIP_UMO_EXPERIENCE = "com.android.wm.shell.enable_pip_umo_experience";
/** @hide */
public static final String FLAG_ENABLE_RECENTS_BOOKEND_TRANSITION = "com.android.wm.shell.enable_recents_bookend_transition";
@@ -49,8 +54,6 @@ public final class Flags {
/** @hide */
public static final String FLAG_ENABLE_SHELL_TOP_TASK_TRACKING = "com.android.wm.shell.enable_shell_top_task_tracking";
/** @hide */
public static final String FLAG_ENABLE_TASK_VIEW_CONTROLLER_CLEANUP = "com.android.wm.shell.enable_task_view_controller_cleanup";
/** @hide */
public static final String FLAG_ENABLE_TASKBAR_NAVBAR_UNIFICATION = "com.android.wm.shell.enable_taskbar_navbar_unification";
/** @hide */
public static final String FLAG_ENABLE_TASKBAR_ON_PHONES = "com.android.wm.shell.enable_taskbar_on_phones";
@@ -62,14 +65,8 @@ public final class Flags {
public static final String FLAG_ONLY_REUSE_BUBBLED_TASK_WHEN_LAUNCHED_FROM_BUBBLE = "com.android.wm.shell.only_reuse_bubbled_task_when_launched_from_bubble";
/** @hide */
public static final String FLAG_TASK_VIEW_REPOSITORY = "com.android.wm.shell.task_view_repository";
public static boolean bubbleViewInfoExecutors() {
return FEATURE_FLAGS.bubbleViewInfoExecutors();
}
/** @hide */
public static final String FLAG_TASK_VIEW_TRANSITIONS_REFACTOR = "com.android.wm.shell.task_view_transitions_refactor";
public static boolean enableAutoTaskStackController() {
@@ -78,13 +75,17 @@ public final class Flags {
}
public static boolean enableBubbleAnything() {
return FEATURE_FLAGS.enableBubbleAnything();
}
public static boolean enableBubbleAppCompatFixes() {
return FEATURE_FLAGS.enableBubbleAppCompatFixes();
}
public static boolean enableBubbleBar() {
@@ -92,20 +93,23 @@ public final class Flags {
}
public static boolean enableBubbleBarOnPhones() {
return FEATURE_FLAGS.enableBubbleBarOnPhones();
}
public static boolean enableBubbleStashing() {
return FEATURE_FLAGS.enableBubbleStashing();
}
public static boolean enableBubbleSwipeUpCleanup() {
return FEATURE_FLAGS.enableBubbleSwipeUpCleanup();
}
public static boolean enableBubbleTaskViewListener() {
@@ -113,34 +117,35 @@ public final class Flags {
}
public static boolean enableBubbleToFullscreen() {
return FEATURE_FLAGS.enableBubbleToFullscreen();
}
public static boolean enableBubblesLongPressNavHandle() {
return FEATURE_FLAGS.enableBubblesLongPressNavHandle();
}
public static boolean enableCreateAnyBubble() {
return FEATURE_FLAGS.enableCreateAnyBubble();
}
public static boolean enableDynamicInsetsForAppLaunch() {
return FEATURE_FLAGS.enableDynamicInsetsForAppLaunch();
}
public static boolean enableEnterSplitRemoveBubble() {
return FEATURE_FLAGS.enableEnterSplitRemoveBubble();
}
public static boolean enableFlexibleSplit() {
@@ -148,48 +153,47 @@ public final class Flags {
}
public static boolean enableFlexibleTwoAppSplit() {
return FEATURE_FLAGS.enableFlexibleTwoAppSplit();
}
public static boolean enableGsf() {
return FEATURE_FLAGS.enableGsf();
}
public static boolean enableMagneticSplitDivider() {
return FEATURE_FLAGS.enableMagneticSplitDivider();
}
public static boolean enableNewBubbleAnimations() {
return FEATURE_FLAGS.enableNewBubbleAnimations();
}
public static boolean enableOptionalBubbleOverflow() {
return FEATURE_FLAGS.enableOptionalBubbleOverflow();
}
public static boolean enablePip2() {
return FEATURE_FLAGS.enablePip2();
}
public static boolean enablePipBoxShadows() {
return FEATURE_FLAGS.enablePipBoxShadows();
}
public static boolean enablePipUmoExperience() {
@@ -197,75 +201,65 @@ public final class Flags {
}
public static boolean enableRecentsBookendTransition() {
return FEATURE_FLAGS.enableRecentsBookendTransition();
}
public static boolean enableRetrievableBubbles() {
return FEATURE_FLAGS.enableRetrievableBubbles();
}
public static boolean enableShellTopTaskTracking() {
return FEATURE_FLAGS.enableShellTopTaskTracking();
}
public static boolean enableTaskViewControllerCleanup() {
return FEATURE_FLAGS.enableTaskViewControllerCleanup();
}
public static boolean enableTaskbarNavbarUnification() {
return FEATURE_FLAGS.enableTaskbarNavbarUnification();
}
public static boolean enableTaskbarOnPhones() {
return FEATURE_FLAGS.enableTaskbarOnPhones();
}
public static boolean enableTinyTaskbar() {
return FEATURE_FLAGS.enableTinyTaskbar();
}
public static boolean fixMissingUserChangeCallbacks() {
return FEATURE_FLAGS.fixMissingUserChangeCallbacks();
}
public static boolean onlyReuseBubbledTaskWhenLaunchedFromBubble() {
return FEATURE_FLAGS.onlyReuseBubbledTaskWhenLaunchedFromBubble();
}
public static boolean taskViewRepository() {
return FEATURE_FLAGS.taskViewRepository();
}
public static boolean taskViewTransitionsRefactor() {
return FEATURE_FLAGS.taskViewTransitionsRefactor();
}
private static FeatureFlags FEATURE_FLAGS = new FeatureFlagsImpl();
}