Now we actually execute batcehd actions, as well as get task lists one at a time (previously no tasks were able to be returned)

pull/14/head
Tim Su 14 years ago
parent 8e0d8964dc
commit 486d675384

Binary file not shown.

@ -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<GtasksTaskContainer> {
// batched read tasks for each list
ArrayList<GtasksTaskContainer> remoteTasks = new ArrayList<GtasksTaskContainer>();
ArrayList<GetTasksAction> getTasksActions = new ArrayList<GetTasksAction>();
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<GoogleTaskTask> list = action.getGoogleTasks();
List<GoogleTaskTask> 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<GtasksTaskContainer> {
syncData.localUpdated.close();
}
executeBatchedActions();
gtasksTaskListUpdater.updateAllMetadata();
gtasksPreferenceService.recordSuccessfulSync();
@ -484,6 +481,21 @@ public class GtasksSyncProvider extends SyncProvider<GtasksTaskContainer> {
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<String, ArrayList<ListAction>> 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
// ----------------------------------------------------------------------

Loading…
Cancel
Save