From fdd6a279984f04f99df2ffdbb0daa06ea5e12957 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Wed, 9 Dec 2015 12:46:54 +0100 Subject: [PATCH] Fix checklist serialization on some devices. --- .../habitrpg/android/habitica/APIHelper.java | 3 ++ .../lib/utils/ChecklistItemSerializer.java | 36 +++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 Habitica/src/com/magicmicky/habitrpgwrapper/lib/utils/ChecklistItemSerializer.java diff --git a/Habitica/src/com/habitrpg/android/habitica/APIHelper.java b/Habitica/src/com/habitrpg/android/habitica/APIHelper.java index fa11aa21d..2a598c953 100644 --- a/Habitica/src/com/habitrpg/android/habitica/APIHelper.java +++ b/Habitica/src/com/habitrpg/android/habitica/APIHelper.java @@ -30,8 +30,10 @@ import com.magicmicky.habitrpgwrapper.lib.models.UserAuth; import com.magicmicky.habitrpgwrapper.lib.models.UserAuthResponse; import com.magicmicky.habitrpgwrapper.lib.models.UserAuthSocial; import com.magicmicky.habitrpgwrapper.lib.models.UserAuthSocialTokens; +import com.magicmicky.habitrpgwrapper.lib.models.tasks.ChecklistItem; import com.magicmicky.habitrpgwrapper.lib.models.tasks.Task; import com.magicmicky.habitrpgwrapper.lib.models.tasks.TaskTag; +import com.magicmicky.habitrpgwrapper.lib.utils.ChecklistItemSerializer; import com.magicmicky.habitrpgwrapper.lib.utils.SkillDeserializer; import com.raizlabs.android.dbflow.structure.ModelAdapter; @@ -94,6 +96,7 @@ public class APIHelper implements ErrorHandler, Profiler { .registerTypeAdapter(Boolean.class, booleanAsIntAdapter) .registerTypeAdapter(boolean.class, booleanAsIntAdapter) .registerTypeAdapter(SkillList.class, new SkillDeserializer()) + .registerTypeAdapter(ChecklistItem.class, new ChecklistItemSerializer()) .setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'") .create(); diff --git a/Habitica/src/com/magicmicky/habitrpgwrapper/lib/utils/ChecklistItemSerializer.java b/Habitica/src/com/magicmicky/habitrpgwrapper/lib/utils/ChecklistItemSerializer.java new file mode 100644 index 000000000..dc5dfeae2 --- /dev/null +++ b/Habitica/src/com/magicmicky/habitrpgwrapper/lib/utils/ChecklistItemSerializer.java @@ -0,0 +1,36 @@ +package com.magicmicky.habitrpgwrapper.lib.utils; + +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.magicmicky.habitrpgwrapper.lib.models.Skill; +import com.magicmicky.habitrpgwrapper.lib.models.SkillList; +import com.magicmicky.habitrpgwrapper.lib.models.tasks.ChecklistItem; +import com.raizlabs.android.dbflow.runtime.TransactionManager; +import com.raizlabs.android.dbflow.runtime.transaction.process.ProcessModelInfo; +import com.raizlabs.android.dbflow.runtime.transaction.process.SaveModelTransaction; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * Created by viirus on 25/11/15. + */ +public class ChecklistItemSerializer + implements JsonSerializer { + + @Override + public JsonElement serialize(ChecklistItem src, Type typeOfSrc, JsonSerializationContext context) { + JsonObject object = new JsonObject(); + object.addProperty("text", src.getText()); + object.addProperty("id", src.getId()); + object.addProperty("completed", src.getCompleted()); + return object; + } +} \ No newline at end of file