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