diff --git a/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java b/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java
index e62a6e8d4..d0d870a41 100644
--- a/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java
+++ b/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java
@@ -8,6 +8,7 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
+import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
@@ -272,19 +273,33 @@ public class UploadMediaDetailFragment extends UploadBaseFragment implements
@Override
public void showDuplicatePicturePopup(UploadItem uploadItem) {
- String uploadTitleFormat = getString(R.string.upload_title_duplicate);
- DialogUtil.showAlertDialog(getActivity(),
- getString(R.string.duplicate_image_found),
- String.format(Locale.getDefault(),
- uploadTitleFormat,
- uploadItem.getFileName()),
- getString(R.string.upload),
- getString(R.string.cancel),
- () -> {
- uploadItem.setImageQuality(ImageUtils.IMAGE_KEEP);
- onNextButtonClicked();
- }, null);
-
+ if (defaultKvStore.getBoolean("showDuplicatePicturePopup", true)) {
+ String uploadTitleFormat = getString(R.string.upload_title_duplicate);
+ View checkBoxView = View
+ .inflate(getActivity(), R.layout.nearby_permission_dialog, null);
+ CheckBox checkBox = (CheckBox) checkBoxView.findViewById(R.id.never_ask_again);
+ checkBox.setOnCheckedChangeListener((buttonView, isChecked) -> {
+ if (isChecked) {
+ defaultKvStore.putBoolean("showDuplicatePicturePopup", false);
+ }
+ });
+ DialogUtil.showAlertDialog(getActivity(),
+ getString(R.string.duplicate_image_found),
+ String.format(Locale.getDefault(),
+ uploadTitleFormat,
+ uploadItem.getFileName()),
+ getString(R.string.upload),
+ getString(R.string.cancel),
+ () -> {
+ uploadItem.setImageQuality(ImageUtils.IMAGE_KEEP);
+ onNextButtonClicked();
+ }, null,
+ checkBoxView,
+ false);
+ } else {
+ uploadItem.setImageQuality(ImageUtils.IMAGE_KEEP);
+ onNextButtonClicked();
+ }
}
@Override
diff --git a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt
index 40e9ad1ed..2016e40bf 100644
--- a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt
+++ b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt
@@ -94,6 +94,31 @@ object DialogUtil {
)
}
+ @JvmStatic
+ fun showAlertDialog(
+ activity: Activity,
+ title: String,
+ message: String,
+ positiveButtonText: String?,
+ negativeButtonText: String?,
+ onPositiveBtnClick: Runnable?,
+ onNegativeBtnClick: Runnable?,
+ customView: View?,
+ cancelable: Boolean
+ ) {
+ createAndShowDialogSafely(
+ activity = activity,
+ title = title,
+ message = message,
+ positiveButtonText = positiveButtonText,
+ negativeButtonText = negativeButtonText,
+ onPositiveBtnClick = onPositiveBtnClick,
+ onNegativeBtnClick = onNegativeBtnClick,
+ customView = customView,
+ cancelable = cancelable
+ )
+ }
+
@JvmStatic
fun showAlertDialog(
activity: Activity,
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 37e4c30aa..63b55dc8f 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -441,7 +441,7 @@
Next
Previous
Submit
- A file with the file name %1$s exists. Are you sure you want to proceed?
+ A file with the file name %1$s exists. Are you sure you want to proceed?\n\nNote: A suitable suffix will be added to the file name automatically.
No compatible map application could be found on your device. Please install a map application to use this feature.
Bookmarks
Bookmarks