diff options
Diffstat (limited to 'app/src/main')
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/api/JsonToEntityParser.java | 15 | ||||
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/exceptions/ServerAppVersionNotParsableException.java | 14 |
2 files changed, 22 insertions, 7 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/api/JsonToEntityParser.java b/app/src/main/java/it/niedermann/nextcloud/deck/api/JsonToEntityParser.java index 9a8bfc05a..0710eba54 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/api/JsonToEntityParser.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/api/JsonToEntityParser.java @@ -341,22 +341,25 @@ public class JsonToEntityParser { if (deck.has("version")) { version = deck.get("version").getAsString(); if (version == null || version.trim().length() < 1) { - throw new ServerAppVersionNotParsableException("capabilities endpoint returned an invalid version string: \"" + version + "\""); + throw new ServerAppVersionNotParsableException(ServerAppVersionNotParsableException.Hint.CAPABILITIES_VERSION_NOT_PARSABLE, + "capabilities endpoint returned an invalid version string: \"" + version + "\""); } } else { - throw new ServerAppVersionNotParsableException("deck version node is missing in capabilities endpoint! deck-node: "+deck.getAsString()); + throw new ServerAppVersionNotParsableException(ServerAppVersionNotParsableException.Hint.CAPABILITIES_VERSION_NOT_PARSABLE, + "deck version node is missing in capabilities endpoint! deck-node: "+deck.getAsString()); } } else { - throw new ServerAppVersionNotParsableException("deck node is missing in capabilities endpoint!"); + throw new ServerAppVersionNotParsableException(ServerAppVersionNotParsableException.Hint.CAPABILITIES_NOT_PARSABLE, + "deck node is missing in capabilities endpoint!"); } if (caps.has("theming")) { JsonObject theming = caps.getAsJsonObject("theming"); capabilities.setColor(theming.get("color").getAsString()); capabilities.setTextColor(theming.get("color-text").getAsString()); } - } - if (version == null || version.trim().length() < 1) { - throw new ServerAppVersionNotParsableException("capabilities endpoint returned no version string at all!"); + } else { + throw new ServerAppVersionNotParsableException(ServerAppVersionNotParsableException.Hint.CAPABILITIES_NOT_PARSABLE, + "capabilities node is missing in capabilities endpoint!"); } capabilities.setDeckVersion(Version.of(version)); } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/exceptions/ServerAppVersionNotParsableException.java b/app/src/main/java/it/niedermann/nextcloud/deck/exceptions/ServerAppVersionNotParsableException.java index 25665bebb..e2521195b 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/exceptions/ServerAppVersionNotParsableException.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/exceptions/ServerAppVersionNotParsableException.java @@ -2,7 +2,19 @@ package it.niedermann.nextcloud.deck.exceptions; public class ServerAppVersionNotParsableException extends IllegalArgumentException { - public ServerAppVersionNotParsableException(String message) { + public enum Hint { + CAPABILITIES_NOT_PARSABLE, + CAPABILITIES_VERSION_NOT_PARSABLE, + } + + private Hint hint; + + public ServerAppVersionNotParsableException(Hint hint, String message) { super(message); + this.hint = hint; + } + + public Hint getHint() { + return hint; } } |