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.