1515import android .view .View ;
1616import android .view .ViewGroup ;
1717import android .view .ViewTreeObserver ;
18- import android .view .WindowManager ;
1918import android .widget .Button ;
2019import android .widget .EditText ;
2120import android .widget .LinearLayout ;
4241import fr .free .nrw .commons .delete .DeleteTask ;
4342import fr .free .nrw .commons .di .CommonsDaggerSupportFragment ;
4443import fr .free .nrw .commons .location .LatLng ;
44+ import fr .free .nrw .commons .mwapi .MediaWikiApi ;
4545import fr .free .nrw .commons .ui .widget .CompatTextView ;
4646import timber .log .Timber ;
4747
@@ -69,6 +69,9 @@ public static MediaDetailFragment forMedia(int index, boolean editable) {
6969
7070 @ Inject
7171 Provider <MediaDataExtractor > mediaDataExtractorProvider ;
72+ @ Inject
73+ MediaWikiApi mwApi ;
74+
7275
7376 private MediaWikiImageView image ;
7477 private MediaDetailSpacer spacer ;
@@ -79,6 +82,7 @@ public static MediaDetailFragment forMedia(int index, boolean editable) {
7982 private TextView license ;
8083 private TextView coordinates ;
8184 private TextView uploadedDate ;
85+ private TextView nominatedforDeletion ;
8286 private LinearLayout categoryContainer ;
8387 private Button delete ;
8488 private ScrollView scrollView ;
@@ -133,6 +137,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa
133137 license = (TextView ) view .findViewById (R .id .mediaDetailLicense );
134138 coordinates = (TextView ) view .findViewById (R .id .mediaDetailCoordinates );
135139 uploadedDate = (TextView ) view .findViewById (R .id .mediaDetailuploadeddate );
140+ nominatedforDeletion = (TextView ) view .findViewById (R .id .nominatedDeletionBanner );
136141 delete = (Button ) view .findViewById (R .id .nominateDeletion );
137142 categoryContainer = (LinearLayout ) view .findViewById (R .id .mediaDetailCategoryContainer );
138143
@@ -231,7 +236,6 @@ protected void onPostExecute(Boolean success) {
231236
232237 if (success ) {
233238 extractor .fill (media );
234-
235239 setTextFields (media );
236240 setOnClickListeners (media );
237241 } else {
@@ -284,21 +288,22 @@ private void setTextFields(Media media) {
284288 }
285289 rebuildCatList ();
286290
287- delete . setVisibility ( View . VISIBLE );
291+ checkDeletion ( media );
288292 }
289293
290294 private void setOnClickListeners (final Media media ) {
291295 if (licenseLink (media ) != null ) {
292296 license .setOnClickListener (v -> openWebBrowser (licenseLink (media )));
293- } else {
297+ } else {
294298 Toast toast = Toast .makeText (getContext (), getString (R .string .null_url ), Toast .LENGTH_SHORT );
295299 toast .show ();
296- }
300+ }
297301 if (media .getCoordinates () != null ) {
298302 coordinates .setOnClickListener (v -> openMap (media .getCoordinates ()));
299303 }
300- if (delete .getVisibility ()== View .VISIBLE ){
304+ if (delete .getVisibility () == View .VISIBLE ) {
301305 delete .setOnClickListener (v -> {
306+ delete .setEnabled (false );
302307 AlertDialog .Builder alert = new AlertDialog .Builder (getActivity ());
303308 alert .setMessage ("Why should this file be deleted?" );
304309 final EditText input = new EditText (getActivity ());
@@ -343,6 +348,11 @@ public void onTextChanged(CharSequence s, int start, int before, int count) {
343348 d .getButton (AlertDialog .BUTTON_POSITIVE ).setEnabled (false );
344349 });
345350 }
351+ if (nominatedforDeletion .getVisibility () == View .VISIBLE ){
352+ nominatedforDeletion .setOnClickListener (v -> {
353+ openWebBrowser (media .getFilePageTitle ().getMobileUri ().toString ());
354+ });
355+ }
346356 }
347357
348358 private void rebuildCatList () {
@@ -366,7 +376,7 @@ private View buildCatLabel(final String catName, ViewGroup categoryContainer) {
366376 viewIntent .setAction (Intent .ACTION_VIEW );
367377 viewIntent .setData (new PageTitle (selectedCategoryTitle ).getCanonicalUri ());
368378 //check if web browser available
369- if (viewIntent .resolveActivity (getActivity ().getPackageManager ()) != null ){
379+ if (viewIntent .resolveActivity (getActivity ().getPackageManager ()) != null ) {
370380 startActivity (viewIntent );
371381 } else {
372382 Toast toast = Toast .makeText (getContext (), getString (R .string .no_web_browser ), LENGTH_SHORT );
@@ -434,6 +444,16 @@ private String prettyCoordinates(Media media) {
434444 return media .getCoordinates ().getPrettyCoordinateString ();
435445 }
436446
447+ private void checkDeletion (Media media ){
448+ if (media .getRequestedDeletion ()){
449+ delete .setVisibility (View .GONE );
450+ nominatedforDeletion .setVisibility (View .VISIBLE );
451+ }
452+ else {
453+ delete .setVisibility (View .VISIBLE );
454+ nominatedforDeletion .setVisibility (View .GONE );
455+ }
456+ }
437457
438458 private @ Nullable
439459 String licenseLink (Media media ) {
0 commit comments