Skip to content
This repository has been archived by the owner on Jul 22, 2024. It is now read-only.

Commit

Permalink
Do not include copy link context menu item for file based resources (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
MortimerGoro authored May 5, 2020
1 parent a085a98 commit e07e155
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1609,6 +1609,10 @@ public void onContextMenu(GeckoSession session, int screenX, int screenY, Contex
mContextMenu.mWidgetPlacement.parentHandle = getHandle();
mContextMenu.setDismissCallback(this::hideContextMenus);
mContextMenu.setContextElement(element);
if (!mContextMenu.hasActions()) {
hideContextMenus();
return;
}
mContextMenu.show(REQUEST_FOCUS);

mWidgetPlacement.tintColor = 0x555555FF;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import org.mozilla.vrbrowser.utils.UrlUtils;

import java.util.ArrayList;
import java.util.function.Predicate;

public class ContextMenuWidget extends MenuWidget {
ArrayList<MenuItem> mItems;
Expand Down Expand Up @@ -75,6 +76,10 @@ protected void onDismiss() {
}
}

public boolean hasActions() {
return mItems.stream().anyMatch(menuItem -> menuItem.mCallback != null);
}

public void setDismissCallback(Runnable aCallback) {
mDismissCallback = aCallback;
}
Expand Down Expand Up @@ -110,7 +115,7 @@ public void setContextElement(ContextElement aContextElement) {
} else {
mItems.add(new MenuWidget.MenuItem(aContextElement.srcUri, 0, null));
}
if (URLUtil.isHttpUrl(aContextElement.srcUri) || URLUtil.isHttpsUrl(aContextElement.srcUri)) {
if (URLUtil.isNetworkUrl(aContextElement.srcUri)) {
@StringRes int srcText;
switch (aContextElement.type) {
case ContextElement.TYPE_IMAGE:
Expand All @@ -133,33 +138,35 @@ public void setContextElement(ContextElement aContextElement) {
onDismiss();
}));
}
mItems.add(new MenuWidget.MenuItem(getContext().getString(R.string.context_menu_copy_link), 0, () -> {
ClipboardManager clipboard = (ClipboardManager) getContext().getSystemService(Context.CLIPBOARD_SERVICE);
Uri uri;
if (aContextElement.linkUri != null) {
uri = Uri.parse(aContextElement.linkUri);

} else {
uri = Uri.parse(aContextElement.srcUri);
}
if (uri != null) {
String label = aContextElement.title;
if (StringUtils.isEmpty(label)) {
label = aContextElement.altText;
}
if (StringUtils.isEmpty(label)) {
label = aContextElement.altText;
if (URLUtil.isNetworkUrl(aContextElement.linkUri) || URLUtil.isNetworkUrl(aContextElement.srcUri)) {
mItems.add(new MenuWidget.MenuItem(getContext().getString(R.string.context_menu_copy_link), 0, () -> {
ClipboardManager clipboard = (ClipboardManager) getContext().getSystemService(Context.CLIPBOARD_SERVICE);
Uri uri;
if (aContextElement.linkUri != null) {
uri = Uri.parse(aContextElement.linkUri);

} else {
uri = Uri.parse(aContextElement.srcUri);
}
if (StringUtils.isEmpty(label)) {
label = uri.toString();
}
ClipData clip = ClipData.newRawUri(label, uri);
if (clipboard != null) {
clipboard.setPrimaryClip(clip);
if (uri != null) {
String label = aContextElement.title;
if (StringUtils.isEmpty(label)) {
label = aContextElement.altText;
}
if (StringUtils.isEmpty(label)) {
label = aContextElement.altText;
}
if (StringUtils.isEmpty(label)) {
label = uri.toString();
}
ClipData clip = ClipData.newRawUri(label, uri);
if (clipboard != null) {
clipboard.setPrimaryClip(clip);
}
}
}
onDismiss();
}));
onDismiss();
}));
}
updateMenuItems(mItems);

mWidgetPlacement.height = mItems.size() * WidgetPlacement.dpDimension(getContext(), R.dimen.context_menu_row_height);
Expand Down

0 comments on commit e07e155

Please sign in to comment.