From aa8a26e9cd6d4c355f32516bbbf8361b32d8772b Mon Sep 17 00:00:00 2001 From: calderwoodra Date: Tue, 23 Jan 2018 17:39:56 -0800 Subject: Search no longer crashes if you don't have the contacts permission. Bug: 71737256 Test: NewSearchFragmentTest PiperOrigin-RevId: 183020934 Change-Id: Ifed4364901ca77036fa6d0b149857fbbd7e9fca0 --- .../dialer/searchfragment/cp2/SearchContactsCursorLoader.java | 6 ++++++ .../searchfragment/directories/DirectoriesCursorLoader.java | 11 +++++++++++ 2 files changed, 17 insertions(+) (limited to 'java/com/android/dialer/searchfragment') 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. * -- cgit v1.2.3