Fix disambiguation problem when calling contact
am: fa5c314a25

Change-Id: I888e4da97016947d00e18f93eaa3b99396c334c3
diff --git a/src/com/android/emergency/preferences/ContactPreference.java b/src/com/android/emergency/preferences/ContactPreference.java
index d4549eb..7262a36 100644
--- a/src/com/android/emergency/preferences/ContactPreference.java
+++ b/src/com/android/emergency/preferences/ContactPreference.java
@@ -16,9 +16,12 @@
 package com.android.emergency.preferences;
 
 import android.app.AlertDialog;
+import android.content.ComponentName;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
 import android.graphics.drawable.Drawable;
 import android.net.Uri;
 import android.os.Bundle;
@@ -38,6 +41,8 @@
 import com.android.internal.logging.MetricsProto.MetricsEvent;
 import com.android.settingslib.drawable.CircleFramedDrawable;
 
+import java.util.List;
+
 
 /**
  * A {@link Preference} to display or call a contact using the specified URI string.
@@ -176,6 +181,15 @@
     public void callContact() {
         Intent callIntent =
                 new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + mContact.getPhoneNumber()));
+        PackageManager packageManager = getContext().getPackageManager();
+        List<ResolveInfo> infos =
+                packageManager.queryIntentActivities(callIntent, PackageManager.MATCH_SYSTEM_ONLY);
+        if (infos == null || infos.isEmpty()) {
+            return;
+        }
+        callIntent.setComponent(new ComponentName(infos.get(0).activityInfo.packageName,
+                infos.get(0).activityInfo.name));
+
         MetricsLogger.action(getContext(), MetricsEvent.ACTION_CALL_EMERGENCY_CONTACT);
         getContext().startActivity(callIntent);
     }
@@ -258,4 +272,4 @@
                     }
                 };
     }
-}
\ No newline at end of file
+}