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