24
24
import org .mozilla .vrbrowser .utils .UrlUtils ;
25
25
26
26
import java .util .ArrayList ;
27
+ import java .util .function .Predicate ;
27
28
28
29
public class ContextMenuWidget extends MenuWidget {
29
30
ArrayList <MenuItem > mItems ;
@@ -75,6 +76,10 @@ protected void onDismiss() {
75
76
}
76
77
}
77
78
79
+ public boolean hasActions () {
80
+ return mItems .stream ().anyMatch (menuItem -> menuItem .mCallback != null );
81
+ }
82
+
78
83
public void setDismissCallback (Runnable aCallback ) {
79
84
mDismissCallback = aCallback ;
80
85
}
@@ -110,7 +115,7 @@ public void setContextElement(ContextElement aContextElement) {
110
115
} else {
111
116
mItems .add (new MenuWidget .MenuItem (aContextElement .srcUri , 0 , null ));
112
117
}
113
- if (URLUtil .isHttpUrl ( aContextElement . srcUri ) || URLUtil . isHttpsUrl (aContextElement .srcUri )) {
118
+ if (URLUtil .isNetworkUrl (aContextElement .srcUri )) {
114
119
@ StringRes int srcText ;
115
120
switch (aContextElement .type ) {
116
121
case ContextElement .TYPE_IMAGE :
@@ -133,33 +138,35 @@ public void setContextElement(ContextElement aContextElement) {
133
138
onDismiss ();
134
139
}));
135
140
}
136
- mItems .add (new MenuWidget .MenuItem (getContext ().getString (R .string .context_menu_copy_link ), 0 , () -> {
137
- ClipboardManager clipboard = (ClipboardManager ) getContext ().getSystemService (Context .CLIPBOARD_SERVICE );
138
- Uri uri ;
139
- if (aContextElement .linkUri != null ) {
140
- uri = Uri .parse (aContextElement .linkUri );
141
-
142
- } else {
143
- uri = Uri .parse (aContextElement .srcUri );
144
- }
145
- if (uri != null ) {
146
- String label = aContextElement .title ;
147
- if (StringUtils .isEmpty (label )) {
148
- label = aContextElement .altText ;
149
- }
150
- if (StringUtils .isEmpty (label )) {
151
- label = aContextElement .altText ;
141
+ if (URLUtil .isNetworkUrl (aContextElement .linkUri ) || URLUtil .isNetworkUrl (aContextElement .srcUri )) {
142
+ mItems .add (new MenuWidget .MenuItem (getContext ().getString (R .string .context_menu_copy_link ), 0 , () -> {
143
+ ClipboardManager clipboard = (ClipboardManager ) getContext ().getSystemService (Context .CLIPBOARD_SERVICE );
144
+ Uri uri ;
145
+ if (aContextElement .linkUri != null ) {
146
+ uri = Uri .parse (aContextElement .linkUri );
147
+
148
+ } else {
149
+ uri = Uri .parse (aContextElement .srcUri );
152
150
}
153
- if (StringUtils .isEmpty (label )) {
154
- label = uri .toString ();
155
- }
156
- ClipData clip = ClipData .newRawUri (label , uri );
157
- if (clipboard != null ) {
158
- clipboard .setPrimaryClip (clip );
151
+ if (uri != null ) {
152
+ String label = aContextElement .title ;
153
+ if (StringUtils .isEmpty (label )) {
154
+ label = aContextElement .altText ;
155
+ }
156
+ if (StringUtils .isEmpty (label )) {
157
+ label = aContextElement .altText ;
158
+ }
159
+ if (StringUtils .isEmpty (label )) {
160
+ label = uri .toString ();
161
+ }
162
+ ClipData clip = ClipData .newRawUri (label , uri );
163
+ if (clipboard != null ) {
164
+ clipboard .setPrimaryClip (clip );
165
+ }
159
166
}
160
- }
161
- onDismiss ( );
162
- }));
167
+ onDismiss ();
168
+ }) );
169
+ }
163
170
updateMenuItems (mItems );
164
171
165
172
mWidgetPlacement .height = mItems .size () * WidgetPlacement .dpDimension (getContext (), R .dimen .context_menu_row_height );
0 commit comments