diff --git a/astrid/libs/todoroo-g.jar b/astrid/libs/todoroo-g.jar index a415f05d4..9f87afc66 100644 Binary files a/astrid/libs/todoroo-g.jar and b/astrid/libs/todoroo-g.jar differ diff --git a/astrid/plugin-src/com/todoroo/astrid/gtasks/sync/GtasksSyncProvider.java b/astrid/plugin-src/com/todoroo/astrid/gtasks/sync/GtasksSyncProvider.java index fb81f914f..4a199cff6 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gtasks/sync/GtasksSyncProvider.java +++ b/astrid/plugin-src/com/todoroo/astrid/gtasks/sync/GtasksSyncProvider.java @@ -7,6 +7,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Map.Entry; import org.json.JSONException; @@ -50,13 +51,12 @@ import com.todoroo.astrid.utility.Constants; import com.todoroo.gtasks.GoogleConnectionManager; import com.todoroo.gtasks.GoogleLoginException; import com.todoroo.gtasks.GoogleTaskService; -import com.todoroo.gtasks.GoogleTaskService.ConvenientTaskCreator; import com.todoroo.gtasks.GoogleTaskTask; import com.todoroo.gtasks.GoogleTaskView; import com.todoroo.gtasks.GoogleTasksException; +import com.todoroo.gtasks.GoogleTaskService.ConvenientTaskCreator; import com.todoroo.gtasks.actions.Action; import com.todoroo.gtasks.actions.Actions; -import com.todoroo.gtasks.actions.GetTasksAction; import com.todoroo.gtasks.actions.ListAction; import com.todoroo.gtasks.actions.ListActions; import com.todoroo.gtasks.actions.ListActions.TaskBuilder; @@ -227,14 +227,10 @@ public class GtasksSyncProvider extends SyncProvider { // batched read tasks for each list ArrayList remoteTasks = new ArrayList(); - ArrayList getTasksActions = new ArrayList(); for(StoreObject dashboard : gtasksListService.getLists()) { String listId = dashboard.getValue(GtasksList.REMOTE_ID); - getTasksActions.add(a.getTasks(listId, true)); - } - taskService.executeActions(getTasksActions.toArray(new GetTasksAction[getTasksActions.size()])); - for(GetTasksAction action : getTasksActions) { - List list = action.getGoogleTasks(); + List list = taskService.getTasks(listId); + System.err.println("list " + listId + " read " + list.size() + " tasks"); readTasksIntoRemoteTasks(list, remoteTasks); } @@ -246,6 +242,7 @@ public class GtasksSyncProvider extends SyncProvider { syncData.localUpdated.close(); } + executeBatchedActions(); gtasksTaskListUpdater.updateAllMetadata(); gtasksPreferenceService.recordSuccessfulSync(); @@ -484,6 +481,21 @@ public class GtasksSyncProvider extends SyncProvider { actions.add(action); } + /** execute all batched actions */ + private void executeBatchedActions() throws IOException, JSONException { + if(!actions.isEmpty()) { + taskService.executeActions(actions.toArray(new Action[actions.size()])); + System.err.println("executed " + actions); + } + if(!listActions.isEmpty()) { + for(Entry> entry : listActions.entrySet()) { + taskService.executeListActions(entry.getKey(), + entry.getValue().toArray(new ListAction[entry.getValue().size()])); + System.err.println("executed " + entry.getValue() + " on " + entry.getKey()); + } + } + } + // ---------------------------------------------------------------------- // --------------------------------------------------------- read / write // ----------------------------------------------------------------------