diff --git a/core/java/android/content/pm/parsing/AndroidPackage.java b/core/java/android/content/pm/parsing/AndroidPackage.java index 515185eaaf57a..e77025d84e483 100644 --- a/core/java/android/content/pm/parsing/AndroidPackage.java +++ b/core/java/android/content/pm/parsing/AndroidPackage.java @@ -398,6 +398,8 @@ public interface AndroidPackage extends Parcelable { boolean isEnabled(); + boolean isCrossProfile(); + boolean isEncryptionAware(); boolean isExternal(); diff --git a/core/java/android/content/pm/parsing/ApkParseUtils.java b/core/java/android/content/pm/parsing/ApkParseUtils.java index edbf73a0c0da7..24ff8913f427a 100644 --- a/core/java/android/content/pm/parsing/ApkParseUtils.java +++ b/core/java/android/content/pm/parsing/ApkParseUtils.java @@ -2053,6 +2053,9 @@ public class ApkParseUtils { sa.getBoolean(R.styleable.AndroidManifestApplication_enabled, true)); + parsingPackage.setCrossProfile( + sa.getBoolean(R.styleable.AndroidManifestApplication_crossProfile, false)); + parsingPackage.setIsGame(sa.getBoolean( R.styleable.AndroidManifestApplication_isGame, false)); diff --git a/core/java/android/content/pm/parsing/PackageImpl.java b/core/java/android/content/pm/parsing/PackageImpl.java index 377279e750c6a..df1457120e546 100644 --- a/core/java/android/content/pm/parsing/PackageImpl.java +++ b/core/java/android/content/pm/parsing/PackageImpl.java @@ -235,6 +235,7 @@ public final class PackageImpl implements ParsingPackage, ParsedPackage, Android private int descriptionRes; private String deviceProtectedDataDir; private boolean enabled; + private boolean crossProfile; private int flags; private int fullBackupContent; private boolean hiddenUntilInstalled; @@ -1623,6 +1624,12 @@ public final class PackageImpl implements ParsingPackage, ParsedPackage, Android return this; } + @Override + public PackageImpl setCrossProfile(boolean crossProfile) { + this.crossProfile = crossProfile; + return this; + } + @Override public PackageImpl setUiOptions(int uiOptions) { this.uiOptions = uiOptions; @@ -2817,6 +2824,11 @@ public final class PackageImpl implements ParsingPackage, ParsedPackage, Android return enabled; } + @Override + public boolean isCrossProfile() { + return crossProfile; + } + @Override public String getManageSpaceActivityName() { return manageSpaceActivityName; @@ -3024,6 +3036,7 @@ public final class PackageImpl implements ParsingPackage, ParsedPackage, Android dest.writeInt(this.descriptionRes); dest.writeString(this.deviceProtectedDataDir); dest.writeBoolean(this.enabled); + dest.writeBoolean(this.crossProfile); dest.writeInt(this.flags); dest.writeInt(this.fullBackupContent); dest.writeBoolean(this.hiddenUntilInstalled); @@ -3174,6 +3187,7 @@ public final class PackageImpl implements ParsingPackage, ParsedPackage, Android this.descriptionRes = in.readInt(); this.deviceProtectedDataDir = in.readString(); this.enabled = in.readBoolean(); + this.crossProfile = in.readBoolean(); this.flags = in.readInt(); this.fullBackupContent = in.readInt(); this.hiddenUntilInstalled = in.readBoolean(); diff --git a/core/java/android/content/pm/parsing/ParsingPackage.java b/core/java/android/content/pm/parsing/ParsingPackage.java index 43c1f6e335b02..ad07acdec260d 100644 --- a/core/java/android/content/pm/parsing/ParsingPackage.java +++ b/core/java/android/content/pm/parsing/ParsingPackage.java @@ -227,6 +227,8 @@ public interface ParsingPackage extends AndroidPackage { ParsingPackage setEnabled(boolean enabled); + ParsingPackage setCrossProfile(boolean crossProfile); + ParsingPackage setFullBackupContent(int fullBackupContent); ParsingPackage setHasDomainUrls(boolean hasDomainUrls); diff --git a/core/res/res/values/attrs_manifest.xml b/core/res/res/values/attrs_manifest.xml index 166cde0d7005f..217314432ef24 100644 --- a/core/res/res/values/attrs_manifest.xml +++ b/core/res/res/values/attrs_manifest.xml @@ -1753,6 +1753,12 @@ The default value is {@code false}. --> + + +