From 0d18a381da42aa0ac625985f93c69c115d0db00a Mon Sep 17 00:00:00 2001 From: Adil Hanney Date: Sun, 15 Jun 2025 08:16:08 +0100 Subject: [PATCH] Fix: Adapt to missing flags in Android 16 QPR1 Beta 2 (#5538) * Fix: Adapt to missing Flags in android 16 qpr1 beta 2 * fix: revert jvm memory flag I accidentally committed it, oops Co-authored-by: Pun Butrach --------- Co-authored-by: Pun Butrach --- .../android/systemui/CustomFeatureFlags.java | 6 ++++++ .../com/android/systemui/FeatureFlags.java | 2 ++ .../android/systemui/FeatureFlagsImpl.java | 20 +++++++++++++++++++ flags/src/com/android/systemui/Flags.java | 6 ++++++ .../launcher3/widget/WidgetManagerHelper.java | 3 ++- 5 files changed, 36 insertions(+), 1 deletion(-) diff --git a/flags/src/com/android/systemui/CustomFeatureFlags.java b/flags/src/com/android/systemui/CustomFeatureFlags.java index aadf0d0267..bba7a59f65 100644 --- a/flags/src/com/android/systemui/CustomFeatureFlags.java +++ b/flags/src/com/android/systemui/CustomFeatureFlags.java @@ -321,6 +321,12 @@ public class CustomFeatureFlags implements FeatureFlags { return getValue(Flags.FLAG_FLOATING_MENU_RADII_ANIMATION, FeatureFlags::floatingMenuRadiiAnimation); } + + @Override + public boolean generatedPreviews() { + return getValue(Flags.FLAG_GENERATED_PREVIEWS, + FeatureFlags::generatedPreviews); + } @Override public boolean getConnectedDeviceNameUnsynchronized() { diff --git a/flags/src/com/android/systemui/FeatureFlags.java b/flags/src/com/android/systemui/FeatureFlags.java index 7ec6e02aed..6ce51d50c3 100644 --- a/flags/src/com/android/systemui/FeatureFlags.java +++ b/flags/src/com/android/systemui/FeatureFlags.java @@ -106,6 +106,8 @@ public interface FeatureFlags { boolean floatingMenuRadiiAnimation(); + boolean generatedPreviews(); + boolean getConnectedDeviceNameUnsynchronized(); boolean glanceableHubAllowKeyguardWhenDreaming(); diff --git a/flags/src/com/android/systemui/FeatureFlagsImpl.java b/flags/src/com/android/systemui/FeatureFlagsImpl.java index 0112adbffe..32049600d5 100644 --- a/flags/src/com/android/systemui/FeatureFlagsImpl.java +++ b/flags/src/com/android/systemui/FeatureFlagsImpl.java @@ -64,6 +64,7 @@ public final class FeatureFlagsImpl implements FeatureFlags { private static boolean floatingMenuNarrowTargetContentObserver = true; private static boolean floatingMenuOverlapsNavBarsFlag = true; private static boolean floatingMenuRadiiAnimation = true; + private static boolean generatedPreviews = true; private static boolean getConnectedDeviceNameUnsynchronized = true; private static boolean glanceableHubAllowKeyguardWhenDreaming = false; private static boolean glanceableHubFullscreenSwipe = false; @@ -241,6 +242,7 @@ public final class FeatureFlagsImpl implements FeatureFlags { fastUnlockTransition = foundPackage; fixImageWallpaperCrashSurfaceAlreadyReleased = foundPackage; fixScreenshotActionDismissSystemWindows = foundPackage; + generatedPreviews = foundPackage; getConnectedDeviceNameUnsynchronized = foundPackage; glanceableHubAllowKeyguardWhenDreaming = foundPackage; glanceableHubFullscreenSwipe = foundPackage; @@ -529,6 +531,8 @@ public final class FeatureFlagsImpl implements FeatureFlags { properties.getBoolean(Flags.FLAG_FIX_IMAGE_WALLPAPER_CRASH_SURFACE_ALREADY_RELEASED, true); fixScreenshotActionDismissSystemWindows = properties.getBoolean(Flags.FLAG_FIX_SCREENSHOT_ACTION_DISMISS_SYSTEM_WINDOWS, true); + generatedPreviews = + properties.getBoolean(Flags.FLAG_GENERATED_PREVIEWS, true); getConnectedDeviceNameUnsynchronized = properties.getBoolean(Flags.FLAG_GET_CONNECTED_DEVICE_NAME_UNSYNCHRONIZED, true); glanceableHubAllowKeyguardWhenDreaming = @@ -1553,6 +1557,22 @@ public final class FeatureFlagsImpl implements FeatureFlags { return floatingMenuRadiiAnimation; } + + @Override + + public boolean generatedPreviews() { + if (isReadFromNew) { + if (!isCached) { + init(); + } + } else { + if (!systemui_is_cached) { + load_overrides_systemui(); + } + } + return generatedPreviews; + + } @Override diff --git a/flags/src/com/android/systemui/Flags.java b/flags/src/com/android/systemui/Flags.java index ec840cb508..dd9dc1fb73 100644 --- a/flags/src/com/android/systemui/Flags.java +++ b/flags/src/com/android/systemui/Flags.java @@ -105,6 +105,8 @@ public final class Flags { /** @hide */ public static final String FLAG_FLOATING_MENU_RADII_ANIMATION = "com.android.systemui.floating_menu_radii_animation"; /** @hide */ + public static final String FLAG_GENERATED_PREVIEWS = "android.appwidget.flags.generated_previews"; + /** @hide */ public static final String FLAG_GET_CONNECTED_DEVICE_NAME_UNSYNCHRONIZED = "com.android.systemui.get_connected_device_name_unsynchronized"; /** @hide */ public static final String FLAG_GLANCEABLE_HUB_ALLOW_KEYGUARD_WHEN_DREAMING = "com.android.systemui.glanceable_hub_allow_keyguard_when_dreaming"; @@ -508,6 +510,10 @@ public final class Flags { public static boolean floatingMenuRadiiAnimation() { return FEATURE_FLAGS.floatingMenuRadiiAnimation(); } + + public static boolean generatedPreviews() { + return FEATURE_FLAGS.generatedPreviews(); + } public static boolean getConnectedDeviceNameUnsynchronized() { return FEATURE_FLAGS.getConnectedDeviceNameUnsynchronized(); diff --git a/src/com/android/launcher3/widget/WidgetManagerHelper.java b/src/com/android/launcher3/widget/WidgetManagerHelper.java index 2897e7aec2..aaed5a03e0 100644 --- a/src/com/android/launcher3/widget/WidgetManagerHelper.java +++ b/src/com/android/launcher3/widget/WidgetManagerHelper.java @@ -38,6 +38,7 @@ import com.android.launcher3.model.data.LauncherAppWidgetInfo; import com.android.launcher3.pm.UserCache; import com.android.launcher3.util.PackageUserKey; import com.android.launcher3.widget.custom.CustomWidgetManager; +import com.android.systemui.Flags; import java.util.Collections; import java.util.List; @@ -161,7 +162,7 @@ public class WidgetManagerHelper { @RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM) public RemoteViews loadGeneratedPreview(@NonNull AppWidgetProviderInfo info, int widgetCategory) { - if (!android.appwidget.flags.Flags.generatedPreviews()) return null; + if (!Flags.generatedPreviews()) return null; return mAppWidgetManager.getWidgetPreview(info.provider, info.getProfile(), widgetCategory); }