| Index: chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
|
| index 07ef7142b9ae5e5d22851efd8a5d25edb4664a0e..f61ce4bf011320e28b3fefaece8f85e711c870d8 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
|
| @@ -78,6 +78,21 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
|
| }
|
|
|
| @Override
|
| + public boolean supportsCall() {
|
| + Intent intent = new Intent(Intent.ACTION_VIEW);
|
| + intent.setData(Uri.parse("tel:"));
|
| + return mTab.getWindowAndroid().canResolveActivity(intent);
|
| + }
|
| +
|
| + @Override
|
| + public void onCall(String uri) {
|
| + Intent intent = new Intent(Intent.ACTION_VIEW);
|
| + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
| + intent.setData(Uri.parse(uri));
|
| + IntentUtils.safeStartActivity(mTab.getActivity(), intent);
|
| + }
|
| +
|
| + @Override
|
| public boolean supportsSendEmailMessage() {
|
| Intent intent = new Intent(Intent.ACTION_VIEW);
|
| intent.setData(Uri.parse("mailto:test@example.com"));
|
| @@ -93,6 +108,20 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
|
| }
|
|
|
| @Override
|
| + public boolean supportsSendTextMessage() {
|
| + Intent intent = new Intent(Intent.ACTION_VIEW);
|
| + intent.setData(Uri.parse("sms:"));
|
| + return mTab.getWindowAndroid().canResolveActivity(intent);
|
| + }
|
| +
|
| + @Override
|
| + public void onSendTextMessage(String url) {
|
| + Intent intent = new Intent(Intent.ACTION_VIEW);
|
| + intent.setData(Uri.parse("sms:" + UrlUtilities.getTelNumber(url)));
|
| + IntentUtils.safeStartActivity(mTab.getActivity(), intent);
|
| + }
|
| +
|
| + @Override
|
| public boolean supportsAddToContacts() {
|
| Intent intent = new Intent(Intent.ACTION_INSERT);
|
| intent.setType(ContactsContract.Contacts.CONTENT_TYPE);
|
| @@ -104,8 +133,12 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
|
| Intent intent = new Intent(Intent.ACTION_INSERT);
|
| intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
| intent.setType(ContactsContract.Contacts.CONTENT_TYPE);
|
| - intent.putExtra(
|
| - ContactsContract.Intents.Insert.EMAIL, MailTo.parse(url).getTo().split(",")[0]);
|
| + if (MailTo.isMailTo(url)) {
|
| + intent.putExtra(
|
| + ContactsContract.Intents.Insert.EMAIL, MailTo.parse(url).getTo().split(",")[0]);
|
| + } else if (UrlUtilities.isTelScheme(url)) {
|
| + intent.putExtra(ContactsContract.Intents.Insert.PHONE, UrlUtilities.getTelNumber(url));
|
| + }
|
| IntentUtils.safeStartActivity(mTab.getActivity(), intent);
|
| }
|
|
|
|
|