Chromium Code Reviews| 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(), |