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 de05f0476f745fadfe1976616501b796222d4ad8..b439b43f972aae8326745aa2a6612f264040c6f0 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,6 +50,8 @@ 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_send_message, |
+ R.id.contextmenu_add_to_contacts, |
R.id.contextmenu_copy_email_address, |
R.id.contextmenu_copy_link_text, |
R.id.contextmenu_save_link_as, |
@@ -103,7 +105,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { |
static final int ACTION_SAVE_VIDEO = 14; |
static final int ACTION_SHARE_IMAGE = 19; |
static final int ACTION_OPEN_IN_OTHER_WINDOW = 20; |
- static final int NUM_ACTIONS = 21; |
+ static final int ACTION_SEND_MESSAGE = 21; |
+ static final int ACTION_ADD_TO_CONTACTS = 22; |
+ static final int NUM_ACTIONS = 23; |
// 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 |
@@ -212,9 +216,20 @@ 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); |
+ if (!mDelegate.supportsSendEmailMessage()) { |
+ menu.findItem(R.id.contextmenu_send_message).setVisible(false); |
+ } |
+ if (!mDelegate.supportsAddToContacts()) { |
+ menu.findItem(R.id.contextmenu_add_to_contacts).setVisible(false); |
+ } |
+ if (TextUtils.isEmpty(MailTo.parse(params.getLinkUrl()).getTo())) { |
Ted C
2017/01/04 18:40:08
I would || this with the condition above.
ltian
2017/01/04 20:46:58
Done.
|
+ menu.findItem(R.id.contextmenu_add_to_contacts).setVisible(false); |
+ } |
} else { |
- menu.findItem(R.id.contextmenu_copy_email_address).setVisible(false); |
+ menu.setGroupVisible(R.id.contextmenu_group_email, false); |
} |
menu.findItem(R.id.contextmenu_save_link_as).setVisible( |
@@ -341,6 +356,12 @@ 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_send_message) { |
+ ContextMenuUma.record(params, ContextMenuUma.ACTION_SEND_MESSAGE); |
+ mDelegate.onSendMessage(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(), |