diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.java
index 0fd4e6c6d..790f1a73f 100644
--- a/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.java
+++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.java
@@ -1,6 +1,7 @@
package fr.free.nrw.commons.upload;
import static fr.free.nrw.commons.contributions.ContributionController.ACTION_INTERNAL_UPLOADS;
+import static fr.free.nrw.commons.upload.UploadPresenter.COUNTER_OF_CONSECUTIVE_UPLOADS_WITHOUT_COORDINATES;
import static fr.free.nrw.commons.wikidata.WikidataConstants.PLACE_OBJECT;
import android.Manifest;
@@ -469,7 +470,18 @@ public class UploadActivity extends BaseActivity implements UploadContract.View,
vpUpload.setCurrentItem(index + 1, false);
fragments.get(index + 1).onBecameVisible();
} else {
- presenter.handleSubmit();
+ if(defaultKvStore.getInt(COUNTER_OF_CONSECUTIVE_UPLOADS_WITHOUT_COORDINATES, 0) >= 10){
+ DialogUtil.showAlertDialog(this,
+ "",
+ getString(R.string.location_message),
+ getString(R.string.ok),
+ () -> {
+ defaultKvStore.putInt(COUNTER_OF_CONSECUTIVE_UPLOADS_WITHOUT_COORDINATES, 0);
+ presenter.handleSubmit();
+ }, false);
+ } else {
+ presenter.handleSubmit();
+ }
}
}
diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadPresenter.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadPresenter.java
index d6f4419b8..e4a9d78a8 100644
--- a/app/src/main/java/fr/free/nrw/commons/upload/UploadPresenter.java
+++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadPresenter.java
@@ -32,6 +32,9 @@ public class UploadPresenter implements UploadContract.UserActionListener {
private UploadContract.View view = DUMMY;
private CompositeDisposable compositeDisposable;
+ public static final String COUNTER_OF_CONSECUTIVE_UPLOADS_WITHOUT_COORDINATES
+ = "number_of_consecutive_uploads_without_coordinates";
+
@Inject
UploadPresenter(UploadRepository uploadRepository,
@@ -69,6 +72,16 @@ public class UploadPresenter implements UploadContract.UserActionListener {
@Override
public void onNext(Contribution contribution) {
+ if(contribution.getDecimalCoords() == null){
+ final int recentCount
+ = defaultKvStore.getInt(
+ COUNTER_OF_CONSECUTIVE_UPLOADS_WITHOUT_COORDINATES, 0);
+ defaultKvStore.putInt(
+ COUNTER_OF_CONSECUTIVE_UPLOADS_WITHOUT_COORDINATES, recentCount + 1);
+ } else {
+ defaultKvStore.putInt(
+ COUNTER_OF_CONSECUTIVE_UPLOADS_WITHOUT_COORDINATES, 0);
+ }
repository.prepareMedia(contribution);
contribution.setState(Contribution.STATE_QUEUED);
repository.saveContribution(contribution);
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index a6582727b..b1fd31420 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -678,4 +678,5 @@ Upload your first media by tapping on the add button.
You can customize the Nearby query. If you get errors, reset and apply.
Apply
Reset
+ Location data helps Wiki editors find your picture, making it much more useful.\nYour recent uploads have no location.\nWe suggest you turn on location in your camera app\'s settings.\nThank you for uploading!