Skip to content

Commit a933b92

Browse files
Fix caption lost on accepting 'Is this a pic of' (commons-app#6030)
Fixes issue 5842 by correcting the implementation of onUserConfirmedUploadIsOfPlace in UploadMediaDetailsContract's UserActionListener Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
1 parent f2d1f7d commit a933b92

File tree

3 files changed

+16
-15
lines changed

3 files changed

+16
-15
lines changed

app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ public void onNearbyPlaceFound(UploadItem uploadItem, Place place) {
398398
final boolean response = UploadActivity.nearbyPopupAnswers.get(nearbyPlace);
399399
if (response) {
400400
if (callback != null) {
401-
presenter.onUserConfirmedUploadIsOfPlace(nearbyPlace);
401+
presenter.onUserConfirmedUploadIsOfPlace(nearbyPlace, indexOfFragment);
402402
}
403403
}
404404
} else {
@@ -445,7 +445,7 @@ private void showNearbyPlaceFound(Place place) {
445445
() -> {
446446
// Execute when user confirms the upload is of the specified place
447447
UploadActivity.nearbyPopupAnswers.put(place, true);
448-
presenter.onUserConfirmedUploadIsOfPlace(place);
448+
presenter.onUserConfirmedUploadIsOfPlace(place, indexOfFragment);
449449
},
450450
() -> {
451451
// Execute when user cancels the upload of the specified place
@@ -486,7 +486,7 @@ protected void onBecameVisible() {
486486
if (UploadActivity.nearbyPopupAnswers.containsKey(nearbyPlace)) {
487487
final boolean response = UploadActivity.nearbyPopupAnswers.get(nearbyPlace);
488488
if (response) {
489-
presenter.onUserConfirmedUploadIsOfPlace(nearbyPlace);
489+
presenter.onUserConfirmedUploadIsOfPlace(nearbyPlace, indexOfFragment);
490490
}
491491
} else {
492492
showNearbyPlaceFound(nearbyPlace);

app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailsContract.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,6 @@ interface UploadMediaDetailsContract {
117117

118118
fun onEditButtonClicked(indexInViewFlipper: Int)
119119

120-
fun onUserConfirmedUploadIsOfPlace(place: Place?)
120+
fun onUserConfirmedUploadIsOfPlace(place: Place?, uploadItemIndex: Int)
121121
}
122122
}

app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaPresenter.java

+12-11
Original file line numberDiff line numberDiff line change
@@ -322,23 +322,24 @@ public void onEditButtonClicked(final int indexInViewFlipper){
322322
}
323323

324324
/**
325-
* Updates the information regarding the specified place for uploads
325+
* Updates the information regarding the specified place for the specified upload item
326326
* when the user confirms the suggested nearby place.
327327
*
328328
* @param place The place to be associated with the uploads.
329+
* @param uploadItemIndex Index of the uploadItem whose detected place has been confirmed
329330
*/
330331
@Override
331-
public void onUserConfirmedUploadIsOfPlace(final Place place) {
332-
final List<UploadItem> uploads = repository.getUploads();
333-
for (final UploadItem uploadItem : uploads) {
334-
uploadItem.setPlace(place);
335-
final List<UploadMediaDetail> uploadMediaDetails = uploadItem.getUploadMediaDetails();
336-
// Update UploadMediaDetail object for this UploadItem
337-
uploadMediaDetails.set(0, new UploadMediaDetail(place));
338-
}
339-
// Now that all UploadItems and their associated UploadMediaDetail objects have been updated,
332+
public void onUserConfirmedUploadIsOfPlace(final Place place, final int uploadItemIndex) {
333+
final UploadItem uploadItem = repository.getUploads().get(uploadItemIndex);
334+
335+
uploadItem.setPlace(place);
336+
final List<UploadMediaDetail> uploadMediaDetails = uploadItem.getUploadMediaDetails();
337+
// Update UploadMediaDetail object for this UploadItem
338+
uploadMediaDetails.set(0, new UploadMediaDetail(place));
339+
340+
// Now that the UploadItem and its associated UploadMediaDetail objects have been updated,
340341
// update the view with the modified media details of the first upload item
341-
view.updateMediaDetails(uploads.get(0).getUploadMediaDetails());
342+
view.updateMediaDetails(uploadMediaDetails);
342343
UploadActivity.setUploadIsOfAPlace(true);
343344
}
344345

0 commit comments

Comments
 (0)