From ceac5d9de2fc50103f3fdbef3a87c7900326eb61 Mon Sep 17 00:00:00 2001 From: Tim Su Date: Fri, 22 Oct 2010 14:31:54 -0700 Subject: [PATCH] gtasks: pick up deleted tasks from remote. gtasks + pdv: refresh on sync --- .../astrid/gtasks/sync/GtasksSyncProvider.java | 18 +++++++++++++----- .../sync/ProducteevSyncProvider.java | 6 ++++-- 2 files changed, 17 insertions(+), 7 deletions(-) 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 b8971bf23..e8895f1f3 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gtasks/sync/GtasksSyncProvider.java +++ b/astrid/plugin-src/com/todoroo/astrid/gtasks/sync/GtasksSyncProvider.java @@ -49,6 +49,7 @@ import com.todoroo.astrid.sync.SyncBackgroundService; import com.todoroo.astrid.sync.SyncContainer; import com.todoroo.astrid.sync.SyncProvider; import com.todoroo.astrid.utility.Constants; +import com.todoroo.astrid.utility.Flags; import com.todoroo.gtasks.GoogleConnectionManager; import com.todoroo.gtasks.GoogleLoginException; import com.todoroo.gtasks.GoogleTaskService; @@ -57,6 +58,7 @@ import com.todoroo.gtasks.GoogleTaskView; import com.todoroo.gtasks.GoogleTasksException; import com.todoroo.gtasks.GoogleTaskService.ConvenientTaskCreator; 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.ListCreationAction; @@ -208,8 +210,8 @@ public class GtasksSyncProvider extends SyncProvider { gtasksTaskListUpdater.createParentSiblingMaps(); - // batched read tasks for each list - ArrayList remoteTasks = readAllRemoteTasks(); + // read non-deleted tasks for each list + ArrayList remoteTasks = readAllRemoteTasks(false); SyncData syncData = populateSyncData(remoteTasks); try { @@ -223,6 +225,8 @@ public class GtasksSyncProvider extends SyncProvider { gtasksPreferenceService.recordSuccessfulSync(); StatisticsService.reportEvent("gtasks-sync-finished"); //$NON-NLS-1$ + + Flags.set(Flags.REFRESH); } catch (IllegalStateException e) { // occurs when application was closed } catch (Exception e) { @@ -250,8 +254,9 @@ public class GtasksSyncProvider extends SyncProvider { protected void readRemotelyUpdated(SyncData data) throws IOException { // first, pull all tasks. then we can write them + // include deleted tasks so we can delete them in astrid try { - data.remoteUpdated = readAllRemoteTasks(); + data.remoteUpdated = readAllRemoteTasks(true); } catch (JSONException e) { throw new GoogleTasksException(e); } @@ -294,12 +299,15 @@ public class GtasksSyncProvider extends SyncProvider { // ------------------------------------------------- create / push / pull // ---------------------------------------------------------------------- - private ArrayList readAllRemoteTasks() + private ArrayList readAllRemoteTasks(boolean includeDeleted) throws JSONException, IOException, GoogleLoginException { ArrayList remoteTasks = new ArrayList(); for(StoreObject dashboard : gtasksListService.getLists()) { String listId = dashboard.getValue(GtasksList.REMOTE_ID); - List list = taskService.getTasks(listId); + + GetTasksAction action = new GetTasksAction(listId, includeDeleted); + taskService.executeActions(action); + List list = action.getGoogleTasks(); addRemoteTasksToList(list, remoteTasks); } return remoteTasks; diff --git a/astrid/plugin-src/com/todoroo/astrid/producteev/sync/ProducteevSyncProvider.java b/astrid/plugin-src/com/todoroo/astrid/producteev/sync/ProducteevSyncProvider.java index c74ccd95b..a2b036032 100644 --- a/astrid/plugin-src/com/todoroo/astrid/producteev/sync/ProducteevSyncProvider.java +++ b/astrid/plugin-src/com/todoroo/astrid/producteev/sync/ProducteevSyncProvider.java @@ -20,7 +20,6 @@ import android.content.Context; import android.content.Intent; import android.text.TextUtils; -import com.todoroo.astrid.service.StatisticsService; import com.timsu.astrid.R; import com.todoroo.andlib.data.Property; import com.todoroo.andlib.data.TodorooCursor; @@ -32,6 +31,7 @@ import com.todoroo.andlib.service.NotificationManager; import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DialogUtilities; +import com.todoroo.andlib.utility.Preferences; import com.todoroo.astrid.activity.ShortcutActivity; import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.api.Filter; @@ -48,11 +48,12 @@ import com.todoroo.astrid.producteev.api.ApiServiceException; import com.todoroo.astrid.producteev.api.ApiUtilities; import com.todoroo.astrid.producteev.api.ProducteevInvoker; import com.todoroo.astrid.service.AstridDependencyInjector; +import com.todoroo.astrid.service.StatisticsService; import com.todoroo.astrid.sync.SyncContainer; import com.todoroo.astrid.sync.SyncProvider; import com.todoroo.astrid.tags.TagService; import com.todoroo.astrid.utility.Constants; -import com.todoroo.andlib.utility.Preferences; +import com.todoroo.astrid.utility.Flags; @SuppressWarnings("nls") public class ProducteevSyncProvider extends SyncProvider { @@ -314,6 +315,7 @@ public class ProducteevSyncProvider extends SyncProvider