From da87d14ae9049a0eb829aff4bf103cf42eca5195 Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Wed, 19 Apr 2017 11:13:10 +0100 Subject: [PATCH] Journalmanager: always use the api error message when available. --- .../com/etesync/syncadapter/journalmanager/BaseManager.java | 6 ++++-- .../com/etesync/syncadapter/journalmanager/Exceptions.java | 5 +++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/etesync/syncadapter/journalmanager/BaseManager.java b/app/src/main/java/com/etesync/syncadapter/journalmanager/BaseManager.java index 5b5f8971..d257b546 100644 --- a/app/src/main/java/com/etesync/syncadapter/journalmanager/BaseManager.java +++ b/app/src/main/java/com/etesync/syncadapter/journalmanager/BaseManager.java @@ -35,20 +35,22 @@ abstract class BaseManager { } if (!response.isSuccessful()) { + ApiError apiError = GsonHelper.gson.fromJson(response.body().charStream(), ApiError.class); + switch (response.code()) { case HttpURLConnection.HTTP_UNAVAILABLE: throw new Exceptions.ServiceUnavailableException(response, "Service unavailable"); case HttpURLConnection.HTTP_UNAUTHORIZED: throw new Exceptions.UnauthorizedException(response, "Unauthorized auth token"); case HttpURLConnection.HTTP_FORBIDDEN: - ApiError apiError = GsonHelper.gson.fromJson(response.body().charStream(), ApiError.class); if (apiError.code.equals("service_inactive")) { throw new Exceptions.UserInactiveException(response, apiError.detail); } default: // Fall through. We want to always throw when unsuccessful. } - throw new Exceptions.HttpException(response); + + throw new Exceptions.HttpException(response, apiError.detail); } return response; diff --git a/app/src/main/java/com/etesync/syncadapter/journalmanager/Exceptions.java b/app/src/main/java/com/etesync/syncadapter/journalmanager/Exceptions.java index 1e2384df..dec806c9 100644 --- a/app/src/main/java/com/etesync/syncadapter/journalmanager/Exceptions.java +++ b/app/src/main/java/com/etesync/syncadapter/journalmanager/Exceptions.java @@ -143,6 +143,11 @@ public class Exceptions { this.response = formatted.toString(); } + @Override + public String getMessage() { + return message; + } + private static void appendByte(StringBuilder formatted, byte b) { if (b == '\r') formatted.append("[CR]");