mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-05-20 12:49:02 +00:00
[#40]Add ExcludeChecklist annotation
This commit is contained in:
parent
9471124f76
commit
9e95d2bc67
4 changed files with 35 additions and 1 deletions
|
|
@ -19,6 +19,7 @@ import com.google.gson.stream.JsonWriter;
|
|||
import com.habitrpg.android.habitica.callbacks.HabitRPGUserCallback;
|
||||
import com.habitrpg.android.habitica.callbacks.TaskDeletionCallback;
|
||||
import com.habitrpg.android.habitica.callbacks.TaskScoringCallback;
|
||||
import com.habitrpg.android.habitica.database.CheckListItemExcludeStrategy;
|
||||
import com.magicmicky.habitrpgwrapper.lib.api.ApiService;
|
||||
import com.magicmicky.habitrpgwrapper.lib.api.Server;
|
||||
import com.magicmicky.habitrpgwrapper.lib.api.TypeAdapter.TagsAdapter;
|
||||
|
|
@ -28,10 +29,12 @@ 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.SkillDeserializer;
|
||||
import com.raizlabs.android.dbflow.structure.ModelAdapter;
|
||||
import com.raizlabs.android.dbflow.structure.container.ForeignKeyContainer;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.Type;
|
||||
|
|
@ -74,6 +77,7 @@ public class APIHelper implements ErrorHandler, Profiler {
|
|||
|
||||
//Exclusion stratety needed for DBFlow https://github.com/Raizlabs/DBFlow/issues/121
|
||||
Gson gson = new GsonBuilder()
|
||||
.setExclusionStrategies(new CheckListItemExcludeStrategy())
|
||||
.setExclusionStrategies(new ExclusionStrategy() {
|
||||
@Override
|
||||
public boolean shouldSkipField(FieldAttributes f) {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
package com.habitrpg.android.habitica.database;
|
||||
|
||||
import com.google.gson.ExclusionStrategy;
|
||||
import com.google.gson.FieldAttributes;
|
||||
|
||||
/**
|
||||
* Created by franzejr on 29/11/15.
|
||||
*/
|
||||
public class CheckListItemExcludeStrategy implements ExclusionStrategy {
|
||||
|
||||
@Override
|
||||
public boolean shouldSkipField(FieldAttributes f) {
|
||||
return f.getAnnotation(ExcludeCheckListItem.class) != null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldSkipClass(Class<?> clazz) {
|
||||
return clazz.getAnnotation(ExcludeCheckListItem.class) != null;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
package com.habitrpg.android.habitica.database;
|
||||
|
||||
/**
|
||||
* Created by franzejr on 29/11/15.
|
||||
*/
|
||||
public @interface ExcludeCheckListItem {
|
||||
|
||||
}
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
package com.magicmicky.habitrpgwrapper.lib.models.tasks;
|
||||
|
||||
import com.habitrpg.android.habitica.HabitDatabase;
|
||||
import com.habitrpg.android.habitica.database.ExcludeCheckListItem;
|
||||
import com.raizlabs.android.dbflow.annotation.Column;
|
||||
import com.raizlabs.android.dbflow.annotation.ForeignKey;
|
||||
import com.raizlabs.android.dbflow.annotation.ForeignKeyReference;
|
||||
|
|
@ -31,13 +32,14 @@ public class ChecklistItem extends BaseModel {
|
|||
columnType = String.class,
|
||||
foreignColumnName = "id")},
|
||||
saveForeignKeyModel = false)
|
||||
@ExcludeCheckListItem
|
||||
ForeignKeyContainer<Task> task;
|
||||
|
||||
public ChecklistItem() {
|
||||
this(null,null);
|
||||
}
|
||||
public ChecklistItem(String id, String text) {
|
||||
this(id,text,false);
|
||||
this(id, text, false);
|
||||
}
|
||||
public ChecklistItem(String id,String text, boolean completed) {
|
||||
this.setText(text);
|
||||
|
|
|
|||
Loading…
Reference in a new issue