Loading core/java/android/content/pm/parsing/AndroidPackage.java +2 −0 Original line number Diff line number Diff line Loading @@ -286,6 +286,8 @@ public interface AndroidPackage extends Parcelable { List<String> getQueriesPackages(); Set<String> getQueriesProviders(); String getRealPackage(); // TODO(b/135203078): Rename to getRequiredFeatures? Somewhat ambiguous whether "Req" is Loading core/java/android/content/pm/parsing/ApkParseUtils.java +20 −0 Original line number Diff line number Diff line Loading @@ -96,6 +96,7 @@ import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Set; import java.util.StringTokenizer; /** @hide */ public class ApkParseUtils { Loading Loading @@ -1817,6 +1818,25 @@ public class ApkParseUtils { ); } parsingPackage.addQueriesPackage(packageName.intern()); } else if (parser.getName().equals("provider")) { final TypedArray sa = res.obtainAttributes(parser, R.styleable.AndroidManifestQueriesProvider); try { final String authorities = sa.getString(R.styleable.AndroidManifestQueriesProvider_authorities); if (TextUtils.isEmpty(authorities)) { return parseInput.error( PackageManager.INSTALL_PARSE_FAILED_MANIFEST_MALFORMED, "Authority missing from provider tag." ); } StringTokenizer authoritiesTokenizer = new StringTokenizer(authorities, ";"); while (authoritiesTokenizer.hasMoreElements()) { parsingPackage.addQueriesProvider(authoritiesTokenizer.nextToken()); } } finally { sa.recycle(); } } } return parseInput.success(parsingPackage); Loading core/java/android/content/pm/parsing/PackageImpl.java +14 −0 Original line number Diff line number Diff line Loading @@ -215,6 +215,9 @@ public final class PackageImpl implements ParsingPackage, ParsedPackage, Android @Nullable private ArrayList<String> queriesPackages; @Nullable private ArraySet<String> queriesProviders; @Nullable private ArrayMap<String, ComponentParseUtils.ParsedProcess> processes; Loading Loading @@ -956,6 +959,12 @@ public final class PackageImpl implements ParsingPackage, ParsedPackage, Android return this; } @Override public ParsingPackage addQueriesProvider(String authority) { this.queriesProviders = ArrayUtils.add(this.queriesProviders, authority); return this; } @Override public PackageImpl setProcesses(ArrayMap<String, ComponentParseUtils.ParsedProcess> processes) { this.processes = processes; Loading Loading @@ -2975,6 +2984,11 @@ public final class PackageImpl implements ParsingPackage, ParsedPackage, Android return queriesPackages; } @Override public Set<String> getQueriesProviders() { return queriesProviders; } private static void internStringArrayList(List<String> list) { if (list != null) { final int N = list.size(); Loading core/java/android/content/pm/parsing/ParsingPackage.java +2 −0 Original line number Diff line number Diff line Loading @@ -100,6 +100,8 @@ public interface ParsingPackage extends AndroidPackage { ParsingPackage addQueriesPackage(String packageName); ParsingPackage addQueriesProvider(String authority); ParsingPackage setProcesses(ArrayMap<String, ComponentParseUtils.ParsedProcess> processes); ParsingPackage asSplit( Loading core/res/res/values/attrs_manifest.xml +3 −0 Original line number Diff line number Diff line Loading @@ -2056,6 +2056,9 @@ <attr name="name" /> </declare-styleable> <declare-styleable name="AndroidManifestQueriesIntent" parent="AndroidManifestQueries" /> <declare-styleable name="AndroidManifestQueriesProvider" parent="AndroidManifestQueries" > <attr name="authorities" /> </declare-styleable> <!-- The <code>static-library</code> tag declares that this apk is providing itself Loading Loading
core/java/android/content/pm/parsing/AndroidPackage.java +2 −0 Original line number Diff line number Diff line Loading @@ -286,6 +286,8 @@ public interface AndroidPackage extends Parcelable { List<String> getQueriesPackages(); Set<String> getQueriesProviders(); String getRealPackage(); // TODO(b/135203078): Rename to getRequiredFeatures? Somewhat ambiguous whether "Req" is Loading
core/java/android/content/pm/parsing/ApkParseUtils.java +20 −0 Original line number Diff line number Diff line Loading @@ -96,6 +96,7 @@ import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Set; import java.util.StringTokenizer; /** @hide */ public class ApkParseUtils { Loading Loading @@ -1817,6 +1818,25 @@ public class ApkParseUtils { ); } parsingPackage.addQueriesPackage(packageName.intern()); } else if (parser.getName().equals("provider")) { final TypedArray sa = res.obtainAttributes(parser, R.styleable.AndroidManifestQueriesProvider); try { final String authorities = sa.getString(R.styleable.AndroidManifestQueriesProvider_authorities); if (TextUtils.isEmpty(authorities)) { return parseInput.error( PackageManager.INSTALL_PARSE_FAILED_MANIFEST_MALFORMED, "Authority missing from provider tag." ); } StringTokenizer authoritiesTokenizer = new StringTokenizer(authorities, ";"); while (authoritiesTokenizer.hasMoreElements()) { parsingPackage.addQueriesProvider(authoritiesTokenizer.nextToken()); } } finally { sa.recycle(); } } } return parseInput.success(parsingPackage); Loading
core/java/android/content/pm/parsing/PackageImpl.java +14 −0 Original line number Diff line number Diff line Loading @@ -215,6 +215,9 @@ public final class PackageImpl implements ParsingPackage, ParsedPackage, Android @Nullable private ArrayList<String> queriesPackages; @Nullable private ArraySet<String> queriesProviders; @Nullable private ArrayMap<String, ComponentParseUtils.ParsedProcess> processes; Loading Loading @@ -956,6 +959,12 @@ public final class PackageImpl implements ParsingPackage, ParsedPackage, Android return this; } @Override public ParsingPackage addQueriesProvider(String authority) { this.queriesProviders = ArrayUtils.add(this.queriesProviders, authority); return this; } @Override public PackageImpl setProcesses(ArrayMap<String, ComponentParseUtils.ParsedProcess> processes) { this.processes = processes; Loading Loading @@ -2975,6 +2984,11 @@ public final class PackageImpl implements ParsingPackage, ParsedPackage, Android return queriesPackages; } @Override public Set<String> getQueriesProviders() { return queriesProviders; } private static void internStringArrayList(List<String> list) { if (list != null) { final int N = list.size(); Loading
core/java/android/content/pm/parsing/ParsingPackage.java +2 −0 Original line number Diff line number Diff line Loading @@ -100,6 +100,8 @@ public interface ParsingPackage extends AndroidPackage { ParsingPackage addQueriesPackage(String packageName); ParsingPackage addQueriesProvider(String authority); ParsingPackage setProcesses(ArrayMap<String, ComponentParseUtils.ParsedProcess> processes); ParsingPackage asSplit( Loading
core/res/res/values/attrs_manifest.xml +3 −0 Original line number Diff line number Diff line Loading @@ -2056,6 +2056,9 @@ <attr name="name" /> </declare-styleable> <declare-styleable name="AndroidManifestQueriesIntent" parent="AndroidManifestQueries" /> <declare-styleable name="AndroidManifestQueriesProvider" parent="AndroidManifestQueries" > <attr name="authorities" /> </declare-styleable> <!-- The <code>static-library</code> tag declares that this apk is providing itself Loading