fixed crash when media type is unknown
This commit is contained in:
parent
bdca1d1c94
commit
d5b4b0fe54
|
@ -17,6 +17,10 @@ package com.keylesspalace.tusky.entity;
|
|||
|
||||
import android.text.Spanned;
|
||||
|
||||
import com.google.gson.JsonDeserializationContext;
|
||||
import com.google.gson.JsonDeserializer;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonParseException;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
|
||||
import java.util.Date;
|
||||
|
@ -115,6 +119,7 @@ public class Status {
|
|||
}
|
||||
|
||||
public static class MediaAttachment {
|
||||
@com.google.gson.annotations.JsonAdapter(MediaTypeDeserializer.class)
|
||||
public enum Type {
|
||||
@SerializedName("image")
|
||||
IMAGE,
|
||||
|
@ -122,7 +127,7 @@ public class Status {
|
|||
GIFV,
|
||||
@SerializedName("video")
|
||||
VIDEO,
|
||||
UNKNOWN,
|
||||
UNKNOWN
|
||||
}
|
||||
|
||||
public String url;
|
||||
|
@ -137,6 +142,23 @@ public class Status {
|
|||
public String remoteUrl;
|
||||
|
||||
public Type type;
|
||||
|
||||
static class MediaTypeDeserializer implements JsonDeserializer<Type> {
|
||||
@Override
|
||||
public Type deserialize(JsonElement json, java.lang.reflect.Type classOfT, JsonDeserializationContext context)
|
||||
throws JsonParseException {
|
||||
switch(json.toString()) {
|
||||
case "image":
|
||||
return Type.IMAGE;
|
||||
case "gifv":
|
||||
return Type.GIFV;
|
||||
case "video":
|
||||
return Type.VIDEO;
|
||||
default:
|
||||
return Type.UNKNOWN;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class Mention {
|
||||
|
@ -150,4 +172,6 @@ public class Status {
|
|||
@SerializedName("username")
|
||||
public String localUsername;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue