Load a subset of caldav task info

gtask_related_email
Alex Baker 6 years ago
parent 9c5efc36ab
commit 8ecd03ee8b

@ -6,6 +6,7 @@ import static com.todoroo.andlib.utility.DateUtilities.now;
import androidx.annotation.RequiresApi; import androidx.annotation.RequiresApi;
import com.todoroo.astrid.dao.TaskDao; import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import org.tasks.data.SubsetCaldav;
import org.tasks.data.CaldavDao; import org.tasks.data.CaldavDao;
import org.tasks.data.CaldavTask; import org.tasks.data.CaldavTask;
import org.tasks.data.TaskContainer; import org.tasks.data.TaskContainer;
@ -84,7 +85,7 @@ public final class CaldavTaskAdapter extends TaskAdapter {
} }
private void changeParent(TaskContainer task, long newParent) { private void changeParent(TaskContainer task, long newParent) {
CaldavTask caldavTask = task.getCaldavTask(); SubsetCaldav caldavTask = task.getCaldavTask();
if (newParent == 0) { if (newParent == 0) {
caldavTask.setRemoteParent(""); caldavTask.setRemoteParent("");

@ -57,6 +57,14 @@ public abstract class CaldavDao {
@Update @Update
public abstract void update(CaldavTask caldavTask); 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 @Update
public abstract void update(Iterable<CaldavTask> tasks); public abstract void update(Iterable<CaldavTask> tasks);

@ -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
+ '\''
+ '}';
}
}

@ -6,7 +6,7 @@ import com.todoroo.astrid.data.Task;
public class TaskContainer { public class TaskContainer {
@Embedded public Task task; @Embedded public Task task;
@Embedded public GoogleTask googletask; @Embedded public GoogleTask googletask;
@Embedded public CaldavTask caldavTask; @Embedded public SubsetCaldav caldavTask;
@Embedded public Location location; @Embedded public Location location;
public String tags; public String tags;
public int children; public int children;
@ -220,7 +220,7 @@ public class TaskContainer {
return googletask; return googletask;
} }
public CaldavTask getCaldavTask() { public SubsetCaldav getCaldavTask() {
return caldavTask; return caldavTask;
} }

Loading…
Cancel
Save