From 8a2c30120d0d5ad7566dbc0983af3ec40f15ed69 Mon Sep 17 00:00:00 2001
From: Ayan Sarkar <71203077+Ayan-10@users.noreply.github.com>
Date: Wed, 22 Dec 2021 18:45:58 +0530
Subject: [PATCH] Fixed 4728 : Suggest User to turn on camera location (#4735)
* Dialog can't be dismissed
* Dialog can't be dismissed
* Suggest users to turn on camera location
* Added safety pattern
* Title removed
* Changed constant
---
.../fr/free/nrw/commons/upload/UploadActivity.java | 14 +++++++++++++-
.../free/nrw/commons/upload/UploadPresenter.java | 13 +++++++++++++
app/src/main/res/values/strings.xml | 1 +
3 files changed, 27 insertions(+), 1 deletion(-)
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!