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.