Browse Source

Better handling of parsing enum

Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
tobiasKaminsky 5 years ago
parent
commit
9556a69204

+ 16 - 1
src/main/java/com/owncloud/android/datamodel/Template.java

@@ -22,6 +22,8 @@ package com.owncloud.android.datamodel;
 
 import org.parceler.Parcel;
 
+import java.util.Locale;
+
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
@@ -38,7 +40,20 @@ import lombok.Setter;
 @NoArgsConstructor
 public class Template {
     public enum Type {
-        DOCUMENT, SPREADSHEET, PRESENTATION
+        DOCUMENT, SPREADSHEET, PRESENTATION, UNKNOWN
+    }
+
+    public static Type parse(String type) {
+        switch (type.toLowerCase(Locale.US)) {
+            case "document":
+                return Type.DOCUMENT;
+            case "spreadsheet":
+                return Type.SPREADSHEET;
+            case "presentation":
+                return Type.PRESENTATION;
+            default:
+                return Type.UNKNOWN;
+        }
     }
 
     public int id;

+ 1 - 1
src/main/java/com/owncloud/android/files/FetchTemplateOperation.java

@@ -81,7 +81,7 @@ public class FetchTemplateOperation extends RemoteOperation {
                     templateArray.add(new Template(templateObject.getInt("id"),
                                                    templateObject.getString("name"),
                                                    templateObject.optString("preview"),
-                                                   Template.Type.valueOf(templateObject.getString("type")
+                                                   Template.parse(templateObject.getString("type")
                                                                              .toUpperCase(Locale.ROOT)),
                                                    templateObject.getString("extension")));
                 }