summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/searchfragment
diff options
context:
space:
mode:
authorcalderwoodra <calderwoodra@google.com>2018-01-23 17:39:56 -0800
committerCopybara-Service <copybara-piper@google.com>2018-01-23 18:06:51 -0800
commitaa8a26e9cd6d4c355f32516bbbf8361b32d8772b (patch)
tree81ac7c44a096baa062a1c214a9e3e61eda1abec9 /java/com/android/dialer/searchfragment
parent4e8359d3d59d3648bcefb8bcd1eee9f1bb2954e7 (diff)
Search no longer crashes if you don't have the contacts permission.
Bug: 71737256 Test: NewSearchFragmentTest PiperOrigin-RevId: 183020934 Change-Id: Ifed4364901ca77036fa6d0b149857fbbd7e9fca0
Diffstat (limited to 'java/com/android/dialer/searchfragment')
-rw-r--r--java/com/android/dialer/searchfragment/cp2/SearchContactsCursorLoader.java6
-rw-r--r--java/com/android/dialer/searchfragment/directories/DirectoriesCursorLoader.java11
2 files changed, 17 insertions, 0 deletions
diff --git a/java/com/android/dialer/searchfragment/cp2/SearchContactsCursorLoader.java b/java/com/android/dialer/searchfragment/cp2/SearchContactsCursorLoader.java
index 23f368f54..57e253c7e 100644
--- a/java/com/android/dialer/searchfragment/cp2/SearchContactsCursorLoader.java
+++ b/java/com/android/dialer/searchfragment/cp2/SearchContactsCursorLoader.java
@@ -28,9 +28,11 @@ import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.text.TextUtils;
import com.android.contacts.common.preference.ContactsPreferences;
+import com.android.dialer.common.LogUtil;
import com.android.dialer.searchfragment.common.Projections;
import com.android.dialer.searchfragment.common.SearchCursor;
import com.android.dialer.smartdial.SmartDialCursorLoader;
+import com.android.dialer.util.PermissionsUtil;
/** Cursor Loader for CP2 contacts. */
public final class SearchContactsCursorLoader extends CursorLoader {
@@ -80,6 +82,10 @@ public final class SearchContactsCursorLoader extends CursorLoader {
@Override
public Cursor loadInBackground() {
+ if (!PermissionsUtil.hasContactsReadPermissions(getContext())) {
+ LogUtil.i("SearchContactsCursorLoader.loadInBackground", "Contacts permission denied.");
+ return null;
+ }
return isRegularSearch ? regularSearchLoadInBackground() : dialpadSearchLoadInBackground();
}
diff --git a/java/com/android/dialer/searchfragment/directories/DirectoriesCursorLoader.java b/java/com/android/dialer/searchfragment/directories/DirectoriesCursorLoader.java
index edf5f2403..39c1187a4 100644
--- a/java/com/android/dialer/searchfragment/directories/DirectoriesCursorLoader.java
+++ b/java/com/android/dialer/searchfragment/directories/DirectoriesCursorLoader.java
@@ -25,6 +25,8 @@ import android.os.Build.VERSION;
import android.os.Build.VERSION_CODES;
import android.provider.ContactsContract;
import android.support.annotation.Nullable;
+import com.android.dialer.common.LogUtil;
+import com.android.dialer.util.PermissionsUtil;
import com.google.auto.value.AutoValue;
import java.util.ArrayList;
import java.util.List;
@@ -47,6 +49,15 @@ public final class DirectoriesCursorLoader extends CursorLoader {
super(context, getContentUri(), PROJECTION, null, null, ContactsContract.Directory._ID);
}
+ @Override
+ public Cursor loadInBackground() {
+ if (!PermissionsUtil.hasContactsReadPermissions(getContext())) {
+ LogUtil.i("DirectoriesCursorLoader.loadInBackground", "Contacts permission denied.");
+ return null;
+ }
+ return super.loadInBackground();
+ }
+
/**
* Creates a complete list of directories from the data set loaded by this loader.
*