|
|
|
@ -168,8 +168,12 @@ public class GtasksSyncV2Provider extends SyncV2Provider {
|
|
|
|
|
TodorooCursor<Task> queued = taskService.query(Query.select(Task.PROPERTIES).
|
|
|
|
|
join(Join.left(Metadata.TABLE, Criterion.and(MetadataCriteria.withKey(GtasksMetadata.METADATA_KEY), Task.ID.eq(Metadata.TASK)))).where(
|
|
|
|
|
Criterion.or(Task.MODIFICATION_DATE.gt(GtasksMetadata.LAST_SYNC),
|
|
|
|
|
Criterion.and(Task.USER_ID.neq(Task.USER_ID_SELF), GtasksMetadata.ID.isNotNull()),
|
|
|
|
|
Criterion.and(Task.USER_ID.neq(Task.USER_ID_SELF), GtasksMetadata.ID.isNotNull()), // XXX: Shouldn't this neq("")?
|
|
|
|
|
Metadata.KEY.isNull())));
|
|
|
|
|
pushTasks(queued, invoker, callback);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private synchronized void pushTasks(TodorooCursor<Task> queued, GtasksInvoker invoker, SyncResultCallback callback) {
|
|
|
|
|
callback.incrementMax(queued.getCount() * 10);
|
|
|
|
|
try {
|
|
|
|
|
Task task = new Task();
|
|
|
|
@ -248,6 +252,21 @@ public class GtasksSyncV2Provider extends SyncV2Provider {
|
|
|
|
|
} else {
|
|
|
|
|
lastSyncDate = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Find tasks which have been associated with the list internally, but have not yet been
|
|
|
|
|
* pushed to Google Tasks (and so haven't yet got a valid ID).
|
|
|
|
|
*/
|
|
|
|
|
Criterion not_pushed_tasks = Criterion.and(
|
|
|
|
|
Metadata.KEY.eq(GtasksMetadata.METADATA_KEY),
|
|
|
|
|
GtasksMetadata.LIST_ID.eq(listId),
|
|
|
|
|
GtasksMetadata.ID.eq("")
|
|
|
|
|
);
|
|
|
|
|
TodorooCursor<Task> qs = taskService.query(Query.select(Task.PROPERTIES).
|
|
|
|
|
join(Join.left(Metadata.TABLE, Criterion.and(MetadataCriteria.withKey(GtasksMetadata.METADATA_KEY), Task.ID.eq(Metadata.TASK)))).where(not_pushed_tasks)
|
|
|
|
|
);
|
|
|
|
|
pushTasks(qs, invoker, callback);
|
|
|
|
|
|
|
|
|
|
boolean includeDeletedAndHidden = lastSyncDate != 0;
|
|
|
|
|
try {
|
|
|
|
|
Tasks taskList = invoker.getAllGtasksFromListId(listId, includeDeletedAndHidden,
|
|
|
|
|