Merge "Handle missing contact permission for preferred SIM"
diff --git a/java/com/android/dialer/precall/impl/CallingAccountSelector.java b/java/com/android/dialer/precall/impl/CallingAccountSelector.java
index d5ee0f2..e928329 100644
--- a/java/com/android/dialer/precall/impl/CallingAccountSelector.java
+++ b/java/com/android/dialer/precall/impl/CallingAccountSelector.java
@@ -62,6 +62,7 @@
 import com.android.dialer.preferredsim.suggestion.SimSuggestionComponent;
 import com.android.dialer.preferredsim.suggestion.SuggestionProvider.Suggestion;
 import com.android.dialer.telecom.TelecomUtil;
+import com.android.dialer.util.PermissionsUtil;
 import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableSet;
 import java.util.ArrayList;
@@ -311,6 +312,12 @@
       if (!isPreferredSimEnabled(context)) {
         return result;
       }
+      if (!PermissionsUtil.hasContactsReadPermissions(context)) {
+        LogUtil.i(
+            "CallingAccountSelector.PreferredAccountWorker.doInBackground",
+            "missing READ_CONTACTS permission");
+        return result;
+      }
       result.dataId = getDataId(context, phoneNumber);
       if (result.dataId.isPresent()) {
         result.phoneAccountHandle = getPreferredAccount(context, result.dataId.get());