|
|
@ -213,6 +213,8 @@ public class GtasksSyncProvider extends SyncProvider<GtasksTaskContainer> {
|
|
|
|
|
|
|
|
|
|
|
|
gtasksListService.updateLists(taskView.getAllLists());
|
|
|
|
gtasksListService.updateLists(taskView.getAllLists());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gtasksMetadataService.createParentSiblingMaps();
|
|
|
|
|
|
|
|
|
|
|
|
// batched read tasks for each list
|
|
|
|
// batched read tasks for each list
|
|
|
|
ArrayList<GtasksTaskContainer> remoteTasks = new ArrayList<GtasksTaskContainer>();
|
|
|
|
ArrayList<GtasksTaskContainer> remoteTasks = new ArrayList<GtasksTaskContainer>();
|
|
|
|
ArrayList<GetTasksAction> getTasksActions = new ArrayList<GetTasksAction>();
|
|
|
|
ArrayList<GetTasksAction> getTasksActions = new ArrayList<GetTasksAction>();
|
|
|
@ -299,14 +301,19 @@ public class GtasksSyncProvider extends SyncProvider<GtasksTaskContainer> {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
updateTaskHelper(local, null, createdTask);
|
|
|
|
updateTaskHelper(local, null, createdTask);
|
|
|
|
String remoteId = createdTask.go();
|
|
|
|
String remoteId;
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
remoteId = createdTask.go();
|
|
|
|
|
|
|
|
} catch (JSONException e) {
|
|
|
|
|
|
|
|
throw new GoogleTasksException(e);
|
|
|
|
|
|
|
|
}
|
|
|
|
local.gtaskMetadata.setValue(GtasksMetadata.LIST_ID, remoteId);
|
|
|
|
local.gtaskMetadata.setValue(GtasksMetadata.LIST_ID, remoteId);
|
|
|
|
|
|
|
|
|
|
|
|
return local;
|
|
|
|
return local;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void updateTaskHelper(GtasksTaskContainer local,
|
|
|
|
private void updateTaskHelper(GtasksTaskContainer local,
|
|
|
|
GtasksTaskContainer remote, TaskBuilder<?> builder) {
|
|
|
|
GtasksTaskContainer remote, TaskBuilder<?> builder) throws IOException {
|
|
|
|
|
|
|
|
|
|
|
|
String idTask = local.gtaskMetadata.getValue(GtasksMetadata.ID);
|
|
|
|
String idTask = local.gtaskMetadata.getValue(GtasksMetadata.ID);
|
|
|
|
String idList = local.gtaskMetadata.getValue(GtasksMetadata.LIST_ID);
|
|
|
|
String idList = local.gtaskMetadata.getValue(GtasksMetadata.LIST_ID);
|
|
|
@ -315,22 +322,28 @@ public class GtasksSyncProvider extends SyncProvider<GtasksTaskContainer> {
|
|
|
|
if(remote == null && idTask != null)
|
|
|
|
if(remote == null && idTask != null)
|
|
|
|
remote = pull(local);
|
|
|
|
remote = pull(local);
|
|
|
|
|
|
|
|
|
|
|
|
// moving between lists
|
|
|
|
try {
|
|
|
|
if(remote != null && !idList.equals(remote.gtaskMetadata.getValue(GtasksMetadata.LIST_ID))) {
|
|
|
|
|
|
|
|
a.moveTask(idTask, idList, remote.gtaskMetadata.getValue(GtasksMetadata.LIST_ID), null);
|
|
|
|
// moving between lists
|
|
|
|
}
|
|
|
|
if(remote != null && !idList.equals(remote.gtaskMetadata.getValue(GtasksMetadata.LIST_ID))) {
|
|
|
|
|
|
|
|
a.moveTask(idTask, idList, remote.gtaskMetadata.getValue(GtasksMetadata.LIST_ID), null);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// other properties
|
|
|
|
// other properties
|
|
|
|
if(shouldTransmit(local, Task.TITLE, remote))
|
|
|
|
if(shouldTransmit(local, Task.TITLE, remote))
|
|
|
|
((TaskModifier)builder).name(local.task.getValue(Task.TITLE));
|
|
|
|
((TaskModifier)builder).name(local.task.getValue(Task.TITLE));
|
|
|
|
if(shouldTransmit(local, Task.DUE_DATE, remote))
|
|
|
|
if(shouldTransmit(local, Task.DUE_DATE, remote))
|
|
|
|
builder.taskDate(local.task.getValue(Task.DUE_DATE));
|
|
|
|
builder.taskDate(local.task.getValue(Task.DUE_DATE));
|
|
|
|
if(shouldTransmit(local, Task.COMPLETION_DATE, remote))
|
|
|
|
if(shouldTransmit(local, Task.COMPLETION_DATE, remote))
|
|
|
|
builder.completed(local.task.isCompleted());
|
|
|
|
builder.completed(local.task.isCompleted());
|
|
|
|
if(shouldTransmit(local, Task.DELETION_DATE, remote))
|
|
|
|
if(shouldTransmit(local, Task.DELETION_DATE, remote))
|
|
|
|
builder.deleted(local.task.isDeleted());
|
|
|
|
builder.deleted(local.task.isDeleted());
|
|
|
|
if(shouldTransmit(local, Task.NOTES, remote))
|
|
|
|
if(shouldTransmit(local, Task.NOTES, remote))
|
|
|
|
builder.notes(local.task.getValue(Task.NOTES));
|
|
|
|
builder.notes(local.task.getValue(Task.NOTES));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} catch (JSONException e) {
|
|
|
|
|
|
|
|
throw new GoogleTasksException(e);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// TODO indentation
|
|
|
|
// TODO indentation
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -367,7 +380,12 @@ public class GtasksSyncProvider extends SyncProvider<GtasksTaskContainer> {
|
|
|
|
throw new ApiServiceException("Tried to read an invalid task"); //$NON-NLS-1$
|
|
|
|
throw new ApiServiceException("Tried to read an invalid task"); //$NON-NLS-1$
|
|
|
|
|
|
|
|
|
|
|
|
String idToMatch = task.gtaskMetadata.getValue(GtasksMetadata.ID);
|
|
|
|
String idToMatch = task.gtaskMetadata.getValue(GtasksMetadata.ID);
|
|
|
|
List<GoogleTaskTask> tasks = taskService.getTasks(task.gtaskMetadata.getValue(GtasksMetadata.LIST_ID));
|
|
|
|
List<GoogleTaskTask> tasks;
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
tasks = taskService.getTasks(task.gtaskMetadata.getValue(GtasksMetadata.LIST_ID));
|
|
|
|
|
|
|
|
} catch (JSONException e) {
|
|
|
|
|
|
|
|
throw new GoogleTasksException(e);
|
|
|
|
|
|
|
|
}
|
|
|
|
for(GoogleTaskTask remoteTask : tasks) {
|
|
|
|
for(GoogleTaskTask remoteTask : tasks) {
|
|
|
|
if(remoteTask.getId().equals(idToMatch)) {
|
|
|
|
if(remoteTask.getId().equals(idToMatch)) {
|
|
|
|
return parseRemoteTask(remoteTask);
|
|
|
|
return parseRemoteTask(remoteTask);
|
|
|
@ -384,10 +402,14 @@ 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 {
|
|
|
|
TaskModifier modifyTask = l.modifyTask(remote.gtaskMetadata.getValue(GtasksMetadata.ID));
|
|
|
|
try {
|
|
|
|
updateTaskHelper(local, remote, modifyTask);
|
|
|
|
TaskModifier modifyTask = l.modifyTask(remote.gtaskMetadata.getValue(GtasksMetadata.ID));
|
|
|
|
ListAction action = modifyTask.done();
|
|
|
|
updateTaskHelper(local, remote, modifyTask);
|
|
|
|
batch(local.gtaskMetadata.getValue(GtasksMetadata.LIST_ID), action);
|
|
|
|
ListAction action = modifyTask.done();
|
|
|
|
|
|
|
|
batch(local.gtaskMetadata.getValue(GtasksMetadata.LIST_ID), action);
|
|
|
|
|
|
|
|
} catch (JSONException e) {
|
|
|
|
|
|
|
|
throw new GoogleTasksException(e);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/** add action to batch */
|
|
|
|
/** add action to batch */
|
|
|
|