Google task views show completed tasks to match up with google. Now we set remote ids for remote incoming tasks too.

pull/14/head
Tim Su 15 years ago
parent 696c8cd4c7
commit 64f8f9e524

@ -52,7 +52,8 @@ public class GtasksFilterExposer extends BroadcastReceiver {
Filter filter = new Filter(listName, listName, new QueryTemplate().join( Filter filter = new Filter(listName, listName, new QueryTemplate().join(
Join.left(Metadata.TABLE, Task.ID.eq(Metadata.TASK))).where(Criterion.and( Join.left(Metadata.TABLE, Task.ID.eq(Metadata.TASK))).where(Criterion.and(
MetadataCriteria.withKey(GtasksMetadata.METADATA_KEY), MetadataCriteria.withKey(GtasksMetadata.METADATA_KEY),
TaskCriteria.activeAndVisible(), TaskCriteria.isVisible(),
TaskCriteria.notDeleted(),
GtasksMetadata.LIST_ID.eq(list.getValue(GtasksList.REMOTE_ID)))).orderBy(Order.asc(GtasksMetadata.ORDER)), GtasksMetadata.LIST_ID.eq(list.getValue(GtasksList.REMOTE_ID)))).orderBy(Order.asc(GtasksMetadata.ORDER)),
values); values);

@ -139,6 +139,10 @@ public class GtasksTaskListUpdater {
} }
} }
public void addRemoteTaskMapping(long id, String remoteId) {
localToRemoteIdMap.put(id, remoteId);
}
// --- private helpers // --- private helpers
private interface ListIterator { private interface ListIterator {

@ -353,6 +353,7 @@ public class GtasksSyncProvider extends SyncProvider<GtasksTaskContainer> {
String remoteId; String remoteId;
try { try {
remoteId = createdTask.go(); remoteId = createdTask.go();
gtasksTaskListUpdater.addRemoteTaskMapping(local.task.getId(), remoteId);
} catch (JSONException e) { } catch (JSONException e) {
throw new GoogleTasksException(e); throw new GoogleTasksException(e);
} }
@ -415,11 +416,11 @@ public class GtasksSyncProvider extends SyncProvider<GtasksTaskContainer> {
task.setValue(Task.NOTES, remoteTask.getNotes()); task.setValue(Task.NOTES, remoteTask.getNotes());
Metadata gtasksMetadata = GtasksMetadata.createEmptyMetadata(AbstractModel.NO_ID); Metadata gtasksMetadata = GtasksMetadata.createEmptyMetadata(AbstractModel.NO_ID);
gtasksMetadata.setValue(GtasksMetadata.ID, remoteTask.getId());
gtasksMetadata.setValue(GtasksMetadata.LIST_ID, remoteTask.getList_id()); gtasksMetadata.setValue(GtasksMetadata.LIST_ID, remoteTask.getList_id());
GtasksTaskContainer container = new GtasksTaskContainer(task, metadata, GtasksTaskContainer container = new GtasksTaskContainer(task, metadata,
gtasksMetadata); gtasksMetadata);
// TODO indent
return container; return container;
} }
@ -453,6 +454,8 @@ public class GtasksSyncProvider extends SyncProvider<GtasksTaskContainer> {
@Override @Override
protected void push(GtasksTaskContainer local, GtasksTaskContainer remote) throws IOException { protected void push(GtasksTaskContainer local, GtasksTaskContainer remote) throws IOException {
try { try {
gtasksTaskListUpdater.updateParentAndSibling(local);
String id = local.gtaskMetadata.getValue(GtasksMetadata.ID); String id = local.gtaskMetadata.getValue(GtasksMetadata.ID);
TaskModifier modifyTask = l.modifyTask(id); TaskModifier modifyTask = l.modifyTask(id);
updateTaskHelper(local, remote, modifyTask); updateTaskHelper(local, remote, modifyTask);

Loading…
Cancel
Save