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

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

Issue 2747453002: Split context menu display and population/handling (Closed)
Patch Set: I'm genuinely confused on why some code did not upload Created 3 years, 9 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 5352ed1ad824e045a1fb6529adb4db81915e9f27..0d44461e32961f0811d3a7ea64bdf55338887de8 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
@@ -7,10 +7,10 @@ package org.chromium.chrome.browser.contextmenu;
import android.content.Context;
import android.net.MailTo;
import android.support.annotation.IntDef;
+import android.support.annotation.StringRes;
import android.text.TextUtils;
+import android.util.Pair;
import android.view.ContextMenu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
import android.webkit.MimeTypeMap;
import org.chromium.base.CollectionUtil;
@@ -25,7 +25,10 @@ import org.chromium.chrome.browser.util.UrlUtilities;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashSet;
+import java.util.List;
import java.util.Set;
/**
@@ -40,9 +43,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
*/
@Retention(RetentionPolicy.SOURCE)
@IntDef({
- NORMAL_MODE, /* Default mode */
- CUSTOM_TAB_MODE, /* Custom tab mode */
- FULLSCREEN_TAB_MODE /* Full screen mode */
+ NORMAL_MODE, /* Default mode */
+ CUSTOM_TAB_MODE, /* Custom tab mode */
+ FULLSCREEN_TAB_MODE /* Full screen mode */
})
public @interface ContextMenuMode {}
@@ -50,32 +53,73 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
public static final int CUSTOM_TAB_MODE = 1;
public static final int FULLSCREEN_TAB_MODE = 2;
+ /**
+ * Defines the Groups of each Context Menu Item
+ */
+ @Retention(RetentionPolicy.SOURCE)
+ @IntDef({LINK, IMAGE, VIDEO})
+ public @interface ContextMenuGroup {}
+
+ public static final int LINK = 0;
+ public static final int IMAGE = 1;
+ public static final int VIDEO = 2;
+
// Items that are included in all context menus.
- private static final Set<Integer> BASE_WHITELIST = CollectionUtil.newHashSet(
- 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,
- R.id.contextmenu_copy_link_text, R.id.contextmenu_load_original_image,
- R.id.contextmenu_save_link_as, R.id.contextmenu_save_image,
- R.id.contextmenu_share_image, R.id.contextmenu_save_video);
+ private static final Set<ContextMenuItem> BASE_WHITELIST =
+ Collections.unmodifiableSet(CollectionUtil.newHashSet(ContextMenuItem.COPY_LINK_ADDRESS,
+ ContextMenuItem.CALL, ContextMenuItem.SEND_MESSAGE,
+ ContextMenuItem.ADD_TO_CONTACTS, ContextMenuItem.COPY,
+ ContextMenuItem.COPY_LINK_TEXT, ContextMenuItem.LOAD_ORIGINAL_IMAGE,
+ ContextMenuItem.SAVE_LINK_AS, ContextMenuItem.SAVE_IMAGE,
+ ContextMenuItem.SHARE_IMAGE, ContextMenuItem.SAVE_VIDEO));
// Items that are included for normal Chrome browser mode.
- private static final Set<Integer> NORMAL_MODE_WHITELIST = CollectionUtil.newHashSet(
- R.id.contextmenu_open_in_new_tab, R.id.contextmenu_open_in_other_window,
- R.id.contextmenu_open_in_incognito_tab, R.id.contextmenu_save_link_as,
- R.id.contextmenu_open_image_in_new_tab, R.id.contextmenu_search_by_image);
+ private static final Set<ContextMenuItem> NORMAL_MODE_WHITELIST =
+ Collections.unmodifiableSet(CollectionUtil.newHashSet(ContextMenuItem.OPEN_IN_NEW_TAB,
+ ContextMenuItem.OPEN_IN_OTHER_WINDOW, ContextMenuItem.OPEN_IN_INCOGNITO_TAB,
+ ContextMenuItem.SAVE_LINK_AS, ContextMenuItem.OPEN_IMAGE_IN_NEW_TAB,
+ ContextMenuItem.SEARCH_BY_IMAGE));
// Additional items for custom tabs mode.
- private static final Set<Integer> CUSTOM_TAB_MODE_WHITELIST = CollectionUtil.newHashSet(
- R.id.contextmenu_open_image, R.id.contextmenu_search_by_image,
- R.id.contextmenu_open_in_new_chrome_tab, R.id.contextmenu_open_in_chrome_incognito_tab,
- R.id.contextmenu_open_in_browser_id);
+ private static final Set<ContextMenuItem> CUSTOM_TAB_MODE_WHITELIST =
+ Collections.unmodifiableSet(CollectionUtil.newHashSet(ContextMenuItem.OPEN_IMAGE,
+ ContextMenuItem.SEARCH_BY_IMAGE, ContextMenuItem.OPEN_IN_NEW_CHROME_TAB,
+ ContextMenuItem.OPEN_IN_CHROME_INCOGNITO_TAB,
+ ContextMenuItem.OPEN_IN_BROWSER_ID));
// Additional items for fullscreen tabs mode.
- private static final Set<Integer> FULLSCREEN_TAB_MODE_WHITELIST =
- CollectionUtil.newHashSet(R.id.menu_id_open_in_chrome);
+ private static final Set<ContextMenuItem> FULLSCREEN_TAB_MODE_WHITELIST =
+ Collections.unmodifiableSet(CollectionUtil.newHashSet(ContextMenuItem.OPEN_IN_CHROME));
+
+ // The order of the items within each lists determines the order of the context menu.
+ private static final List<ContextMenuItem> CUSTOM_TAB_GROUP = Collections.unmodifiableList(
+ CollectionUtil.newArrayList(ContextMenuItem.OPEN_IN_NEW_CHROME_TAB,
+ ContextMenuItem.OPEN_IN_CHROME_INCOGNITO_TAB,
+ ContextMenuItem.OPEN_IN_BROWSER_ID));
+
+ private static final List<ContextMenuItem> LINK_GROUP =
+ Collections.unmodifiableList(CollectionUtil.newArrayList(
+ ContextMenuItem.OPEN_IN_OTHER_WINDOW, ContextMenuItem.OPEN_IN_NEW_TAB,
+ ContextMenuItem.OPEN_IN_INCOGNITO_TAB, ContextMenuItem.COPY_LINK_ADDRESS,
+ ContextMenuItem.COPY_LINK_TEXT, ContextMenuItem.SAVE_LINK_AS));
+
+ private static final List<ContextMenuItem> IMAGE_GROUP =
+ Collections.unmodifiableList(CollectionUtil.newArrayList(
+ ContextMenuItem.LOAD_ORIGINAL_IMAGE, ContextMenuItem.SAVE_IMAGE,
+ ContextMenuItem.OPEN_IMAGE, ContextMenuItem.OPEN_IMAGE_IN_NEW_TAB,
+ ContextMenuItem.SEARCH_BY_IMAGE, ContextMenuItem.SHARE_IMAGE));
+
+ private static final List<ContextMenuItem> MESSAGE_GROUP = Collections.unmodifiableList(
+ CollectionUtil.newArrayList(ContextMenuItem.CALL, ContextMenuItem.SEND_MESSAGE,
+ ContextMenuItem.ADD_TO_CONTACTS, ContextMenuItem.COPY));
+
+ private static final List<ContextMenuItem> VIDEO_GROUP =
+ Collections.unmodifiableList(CollectionUtil.newArrayList(ContextMenuItem.SAVE_VIDEO));
+
+ private static final List<ContextMenuItem> OTHER_GROUP = Collections.unmodifiableList(
+ CollectionUtil.newArrayList(ContextMenuItem.OPEN_IN_CHROME));
private final ContextMenuItemDelegate mDelegate;
- private MenuInflater mMenuInflater;
private final int mMode;
static class ContextMenuUma {
@@ -178,141 +222,223 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
mDelegate.onDestroy();
}
- @Override
- public void buildContextMenu(ContextMenu menu, Context context, ContextMenuParams params) {
+ /**
+ * Gets the link of the item or the alternate text of an image.
+ * @return A string with either the link or with the alternate text.
+ */
+ public static String createHeaderText(ContextMenuParams params) {
+ String titleText = "";
if (!TextUtils.isEmpty(params.getLinkUrl())
&& !params.getLinkUrl().equals(UrlConstants.ABOUT_BLANK_DISPLAY_URL)) {
- setHeaderText(context, menu, params.getLinkUrl());
+ titleText = params.getLinkUrl();
} else if (!TextUtils.isEmpty(params.getTitleText())) {
- setHeaderText(context, menu, params.getTitleText());
+ titleText = params.getTitleText();
}
+ return titleText;
+ }
- if (params.isFile()) return;
-
- if (mMenuInflater == null) mMenuInflater = new MenuInflater(context);
-
- mMenuInflater.inflate(R.menu.chrome_context_menu, menu);
-
- 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_message,
- MailTo.isMailTo(params.getLinkUrl())
- || UrlUtilities.isTelScheme(params.getLinkUrl()));
-
- Set<Integer> supportedOptions = new HashSet<>();
+ @Override
+ public List<Pair<Integer, List<ContextMenuItem>>> buildContextMenu(
+ ContextMenu menu, Context context, ContextMenuParams params) {
+ // Add all items in a group
+ Set<ContextMenuItem> supportedOptions = new HashSet<>();
supportedOptions.addAll(BASE_WHITELIST);
if (mMode == FULLSCREEN_TAB_MODE) {
supportedOptions.addAll(FULLSCREEN_TAB_MODE_WHITELIST);
} else if (mMode == CUSTOM_TAB_MODE) {
supportedOptions.addAll(CUSTOM_TAB_MODE_WHITELIST);
- if (!ChromePreferenceManager.getInstance().getCachedChromeDefaultBrowser()) {
- menu.findItem(R.id.contextmenu_open_in_browser_id)
- .setTitle(mDelegate.getTitleForOpenTabInExternalApp());
- }
} else {
supportedOptions.addAll(NORMAL_MODE_WHITELIST);
}
- Set<Integer> disabledOptions = getDisabledOptions(params);
- // Iterate through the entire menu list, if if doesn't exist in the map, don't show it.
- for (int i = 0; i < menu.size(); i++) {
- MenuItem item = menu.getItem(i);
- if (!item.isVisible()) continue;
- item.setVisible(supportedOptions.contains(item.getItemId())
- && !disabledOptions.contains(item.getItemId()));
+ Set<ContextMenuItem> disabledOptions = getDisabledOptions(params);
+ // Split the items into their respective groups.
+ List<Pair<Integer, List<ContextMenuItem>>> groupedItems = new ArrayList<>();
+ if (params.isAnchor()) {
+ populateItemGroup(LINK, R.string.contextmenu_link_title, groupedItems, supportedOptions,
+ disabledOptions);
+ }
+ if (params.isImage()) {
+ populateItemGroup(IMAGE, R.string.contextmenu_image_title, groupedItems,
+ supportedOptions, disabledOptions);
+ }
+ if (params.isVideo()) {
+ populateItemGroup(VIDEO, R.string.contextmenu_video_title, groupedItems,
+ supportedOptions, disabledOptions);
+ }
+
+ // If there are no groups there still needs to be a way to add items from the OTHER_GROUP
+ // and CUSTOM_TAB_GROUP.
+ if (groupedItems.isEmpty()) {
+ int titleResId = R.string.contextmenu_link_title;
+
+ if (params.isVideo()) {
+ titleResId = R.string.contextmenu_video_title;
+ } else if (params.isImage()) {
+ titleResId = R.string.contextmenu_image_title;
+ }
+ groupedItems.add(new Pair<Integer, List<ContextMenuItem>>(
+ titleResId, new ArrayList<ContextMenuItem>()));
+ }
+
+ // These items don't belong to any official group so they are added to a possible visible
+ // list.
+ addValidItems(groupedItems.get(groupedItems.size() - 1).second, OTHER_GROUP,
+ supportedOptions, disabledOptions);
+ if (mMode == CUSTOM_TAB_MODE) {
+ addValidItemsToFront(groupedItems.get(0).second, CUSTOM_TAB_GROUP, supportedOptions,
+ disabledOptions);
+ }
+
+ // If there are no items from the extra items withing OTHER_GROUP and CUSTOM_TAB_GROUP, then
+ // it's removed since there is nothing to show at all.
+ if (groupedItems.get(0).second.isEmpty()) {
+ groupedItems.remove(0);
}
- // Special case for searching by image element.
- if (supportedOptions.contains(R.id.contextmenu_search_by_image)) {
- menu.findItem(R.id.contextmenu_search_by_image)
- .setTitle(context.getString(R.string.contextmenu_search_web_for_image,
- TemplateUrlService.getInstance()
- .getDefaultSearchEngineTemplateUrl()
- .getShortName()));
+ return groupedItems;
+ }
+
+ private void populateItemGroup(@ContextMenuGroup int contextMenuType, @StringRes int titleResId,
+ List<Pair<Integer, List<ContextMenuItem>>> itemGroups,
+ Set<ContextMenuItem> supportedOptions, Set<ContextMenuItem> disabledOptions) {
+ List<ContextMenuItem> items = new ArrayList<>();
+ switch (contextMenuType) {
+ case LINK:
+ addValidItems(items, LINK_GROUP, supportedOptions, disabledOptions);
+ addValidItems(items, MESSAGE_GROUP, supportedOptions, disabledOptions);
+ break;
+ case IMAGE:
+ addValidItems(items, IMAGE_GROUP, supportedOptions, disabledOptions);
+ break;
+ case VIDEO:
+ addValidItems(items, VIDEO_GROUP, supportedOptions, disabledOptions);
+ break;
+ default:
+ return;
+ }
+
+ if (items.isEmpty()) return;
+
+ itemGroups.add(new Pair<>(titleResId, items));
+ }
+
+ private void addValidItems(List<ContextMenuItem> validItems, List<ContextMenuItem> allItems,
+ Set<ContextMenuItem> supportedOptions, Set<ContextMenuItem> disabledOptions) {
+ for (int i = 0; i < allItems.size(); i++) {
+ ContextMenuItem item = allItems.get(i);
+ if (supportedOptions.contains(item) && !disabledOptions.contains(item)) {
+ assert !validItems.contains(item);
+ validItems.add(item);
+ }
+ }
+ }
+
+ private void addValidItemsToFront(List<ContextMenuItem> validItems,
+ List<ContextMenuItem> allItems, Set<ContextMenuItem> supportedOptions,
+ Set<ContextMenuItem> disabledOptions) {
+ for (int i = 0; i < allItems.size(); i++) {
+ ContextMenuItem item = allItems.get(i);
+ if (supportedOptions.contains(item) && !disabledOptions.contains(item)) {
+ assert !validItems.contains(item);
+ validItems.add(0, item);
+ }
}
}
/**
* Given a set of params. It creates a list of items that should not be accessible in specific
- * instances. Since it doesn't have access to the menu groups, they need to be filtered outside
- * of this method.
+ * instances.
* @param params The parameters used to create a list of items that should not be allowed.
*/
- private Set<Integer> getDisabledOptions(ContextMenuParams params) {
- Set<Integer> disabledOptions = new HashSet<>();
+ private Set<ContextMenuItem> getDisabledOptions(ContextMenuParams params) {
+ Set<ContextMenuItem> disabledOptions = new HashSet<>();
+ if (!params.isAnchor()) {
+ disabledOptions.addAll(LINK_GROUP);
+ }
+ if (!params.isImage()) {
+ disabledOptions.addAll(IMAGE_GROUP);
+ }
+ if (!params.isVideo()) {
+ disabledOptions.addAll(VIDEO_GROUP);
+ }
+ if (!MailTo.isMailTo(params.getLinkUrl())
+ && !UrlUtilities.isTelScheme(params.getLinkUrl())) {
+ disabledOptions.addAll(MESSAGE_GROUP);
+ }
+
if (params.isAnchor() && !mDelegate.isOpenInOtherWindowSupported()) {
- disabledOptions.add(R.id.contextmenu_open_in_other_window);
+ disabledOptions.add(ContextMenuItem.OPEN_IN_OTHER_WINDOW);
}
if (mDelegate.isIncognito() || !mDelegate.isIncognitoSupported()) {
- disabledOptions.add(R.id.contextmenu_open_in_incognito_tab);
+ disabledOptions.add(ContextMenuItem.OPEN_IN_INCOGNITO_TAB);
}
if (params.getLinkText().trim().isEmpty() || params.isImage()) {
- disabledOptions.add(R.id.contextmenu_copy_link_text);
+ disabledOptions.add(ContextMenuItem.COPY_LINK_TEXT);
}
if (params.isAnchor() && !UrlUtilities.isAcceptedScheme(params.getLinkUrl())) {
- disabledOptions.add(R.id.contextmenu_open_in_other_window);
- disabledOptions.add(R.id.contextmenu_open_in_new_tab);
- disabledOptions.add(R.id.contextmenu_open_in_incognito_tab);
+ disabledOptions.add(ContextMenuItem.OPEN_IN_OTHER_WINDOW);
+ disabledOptions.add(ContextMenuItem.OPEN_IN_NEW_TAB);
+ disabledOptions.add(ContextMenuItem.OPEN_IN_INCOGNITO_TAB);
}
if (MailTo.isMailTo(params.getLinkUrl())) {
- disabledOptions.add(R.id.contextmenu_copy_link_text);
- disabledOptions.add(R.id.contextmenu_copy_link_address);
+ disabledOptions.add(ContextMenuItem.COPY_LINK_TEXT);
+ disabledOptions.add(ContextMenuItem.COPY_LINK_ADDRESS);
if (!mDelegate.supportsSendEmailMessage()) {
- disabledOptions.add(R.id.contextmenu_send_message);
+ disabledOptions.add(ContextMenuItem.SEND_MESSAGE);
}
if (TextUtils.isEmpty(MailTo.parse(params.getLinkUrl()).getTo())
|| !mDelegate.supportsAddToContacts()) {
- disabledOptions.add(R.id.contextmenu_add_to_contacts);
+ disabledOptions.add(ContextMenuItem.ADD_TO_CONTACTS);
}
- disabledOptions.add(R.id.contextmenu_call);
+ disabledOptions.add(ContextMenuItem.CALL);
} else if (UrlUtilities.isTelScheme(params.getLinkUrl())) {
- disabledOptions.add(R.id.contextmenu_copy_link_text);
- disabledOptions.add(R.id.contextmenu_copy_link_address);
+ disabledOptions.add(ContextMenuItem.COPY_LINK_TEXT);
+ disabledOptions.add(ContextMenuItem.COPY_LINK_ADDRESS);
if (!mDelegate.supportsCall()) {
- disabledOptions.add(R.id.contextmenu_call);
+ disabledOptions.add(ContextMenuItem.CALL);
}
if (!mDelegate.supportsSendTextMessage()) {
- disabledOptions.add(R.id.contextmenu_send_message);
+ disabledOptions.add(ContextMenuItem.SEND_MESSAGE);
}
if (!mDelegate.supportsAddToContacts()) {
- disabledOptions.add(R.id.contextmenu_add_to_contacts);
+ disabledOptions.add(ContextMenuItem.ADD_TO_CONTACTS);
}
}
if (!UrlUtilities.isDownloadableScheme(params.getLinkUrl())) {
- disabledOptions.add(R.id.contextmenu_save_link_as);
+ disabledOptions.add(ContextMenuItem.SAVE_LINK_AS);
}
boolean isSrcDownloadableScheme = UrlUtilities.isDownloadableScheme(params.getSrcUrl());
if (params.isVideo()) {
boolean saveableAndDownloadable = params.canSaveMedia() && isSrcDownloadableScheme;
if (!saveableAndDownloadable) {
- disabledOptions.add(R.id.contextmenu_save_video);
+ disabledOptions.add(ContextMenuItem.SAVE_VIDEO);
}
} else if (params.isImage() && params.imageWasFetchedLoFi()) {
DataReductionProxyUma.previewsLoFiContextMenuAction(
DataReductionProxyUma.ACTION_LOFI_LOAD_IMAGE_CONTEXT_MENU_SHOWN);
// All image context menu items other than "Load image," "Open original image in
// new tab," and "Copy image URL" should be disabled on Lo-Fi images.
- disabledOptions.add(R.id.contextmenu_save_image);
- disabledOptions.add(R.id.contextmenu_open_image);
- disabledOptions.add(R.id.contextmenu_search_by_image);
- disabledOptions.add(R.id.contextmenu_share_image);
+ disabledOptions.add(ContextMenuItem.SAVE_IMAGE);
+ disabledOptions.add(ContextMenuItem.OPEN_IMAGE);
+ disabledOptions.add(ContextMenuItem.SEARCH_BY_IMAGE);
+ disabledOptions.add(ContextMenuItem.SHARE_IMAGE);
} else if (params.isImage() && !params.imageWasFetchedLoFi()) {
- disabledOptions.add(R.id.contextmenu_load_original_image);
+ disabledOptions.add(ContextMenuItem.LOAD_ORIGINAL_IMAGE);
if (!isSrcDownloadableScheme) {
- disabledOptions.add(R.id.contextmenu_save_image);
+ disabledOptions.add(ContextMenuItem.SAVE_IMAGE);
}
// Avoid showing open image option for same image which is already opened.
if (mDelegate.getPageUrl().equals(params.getSrcUrl())) {
- disabledOptions.add(R.id.contextmenu_open_image);
+ disabledOptions.add(ContextMenuItem.OPEN_IMAGE);
}
final TemplateUrlService templateUrlServiceInstance = TemplateUrlService.getInstance();
final boolean isSearchByImageAvailable = isSrcDownloadableScheme
@@ -321,26 +447,26 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
&& templateUrlServiceInstance.getDefaultSearchEngineTemplateUrl() != null;
if (!isSearchByImageAvailable) {
- disabledOptions.add(R.id.contextmenu_search_by_image);
+ disabledOptions.add(ContextMenuItem.SEARCH_BY_IMAGE);
}
}
// Hide all items that could spawn additional tabs until FRE has been completed.
if (!FirstRunStatus.getFirstRunFlowComplete()) {
- disabledOptions.add(R.id.contextmenu_open_image_in_new_tab);
- disabledOptions.add(R.id.contextmenu_open_in_other_window);
- disabledOptions.add(R.id.contextmenu_open_in_new_tab);
- disabledOptions.add(R.id.contextmenu_open_in_incognito_tab);
- disabledOptions.add(R.id.contextmenu_search_by_image);
- disabledOptions.add(R.id.menu_id_open_in_chrome);
+ disabledOptions.add(ContextMenuItem.OPEN_IMAGE_IN_NEW_TAB);
+ disabledOptions.add(ContextMenuItem.OPEN_IN_OTHER_WINDOW);
+ disabledOptions.add(ContextMenuItem.OPEN_IN_NEW_TAB);
+ disabledOptions.add(ContextMenuItem.OPEN_IN_INCOGNITO_TAB);
+ disabledOptions.add(ContextMenuItem.SEARCH_BY_IMAGE);
+ disabledOptions.add(ContextMenuItem.OPEN_IN_CHROME);
}
if (mMode == CUSTOM_TAB_MODE) {
if (ChromePreferenceManager.getInstance().getCachedChromeDefaultBrowser()) {
- disabledOptions.add(R.id.contextmenu_open_in_browser_id);
+ disabledOptions.add(ContextMenuItem.OPEN_IN_BROWSER_ID);
} else {
- disabledOptions.add(R.id.contextmenu_open_in_new_chrome_tab);
- disabledOptions.add(R.id.contextmenu_open_in_chrome_incognito_tab);
+ disabledOptions.add(ContextMenuItem.OPEN_IN_NEW_CHROME_TAB);
+ disabledOptions.add(ContextMenuItem.OPEN_IN_CHROME_INCOGNITO_TAB);
}
}
@@ -456,9 +582,4 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
return params.getLinkUrl();
}
}
-
- private void setHeaderText(Context context, ContextMenu menu, String text) {
- ContextMenuTitleView title = new ContextMenuTitleView(context, text);
- menu.setHeaderView(title);
- }
}

Powered by Google App Engine
This is Rietveld 408576698