mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-07-17 19:42:04 +00:00
fix for creating tasks with large checkllists
This commit is contained in:
parent
ec415a8557
commit
dd5c750c33
8 changed files with 29 additions and 41 deletions
|
|
@ -54,7 +54,6 @@ import com.habitrpg.android.habitica.models.shops.Shop;
|
|||
import com.habitrpg.android.habitica.models.social.Challenge;
|
||||
import com.habitrpg.android.habitica.models.social.ChatMessage;
|
||||
import com.habitrpg.android.habitica.models.social.Group;
|
||||
import com.habitrpg.android.habitica.models.tasks.ChecklistItem;
|
||||
import com.habitrpg.android.habitica.models.tasks.RemindersItem;
|
||||
import com.habitrpg.android.habitica.models.tasks.Task;
|
||||
import com.habitrpg.android.habitica.models.tasks.TaskList;
|
||||
|
|
@ -67,7 +66,6 @@ import com.habitrpg.android.habitica.utils.ChallengeDeserializer;
|
|||
import com.habitrpg.android.habitica.utils.ChallengeListDeserializer;
|
||||
import com.habitrpg.android.habitica.utils.ChatMessageDeserializer;
|
||||
import com.habitrpg.android.habitica.utils.ChatMessageListDeserializer;
|
||||
import com.habitrpg.android.habitica.utils.ChecklistItemSerializer;
|
||||
import com.habitrpg.android.habitica.utils.ContentDeserializer;
|
||||
import com.habitrpg.android.habitica.utils.CustomizationDeserializer;
|
||||
import com.habitrpg.android.habitica.utils.DateDeserializer;
|
||||
|
|
@ -233,7 +231,6 @@ public class ApiClientImpl implements Action1<Throwable>, ApiClient {
|
|||
.registerTypeAdapter(Boolean.class, new BooleanAsIntAdapter())
|
||||
.registerTypeAdapter(boolean.class, new BooleanAsIntAdapter())
|
||||
.registerTypeAdapter(skillListType, new SkillDeserializer())
|
||||
.registerTypeAdapter(ChecklistItem.class, new ChecklistItemSerializer())
|
||||
.registerTypeAdapter(RemindersItem.class, new RemindersItemSerializer())
|
||||
.registerTypeAdapter(TaskList.class, new TaskListDeserializer())
|
||||
.registerTypeAdapter(Purchases.class, new PurchasedDeserializer())
|
||||
|
|
|
|||
|
|
@ -146,6 +146,10 @@ public class TaskRepositoryImpl extends BaseRepositoryImpl<TaskLocalRepository>
|
|||
RealmList<Tag> tags = new RealmList<>(localRepository.getUnmanagedCopy(task.getTags()).toArray(new Tag[0]));
|
||||
task.setTags(tags);
|
||||
}
|
||||
if (task.getChecklist() != null && task.getChecklist().size() > 0) {
|
||||
RealmList<ChecklistItem> checklist = new RealmList<>(localRepository.getUnmanagedCopy(task.getChecklist()).toArray(new ChecklistItem[0]));
|
||||
task.setChecklist(checklist);
|
||||
}
|
||||
return apiClient.createTask(task)
|
||||
.map(task1 -> {
|
||||
task1.dateCreated = new Date();
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ public class SoundManager {
|
|||
}
|
||||
|
||||
public void loadAndPlayAudio(String type) {
|
||||
if (soundTheme.equals("off")) {
|
||||
if ("off".equals(soundTheme) || soundTheme == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -131,7 +131,7 @@ public class TaskFilterHelper {
|
|||
}
|
||||
break;
|
||||
case Task.FILTER_GRAY:
|
||||
query = query.equalTo("completed", true);
|
||||
query = query.equalTo("completed", true).or().equalTo("isDue", false);
|
||||
break;
|
||||
case Task.FILTER_WEAK:
|
||||
query = query.lessThan("value", 0.0d);
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ import io.realm.annotations.PrimaryKey;
|
|||
*/
|
||||
public class ChecklistItem extends RealmObject {
|
||||
|
||||
Task task;
|
||||
@PrimaryKey
|
||||
private String id;
|
||||
private String text;
|
||||
|
|
@ -77,14 +76,6 @@ public class ChecklistItem extends RealmObject {
|
|||
this.position = position;
|
||||
}
|
||||
|
||||
public Task getTask() {
|
||||
return task;
|
||||
}
|
||||
|
||||
public void setTask(Task task) {
|
||||
this.task = task;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (obj.getClass().equals(ChecklistItem.class) && this.id != null) {
|
||||
|
|
|
|||
|
|
@ -133,6 +133,9 @@ public class AvatarOverviewFragment extends BaseMainFragment implements AdapterV
|
|||
}
|
||||
|
||||
private void setSize(String size) {
|
||||
if (avatarSizeSpinner == null) {
|
||||
return;
|
||||
}
|
||||
if (size.equals("slim")) {
|
||||
avatarSizeSpinner.setSelection(0, false);
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -1,25 +0,0 @@
|
|||
package com.habitrpg.android.habitica.utils;
|
||||
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonSerializationContext;
|
||||
import com.google.gson.JsonSerializer;
|
||||
import com.habitrpg.android.habitica.models.tasks.ChecklistItem;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
|
||||
/**
|
||||
* Created by viirus on 25/11/15.
|
||||
*/
|
||||
public class ChecklistItemSerializer
|
||||
implements JsonSerializer<ChecklistItem> {
|
||||
|
||||
@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;
|
||||
}
|
||||
}
|
||||
|
|
@ -6,9 +6,11 @@ import com.google.gson.JsonObject;
|
|||
import com.google.gson.JsonSerializationContext;
|
||||
import com.google.gson.JsonSerializer;
|
||||
import com.habitrpg.android.habitica.models.Tag;
|
||||
import com.habitrpg.android.habitica.models.tasks.ChecklistItem;
|
||||
import com.habitrpg.android.habitica.models.tasks.Task;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.List;
|
||||
|
||||
public class TaskSerializer implements JsonSerializer<Task> {
|
||||
@Override
|
||||
|
|
@ -39,7 +41,9 @@ public class TaskSerializer implements JsonSerializer<Task> {
|
|||
obj.add("repeat", context.serialize(task.getRepeat()));
|
||||
obj.add("startDate", context.serialize(task.getStartDate()));
|
||||
obj.addProperty("streak", task.getStreak());
|
||||
obj.add("checklist", context.serialize(task.getChecklist()));
|
||||
if (task.getChecklist() != null) {
|
||||
obj.add("checklist", serializeChecklist(task.getChecklist(), context));
|
||||
}
|
||||
obj.add("reminders", context.serialize(task.getReminders()));
|
||||
obj.add("daysOfMonth", context.serialize(task.getDaysOfMonth()));
|
||||
obj.add("weeksOfMonth", context.serialize(task.getWeeksOfMonth()));
|
||||
|
|
@ -51,7 +55,9 @@ public class TaskSerializer implements JsonSerializer<Task> {
|
|||
} else {
|
||||
obj.add("date", context.serialize(task.getDueDate()));
|
||||
}
|
||||
obj.add("checklist", context.serialize(task.getChecklist()));
|
||||
if (task.getChecklist() != null) {
|
||||
obj.add("checklist", serializeChecklist(task.getChecklist(), context));
|
||||
}
|
||||
obj.add("reminders", context.serialize(task.getReminders()));
|
||||
obj.addProperty("completed", task.getCompleted());
|
||||
break;
|
||||
|
|
@ -59,4 +65,16 @@ public class TaskSerializer implements JsonSerializer<Task> {
|
|||
|
||||
return obj;
|
||||
}
|
||||
|
||||
private JsonArray serializeChecklist(List<ChecklistItem> checklist, JsonSerializationContext context) {
|
||||
JsonArray jsonArray = new JsonArray();
|
||||
for (ChecklistItem item : checklist) {
|
||||
JsonObject object = new JsonObject();
|
||||
object.addProperty("text", item.getText());
|
||||
object.addProperty("id", item.getId());
|
||||
object.addProperty("completed", item.getCompleted());
|
||||
jsonArray.add(object);
|
||||
}
|
||||
return jsonArray;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue