From 495cb04ed55ed581f44866caf45ff71b1ef53c36 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Thu, 2 Jun 2016 11:10:02 +0200 Subject: [PATCH] better error reporting for network calls --- .../com/habitrpg/android/habitica/APIHelper.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/APIHelper.java b/Habitica/src/main/java/com/habitrpg/android/habitica/APIHelper.java index a8e53a87e..938f61c7d 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/APIHelper.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/APIHelper.java @@ -23,10 +23,15 @@ import android.support.v7.app.AlertDialog; import java.io.IOException; import java.lang.annotation.Annotation; import java.net.ConnectException; +import java.net.SocketTimeoutException; +import java.net.UnknownHostException; import java.util.ArrayList; import java.util.List; import java.util.Map; +import javax.net.ssl.SSLException; +import javax.net.ssl.SSLPeerUnverifiedException; + import okhttp3.Interceptor; import okhttp3.MediaType; import okhttp3.OkHttpClient; @@ -159,9 +164,12 @@ public class APIHelper implements Action1 { @Override public void call(Throwable throwable) { - if (throwable.getClass().equals(ConnectException.class)) { + final Class throwableClass = throwable.getClass(); + if (throwableClass.equals(ConnectException.class) || throwableClass.isAssignableFrom(SSLException.class)) { this.showConnectionProblemDialog(R.string.internal_error_api); - } else if (throwable.getClass().equals(HttpException.class)) { + } else if (throwableClass.equals(SocketTimeoutException.class) || throwableClass.equals(UnknownHostException.class)) { + this.showConnectionProblemDialog(R.string.network_error_no_network_body); + } else if (throwableClass.equals(HttpException.class)) { HttpException error = (HttpException)throwable; retrofit2.Response response = error.response(); ErrorResponse res = null;