diff options
-rw-r--r-- | api/current.txt | 1 | ||||
-rw-r--r-- | core/java/android/content/pm/PackageInfo.java | 5 | ||||
-rw-r--r-- | core/java/android/content/pm/PackageParser.java | 16 | ||||
-rw-r--r-- | core/res/res/values/attrs_manifest.xml | 7 | ||||
-rw-r--r-- | core/res/res/values/public.xml | 1 |
5 files changed, 26 insertions, 4 deletions
diff --git a/api/current.txt b/api/current.txt index 1e9dc29..f4a4dc4 100644 --- a/api/current.txt +++ b/api/current.txt @@ -852,6 +852,7 @@ package android { field public static final int reqNavigation = 16843306; // 0x101022a field public static final int reqTouchScreen = 16843303; // 0x1010227 field public static final int required = 16843406; // 0x101028e + field public static final int requiredAccountType = 16843734; // 0x10103d6 field public static final int requiredForAllUsers = 16843728; // 0x10103d0 field public static final int requiresFadingEdge = 16843685; // 0x10103a5 field public static final int requiresSmallestWidthDp = 16843620; // 0x1010364 diff --git a/core/java/android/content/pm/PackageInfo.java b/core/java/android/content/pm/PackageInfo.java index 33a6757..af1a6d5 100644 --- a/core/java/android/content/pm/PackageInfo.java +++ b/core/java/android/content/pm/PackageInfo.java @@ -224,6 +224,9 @@ public class PackageInfo implements Parcelable { /** @hide */ public String restrictedAccountType; + /** @hide */ + public String requiredAccountType; + public PackageInfo() { } @@ -266,6 +269,7 @@ public class PackageInfo implements Parcelable { dest.writeInt(installLocation); dest.writeInt(requiredForAllUsers ? 1 : 0); dest.writeString(restrictedAccountType); + dest.writeString(requiredAccountType); } public static final Parcelable.Creator<PackageInfo> CREATOR @@ -306,5 +310,6 @@ public class PackageInfo implements Parcelable { installLocation = source.readInt(); requiredForAllUsers = source.readInt() != 0; restrictedAccountType = source.readString(); + requiredAccountType = source.readString(); } } diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java index 5a50ec2..3586573 100644 --- a/core/java/android/content/pm/PackageParser.java +++ b/core/java/android/content/pm/PackageParser.java @@ -289,6 +289,7 @@ public class PackageParser { pi.installLocation = p.installLocation; pi.requiredForAllUsers = p.mRequiredForAllUsers; pi.restrictedAccountType = p.mRestrictedAccountType; + pi.requiredAccountType = p.mRequiredAccountType; pi.firstInstallTime = firstInstallTime; pi.lastUpdateTime = lastUpdateTime; if ((flags&PackageManager.GET_GIDS) != 0) { @@ -1816,13 +1817,19 @@ public class PackageParser { false)) { owner.mRequiredForAllUsers = true; } - String accountType = sa.getString(com.android.internal.R.styleable + String restrictedAccountType = sa.getString(com.android.internal.R.styleable .AndroidManifestApplication_restrictedAccountType); - if (accountType != null && accountType.length() > 0) { - owner.mRestrictedAccountType = accountType; + if (restrictedAccountType != null && restrictedAccountType.length() > 0) { + owner.mRestrictedAccountType = restrictedAccountType; } } + String requiredAccountType = sa.getString(com.android.internal.R.styleable + .AndroidManifestApplication_requiredAccountType); + if (requiredAccountType != null && requiredAccountType.length() > 0) { + owner.mRequiredAccountType = requiredAccountType; + } + if (sa.getBoolean( com.android.internal.R.styleable.AndroidManifestApplication_debuggable, false)) { @@ -3339,6 +3346,9 @@ public class PackageParser { /* The restricted account authenticator type that is used by this application */ public String mRestrictedAccountType; + /* The required account type without which this application will not function */ + public String mRequiredAccountType; + /** * Digest suitable for comparing whether this package's manifest is the * same as another. diff --git a/core/res/res/values/attrs_manifest.xml b/core/res/res/values/attrs_manifest.xml index 7f5a3dc..8821a01 100644 --- a/core/res/res/values/attrs_manifest.xml +++ b/core/res/res/values/attrs_manifest.xml @@ -909,8 +909,13 @@ <!-- Declare that this application requires access to restricted accounts of a certain type. The default value is null and restricted accounts won\'t be visible to this application. The type should correspond to the account authenticator type, such as - "com.google" --> + "com.google". Only usable by system apps. --> <attr name="restrictedAccountType" format="string"/> + <!-- Declare that this application requires an account of a certain + type. The default value is null and indicates that the application can work without + any accounts. The type should correspond to the account authenticator type, such as + "com.google". --> + <attr name="requiredAccountType" format="string"/> </declare-styleable> <!-- The <code>permission</code> tag declares a security permission that can be diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml index 42d692f..074d91f 100644 --- a/core/res/res/values/public.xml +++ b/core/res/res/values/public.xml @@ -2042,6 +2042,7 @@ <public type="attr" name="childIndicatorStart" /> <public type="attr" name="childIndicatorEnd" /> <public type="attr" name="restrictedAccountType" /> + <public type="attr" name="requiredAccountType" /> <public type="style" name="Theme.NoTitleBar.Overscan" /> <public type="style" name="Theme.Light.NoTitleBar.Overscan" /> |