mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-07-14 02:01:56 +00:00
Sort tasks according to website. Fixes #67
This commit is contained in:
parent
b23f175cb1
commit
e32615fb82
6 changed files with 38 additions and 2 deletions
1
Habitica/assets/migrations/Habitica/4.sql
Normal file
1
Habitica/assets/migrations/Habitica/4.sql
Normal file
|
|
@ -0,0 +1 @@
|
|||
ALTER TABLE Task ADD COLUMN 'position' INTEGER DEFAULT 0;
|
||||
|
|
@ -35,6 +35,7 @@ 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.magicmicky.habitrpgwrapper.lib.utils.TaskListDeserializer;
|
||||
import com.raizlabs.android.dbflow.structure.ModelAdapter;
|
||||
|
||||
import java.io.IOException;
|
||||
|
|
@ -78,6 +79,8 @@ public class APIHelper implements ErrorHandler, Profiler {
|
|||
}.getType();
|
||||
|
||||
|
||||
Type taskClassListType = new TypeToken<List<Task>>() {}.getType();
|
||||
|
||||
//Exclusion stratety needed for DBFlow https://github.com/Raizlabs/DBFlow/issues/121
|
||||
Gson gson = new GsonBuilder()
|
||||
.setExclusionStrategies(new CheckListItemExcludeStrategy())
|
||||
|
|
@ -97,6 +100,7 @@ public class APIHelper implements ErrorHandler, Profiler {
|
|||
.registerTypeAdapter(boolean.class, booleanAsIntAdapter)
|
||||
.registerTypeAdapter(SkillList.class, new SkillDeserializer())
|
||||
.registerTypeAdapter(ChecklistItem.class, new ChecklistItemSerializer())
|
||||
.registerTypeAdapter(taskClassListType, new TaskListDeserializer())
|
||||
.setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
|
||||
.create();
|
||||
|
||||
|
|
|
|||
|
|
@ -10,5 +10,5 @@ public class HabitDatabase {
|
|||
|
||||
public static final String NAME = "Habitica";
|
||||
|
||||
public static final int VERSION = 3;
|
||||
public static final int VERSION = 4;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -644,7 +644,7 @@ public class HabitItemRecyclerViewAdapter<THabitItem extends Task>
|
|||
.begin(Condition.column("completed").eq(false))
|
||||
.or(Condition.column("type").eq("daily"))
|
||||
)
|
||||
.orderBy(OrderBy.columns("dateCreated").descending())
|
||||
.orderBy(OrderBy.columns("position", "dateCreated").descending())
|
||||
.async()
|
||||
.queryList(taskTransactionListener);
|
||||
|
||||
|
|
|
|||
|
|
@ -57,6 +57,9 @@ public class Task extends BaseModel {
|
|||
@Column
|
||||
public Date dateCreated;
|
||||
|
||||
@Column
|
||||
public int position;
|
||||
|
||||
//Habits
|
||||
@Column
|
||||
public Boolean up, down;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,28 @@
|
|||
package com.magicmicky.habitrpgwrapper.lib.utils;
|
||||
|
||||
import com.google.gson.JsonDeserializationContext;
|
||||
import com.google.gson.JsonDeserializer;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.tasks.Task;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by viirus on 09/12/15.
|
||||
*/
|
||||
public class TaskListDeserializer implements JsonDeserializer<List<Task>> {
|
||||
|
||||
public List<Task> deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext ctx) {
|
||||
List<Task> vals = new ArrayList<Task>();
|
||||
int position = 0;
|
||||
for (JsonElement e : json.getAsJsonArray()) {
|
||||
Task task = (Task) ctx.deserialize(e, Task.class);
|
||||
task.position = position;
|
||||
vals.add(task);
|
||||
position++;
|
||||
}
|
||||
return vals;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue