summaryrefslogtreecommitdiff
path: root/java/com/android/contacts/common/list
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/contacts/common/list')
-rw-r--r--java/com/android/contacts/common/list/DirectoryListLoader.java19
1 files changed, 14 insertions, 5 deletions
diff --git a/java/com/android/contacts/common/list/DirectoryListLoader.java b/java/com/android/contacts/common/list/DirectoryListLoader.java
index 48b098c07..be62cc7a8 100644
--- a/java/com/android/contacts/common/list/DirectoryListLoader.java
+++ b/java/com/android/contacts/common/list/DirectoryListLoader.java
@@ -25,9 +25,10 @@ import android.net.Uri;
import android.os.Handler;
import android.provider.ContactsContract.Directory;
import android.text.TextUtils;
-import android.util.Log;
import com.android.contacts.common.R;
import com.android.contacts.common.compat.DirectoryCompat;
+import com.android.dialer.common.LogUtil;
+import com.android.dialer.util.PermissionsUtil;
/** A specialized loader for the list of directories, see {@link Directory}. */
public class DirectoryListLoader extends AsyncTaskLoader<Cursor> {
@@ -38,7 +39,6 @@ public class DirectoryListLoader extends AsyncTaskLoader<Cursor> {
public static final int SEARCH_MODE_DATA_SHORTCUT = 3;
// This is a virtual column created for a MatrixCursor.
public static final String DIRECTORY_TYPE = "directoryType";
- private static final String TAG = "ContactEntryListAdapter";
private static final String[] RESULT_PROJECTION = {
Directory._ID, DIRECTORY_TYPE, Directory.DISPLAY_NAME, Directory.PHOTO_SUPPORT,
};
@@ -71,7 +71,13 @@ public class DirectoryListLoader extends AsyncTaskLoader<Cursor> {
@Override
protected void onStartLoading() {
- getContext().getContentResolver().registerContentObserver(DirectoryQuery.URI, false, mObserver);
+ if (PermissionsUtil.hasContactsReadPermissions(getContext())) {
+ getContext()
+ .getContentResolver()
+ .registerContentObserver(DirectoryQuery.URI, false, mObserver);
+ } else {
+ LogUtil.w("DirectoryListLoader.onStartLoading", "contacts permission not available.");
+ }
forceLoad();
}
@@ -141,7 +147,9 @@ public class DirectoryListLoader extends AsyncTaskLoader<Cursor> {
try {
directoryType = pm.getResourcesForApplication(packageName).getString(typeResourceId);
} catch (Exception e) {
- Log.e(TAG, "Cannot obtain directory type from package: " + packageName);
+ LogUtil.e(
+ "ContactEntryListAdapter.loadInBackground",
+ "cannot obtain directory type from package: " + packageName);
}
}
String displayName = cursor.getString(DirectoryQuery.DISPLAY_NAME);
@@ -149,7 +157,8 @@ public class DirectoryListLoader extends AsyncTaskLoader<Cursor> {
result.addRow(new Object[] {directoryId, directoryType, displayName, photoSupport});
}
} catch (RuntimeException e) {
- Log.w(TAG, "Runtime Exception when querying directory");
+ LogUtil.w(
+ "ContactEntryListAdapter.loadInBackground", "runtime exception when querying directory");
} finally {
if (cursor != null) {
cursor.close();