From 165c375bbd254d4e13d8f23c54ff94daa08020fa Mon Sep 17 00:00:00 2001
From: Brigham Byerly <6891883+byerlyb20@users.noreply.github.com>
Date: Fri, 4 Jun 2021 05:34:46 -0400
Subject: [PATCH] UploadMediaDetail: replace discreet error toast with
more-noticeable dialog (#4433)
---
.../upload/mediaDetails/UploadMediaDetailFragment.java | 8 ++++++++
.../upload/mediaDetails/UploadMediaDetailsContract.java | 2 ++
.../upload/mediaDetails/UploadMediaPresenter.java | 9 +++++++--
app/src/main/res/values/strings.xml | 3 +++
4 files changed, 20 insertions(+), 2 deletions(-)
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 561a8da84..818962c2e 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
@@ -365,6 +365,14 @@ public class UploadMediaDetailFragment extends UploadBaseFragment implements
//If the error message is null, we will probably not show anything
}
+ @Override
+ public void showConnectionErrorPopup() {
+ DialogUtil.showAlertDialog(getActivity(),
+ getString(R.string.upload_connection_error_alert_title),
+ getString(R.string.upload_connection_error_alert_detail), getString(R.string.ok),
+ () -> {}, true);
+ }
+
@Override public void showMapWithImageCoordinates(boolean shouldShow) {
ibMap.setVisibility(shouldShow ? View.VISIBLE : View.GONE);
}
diff --git a/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailsContract.java b/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailsContract.java
index 3c3ba49ac..bd0a2fa12 100644
--- a/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailsContract.java
+++ b/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailsContract.java
@@ -32,6 +32,8 @@ public interface UploadMediaDetailsContract {
void showBadImagePopup(Integer errorCode, UploadItem uploadItem);
+ void showConnectionErrorPopup();
+
void showMapWithImageCoordinates(boolean shouldShow);
void showExternalMap(UploadItem uploadItem);
diff --git a/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaPresenter.java b/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaPresenter.java
index 4d9b4b417..e0e410171 100644
--- a/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaPresenter.java
+++ b/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaPresenter.java
@@ -23,6 +23,7 @@ import io.reactivex.Scheduler;
import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.disposables.Disposable;
import java.lang.reflect.Proxy;
+import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
@@ -138,8 +139,12 @@ public class UploadMediaPresenter implements UserActionListener, SimilarImageInt
},
throwable -> {
view.showProgress(false);
- view.showMessage("" + throwable.getLocalizedMessage(),
- R.color.color_error);
+ if (throwable instanceof UnknownHostException) {
+ view.showConnectionErrorPopup();
+ } else {
+ view.showMessage("" + throwable.getLocalizedMessage(),
+ R.color.color_error);
+ }
Timber.e(throwable, "Error occurred while handling image");
})
);
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 337c4deba..c94d3dc15 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -227,6 +227,9 @@
Please only upload pictures that you have taken by yourself. Don\'t upload pictures that you have found on other people\'s Facebook accounts.
Do you still want to upload this picture?
+ Connection Error
+ The upload process requires active internet
+ access. Please check your network connection.
Problems found in image
Please only upload pictures that you have taken by yourself. Don\'t upload pictures that you have downloaded from the Internet.