diff --git a/core/api/current.txt b/core/api/current.txt index f699bbece28dc..0c8b22ccb0e85 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -1204,6 +1204,7 @@ package android { field public static final int requiredSplitTypes; field public static final int requiresFadingEdge = 16843685; // 0x10103a5 field public static final int requiresSmallestWidthDp = 16843620; // 0x1010364 + field public static final int resetEnabledSettingsOnAppDataCleared; field public static final int resizeClip = 16843983; // 0x10104cf field public static final int resizeMode = 16843619; // 0x1010363 field public static final int resizeable = 16843405; // 0x101028d diff --git a/core/java/android/content/pm/parsing/ParsingPackage.java b/core/java/android/content/pm/parsing/ParsingPackage.java index 14d69ccdf17d6..056f99fcc004e 100644 --- a/core/java/android/content/pm/parsing/ParsingPackage.java +++ b/core/java/android/content/pm/parsing/ParsingPackage.java @@ -362,6 +362,9 @@ public interface ParsingPackage extends ParsingPackageRead { ParsingPackage setAttributionsAreUserVisible(boolean attributionsAreUserVisible); + ParsingPackage setResetEnabledSettingsOnAppDataCleared( + boolean resetEnabledSettingsOnAppDataCleared); + // TODO(b/135203078): This class no longer has access to ParsedPackage, find a replacement // for moving to the next step @CallSuper diff --git a/core/java/android/content/pm/parsing/ParsingPackageImpl.java b/core/java/android/content/pm/parsing/ParsingPackageImpl.java index edddf408d1af6..f07f3827c1c91 100644 --- a/core/java/android/content/pm/parsing/ParsingPackageImpl.java +++ b/core/java/android/content/pm/parsing/ParsingPackageImpl.java @@ -517,6 +517,7 @@ public class ParsingPackageImpl implements ParsingPackage, ParsingPackageHidden, private static final long DISALLOW_PROFILING = 1L << 45; private static final long REQUEST_FOREGROUND_SERVICE_EXEMPTION = 1L << 46; private static final long ATTRIBUTIONS_ARE_USER_VISIBLE = 1L << 47; + private static final long RESET_ENABLED_SETTINGS_ON_APP_DATA_CLEARED = 1L << 48; } private ParsingPackageImpl setBoolean(@Booleans.Values long flag, boolean value) { @@ -2215,6 +2216,11 @@ public class ParsingPackageImpl implements ParsingPackage, ParsingPackageHidden, return getBoolean(Booleans.ATTRIBUTIONS_ARE_USER_VISIBLE); } + @Override + public boolean isResetEnabledSettingsOnAppDataCleared() { + return getBoolean(Booleans.RESET_ENABLED_SETTINGS_ON_APP_DATA_CLEARED); + } + @Override public ParsingPackageImpl setBaseRevisionCode(int value) { baseRevisionCode = value; @@ -2771,4 +2777,12 @@ public class ParsingPackageImpl implements ParsingPackage, ParsingPackageHidden, setBoolean(Booleans.ATTRIBUTIONS_ARE_USER_VISIBLE, attributionsAreUserVisible); return this; } + + @Override + public ParsingPackage setResetEnabledSettingsOnAppDataCleared( + boolean resetEnabledSettingsOnAppDataCleared) { + setBoolean(Booleans.RESET_ENABLED_SETTINGS_ON_APP_DATA_CLEARED, + resetEnabledSettingsOnAppDataCleared); + return this; + } } diff --git a/core/java/android/content/pm/parsing/ParsingPackageRead.java b/core/java/android/content/pm/parsing/ParsingPackageRead.java index 4a249bb0846e4..2933f955bb8cd 100644 --- a/core/java/android/content/pm/parsing/ParsingPackageRead.java +++ b/core/java/android/content/pm/parsing/ParsingPackageRead.java @@ -297,4 +297,12 @@ public interface ParsingPackageRead extends PkgWithoutStateAppInfo, PkgWithoutSt * @see R.styleable#AndroidManifestService_visibleToInstantApps */ boolean isVisibleToInstantApps(); + + /** + * Whether the enabled settings of components in the application should be reset to the default, + * when the application's user data is cleared. + * + * @see R.styleable#AndroidManifestApplication_resetEnabledSettingsOnAppDataCleared + */ + boolean isResetEnabledSettingsOnAppDataCleared(); } diff --git a/core/java/android/content/pm/parsing/ParsingPackageUtils.java b/core/java/android/content/pm/parsing/ParsingPackageUtils.java index e3a5de514b220..d2ac87395f628 100644 --- a/core/java/android/content/pm/parsing/ParsingPackageUtils.java +++ b/core/java/android/content/pm/parsing/ParsingPackageUtils.java @@ -2288,6 +2288,9 @@ public class ParsingPackageUtils { .setVmSafeMode(bool(false, R.styleable.AndroidManifestApplication_vmSafeMode, sa)) .setAutoRevokePermissions(anInt(R.styleable.AndroidManifestApplication_autoRevokePermissions, sa)) .setAttributionsAreUserVisible(bool(false, R.styleable.AndroidManifestApplication_attributionsAreUserVisible, sa)) + .setResetEnabledSettingsOnAppDataCleared(bool(false, + R.styleable.AndroidManifestApplication_resetEnabledSettingsOnAppDataCleared, + sa)) // targetSdkVersion gated .setAllowAudioPlaybackCapture(bool(targetSdk >= Build.VERSION_CODES.Q, R.styleable.AndroidManifestApplication_allowAudioPlaybackCapture, sa)) .setBaseHardwareAccelerated(bool(targetSdk >= Build.VERSION_CODES.ICE_CREAM_SANDWICH, R.styleable.AndroidManifestApplication_hardwareAccelerated, sa)) diff --git a/core/res/res/values/attrs_manifest.xml b/core/res/res/values/attrs_manifest.xml index 7805d46188e9a..94717b11deb26 100644 --- a/core/res/res/values/attrs_manifest.xml +++ b/core/res/res/values/attrs_manifest.xml @@ -1991,6 +1991,12 @@ + + +