diff options
Diffstat (limited to 'src/com/android/providers/contacts/ContactDirectoryManager.java')
-rw-r--r-- | src/com/android/providers/contacts/ContactDirectoryManager.java | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/com/android/providers/contacts/ContactDirectoryManager.java b/src/com/android/providers/contacts/ContactDirectoryManager.java index 09e3ff37..5dcf788c 100644 --- a/src/com/android/providers/contacts/ContactDirectoryManager.java +++ b/src/com/android/providers/contacts/ContactDirectoryManager.java @@ -19,6 +19,8 @@ package com.android.providers.contacts; import android.annotation.NonNull; import android.content.ContentValues; import android.content.Context; +import android.content.pm.ApplicationInfo; +import android.content.pm.Flags; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; @@ -39,6 +41,7 @@ import android.util.Log; import com.android.providers.contacts.ContactsDatabaseHelper.DbProperties; import com.android.providers.contacts.ContactsDatabaseHelper.DirectoryColumns; import com.android.providers.contacts.ContactsDatabaseHelper.Tables; + import com.google.android.collect.Lists; import com.google.android.collect.Sets; import com.google.common.annotations.VisibleForTesting; @@ -418,7 +421,8 @@ public class ContactDirectoryManager { * Scans the specified package for content directories and updates the {@link Directory} * table accordingly. */ - private List<DirectoryInfo> updateDirectoriesForPackage( + @VisibleForTesting + List<DirectoryInfo> updateDirectoriesForPackage( PackageInfo packageInfo, boolean initialScan) { if (DEBUG) { Log.d(TAG, "updateDirectoriesForPackage packageName=" + packageInfo.packageName @@ -427,6 +431,15 @@ public class ContactDirectoryManager { ArrayList<DirectoryInfo> directories = Lists.newArrayList(); + if (Flags.stayStopped() + && (packageInfo.applicationInfo != null + && ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_STOPPED) != 0))) { + if (DEBUG) { + Log.d(TAG, "Package " + packageInfo.packageName + " is in stopped state"); + } + return null; + } + ProviderInfo[] providers = packageInfo.providers; if (providers != null) { for (ProviderInfo provider : providers) { |