Files
Lawnchair/flags/src/com/android/window/flags2/FeatureFlagsImpl.java
T
2024-11-23 19:25:44 +08:00

1639 lines
47 KiB
Java

package com.android.window.flags2;
// TODO(b/303773055): Remove the annotation after access issue is resolved.
import com.android.quickstep.util.DeviceConfigHelper;
import java.nio.file.Files;
import java.nio.file.Paths;
/** @hide */
public final class FeatureFlagsImpl implements FeatureFlags {
private static final boolean isReadFromNew = Files.exists(Paths.get("/metadata/aconfig/boot/enable_only_new_storage"));
private static volatile boolean isCached = false;
private static volatile boolean accessibility_is_cached = false;
private static volatile boolean large_screen_experiences_app_compat_is_cached = false;
private static volatile boolean lse_desktop_experience_is_cached = false;
private static volatile boolean multitasking_is_cached = false;
private static volatile boolean responsible_apis_is_cached = false;
private static volatile boolean systemui_is_cached = false;
private static volatile boolean wear_frameworks_is_cached = false;
private static volatile boolean window_surfaces_is_cached = false;
private static volatile boolean windowing_frontend_is_cached = false;
private static volatile boolean windowing_sdk_is_cached = false;
private static boolean activityEmbeddingAnimationCustomizationFlag = false;
private static boolean activityEmbeddingInteractiveDividerFlag = true;
private static boolean activityEmbeddingOverlayPresentationFlag = true;
private static boolean allowHideScmButton = true;
private static boolean alwaysDeferTransitionWhenApplyWct = true;
private static boolean alwaysDrawMagnificationFullscreenBorder = true;
private static boolean alwaysUpdateWallpaperPermission = true;
private static boolean balDontBringExistingBackgroundTaskStackToFg = true;
private static boolean balImproveRealCallerVisibilityCheck = true;
private static boolean balImprovedMetrics = true;
private static boolean balRequireOptInByPendingIntentCreator = true;
private static boolean balRequireOptInSameUid = false;
private static boolean balRespectAppSwitchStateWhenCheckBoundByForegroundUid = true;
private static boolean balShowToasts = false;
private static boolean balShowToastsBlocked = true;
private static boolean blastSyncNotificationShadeOnDisplaySwitch = true;
private static boolean closeToSquareConfigIncludesStatusBar = false;
private static boolean delayNotificationToMagnificationWhenRecentsWindowToFrontTransition = true;
private static boolean disableThinLetterboxingPolicy = true;
private static boolean doNotCheckIntersectionWhenNonMagnifiableWindowTransitions = true;
private static boolean edgeToEdgeByDefault = false;
private static boolean embeddedActivityBackNavFlag = true;
private static boolean enableAdditionalWindowsAboveStatusBar = false;
private static boolean enableAppHeaderWithTaskDensity = true;
private static boolean enableCameraCompatForDesktopWindowing = true;
private static boolean enableCompatuiSysuiLauncher = false;
private static boolean enableDesktopWindowingImmersiveHandleHiding = false;
private static boolean enableDesktopWindowingModalsPolicy = true;
private static boolean enableDesktopWindowingMode = false;
private static boolean enableDesktopWindowingQuickSwitch = false;
private static boolean enableDesktopWindowingScvhCache = false;
private static boolean enableDesktopWindowingSizeConstraints = false;
private static boolean enableDesktopWindowingTaskLimit = true;
private static boolean enableDesktopWindowingTaskbarRunningApps = true;
private static boolean enableDesktopWindowingWallpaperActivity = false;
private static boolean enableTaskStackObserverInShell = true;
private static boolean enableThemedAppHeaders = true;
private static boolean enableWindowingDynamicInitialBounds = false;
private static boolean enableWindowingEdgeDragResize = false;
private static boolean ensureWallpaperInTransitions = false;
private static boolean fixPipRestoreToOverlay = true;
private static boolean fullscreenDimFlag = true;
private static boolean immersiveAppRepositioning = true;
private static boolean insetsControlChangedItem = false;
private static boolean letterboxBackgroundWallpaper = false;
private static boolean moveAnimationOptionsToChange = true;
private static boolean multiCrop = true;
private static boolean navBarTransparentByDefault = true;
private static boolean noConsecutiveVisibilityEvents = true;
private static boolean noVisibilityEventOnDisplayStateChange = true;
private static boolean offloadColorExtraction = false;
private static boolean predictiveBackSystemAnims = true;
private static boolean taskFragmentSystemOrganizerFlag = true;
private static boolean transitReadyTracking = false;
private static boolean useWindowOriginalTouchableRegionWhenMagnificationRecomputeBounds = true;
private static boolean userMinAspectRatioAppDefault = true;
private static boolean waitForTransitionOnDisplaySwitch = true;
private static boolean windowTokenConfigThreadSafe = true;
private void init() {
isCached = true;
}
private void load_overrides_accessibility() {
try {
var properties = DeviceConfigHelper.Companion.getPrefs();
alwaysDrawMagnificationFullscreenBorder =
properties.getBoolean(Flags.FLAG_ALWAYS_DRAW_MAGNIFICATION_FULLSCREEN_BORDER, true);
delayNotificationToMagnificationWhenRecentsWindowToFrontTransition =
properties.getBoolean(Flags.FLAG_DELAY_NOTIFICATION_TO_MAGNIFICATION_WHEN_RECENTS_WINDOW_TO_FRONT_TRANSITION, true);
doNotCheckIntersectionWhenNonMagnifiableWindowTransitions =
properties.getBoolean(Flags.FLAG_DO_NOT_CHECK_INTERSECTION_WHEN_NON_MAGNIFIABLE_WINDOW_TRANSITIONS, true);
useWindowOriginalTouchableRegionWhenMagnificationRecomputeBounds =
properties.getBoolean(Flags.FLAG_USE_WINDOW_ORIGINAL_TOUCHABLE_REGION_WHEN_MAGNIFICATION_RECOMPUTE_BOUNDS, true);
} catch (NullPointerException e) {
throw new RuntimeException(
"Cannot read value from namespace accessibility "
+ "from DeviceConfig. It could be that the code using flag "
+ "executed before SettingsProvider initialization. Please use "
+ "fixed read-only flag by adding is_fixed_read_only: true in "
+ "flag declaration.",
e
);
} catch (SecurityException e) {
// for isolated process case, skip loading flag value from the storage, use the default
}
accessibility_is_cached = true;
}
private void load_overrides_large_screen_experiences_app_compat() {
try {
var properties = DeviceConfigHelper.Companion.getPrefs();
allowHideScmButton =
properties.getBoolean(Flags.FLAG_ALLOW_HIDE_SCM_BUTTON, true);
disableThinLetterboxingPolicy =
properties.getBoolean(Flags.FLAG_DISABLE_THIN_LETTERBOXING_POLICY, true);
enableCompatuiSysuiLauncher =
properties.getBoolean(Flags.FLAG_ENABLE_COMPATUI_SYSUI_LAUNCHER, false);
immersiveAppRepositioning =
properties.getBoolean(Flags.FLAG_IMMERSIVE_APP_REPOSITIONING, true);
letterboxBackgroundWallpaper =
properties.getBoolean(Flags.FLAG_LETTERBOX_BACKGROUND_WALLPAPER, false);
userMinAspectRatioAppDefault =
properties.getBoolean(Flags.FLAG_USER_MIN_ASPECT_RATIO_APP_DEFAULT, true);
} catch (NullPointerException e) {
throw new RuntimeException(
"Cannot read value from namespace large_screen_experiences_app_compat "
+ "from DeviceConfig. It could be that the code using flag "
+ "executed before SettingsProvider initialization. Please use "
+ "fixed read-only flag by adding is_fixed_read_only: true in "
+ "flag declaration.",
e
);
} catch (SecurityException e) {
// for isolated process case, skip loading flag value from the storage, use the default
}
large_screen_experiences_app_compat_is_cached = true;
}
private void load_overrides_lse_desktop_experience() {
try {
var properties = DeviceConfigHelper.Companion.getPrefs();
enableAdditionalWindowsAboveStatusBar =
properties.getBoolean(Flags.FLAG_ENABLE_ADDITIONAL_WINDOWS_ABOVE_STATUS_BAR, false);
enableAppHeaderWithTaskDensity =
properties.getBoolean(Flags.FLAG_ENABLE_APP_HEADER_WITH_TASK_DENSITY, true);
enableCameraCompatForDesktopWindowing =
properties.getBoolean(Flags.FLAG_ENABLE_CAMERA_COMPAT_FOR_DESKTOP_WINDOWING, true);
enableDesktopWindowingImmersiveHandleHiding =
properties.getBoolean(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_IMMERSIVE_HANDLE_HIDING, false);
enableDesktopWindowingModalsPolicy =
properties.getBoolean(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODALS_POLICY, true);
enableDesktopWindowingMode =
properties.getBoolean(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODE, true);
enableDesktopWindowingQuickSwitch =
properties.getBoolean(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_QUICK_SWITCH, false);
enableDesktopWindowingScvhCache =
properties.getBoolean(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_SCVH_CACHE, false);
enableDesktopWindowingSizeConstraints =
properties.getBoolean(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_SIZE_CONSTRAINTS, false);
enableDesktopWindowingTaskLimit =
properties.getBoolean(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_TASK_LIMIT, true);
enableDesktopWindowingTaskbarRunningApps =
properties.getBoolean(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_TASKBAR_RUNNING_APPS, true);
enableDesktopWindowingWallpaperActivity =
properties.getBoolean(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, false);
enableTaskStackObserverInShell =
properties.getBoolean(Flags.FLAG_ENABLE_TASK_STACK_OBSERVER_IN_SHELL, true);
enableThemedAppHeaders =
properties.getBoolean(Flags.FLAG_ENABLE_THEMED_APP_HEADERS, true);
enableWindowingDynamicInitialBounds =
properties.getBoolean(Flags.FLAG_ENABLE_WINDOWING_DYNAMIC_INITIAL_BOUNDS, false);
enableWindowingEdgeDragResize =
properties.getBoolean(Flags.FLAG_ENABLE_WINDOWING_EDGE_DRAG_RESIZE, false);
} catch (NullPointerException e) {
throw new RuntimeException(
"Cannot read value from namespace lse_desktop_experience "
+ "from DeviceConfig. It could be that the code using flag "
+ "executed before SettingsProvider initialization. Please use "
+ "fixed read-only flag by adding is_fixed_read_only: true in "
+ "flag declaration.",
e
);
} catch (SecurityException e) {
// for isolated process case, skip loading flag value from the storage, use the default
}
lse_desktop_experience_is_cached = true;
}
private void load_overrides_multitasking() {
try {
var properties = DeviceConfigHelper.Companion.getPrefs();
} catch (NullPointerException e) {
throw new RuntimeException(
"Cannot read value from namespace multitasking "
+ "from DeviceConfig. It could be that the code using flag "
+ "executed before SettingsProvider initialization. Please use "
+ "fixed read-only flag by adding is_fixed_read_only: true in "
+ "flag declaration.",
e
);
} catch (SecurityException e) {
// for isolated process case, skip loading flag value from the storage, use the default
}
multitasking_is_cached = true;
}
private void load_overrides_responsible_apis() {
try {
var properties = DeviceConfigHelper.Companion.getPrefs();
balDontBringExistingBackgroundTaskStackToFg =
properties.getBoolean(Flags.FLAG_BAL_DONT_BRING_EXISTING_BACKGROUND_TASK_STACK_TO_FG, true);
balImproveRealCallerVisibilityCheck =
properties.getBoolean(Flags.FLAG_BAL_IMPROVE_REAL_CALLER_VISIBILITY_CHECK, true);
balImprovedMetrics =
properties.getBoolean(Flags.FLAG_BAL_IMPROVED_METRICS, true);
balRequireOptInByPendingIntentCreator =
properties.getBoolean(Flags.FLAG_BAL_REQUIRE_OPT_IN_BY_PENDING_INTENT_CREATOR, true);
balRequireOptInSameUid =
properties.getBoolean(Flags.FLAG_BAL_REQUIRE_OPT_IN_SAME_UID, false);
balRespectAppSwitchStateWhenCheckBoundByForegroundUid =
properties.getBoolean(Flags.FLAG_BAL_RESPECT_APP_SWITCH_STATE_WHEN_CHECK_BOUND_BY_FOREGROUND_UID, true);
balShowToasts =
properties.getBoolean(Flags.FLAG_BAL_SHOW_TOASTS, false);
balShowToastsBlocked =
properties.getBoolean(Flags.FLAG_BAL_SHOW_TOASTS_BLOCKED, true);
} catch (NullPointerException e) {
throw new RuntimeException(
"Cannot read value from namespace responsible_apis "
+ "from DeviceConfig. It could be that the code using flag "
+ "executed before SettingsProvider initialization. Please use "
+ "fixed read-only flag by adding is_fixed_read_only: true in "
+ "flag declaration.",
e
);
} catch (SecurityException e) {
// for isolated process case, skip loading flag value from the storage, use the default
}
responsible_apis_is_cached = true;
}
private void load_overrides_systemui() {
try {
var properties = DeviceConfigHelper.Companion.getPrefs();
multiCrop =
properties.getBoolean(Flags.FLAG_MULTI_CROP, true);
noConsecutiveVisibilityEvents =
properties.getBoolean(Flags.FLAG_NO_CONSECUTIVE_VISIBILITY_EVENTS, true);
offloadColorExtraction =
properties.getBoolean(Flags.FLAG_OFFLOAD_COLOR_EXTRACTION, false);
predictiveBackSystemAnims =
properties.getBoolean(Flags.FLAG_PREDICTIVE_BACK_SYSTEM_ANIMS, true);
} catch (NullPointerException e) {
throw new RuntimeException(
"Cannot read value from namespace systemui "
+ "from DeviceConfig. It could be that the code using flag "
+ "executed before SettingsProvider initialization. Please use "
+ "fixed read-only flag by adding is_fixed_read_only: true in "
+ "flag declaration.",
e
);
} catch (SecurityException e) {
// for isolated process case, skip loading flag value from the storage, use the default
}
systemui_is_cached = true;
}
private void load_overrides_wear_frameworks() {
try {
var properties = DeviceConfigHelper.Companion.getPrefs();
alwaysUpdateWallpaperPermission =
properties.getBoolean(Flags.FLAG_ALWAYS_UPDATE_WALLPAPER_PERMISSION, true);
noVisibilityEventOnDisplayStateChange =
properties.getBoolean(Flags.FLAG_NO_VISIBILITY_EVENT_ON_DISPLAY_STATE_CHANGE, true);
} catch (NullPointerException e) {
throw new RuntimeException(
"Cannot read value from namespace wear_frameworks "
+ "from DeviceConfig. It could be that the code using flag "
+ "executed before SettingsProvider initialization. Please use "
+ "fixed read-only flag by adding is_fixed_read_only: true in "
+ "flag declaration.",
e
);
} catch (SecurityException e) {
// for isolated process case, skip loading flag value from the storage, use the default
}
wear_frameworks_is_cached = true;
}
private void load_overrides_window_surfaces() {
try {
var properties = DeviceConfigHelper.Companion.getPrefs();
} catch (NullPointerException e) {
throw new RuntimeException(
"Cannot read value from namespace window_surfaces "
+ "from DeviceConfig. It could be that the code using flag "
+ "executed before SettingsProvider initialization. Please use "
+ "fixed read-only flag by adding is_fixed_read_only: true in "
+ "flag declaration.",
e
);
} catch (SecurityException e) {
// for isolated process case, skip loading flag value from the storage, use the default
}
window_surfaces_is_cached = true;
}
private void load_overrides_windowing_frontend() {
try {
var properties = DeviceConfigHelper.Companion.getPrefs();
blastSyncNotificationShadeOnDisplaySwitch =
properties.getBoolean(Flags.FLAG_BLAST_SYNC_NOTIFICATION_SHADE_ON_DISPLAY_SWITCH, true);
closeToSquareConfigIncludesStatusBar =
properties.getBoolean(Flags.FLAG_CLOSE_TO_SQUARE_CONFIG_INCLUDES_STATUS_BAR, false);
edgeToEdgeByDefault =
properties.getBoolean(Flags.FLAG_EDGE_TO_EDGE_BY_DEFAULT, false);
ensureWallpaperInTransitions =
properties.getBoolean(Flags.FLAG_ENSURE_WALLPAPER_IN_TRANSITIONS, false);
navBarTransparentByDefault =
properties.getBoolean(Flags.FLAG_NAV_BAR_TRANSPARENT_BY_DEFAULT, true);
transitReadyTracking =
properties.getBoolean(Flags.FLAG_TRANSIT_READY_TRACKING, false);
waitForTransitionOnDisplaySwitch =
properties.getBoolean(Flags.FLAG_WAIT_FOR_TRANSITION_ON_DISPLAY_SWITCH, true);
} catch (NullPointerException e) {
throw new RuntimeException(
"Cannot read value from namespace windowing_frontend "
+ "from DeviceConfig. It could be that the code using flag "
+ "executed before SettingsProvider initialization. Please use "
+ "fixed read-only flag by adding is_fixed_read_only: true in "
+ "flag declaration.",
e
);
} catch (SecurityException e) {
// for isolated process case, skip loading flag value from the storage, use the default
}
windowing_frontend_is_cached = true;
}
private void load_overrides_windowing_sdk() {
try {
var properties = DeviceConfigHelper.Companion.getPrefs();
activityEmbeddingAnimationCustomizationFlag =
properties.getBoolean(Flags.FLAG_ACTIVITY_EMBEDDING_ANIMATION_CUSTOMIZATION_FLAG, false);
activityEmbeddingInteractiveDividerFlag =
properties.getBoolean(Flags.FLAG_ACTIVITY_EMBEDDING_INTERACTIVE_DIVIDER_FLAG, true);
activityEmbeddingOverlayPresentationFlag =
properties.getBoolean(Flags.FLAG_ACTIVITY_EMBEDDING_OVERLAY_PRESENTATION_FLAG, true);
alwaysDeferTransitionWhenApplyWct =
properties.getBoolean(Flags.FLAG_ALWAYS_DEFER_TRANSITION_WHEN_APPLY_WCT, true);
embeddedActivityBackNavFlag =
properties.getBoolean(Flags.FLAG_EMBEDDED_ACTIVITY_BACK_NAV_FLAG, true);
fixPipRestoreToOverlay =
properties.getBoolean(Flags.FLAG_FIX_PIP_RESTORE_TO_OVERLAY, true);
fullscreenDimFlag =
properties.getBoolean(Flags.FLAG_FULLSCREEN_DIM_FLAG, true);
insetsControlChangedItem =
properties.getBoolean(Flags.FLAG_INSETS_CONTROL_CHANGED_ITEM, false);
moveAnimationOptionsToChange =
properties.getBoolean(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE, true);
taskFragmentSystemOrganizerFlag =
properties.getBoolean(Flags.FLAG_TASK_FRAGMENT_SYSTEM_ORGANIZER_FLAG, true);
windowTokenConfigThreadSafe =
properties.getBoolean(Flags.FLAG_WINDOW_TOKEN_CONFIG_THREAD_SAFE, true);
} catch (NullPointerException e) {
throw new RuntimeException(
"Cannot read value from namespace windowing_sdk "
+ "from DeviceConfig. It could be that the code using flag "
+ "executed before SettingsProvider initialization. Please use "
+ "fixed read-only flag by adding is_fixed_read_only: true in "
+ "flag declaration.",
e
);
} catch (SecurityException e) {
// for isolated process case, skip loading flag value from the storage, use the default
}
windowing_sdk_is_cached = true;
}
@Override
public boolean activityEmbeddingAnimationCustomizationFlag() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!windowing_sdk_is_cached) {
load_overrides_windowing_sdk();
}
}
return activityEmbeddingAnimationCustomizationFlag;
}
@Override
public boolean activityEmbeddingInteractiveDividerFlag() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!windowing_sdk_is_cached) {
load_overrides_windowing_sdk();
}
}
return activityEmbeddingInteractiveDividerFlag;
}
@Override
public boolean activityEmbeddingOverlayPresentationFlag() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!windowing_sdk_is_cached) {
load_overrides_windowing_sdk();
}
}
return activityEmbeddingOverlayPresentationFlag;
}
@Override
public boolean activitySnapshotByDefault() {
return true;
}
@Override
public boolean activityWindowInfoFlag() {
return true;
}
@Override
public boolean allowDisableActivityRecordInputSink() {
return true;
}
@Override
public boolean allowHideScmButton() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!large_screen_experiences_app_compat_is_cached) {
load_overrides_large_screen_experiences_app_compat();
}
}
return allowHideScmButton;
}
@Override
public boolean allowsScreenSizeDecoupledFromStatusBarAndCutout() {
return true;
}
@Override
public boolean alwaysDeferTransitionWhenApplyWct() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!windowing_sdk_is_cached) {
load_overrides_windowing_sdk();
}
}
return alwaysDeferTransitionWhenApplyWct;
}
@Override
public boolean alwaysDrawMagnificationFullscreenBorder() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!accessibility_is_cached) {
load_overrides_accessibility();
}
}
return alwaysDrawMagnificationFullscreenBorder;
}
@Override
public boolean alwaysUpdateWallpaperPermission() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!wear_frameworks_is_cached) {
load_overrides_wear_frameworks();
}
}
return alwaysUpdateWallpaperPermission;
}
@Override
public boolean appCompatPropertiesApi() {
return true;
}
@Override
public boolean appCompatRefactoring() {
return false;
}
@Override
public boolean balDontBringExistingBackgroundTaskStackToFg() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!responsible_apis_is_cached) {
load_overrides_responsible_apis();
}
}
return balDontBringExistingBackgroundTaskStackToFg;
}
@Override
public boolean balImproveRealCallerVisibilityCheck() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!responsible_apis_is_cached) {
load_overrides_responsible_apis();
}
}
return balImproveRealCallerVisibilityCheck;
}
@Override
public boolean balImprovedMetrics() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!responsible_apis_is_cached) {
load_overrides_responsible_apis();
}
}
return balImprovedMetrics;
}
@Override
public boolean balRequireOptInByPendingIntentCreator() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!responsible_apis_is_cached) {
load_overrides_responsible_apis();
}
}
return balRequireOptInByPendingIntentCreator;
}
@Override
public boolean balRequireOptInSameUid() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!responsible_apis_is_cached) {
load_overrides_responsible_apis();
}
}
return balRequireOptInSameUid;
}
@Override
public boolean balRespectAppSwitchStateWhenCheckBoundByForegroundUid() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!responsible_apis_is_cached) {
load_overrides_responsible_apis();
}
}
return balRespectAppSwitchStateWhenCheckBoundByForegroundUid;
}
@Override
public boolean balShowToasts() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!responsible_apis_is_cached) {
load_overrides_responsible_apis();
}
}
return balShowToasts;
}
@Override
public boolean balShowToastsBlocked() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!responsible_apis_is_cached) {
load_overrides_responsible_apis();
}
}
return balShowToastsBlocked;
}
@Override
public boolean blastSyncNotificationShadeOnDisplaySwitch() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!windowing_frontend_is_cached) {
load_overrides_windowing_frontend();
}
}
return blastSyncNotificationShadeOnDisplaySwitch;
}
@Override
public boolean bundleClientTransactionFlag() {
return true;
}
@Override
public boolean cameraCompatForFreeform() {
return true;
}
@Override
public boolean closeToSquareConfigIncludesStatusBar() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!windowing_frontend_is_cached) {
load_overrides_windowing_frontend();
}
}
return closeToSquareConfigIncludesStatusBar;
}
@Override
public boolean configurableFontScaleDefault() {
return true;
}
@Override
public boolean coverDisplayOptIn() {
return true;
}
@Override
public boolean deferDisplayUpdates() {
return true;
}
@Override
public boolean delayNotificationToMagnificationWhenRecentsWindowToFrontTransition() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!accessibility_is_cached) {
load_overrides_accessibility();
}
}
return delayNotificationToMagnificationWhenRecentsWindowToFrontTransition;
}
@Override
public boolean delegateUnhandledDrags() {
return true;
}
@Override
public boolean deleteCaptureDisplay() {
return true;
}
@Override
public boolean density390Api() {
return true;
}
@Override
public boolean disableObjectPool() {
return true;
}
@Override
public boolean disableThinLetterboxingPolicy() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!large_screen_experiences_app_compat_is_cached) {
load_overrides_large_screen_experiences_app_compat();
}
}
return disableThinLetterboxingPolicy;
}
@Override
public boolean doNotCheckIntersectionWhenNonMagnifiableWindowTransitions() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!accessibility_is_cached) {
load_overrides_accessibility();
}
}
return doNotCheckIntersectionWhenNonMagnifiableWindowTransitions;
}
@Override
public boolean drawSnapshotAspectRatioMatch() {
return false;
}
@Override
public boolean edgeToEdgeByDefault() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!windowing_frontend_is_cached) {
load_overrides_windowing_frontend();
}
}
return edgeToEdgeByDefault;
}
@Override
public boolean embeddedActivityBackNavFlag() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!windowing_sdk_is_cached) {
load_overrides_windowing_sdk();
}
}
return embeddedActivityBackNavFlag;
}
@Override
public boolean enableAdditionalWindowsAboveStatusBar() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!lse_desktop_experience_is_cached) {
load_overrides_lse_desktop_experience();
}
}
return enableAdditionalWindowsAboveStatusBar;
}
@Override
public boolean enableAppHeaderWithTaskDensity() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!lse_desktop_experience_is_cached) {
load_overrides_lse_desktop_experience();
}
}
return enableAppHeaderWithTaskDensity;
}
@Override
public boolean enableBufferTransformHintFromDisplay() {
return true;
}
@Override
public boolean enableCameraCompatForDesktopWindowing() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!lse_desktop_experience_is_cached) {
load_overrides_lse_desktop_experience();
}
}
return enableCameraCompatForDesktopWindowing;
}
@Override
public boolean enableCompatuiSysuiLauncher() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!large_screen_experiences_app_compat_is_cached) {
load_overrides_large_screen_experiences_app_compat();
}
}
return enableCompatuiSysuiLauncher;
}
@Override
public boolean enableDesktopWindowingImmersiveHandleHiding() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!lse_desktop_experience_is_cached) {
load_overrides_lse_desktop_experience();
}
}
return enableDesktopWindowingImmersiveHandleHiding;
}
@Override
public boolean enableDesktopWindowingModalsPolicy() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!lse_desktop_experience_is_cached) {
load_overrides_lse_desktop_experience();
}
}
return enableDesktopWindowingModalsPolicy;
}
@Override
public boolean enableDesktopWindowingMode() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!lse_desktop_experience_is_cached) {
load_overrides_lse_desktop_experience();
}
}
return enableDesktopWindowingMode;
}
@Override
public boolean enableDesktopWindowingQuickSwitch() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!lse_desktop_experience_is_cached) {
load_overrides_lse_desktop_experience();
}
}
return enableDesktopWindowingQuickSwitch;
}
@Override
public boolean enableDesktopWindowingScvhCache() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!lse_desktop_experience_is_cached) {
load_overrides_lse_desktop_experience();
}
}
return enableDesktopWindowingScvhCache;
}
@Override
public boolean enableDesktopWindowingSizeConstraints() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!lse_desktop_experience_is_cached) {
load_overrides_lse_desktop_experience();
}
}
return enableDesktopWindowingSizeConstraints;
}
@Override
public boolean enableDesktopWindowingTaskLimit() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!lse_desktop_experience_is_cached) {
load_overrides_lse_desktop_experience();
}
}
return enableDesktopWindowingTaskLimit;
}
@Override
public boolean enableDesktopWindowingTaskbarRunningApps() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!lse_desktop_experience_is_cached) {
load_overrides_lse_desktop_experience();
}
}
return enableDesktopWindowingTaskbarRunningApps;
}
@Override
public boolean enableDesktopWindowingWallpaperActivity() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!lse_desktop_experience_is_cached) {
load_overrides_lse_desktop_experience();
}
}
return enableDesktopWindowingWallpaperActivity;
}
@Override
public boolean enableScaledResizing() {
return false;
}
@Override
public boolean enableTaskStackObserverInShell() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!lse_desktop_experience_is_cached) {
load_overrides_lse_desktop_experience();
}
}
return enableTaskStackObserverInShell;
}
@Override
public boolean enableThemedAppHeaders() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!lse_desktop_experience_is_cached) {
load_overrides_lse_desktop_experience();
}
}
return enableThemedAppHeaders;
}
@Override
public boolean enableWindowingDynamicInitialBounds() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!lse_desktop_experience_is_cached) {
load_overrides_lse_desktop_experience();
}
}
return enableWindowingDynamicInitialBounds;
}
@Override
public boolean enableWindowingEdgeDragResize() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!lse_desktop_experience_is_cached) {
load_overrides_lse_desktop_experience();
}
}
return enableWindowingEdgeDragResize;
}
@Override
public boolean enableWmExtensionsForAllFlag() {
return true;
}
@Override
public boolean enforceEdgeToEdge() {
return true;
}
@Override
public boolean ensureWallpaperInTransitions() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!windowing_frontend_is_cached) {
load_overrides_windowing_frontend();
}
}
return ensureWallpaperInTransitions;
}
@Override
public boolean explicitRefreshRateHints() {
return true;
}
@Override
public boolean fifoPriorityForMajorUiProcesses() {
return false;
}
@Override
public boolean fixNoContainerUpdateWithoutResize() {
return false;
}
@Override
public boolean fixPipRestoreToOverlay() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!windowing_sdk_is_cached) {
load_overrides_windowing_sdk();
}
}
return fixPipRestoreToOverlay;
}
@Override
public boolean fullscreenDimFlag() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!windowing_sdk_is_cached) {
load_overrides_windowing_sdk();
}
}
return fullscreenDimFlag;
}
@Override
public boolean getDimmerOnClosing() {
return true;
}
@Override
public boolean immersiveAppRepositioning() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!large_screen_experiences_app_compat_is_cached) {
load_overrides_large_screen_experiences_app_compat();
}
}
return immersiveAppRepositioning;
}
@Override
public boolean insetsControlChangedItem() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!windowing_sdk_is_cached) {
load_overrides_windowing_sdk();
}
}
return insetsControlChangedItem;
}
@Override
public boolean insetsControlSeq() {
return false;
}
@Override
public boolean insetsDecoupledConfiguration() {
return true;
}
@Override
public boolean introduceSmootherDimmer() {
return true;
}
@Override
public boolean keyguardAppearTransition() {
return true;
}
@Override
public boolean letterboxBackgroundWallpaper() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!large_screen_experiences_app_compat_is_cached) {
load_overrides_large_screen_experiences_app_compat();
}
}
return letterboxBackgroundWallpaper;
}
@Override
public boolean movableCutoutConfiguration() {
return true;
}
@Override
public boolean moveAnimationOptionsToChange() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!windowing_sdk_is_cached) {
load_overrides_windowing_sdk();
}
}
return moveAnimationOptionsToChange;
}
@Override
public boolean multiCrop() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!systemui_is_cached) {
load_overrides_systemui();
}
}
return multiCrop;
}
@Override
public boolean navBarTransparentByDefault() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!windowing_frontend_is_cached) {
load_overrides_windowing_frontend();
}
}
return navBarTransparentByDefault;
}
@Override
public boolean noConsecutiveVisibilityEvents() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!systemui_is_cached) {
load_overrides_systemui();
}
}
return noConsecutiveVisibilityEvents;
}
@Override
public boolean noVisibilityEventOnDisplayStateChange() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!wear_frameworks_is_cached) {
load_overrides_wear_frameworks();
}
}
return noVisibilityEventOnDisplayStateChange;
}
@Override
public boolean offloadColorExtraction() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!systemui_is_cached) {
load_overrides_systemui();
}
}
return offloadColorExtraction;
}
@Override
public boolean predictiveBackSystemAnims() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!systemui_is_cached) {
load_overrides_systemui();
}
}
return predictiveBackSystemAnims;
}
@Override
public boolean rearDisplayDisableForceDesktopSystemDecorations() {
return true;
}
@Override
public boolean releaseSnapshotAggressively() {
return false;
}
@Override
public boolean removePrepareSurfaceInPlacement() {
return true;
}
@Override
public boolean screenRecordingCallbacks() {
return true;
}
@Override
public boolean sdkDesiredPresentTime() {
return true;
}
@Override
public boolean secureWindowState() {
return true;
}
@Override
public boolean setScPropertiesInClient() {
return false;
}
@Override
public boolean skipSleepingWhenSwitchingDisplay() {
return true;
}
@Override
public boolean supportsMultiInstanceSystemUi() {
return true;
}
@Override
public boolean surfaceControlInputReceiver() {
return true;
}
@Override
public boolean surfaceTrustedOverlay() {
return true;
}
@Override
public boolean syncScreenCapture() {
return true;
}
@Override
public boolean taskFragmentSystemOrganizerFlag() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!windowing_sdk_is_cached) {
load_overrides_windowing_sdk();
}
}
return taskFragmentSystemOrganizerFlag;
}
@Override
public boolean transitReadyTracking() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!windowing_frontend_is_cached) {
load_overrides_windowing_frontend();
}
}
return transitReadyTracking;
}
@Override
public boolean trustedPresentationListenerForWindow() {
return true;
}
@Override
public boolean untrustedEmbeddingAnyAppPermission() {
return true;
}
@Override
public boolean untrustedEmbeddingStateSharing() {
return true;
}
@Override
public boolean useWindowOriginalTouchableRegionWhenMagnificationRecomputeBounds() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!accessibility_is_cached) {
load_overrides_accessibility();
}
}
return useWindowOriginalTouchableRegionWhenMagnificationRecomputeBounds;
}
@Override
public boolean userMinAspectRatioAppDefault() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!large_screen_experiences_app_compat_is_cached) {
load_overrides_large_screen_experiences_app_compat();
}
}
return userMinAspectRatioAppDefault;
}
@Override
public boolean waitForTransitionOnDisplaySwitch() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!windowing_frontend_is_cached) {
load_overrides_windowing_frontend();
}
}
return waitForTransitionOnDisplaySwitch;
}
@Override
public boolean wallpaperOffsetAsync() {
return true;
}
@Override
public boolean windowSessionRelayoutInfo() {
return true;
}
@Override
public boolean windowTokenConfigThreadSafe() {
if (isReadFromNew) {
if (!isCached) {
init();
}
} else {
if (!windowing_sdk_is_cached) {
load_overrides_windowing_sdk();
}
}
return windowTokenConfigThreadSafe;
}
}