parent
9b461d8bec
commit
1e6df9c56c
@ -0,0 +1,16 @@ |
|||||||
|
package com.keylesspalace.tusky; |
||||||
|
|
||||||
|
/** |
||||||
|
* This is just a wrapper class for a String. |
||||||
|
* |
||||||
|
* It was designed to get around the limitation of a Json deserializer which only allows custom |
||||||
|
* deserializing based on types, when special handling for a specific field was what was actually |
||||||
|
* desired (in this case, display names). So, it was most expedient to just make up a type. |
||||||
|
*/ |
||||||
|
public class StringWithEmoji { |
||||||
|
public String value; |
||||||
|
|
||||||
|
public StringWithEmoji(String value) { |
||||||
|
this.value = value; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,23 @@ |
|||||||
|
package com.keylesspalace.tusky; |
||||||
|
|
||||||
|
import com.emojione.Emojione; |
||||||
|
import com.google.gson.JsonDeserializationContext; |
||||||
|
import com.google.gson.JsonDeserializer; |
||||||
|
import com.google.gson.JsonElement; |
||||||
|
import com.google.gson.JsonParseException; |
||||||
|
|
||||||
|
import java.lang.reflect.Type; |
||||||
|
|
||||||
|
/** This is a type-based workaround to allow for shortcode conversion when loading display names. */ |
||||||
|
class StringWithEmojiTypeAdapter implements JsonDeserializer<StringWithEmoji> { |
||||||
|
@Override |
||||||
|
public StringWithEmoji deserialize(JsonElement json, Type typeOfT, |
||||||
|
JsonDeserializationContext context) throws JsonParseException { |
||||||
|
String value = json.getAsString(); |
||||||
|
if (value != null) { |
||||||
|
return new StringWithEmoji(Emojione.shortnameToUnicode(value, false)); |
||||||
|
} else { |
||||||
|
return new StringWithEmoji(""); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue