Fixes 4497 : this a photo of place X: Do not ask if the item (depiction) is already selected for addition and the photo already has a caption (#4754)

* Dialog can't be dismissed

* Dialog can't be dismissed

* Nearby Place dialog can remember user preference

* Minor change

* Minor change

* Renamed the map
This commit is contained in:
Ayan Sarkar 2022-01-20 20:04:44 +05:30 committed by GitHub
parent 9afa686538
commit 7e12d28557
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 3 deletions

View file

@ -55,6 +55,7 @@ import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.schedulers.Schedulers;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import javax.inject.Inject;
import javax.inject.Named;
@ -117,6 +118,12 @@ public class UploadActivity extends BaseActivity implements UploadContract.View,
public static final String EXTRA_FILES = "commons_image_exta";
/**
* Stores all nearby places found and related users response for
* each place while uploading media
*/
public static HashMap<Place,Boolean> nearbyPopupAnswers;
@SuppressLint("CheckResult")
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -127,6 +134,7 @@ public class UploadActivity extends BaseActivity implements UploadContract.View,
ButterKnife.bind(this);
compositeDisposable = new CompositeDisposable();
init();
nearbyPopupAnswers = new HashMap<>();
PermissionUtils.checkPermissionsAndPerformAction(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE,

View file

@ -34,6 +34,7 @@ import fr.free.nrw.commons.nearby.Place;
import fr.free.nrw.commons.settings.Prefs;
import fr.free.nrw.commons.upload.ImageCoordinates;
import fr.free.nrw.commons.upload.SimilarImageDialogFragment;
import fr.free.nrw.commons.upload.UploadActivity;
import fr.free.nrw.commons.upload.UploadBaseFragment;
import fr.free.nrw.commons.upload.UploadItem;
import fr.free.nrw.commons.upload.UploadMediaDetail;
@ -259,7 +260,15 @@ public class UploadMediaDetailFragment extends UploadBaseFragment implements
this.uploadItem = uploadItem;
showNearbyFound = true;
if(callback.getIndexInViewFlipper(this) == 0) {
showNearbyPlaceFound(nearbyPlace);
if (UploadActivity.nearbyPopupAnswers.containsKey(nearbyPlace)) {
final boolean response = UploadActivity.nearbyPopupAnswers.get(nearbyPlace);
if (response) {
presenter.onUserConfirmedUploadIsOfPlace(nearbyPlace,
callback.getIndexInViewFlipper(this));
}
} else {
showNearbyPlaceFound(nearbyPlace);
}
showNearbyFound = false;
}
}
@ -279,10 +288,11 @@ public class UploadMediaDetailFragment extends UploadBaseFragment implements
getString(R.string.upload_nearby_place_found_description),
place.getName()),
() -> {
UploadActivity.nearbyPopupAnswers.put(place, true);
presenter.onUserConfirmedUploadIsOfPlace(place, callback.getIndexInViewFlipper(this));
},
() -> {
UploadActivity.nearbyPopupAnswers.put(place, false);
},
customLayout, true);
}
@ -305,7 +315,15 @@ public class UploadMediaDetailFragment extends UploadBaseFragment implements
super.onBecameVisible();
presenter.fetchTitleAndDescription(callback.getIndexInViewFlipper(this));
if(showNearbyFound) {
showNearbyPlaceFound(nearbyPlace);
if (UploadActivity.nearbyPopupAnswers.containsKey(nearbyPlace)) {
final boolean response = UploadActivity.nearbyPopupAnswers.get(nearbyPlace);
if (response) {
presenter.onUserConfirmedUploadIsOfPlace(nearbyPlace,
callback.getIndexInViewFlipper(this));
}
} else {
showNearbyPlaceFound(nearbyPlace);
}
showNearbyFound = false;
}
}