diff options
author | mariagpuyol <mariagpuyol@google.com> | 2016-08-16 18:58:26 -0700 |
---|---|---|
committer | mariagpuyol <mariagpuyol@google.com> | 2016-08-16 18:58:30 -0700 |
commit | fa5c314a25b45f7d4f6e4226f821306f30fb8d55 (patch) | |
tree | 9b92be9fda64dd7980f3a52e941fd5f7b22fba4c | |
parent | e7b0a5ce6499732288ffddfc91f8948d5dde75dd (diff) | |
download | android_packages_apps_EmergencyInfo-fa5c314a25b45f7d4f6e4226f821306f30fb8d55.tar.gz android_packages_apps_EmergencyInfo-fa5c314a25b45f7d4f6e4226f821306f30fb8d55.tar.bz2 android_packages_apps_EmergencyInfo-fa5c314a25b45f7d4f6e4226f821306f30fb8d55.zip |
Fix disambiguation problem when calling contact
Bug:30872007
Change-Id: I3f498d02b26f65ce872f761389dfefbda32737fd
-rw-r--r-- | src/com/android/emergency/preferences/ContactPreference.java | 16 |
1 files changed, 15 insertions, 1 deletions
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.MetricsLogger; 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 class ContactPreference extends Preference { 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 @@ public class ContactPreference extends Preference { } }; } -}
\ No newline at end of file +} |