public class ChromeContextMenuPopulator implements ContextMenuPopulator {
private final ChromeContextMenuItemDelegate mDelegate;
private MenuInflater mMenuInflater;
+ private static final String BLANK_URL = "about:blank";
/**
* Builds a {@link ChromeContextMenuPopulator}.
@Override
public void buildContextMenu(ContextMenu menu, Context context, ContextMenuParams params) {
- if (!TextUtils.isEmpty(params.getLinkUrl())) menu.setHeaderTitle(params.getLinkUrl());
+ if (!TextUtils.isEmpty(params.getLinkUrl()) && !params.getLinkUrl().equals(BLANK_URL))
+ menu.setHeaderTitle(params.getLinkUrl());
if (mMenuInflater == null) mMenuInflater = new MenuInflater(context);
menu.findItem(R.id.contextmenu_open_original_image_in_new_tab).setVisible(false);
}
+ // Avoid showing open image option for same image which is already opened.
+ if (mDelegate.getPageUrl().equals(params.getSrcUrl())) {
+ menu.findItem(R.id.contextmenu_open_image).setVisible(false);
+ }
final TemplateUrlService templateUrlServiceInstance = TemplateUrlService.getInstance();
final boolean isSearchByImageAvailable =
UrlUtilities.isDownloadableScheme(params.getSrcUrl()) &&
mDelegate.onSearchByImageInNewTab();
} else if (itemId == R.id.contextmenu_copy_image) {
mDelegate.onSaveImageToClipboard(params.getSrcUrl());
+ } else if (itemId == R.id.contextmenu_copy_image_url) {
+ mDelegate.onSaveToClipboard(params.getSrcUrl(), true);
} else {
assert false;
}