Display contact's phone numbers upon being clicked
This CL also retrieves all phone numbers of the contact (as opposed to one)
Change-Id: If3a616083a21e27d7de166a42bb06e5b146bd61b
diff --git a/src/com/android/emergency/ContactPreference.java b/src/com/android/emergency/ContactPreference.java
index 34983b6..5e3ace5 100644
--- a/src/com/android/emergency/ContactPreference.java
+++ b/src/com/android/emergency/ContactPreference.java
@@ -130,21 +130,39 @@
/**
* Calls the contact.
*/
- public void callContact() {
- String phoneNumber = EmergencyContactManager.getNumber(getContext(), mUri);
- if (phoneNumber != null) {
- if (ActivityCompat.checkSelfPermission(getContext(),
- Manifest.permission.CALL_PHONE) == PackageManager.PERMISSION_GRANTED) {
- Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNumber));
- MetricsLogger.action(getContext(), MetricsEvent.ACTION_CALL_EMERGENCY_CONTACT);
- getContext().startActivity(callIntent);
- }
- } else {
- // TODO: Show dialog saying that there is no number.
+ public void callContact(String phoneNumber) {
+ if (ActivityCompat.checkSelfPermission(getContext(),
+ Manifest.permission.CALL_PHONE) == PackageManager.PERMISSION_GRANTED) {
+ Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNumber));
+ MetricsLogger.action(getContext(), MetricsEvent.ACTION_CALL_EMERGENCY_CONTACT);
+ getContext().startActivity(callIntent);
}
}
/**
+ * Displays a dialog with the contact's name and phone numbers.
+ */
+ public void showCallContactDialog() {
+ AlertDialog.Builder builderSingle = new AlertDialog.Builder(getContext());
+ builderSingle.setTitle(mName);
+ final String[] phoneNumbers = EmergencyContactManager.getPhoneNumbers(getContext(), mUri);
+ //TODO: Discuss with UX the possibility of using a custom list adapter for the phone numbers
+ if (phoneNumbers != null && phoneNumbers.length > 0) {
+ builderSingle.setItems(phoneNumbers, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialogInterface, int i) {
+ callContact(phoneNumbers[i]);
+ }
+ });
+ } else {
+ builderSingle.setMessage(getContext().getResources()
+ .getString(R.string.phone_number_error));
+ builderSingle.setPositiveButton(getContext().getString(R.string.ok), null);
+ }
+ builderSingle.show();
+ }
+
+ /**
* Displays a contact card for the contact.
*/
public void displayContact() {