diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml
index 25504f08c..d81848682 100644
--- a/Habitica/res/values/strings.xml
+++ b/Habitica/res/values/strings.xml
@@ -113,6 +113,7 @@
Connection Error
You are not connected to the internet.
+ Some problem in our API.
Your internet connection just got back!
Add checklist
diff --git a/Habitica/src/com/habitrpg/android/habitica/APIHelper.java b/Habitica/src/com/habitrpg/android/habitica/APIHelper.java
index 8fe472d5e..505140631 100644
--- a/Habitica/src/com/habitrpg/android/habitica/APIHelper.java
+++ b/Habitica/src/com/habitrpg/android/habitica/APIHelper.java
@@ -181,29 +181,39 @@ public class APIHelper implements ErrorHandler, Profiler {
@Override
public Throwable handleError(RetrofitError cause) {
+ final Activity activity = (Activity) this.mContext;
- //It also handles timeouts
if (cause.getKind().equals(RetrofitError.Kind.NETWORK)) {
- final Activity activity = (Activity) this.mContext;
- activity.runOnUiThread(new Runnable() {
- public void run() {
- new AlertDialog.Builder(activity)
- .setTitle(R.string.network_error_title)
- .setMessage(R.string.network_error_no_network_body)
- .setNeutralButton(android.R.string.ok, new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int which) {
- }
- })
- .setIcon(android.R.drawable.ic_dialog_alert)
- .show();
- }
- });
-
- }
+ //It also handles timeouts
+ showConnectionProblemDialog(activity, R.string.network_error_no_network_body);
+ }else{
+ /*
+ * CONVERSION An exception was thrown while (de)serializing a body.
+ * HTTP A non-200 HTTP status code was received from the server e.g. 502, 503, etc...
+ * UNEXPECTED An internal error occurred while attempting to execute a request.
+ */
+ showConnectionProblemDialog(activity,R.string.internal_error_api);
+ }
return cause;
}
+ private void showConnectionProblemDialog(final Activity activity, final int resourceMessageString){
+ activity.runOnUiThread(new Runnable() {
+ public void run() {
+ new AlertDialog.Builder(activity)
+ .setTitle(R.string.network_error_title)
+ .setMessage(resourceMessageString)
+ .setNeutralButton(android.R.string.ok, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int which) {
+ }
+ })
+ .setIcon(android.R.drawable.ic_dialog_alert)
+ .show();
+ }
+ });
+ }
+
@Override
public Object beforeCall() {
return null;
diff --git a/Habitica/src/com/habitrpg/android/habitica/receivers/NetworkChangeReceiver.java b/Habitica/src/com/habitrpg/android/habitica/receivers/NetworkChangeReceiver.java
index 003df1e55..79109d2ee 100644
--- a/Habitica/src/com/habitrpg/android/habitica/receivers/NetworkChangeReceiver.java
+++ b/Habitica/src/com/habitrpg/android/habitica/receivers/NetworkChangeReceiver.java
@@ -16,13 +16,11 @@ import com.habitrpg.android.habitica.R;
public class NetworkChangeReceiver extends BroadcastReceiver {
@Override
- public void onReceive(Context context, Intent intent) {
- if(hasInternetConnection(context))
- {
+ public void onReceive(final Context context, Intent intent) {
+ if (hasInternetConnection(context)) {
Toast.makeText(context, R.string.network_up, Toast.LENGTH_LONG).show();
- }else{
+ } else {
Toast.makeText(context, R.string.network_error_no_network_body, Toast.LENGTH_LONG).show();
-
}
}