aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMakoto Onuki <omakoto@google.com>2015-02-18 16:02:36 -0800
committerThe Android Automerger <android-build@google.com>2015-02-18 20:57:25 -0800
commit2a7fdc4ea97649e497b94f0193af86fe6b5fa07a (patch)
treee73f362b2bc899d491f63aad12f9ed72221b2312
parent2184a892dfbd94d0a098f795492d30ae74fc16b3 (diff)
downloadContactsProvider-lollipop-mr1-cts-release.tar.gz
Instead, use getInstalledPackages, which knows how to circumvent the binder transaction size limit. Bug 18261831 Change-Id: I2725af045c60a47bfce6eab966a5c745b6c17870
-rw-r--r--src/com/android/providers/contacts/ContactDirectoryManager.java28
-rw-r--r--tests/src/com/android/providers/contacts/ContactDirectoryManagerTest.java3
-rw-r--r--tests/src/com/android/providers/contacts/ContactsMockPackageManager.java13
3 files changed, 22 insertions, 22 deletions
diff --git a/src/com/android/providers/contacts/ContactDirectoryManager.java b/src/com/android/providers/contacts/ContactDirectoryManager.java
index f243e79e..530a31bc 100644
--- a/src/com/android/providers/contacts/ContactDirectoryManager.java
+++ b/src/com/android/providers/contacts/ContactDirectoryManager.java
@@ -199,6 +199,7 @@ public class ContactDirectoryManager {
@VisibleForTesting
static boolean isDirectoryProvider(ProviderInfo provider) {
+ if (provider == null) return false;
Bundle metaData = provider.metaData;
if (metaData == null) return false;
@@ -213,17 +214,26 @@ public class ContactDirectoryManager {
static Set<String> getDirectoryProviderPackages(PackageManager pm) {
final Set<String> ret = Sets.newHashSet();
- // Note to 3rd party developers:
- // queryContentProviders() is a public API but this method doesn't officially support
- // the GET_META_DATA flag. Don't use it in your app.
- final List<ProviderInfo> providers = pm.queryContentProviders(null, 0,
- PackageManager.GET_META_DATA);
- if (providers == null) {
+ final List<PackageInfo> packages = pm.getInstalledPackages(PackageManager.GET_PROVIDERS
+ | PackageManager.GET_META_DATA);
+ if (packages == null) {
return ret;
}
- for (ProviderInfo provider : providers) {
- if (isDirectoryProvider(provider)) {
- ret.add(provider.packageName);
+ for (PackageInfo packageInfo : packages) {
+ if (DEBUG) {
+ Log.d(TAG, "package=" + packageInfo.packageName);
+ }
+ if (packageInfo.providers == null) {
+ continue;
+ }
+ for (ProviderInfo provider : packageInfo.providers) {
+ if (DEBUG) {
+ Log.d(TAG, "provider=" + provider.authority);
+ }
+ if (isDirectoryProvider(provider)) {
+ Log.d(TAG, "Found " + provider.authority);
+ ret.add(provider.packageName);
+ }
}
}
if (DEBUG) {
diff --git a/tests/src/com/android/providers/contacts/ContactDirectoryManagerTest.java b/tests/src/com/android/providers/contacts/ContactDirectoryManagerTest.java
index be14f450..c5bc6f67 100644
--- a/tests/src/com/android/providers/contacts/ContactDirectoryManagerTest.java
+++ b/tests/src/com/android/providers/contacts/ContactDirectoryManagerTest.java
@@ -122,6 +122,9 @@ public class ContactDirectoryManagerTest extends BaseContactsProvider2Test {
public void testIsDirectoryProvider() {
ProviderInfo provider = new ProviderInfo();
+ // Null -- just return false.
+ assertFalse(ContactDirectoryManager.isDirectoryProvider(null));
+
// No metadata
assertFalse(ContactDirectoryManager.isDirectoryProvider(provider));
diff --git a/tests/src/com/android/providers/contacts/ContactsMockPackageManager.java b/tests/src/com/android/providers/contacts/ContactsMockPackageManager.java
index 694f0f3c..a5aa7c7b 100644
--- a/tests/src/com/android/providers/contacts/ContactsMockPackageManager.java
+++ b/tests/src/com/android/providers/contacts/ContactsMockPackageManager.java
@@ -96,17 +96,4 @@ public class ContactsMockPackageManager extends MockPackageManager {
public Resources getResourcesForApplication(String appPackageName) {
return new ContactsMockResources();
}
-
- @Override
- public List<ProviderInfo> queryContentProviders(String processName, int uid, int flags) {
- final List<ProviderInfo> ret = Lists.newArrayList();
- if (mPackages == null) return ret;
- for (PackageInfo packageInfo : mPackages) {
- if (packageInfo.providers == null) continue;
- for (ProviderInfo providerInfo : packageInfo.providers) {
- ret.add(providerInfo);
- }
- }
- return ret;
- }
}