Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3180)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java

Issue 2619493006: [Android] Chagne items shown in context menu for tel link (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 19245314a796173cead492fcea65d5053cd3eecf..cf6ac726bd08f85908dbfd9613bae591406ffa1a 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
@@ -50,9 +50,10 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
// Items that are included in all context menus.
private static final int[] BASE_WHITELIST = {
R.id.contextmenu_copy_link_address,
+ R.id.contextmenu_call,
R.id.contextmenu_send_message,
R.id.contextmenu_add_to_contacts,
- R.id.contextmenu_copy_email_address,
+ R.id.contextmenu_copy,
R.id.contextmenu_copy_link_text,
R.id.contextmenu_save_link_as,
R.id.contextmenu_save_image,
@@ -107,7 +108,10 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
static final int ACTION_OPEN_IN_OTHER_WINDOW = 20;
static final int ACTION_SEND_EMAIL = 23;
static final int ACTION_ADD_TO_CONTACTS = 24;
- static final int NUM_ACTIONS = 25;
+ static final int ACTION_CALL = 25;
+ static final int ACTION_SEND_TEXT_MESSAGE = 26;
+ static final int ACTION_COPY_PHONE_NUMBER = 27;
+ static final int NUM_ACTIONS = 28;
// Note: these values must match the ContextMenuSaveLinkType enum in histograms.xml.
// Only add new values at the end, right before NUM_TYPES. We depend on these specific
@@ -218,7 +222,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
if (MailTo.isMailTo(params.getLinkUrl())) {
menu.findItem(R.id.contextmenu_copy_link_text).setVisible(false);
menu.findItem(R.id.contextmenu_copy_link_address).setVisible(false);
- menu.setGroupVisible(R.id.contextmenu_group_email, true);
+ menu.setGroupVisible(R.id.contextmenu_group_message, true);
if (!mDelegate.supportsSendEmailMessage()) {
menu.findItem(R.id.contextmenu_send_message).setVisible(false);
}
@@ -226,8 +230,22 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|| !mDelegate.supportsAddToContacts()) {
menu.findItem(R.id.contextmenu_add_to_contacts).setVisible(false);
}
+ menu.findItem(R.id.contextmenu_call).setVisible(false);
+ } else if (UrlUtilities.isTelScheme(params.getLinkUrl())) {
+ menu.findItem(R.id.contextmenu_copy_link_text).setVisible(false);
+ menu.findItem(R.id.contextmenu_copy_link_address).setVisible(false);
+ menu.setGroupVisible(R.id.contextmenu_group_message, true);
+ if (!mDelegate.supportsCall()) {
+ menu.findItem(R.id.contextmenu_call).setVisible(false);
+ }
+ if (!mDelegate.supportsSendTextMessage()) {
+ menu.findItem(R.id.contextmenu_send_message).setVisible(false);
+ }
+ if (!mDelegate.supportsAddToContacts()) {
+ menu.findItem(R.id.contextmenu_add_to_contacts).setVisible(false);
+ }
} else {
- menu.setGroupVisible(R.id.contextmenu_group_email, false);
+ menu.setGroupVisible(R.id.contextmenu_group_message, false);
}
menu.findItem(R.id.contextmenu_save_link_as).setVisible(
@@ -354,16 +372,30 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
ContextMenuUma.record(params, ContextMenuUma.ACTION_COPY_LINK_ADDRESS);
mDelegate.onSaveToClipboard(params.getUnfilteredLinkUrl(),
ContextMenuItemDelegate.CLIPBOARD_TYPE_LINK_URL);
+ } else if (itemId == R.id.contextmenu_call) {
+ ContextMenuUma.record(params, ContextMenuUma.ACTION_CALL);
+ mDelegate.onCall(params.getLinkUrl());
} else if (itemId == R.id.contextmenu_send_message) {
- ContextMenuUma.record(params, ContextMenuUma.ACTION_SEND_EMAIL);
- mDelegate.onSendEmailMessage(params.getLinkUrl());
+ if (MailTo.isMailTo(params.getLinkUrl())) {
+ ContextMenuUma.record(params, ContextMenuUma.ACTION_SEND_EMAIL);
+ mDelegate.onSendEmailMessage(params.getLinkUrl());
+ } else if (UrlUtilities.isTelScheme(params.getLinkUrl())) {
+ ContextMenuUma.record(params, ContextMenuUma.ACTION_SEND_TEXT_MESSAGE);
+ mDelegate.onSendTextMessage(params.getLinkUrl());
+ }
} else if (itemId == R.id.contextmenu_add_to_contacts) {
ContextMenuUma.record(params, ContextMenuUma.ACTION_ADD_TO_CONTACTS);
mDelegate.onAddToContacts(params.getLinkUrl());
- } else if (itemId == R.id.contextmenu_copy_email_address) {
- ContextMenuUma.record(params, ContextMenuUma.ACTION_COPY_EMAIL_ADDRESS);
- mDelegate.onSaveToClipboard(MailTo.parse(params.getLinkUrl()).getTo(),
- ContextMenuItemDelegate.CLIPBOARD_TYPE_LINK_URL);
+ } else if (itemId == R.id.contextmenu_copy) {
+ if (MailTo.isMailTo(params.getLinkUrl())) {
+ ContextMenuUma.record(params, ContextMenuUma.ACTION_COPY_EMAIL_ADDRESS);
+ mDelegate.onSaveToClipboard(MailTo.parse(params.getLinkUrl()).getTo(),
+ ContextMenuItemDelegate.CLIPBOARD_TYPE_LINK_URL);
+ } else if (UrlUtilities.isTelScheme(params.getLinkUrl())) {
+ ContextMenuUma.record(params, ContextMenuUma.ACTION_COPY_PHONE_NUMBER);
+ mDelegate.onSaveToClipboard(UrlUtilities.getTelNumber(params.getLinkUrl()),
+ ContextMenuItemDelegate.CLIPBOARD_TYPE_LINK_URL);
+ }
} else if (itemId == R.id.contextmenu_copy_link_text) {
ContextMenuUma.record(params, ContextMenuUma.ACTION_COPY_LINK_TEXT);
mDelegate.onSaveToClipboard(

Powered by Google App Engine
This is Rietveld 408576698