| Index: chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
| index 496e81def3560abef6d80be3a63d260d90c79725..6ef7765ec6204b72fc3f28b361a0a1d1cc99f48d 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
| @@ -20,6 +20,7 @@ import org.chromium.chrome.browser.search_engines.TemplateUrlService;
|
| public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
| private final ChromeContextMenuItemDelegate mDelegate;
|
| private MenuInflater mMenuInflater;
|
| + private static final String TEL_SCHEME = "tel:";
|
|
|
| /**
|
| * Builds a {@link ChromeContextMenuPopulator}.
|
| @@ -40,8 +41,10 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
| public void buildContextMenu(ContextMenu menu, Context context, ContextMenuParams params) {
|
| if (params.isImage() && !TextUtils.isEmpty(params.getSrcUrl()))
|
| menu.setHeaderTitle(params.getSrcUrl());
|
| - else if (!TextUtils.isEmpty(params.getLinkUrl()) )
|
| + else if (!TextUtils.isEmpty(params.getLinkUrl()))
|
| menu.setHeaderTitle(params.getLinkUrl());
|
| + else if (isTelScheme(params))
|
| + menu.setHeaderTitle(params.getLinkText());
|
|
|
| if (mMenuInflater == null) mMenuInflater = new MenuInflater(context);
|
|
|
| @@ -50,6 +53,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
| menu.setGroupVisible(R.id.contextmenu_group_anchor, params.isAnchor());
|
| menu.setGroupVisible(R.id.contextmenu_group_image, params.isImage());
|
| menu.setGroupVisible(R.id.contextmenu_group_video, params.isVideo());
|
| + menu.setGroupVisible(R.id.contextmenu_group_tel, isTelScheme(params));
|
|
|
| if (mDelegate.isIncognito() || !mDelegate.isIncognitoSupported()) {
|
| menu.findItem(R.id.contextmenu_open_in_incognito_tab).setVisible(false);
|
| @@ -59,6 +63,10 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
| menu.findItem(R.id.contextmenu_copy_link_text).setVisible(false);
|
| }
|
|
|
| + if (isTelScheme(params) && params.isAnchor()) {
|
| + menu.setGroupVisible(R.id.contextmenu_group_anchor, false);
|
| + }
|
| +
|
| menu.findItem(R.id.contextmenu_save_link_as).setEnabled(
|
| UrlUtilities.isDownloadableScheme(params.getLinkUrl()));
|
|
|
| @@ -108,7 +116,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
| mDelegate.onOpenImageInNewTab(params.getSrcUrl(), params.getReferrer());
|
| } else if (itemId == R.id.contextmenu_copy_link_address_text) {
|
| mDelegate.onSaveToClipboard(params.getUnfilteredLinkUrl(), true);
|
| - } else if (itemId == R.id.contextmenu_copy_link_text) {
|
| + } else if (itemId == R.id.contextmenu_copy_link_text ||
|
| + itemId == R.id.contextmenu_copy_phone_number) {
|
| mDelegate.onSaveToClipboard(params.getLinkText(), false);
|
| } else if (itemId == R.id.contextmenu_save_image ||
|
| itemId == R.id.contextmenu_save_video) {
|
| @@ -119,10 +128,24 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
| mDelegate.onSearchByImageInNewTab();
|
| } else if (itemId == R.id.contextmenu_copy_image) {
|
| mDelegate.onSaveImageToClipboard(params.getSrcUrl());
|
| + } else if (itemId == R.id.contextmenu_call) {
|
| + mDelegate.onCall(params.getLinkText());
|
| + } else if (itemId == R.id.contextmenu_send_text_message) {
|
| + mDelegate.onSendTextMessage(params.getLinkText());
|
| + } else if (itemId == R.id.contextmenu_add_to_contacts) {
|
| + mDelegate.onAddToContacts(params.getLinkText());
|
| } else {
|
| assert false;
|
| }
|
|
|
| return true;
|
| }
|
| +
|
| + /**
|
| + * Determines if a ContextMenuParams has tel: scheme
|
| + * @param params ContextMenuParams
|
| + */
|
| + private boolean isTelScheme(ContextMenuParams params) {
|
| + return params.getLinkUrl().startsWith(TEL_SCHEME);
|
| + }
|
| }
|
|
|