Loading core/api/current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -340,6 +340,7 @@ package android { field public static final int appCategory = 16844101; // 0x1010545 field public static final int appComponentFactory = 16844154; // 0x101057a field public static final int attributionTags; field public static final int attributionsAreUserVisible; field public static final int author = 16843444; // 0x10102b4 field public static final int authorities = 16842776; // 0x1010018 field public static final int autoAdvanceViewId = 16843535; // 0x101030f Loading Loading @@ -11933,6 +11934,7 @@ package android.content.pm { public class ApplicationInfo extends android.content.pm.PackageItemInfo implements android.os.Parcelable { ctor public ApplicationInfo(); ctor public ApplicationInfo(android.content.pm.ApplicationInfo); method public boolean areAttributionsUserVisible(); method public int describeContents(); method public void dump(android.util.Printer, String); method public static CharSequence getCategoryTitle(android.content.Context, int); core/java/android/content/pm/ApplicationInfo.java +17 −0 Original line number Diff line number Diff line Loading @@ -786,10 +786,18 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { */ public static final int PRIVATE_FLAG_EXT_REQUEST_FOREGROUND_SERVICE_EXEMPTION = 1 << 1; /** * Value for {@link #privateFlagsExt}: whether attributions provided by the application are * meant to be user-visible. * @hide */ public static final int PRIVATE_FLAG_EXT_ATTRIBUTIONS_ARE_USER_VISIBLE = 1 << 2; /** @hide */ @IntDef(flag = true, prefix = { "PRIVATE_FLAG_EXT_" }, value = { PRIVATE_FLAG_EXT_PROFILEABLE, PRIVATE_FLAG_EXT_REQUEST_FOREGROUND_SERVICE_EXEMPTION, PRIVATE_FLAG_EXT_ATTRIBUTIONS_ARE_USER_VISIBLE, }) @Retention(RetentionPolicy.SOURCE) public @interface ApplicationInfoPrivateFlagsExt {} Loading Loading @@ -2436,6 +2444,15 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { return (privateFlagsExt & PRIVATE_FLAG_EXT_PROFILEABLE) != 0; } /** * Returns whether attributions provided by the application are meant to be user-visible. * Defaults to false if application info is retrieved without * {@link PackageManager#GET_ATTRIBUTIONS}. */ public boolean areAttributionsUserVisible() { return (privateFlagsExt & PRIVATE_FLAG_EXT_ATTRIBUTIONS_ARE_USER_VISIBLE) != 0; } /** * Returns true if the app has declared in its manifest that it wants its split APKs to be * loaded into isolated Contexts, with their own ClassLoaders and Resources objects. Loading core/java/android/content/pm/parsing/PackageInfoWithoutStateUtils.java +13 −1 Original line number Diff line number Diff line Loading @@ -298,6 +298,16 @@ public class PackageInfoWithoutStateUtils { pi.attributions[i] = generateAttribution(pkg.getAttributions().get(i)); } } if (pkg.areAttributionsUserVisible()) { pi.applicationInfo.privateFlagsExt |= ApplicationInfo.PRIVATE_FLAG_EXT_ATTRIBUTIONS_ARE_USER_VISIBLE; } else { pi.applicationInfo.privateFlagsExt &= ~ApplicationInfo.PRIVATE_FLAG_EXT_ATTRIBUTIONS_ARE_USER_VISIBLE; } } else { pi.applicationInfo.privateFlagsExt &= ~ApplicationInfo.PRIVATE_FLAG_EXT_ATTRIBUTIONS_ARE_USER_VISIBLE; } if (apexInfo != null) { Loading Loading @@ -809,7 +819,9 @@ public class PackageInfoWithoutStateUtils { int privateFlagsExt = flag(pkg.isProfileable(), ApplicationInfo.PRIVATE_FLAG_EXT_PROFILEABLE) | flag(pkg.hasRequestForegroundServiceExemption(), ApplicationInfo.PRIVATE_FLAG_EXT_REQUEST_FOREGROUND_SERVICE_EXEMPTION); ApplicationInfo.PRIVATE_FLAG_EXT_REQUEST_FOREGROUND_SERVICE_EXEMPTION) | flag(pkg.areAttributionsUserVisible(), ApplicationInfo.PRIVATE_FLAG_EXT_ATTRIBUTIONS_ARE_USER_VISIBLE); // @formatter:on return privateFlagsExt; } Loading core/java/android/content/pm/parsing/ParsingPackage.java +2 −0 Original line number Diff line number Diff line Loading @@ -362,6 +362,8 @@ public interface ParsingPackage extends ParsingPackageRead { ParsingPackage setCompileSdkVersionCodename(String compileSdkVersionCodename); ParsingPackage setAttributionsAreUserVisible(boolean attributionsAreUserVisible); // TODO(b/135203078): This class no longer has access to ParsedPackage, find a replacement // for moving to the next step @CallSuper Loading core/java/android/content/pm/parsing/ParsingPackageImpl.java +12 −0 Original line number Diff line number Diff line Loading @@ -514,6 +514,7 @@ public class ParsingPackageImpl implements ParsingPackage, Parcelable { private static final long ENABLED = 1L << 44; 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 ParsingPackageImpl setBoolean(@Booleans.Values long flag, boolean value) { Loading Loading @@ -2205,6 +2206,11 @@ public class ParsingPackageImpl implements ParsingPackage, Parcelable { return getBoolean(Booleans.REQUEST_FOREGROUND_SERVICE_EXEMPTION); } @Override public boolean areAttributionsUserVisible() { return getBoolean(Booleans.ATTRIBUTIONS_ARE_USER_VISIBLE); } @Override public ParsingPackageImpl setBaseRevisionCode(int value) { baseRevisionCode = value; Loading Loading @@ -2760,4 +2766,10 @@ public class ParsingPackageImpl implements ParsingPackage, Parcelable { this.zygotePreloadName = zygotePreloadName; return this; } @Override public ParsingPackage setAttributionsAreUserVisible(boolean attributionsAreUserVisible) { setBoolean(Booleans.ATTRIBUTIONS_ARE_USER_VISIBLE, attributionsAreUserVisible); return this; } } Loading
core/api/current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -340,6 +340,7 @@ package android { field public static final int appCategory = 16844101; // 0x1010545 field public static final int appComponentFactory = 16844154; // 0x101057a field public static final int attributionTags; field public static final int attributionsAreUserVisible; field public static final int author = 16843444; // 0x10102b4 field public static final int authorities = 16842776; // 0x1010018 field public static final int autoAdvanceViewId = 16843535; // 0x101030f Loading Loading @@ -11933,6 +11934,7 @@ package android.content.pm { public class ApplicationInfo extends android.content.pm.PackageItemInfo implements android.os.Parcelable { ctor public ApplicationInfo(); ctor public ApplicationInfo(android.content.pm.ApplicationInfo); method public boolean areAttributionsUserVisible(); method public int describeContents(); method public void dump(android.util.Printer, String); method public static CharSequence getCategoryTitle(android.content.Context, int);
core/java/android/content/pm/ApplicationInfo.java +17 −0 Original line number Diff line number Diff line Loading @@ -786,10 +786,18 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { */ public static final int PRIVATE_FLAG_EXT_REQUEST_FOREGROUND_SERVICE_EXEMPTION = 1 << 1; /** * Value for {@link #privateFlagsExt}: whether attributions provided by the application are * meant to be user-visible. * @hide */ public static final int PRIVATE_FLAG_EXT_ATTRIBUTIONS_ARE_USER_VISIBLE = 1 << 2; /** @hide */ @IntDef(flag = true, prefix = { "PRIVATE_FLAG_EXT_" }, value = { PRIVATE_FLAG_EXT_PROFILEABLE, PRIVATE_FLAG_EXT_REQUEST_FOREGROUND_SERVICE_EXEMPTION, PRIVATE_FLAG_EXT_ATTRIBUTIONS_ARE_USER_VISIBLE, }) @Retention(RetentionPolicy.SOURCE) public @interface ApplicationInfoPrivateFlagsExt {} Loading Loading @@ -2436,6 +2444,15 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { return (privateFlagsExt & PRIVATE_FLAG_EXT_PROFILEABLE) != 0; } /** * Returns whether attributions provided by the application are meant to be user-visible. * Defaults to false if application info is retrieved without * {@link PackageManager#GET_ATTRIBUTIONS}. */ public boolean areAttributionsUserVisible() { return (privateFlagsExt & PRIVATE_FLAG_EXT_ATTRIBUTIONS_ARE_USER_VISIBLE) != 0; } /** * Returns true if the app has declared in its manifest that it wants its split APKs to be * loaded into isolated Contexts, with their own ClassLoaders and Resources objects. Loading
core/java/android/content/pm/parsing/PackageInfoWithoutStateUtils.java +13 −1 Original line number Diff line number Diff line Loading @@ -298,6 +298,16 @@ public class PackageInfoWithoutStateUtils { pi.attributions[i] = generateAttribution(pkg.getAttributions().get(i)); } } if (pkg.areAttributionsUserVisible()) { pi.applicationInfo.privateFlagsExt |= ApplicationInfo.PRIVATE_FLAG_EXT_ATTRIBUTIONS_ARE_USER_VISIBLE; } else { pi.applicationInfo.privateFlagsExt &= ~ApplicationInfo.PRIVATE_FLAG_EXT_ATTRIBUTIONS_ARE_USER_VISIBLE; } } else { pi.applicationInfo.privateFlagsExt &= ~ApplicationInfo.PRIVATE_FLAG_EXT_ATTRIBUTIONS_ARE_USER_VISIBLE; } if (apexInfo != null) { Loading Loading @@ -809,7 +819,9 @@ public class PackageInfoWithoutStateUtils { int privateFlagsExt = flag(pkg.isProfileable(), ApplicationInfo.PRIVATE_FLAG_EXT_PROFILEABLE) | flag(pkg.hasRequestForegroundServiceExemption(), ApplicationInfo.PRIVATE_FLAG_EXT_REQUEST_FOREGROUND_SERVICE_EXEMPTION); ApplicationInfo.PRIVATE_FLAG_EXT_REQUEST_FOREGROUND_SERVICE_EXEMPTION) | flag(pkg.areAttributionsUserVisible(), ApplicationInfo.PRIVATE_FLAG_EXT_ATTRIBUTIONS_ARE_USER_VISIBLE); // @formatter:on return privateFlagsExt; } Loading
core/java/android/content/pm/parsing/ParsingPackage.java +2 −0 Original line number Diff line number Diff line Loading @@ -362,6 +362,8 @@ public interface ParsingPackage extends ParsingPackageRead { ParsingPackage setCompileSdkVersionCodename(String compileSdkVersionCodename); ParsingPackage setAttributionsAreUserVisible(boolean attributionsAreUserVisible); // TODO(b/135203078): This class no longer has access to ParsedPackage, find a replacement // for moving to the next step @CallSuper Loading
core/java/android/content/pm/parsing/ParsingPackageImpl.java +12 −0 Original line number Diff line number Diff line Loading @@ -514,6 +514,7 @@ public class ParsingPackageImpl implements ParsingPackage, Parcelable { private static final long ENABLED = 1L << 44; 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 ParsingPackageImpl setBoolean(@Booleans.Values long flag, boolean value) { Loading Loading @@ -2205,6 +2206,11 @@ public class ParsingPackageImpl implements ParsingPackage, Parcelable { return getBoolean(Booleans.REQUEST_FOREGROUND_SERVICE_EXEMPTION); } @Override public boolean areAttributionsUserVisible() { return getBoolean(Booleans.ATTRIBUTIONS_ARE_USER_VISIBLE); } @Override public ParsingPackageImpl setBaseRevisionCode(int value) { baseRevisionCode = value; Loading Loading @@ -2760,4 +2766,10 @@ public class ParsingPackageImpl implements ParsingPackage, Parcelable { this.zygotePreloadName = zygotePreloadName; return this; } @Override public ParsingPackage setAttributionsAreUserVisible(boolean attributionsAreUserVisible) { setBoolean(Booleans.ATTRIBUTIONS_ARE_USER_VISIBLE, attributionsAreUserVisible); return this; } }