diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/api/ConnectionException.java b/app/src/main/java/org/nuclearfog/twidda/backend/api/ConnectionException.java index 7f410a2f..46e820b2 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/api/ConnectionException.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/api/ConnectionException.java @@ -12,12 +12,7 @@ public abstract class ConnectionException extends Exception { /** * defines an error which is not listed here */ - public static final int ERROR_NOT_DEFINED = -1; - - /** - * indicates that an API rate limit is exceeded - */ - public static final int RATE_LIMIT_EX = 0; + public static final int ERROR_NOT_DEFINED = 0; /** * indicates that an user was not found by his ID or @name @@ -104,6 +99,16 @@ public abstract class ConnectionException extends Exception { */ public static final int INVALID_MEDIA = 17; + /** + * indicates that an API rate limit is exceeded + */ + public static final int RATE_LIMIT_EX = 18; + + /** + * service not available + */ + public static final int SERVICE_UNAVAILABLE = 19; + /** * */ diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/api/mastodon/MastodonException.java b/app/src/main/java/org/nuclearfog/twidda/backend/api/mastodon/MastodonException.java index bf6db927..da1b4628 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/api/mastodon/MastodonException.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/api/mastodon/MastodonException.java @@ -13,17 +13,46 @@ public class MastodonException extends ConnectionException { private static final long serialVersionUID = 3077198050626279691L; + private int errorCode = 0; + /** + * + */ public MastodonException(Exception e) { super(e); } - + /** + * @param response response containing error information + */ public MastodonException(Response response) { super(response.message()); + switch (response.code()) { + case 401: + errorCode = NOT_AUTHORIZED; + break; + + case 403: + errorCode = HTTP_FORBIDDEN; + break; + + case 404: + errorCode = RESOURCE_NOT_FOUND; + break; + + case 429: + errorCode = RATE_LIMIT_EX; + break; + + case 503: + errorCode = SERVICE_UNAVAILABLE; + break; + } } - + /** + * @param message error message + */ public MastodonException(String message) { super(message); } @@ -31,7 +60,7 @@ public class MastodonException extends ConnectionException { @Override public int getErrorCode() { - return 0; + return errorCode; } diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/utils/ErrorHandler.java b/app/src/main/java/org/nuclearfog/twidda/backend/utils/ErrorHandler.java index f71015aa..c5130e03 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/utils/ErrorHandler.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/utils/ErrorHandler.java @@ -52,6 +52,9 @@ public final class ErrorHandler { } return context.getString(R.string.error_rate_limit); + case ConnectionException.SERVICE_UNAVAILABLE: + return context.getString(R.string.error_service_unavailable); + case ConnectionException.USER_NOT_FOUND: return context.getString(R.string.error_user_not_found); diff --git a/app/src/main/java/org/nuclearfog/twidda/database/GlobalSettings.java b/app/src/main/java/org/nuclearfog/twidda/database/GlobalSettings.java index 74c27e37..47d6d537 100644 --- a/app/src/main/java/org/nuclearfog/twidda/database/GlobalSettings.java +++ b/app/src/main/java/org/nuclearfog/twidda/database/GlobalSettings.java @@ -542,6 +542,8 @@ public class GlobalSettings { * @return suffix string */ public String getImageSuffix() { + if (account.getApiType() == Account.API_MASTODON) + return ""; if (hqImages) return PROFILE_IMG_HIGH_RES; return PROFILE_IMG_LOW_RES; @@ -553,6 +555,8 @@ public class GlobalSettings { * @return suffix string */ public String getBannerSuffix() { + if (account.getApiType() == Account.API_MASTODON) + return ""; if (hqImages) return BANNER_IMG_MID_RES; return BANNER_IMG_LOW_RES; diff --git a/app/src/main/res/values-de-rDE/strings.xml b/app/src/main/res/values-de-rDE/strings.xml index bd9b7d61..57a9b593 100644 --- a/app/src/main/res/values-de-rDE/strings.xml +++ b/app/src/main/res/values-de-rDE/strings.xml @@ -242,4 +242,11 @@ Metriken zeige zusätzliche Tweet Informationen an Token einfügen + öffne Mastodon Loginseite + in Mastodon einloggen + Service zur Zeit nicht verfügbar! + Status + Url ungültig! + Bitte Schlüssel hinzufügen + %1$s ausgewählt \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f7bf8afc..ac16e1af 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -79,6 +79,7 @@ File format not supported! Empty user name! User not found! + Service not available! Invalid access! Please re-login! Status is too long! Duplicate Status! @@ -98,7 +99,7 @@ API does not support this operation! Error occurred while adding media! Error while preparing media files for upload! - token key missing! + please add token key invalid URL! @@ -216,7 +217,7 @@ Password Consumer key Consumer secret - mastodon.social + mastodon.social mute user? Profile of the list owner Lists