From 8ecd03ee8bc61077a1c6ab6a25cc4bdc6a6e7d5e Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Thu, 19 Dec 2019 13:12:33 -0600 Subject: [PATCH] Load a subset of caldav task info --- .../astrid/adapter/CaldavTaskAdapter.java | 3 +- .../main/java/org/tasks/data/CaldavDao.java | 8 ++ .../java/org/tasks/data/SubsetCaldav.java | 82 +++++++++++++++++++ .../java/org/tasks/data/TaskContainer.java | 4 +- 4 files changed, 94 insertions(+), 3 deletions(-) create mode 100644 app/src/main/java/org/tasks/data/SubsetCaldav.java diff --git a/app/src/main/java/com/todoroo/astrid/adapter/CaldavTaskAdapter.java b/app/src/main/java/com/todoroo/astrid/adapter/CaldavTaskAdapter.java index bd682ce3e..5b52c6965 100644 --- a/app/src/main/java/com/todoroo/astrid/adapter/CaldavTaskAdapter.java +++ b/app/src/main/java/com/todoroo/astrid/adapter/CaldavTaskAdapter.java @@ -6,6 +6,7 @@ import static com.todoroo.andlib.utility.DateUtilities.now; import androidx.annotation.RequiresApi; import com.todoroo.astrid.dao.TaskDao; import com.todoroo.astrid.data.Task; +import org.tasks.data.SubsetCaldav; import org.tasks.data.CaldavDao; import org.tasks.data.CaldavTask; import org.tasks.data.TaskContainer; @@ -84,7 +85,7 @@ public final class CaldavTaskAdapter extends TaskAdapter { } private void changeParent(TaskContainer task, long newParent) { - CaldavTask caldavTask = task.getCaldavTask(); + SubsetCaldav caldavTask = task.getCaldavTask(); if (newParent == 0) { caldavTask.setRemoteParent(""); diff --git a/app/src/main/java/org/tasks/data/CaldavDao.java b/app/src/main/java/org/tasks/data/CaldavDao.java index cb12285af..32975dd3d 100644 --- a/app/src/main/java/org/tasks/data/CaldavDao.java +++ b/app/src/main/java/org/tasks/data/CaldavDao.java @@ -57,6 +57,14 @@ public abstract class CaldavDao { @Update public abstract void update(CaldavTask caldavTask); + public void update(SubsetCaldav caldavTask) { + update(caldavTask.getId(), caldavTask.getParent(), caldavTask.getRemoteParent()); + } + + @Query( + "UPDATE caldav_tasks SET cd_parent = :parent, cd_remote_parent = :remoteParent WHERE cd_id = :id") + abstract void update(long id, long parent, String remoteParent); + @Update public abstract void update(Iterable tasks); diff --git a/app/src/main/java/org/tasks/data/SubsetCaldav.java b/app/src/main/java/org/tasks/data/SubsetCaldav.java new file mode 100644 index 000000000..cd6fe35cf --- /dev/null +++ b/app/src/main/java/org/tasks/data/SubsetCaldav.java @@ -0,0 +1,82 @@ +package org.tasks.data; + +public class SubsetCaldav { + public long cd_id; + public String cd_calendar; + public long cd_parent; + public String cd_remote_parent; + + public long getId() { + return cd_id; + } + + public String getCalendar() { + return cd_calendar; + } + + public long getParent() { + return cd_parent; + } + + public void setParent(long parent) { + cd_parent = parent; + } + + public String getRemoteParent() { + return cd_remote_parent; + } + + public void setRemoteParent(String remoteId) { + cd_remote_parent = remoteId; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (!(o instanceof SubsetCaldav)) { + return false; + } + + SubsetCaldav that = (SubsetCaldav) o; + + if (cd_id != that.cd_id) { + return false; + } + if (cd_parent != that.cd_parent) { + return false; + } + if (cd_calendar != null ? !cd_calendar.equals(that.cd_calendar) : that.cd_calendar != null) { + return false; + } + return cd_remote_parent != null + ? cd_remote_parent.equals(that.cd_remote_parent) + : that.cd_remote_parent == null; + } + + @Override + public int hashCode() { + int result = (int) (cd_id ^ (cd_id >>> 32)); + result = 31 * result + (cd_calendar != null ? cd_calendar.hashCode() : 0); + result = 31 * result + (int) (cd_parent ^ (cd_parent >>> 32)); + result = 31 * result + (cd_remote_parent != null ? cd_remote_parent.hashCode() : 0); + return result; + } + + @Override + public String toString() { + return "SubsetCaldav{" + + "cd_id=" + + cd_id + + ", cd_calendar='" + + cd_calendar + + '\'' + + ", cd_parent=" + + cd_parent + + ", cd_remote_parent='" + + cd_remote_parent + + '\'' + + '}'; + } +} diff --git a/app/src/main/java/org/tasks/data/TaskContainer.java b/app/src/main/java/org/tasks/data/TaskContainer.java index f780d8353..0ddae7a80 100644 --- a/app/src/main/java/org/tasks/data/TaskContainer.java +++ b/app/src/main/java/org/tasks/data/TaskContainer.java @@ -6,7 +6,7 @@ import com.todoroo.astrid.data.Task; public class TaskContainer { @Embedded public Task task; @Embedded public GoogleTask googletask; - @Embedded public CaldavTask caldavTask; + @Embedded public SubsetCaldav caldavTask; @Embedded public Location location; public String tags; public int children; @@ -220,7 +220,7 @@ public class TaskContainer { return googletask; } - public CaldavTask getCaldavTask() { + public SubsetCaldav getCaldavTask() { return caldavTask; }