diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncV2Provider.java b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncV2Provider.java index d1b3683fe..156e7b404 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncV2Provider.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncV2Provider.java @@ -316,8 +316,8 @@ public class ActFmSyncV2Provider extends SyncV2Provider { /** @return runnable to fetch changes to tags */ private void startTaskFetcher(final boolean manual, final SyncResultCallback callback, final AtomicInteger finisher) { - final boolean pushActiveTasksOrder = actFmSyncService.cancelFilterOrderingPush(SubtasksUpdater.ACTIVE_TASKS_ORDER); - final boolean pushTodayOrder = actFmSyncService.cancelFilterOrderingPush(SubtasksUpdater.TODAY_TASKS_ORDER); + final boolean pushActiveTasksOrder = actFmSyncService.cancelFilterOrderingPush(SubtasksUpdater.ACTIVE_TASKS_ORDER) && manual; + final boolean pushTodayOrder = actFmSyncService.cancelFilterOrderingPush(SubtasksUpdater.TODAY_TASKS_ORDER) && manual; actFmSyncService.fetchActiveTasks(manual, handler, new Runnable() { @Override @@ -465,8 +465,8 @@ public class ActFmSyncV2Provider extends SyncV2Provider { fetchTagData(tagData, noRemoteId, manual, callback, finisher); if(!noRemoteId) { + boolean orderPushQueued = actFmSyncService.cancelTagOrderingPush(tagData.getId()) && manual; actFmSyncService.waitUntilEmpty(); - boolean orderPushQueued = actFmSyncService.cancelTagOrderingPush(tagData.getId()); fetchTasksForTag(tagData, manual, orderPushQueued, callback, finisher); fetchUpdatesForTag(tagData, manual, callback, finisher); } diff --git a/astrid/plugin-src/com/todoroo/astrid/subtasks/AstridOrderedListFragmentHelper.java b/astrid/plugin-src/com/todoroo/astrid/subtasks/AstridOrderedListFragmentHelper.java index 236623921..c071c7193 100644 --- a/astrid/plugin-src/com/todoroo/astrid/subtasks/AstridOrderedListFragmentHelper.java +++ b/astrid/plugin-src/com/todoroo/astrid/subtasks/AstridOrderedListFragmentHelper.java @@ -296,7 +296,7 @@ public class AstridOrderedListFragmentHelper implements OrderedListFragmen } if (madeChanges) { - updater.writeSerialization(list, updater.serializeTree()); + updater.writeSerialization(list, updater.serializeTree(), true); } } finally { recurring.close(); diff --git a/astrid/plugin-src/com/todoroo/astrid/subtasks/AstridOrderedListUpdater.java b/astrid/plugin-src/com/todoroo/astrid/subtasks/AstridOrderedListUpdater.java index 879c77ce6..3a751383b 100644 --- a/astrid/plugin-src/com/todoroo/astrid/subtasks/AstridOrderedListUpdater.java +++ b/astrid/plugin-src/com/todoroo/astrid/subtasks/AstridOrderedListUpdater.java @@ -50,7 +50,7 @@ public abstract class AstridOrderedListUpdater { private final HashMap idToNode; protected abstract String getSerializedTree(LIST list, Filter filter); - protected abstract void writeSerialization(LIST list, String serialized); + protected abstract void writeSerialization(LIST list, String serialized, boolean shouldQueueSync); protected abstract void applyToFilter(Filter filter); public int getIndentForTask(long targetTaskId) { @@ -105,7 +105,7 @@ public abstract class AstridOrderedListUpdater { tasks.close(); } if (changedThings) - writeSerialization(list, serializeTree()); + writeSerialization(list, serializeTree(), false); } private void removeNodes(Set idsToRemove) { @@ -222,7 +222,7 @@ public abstract class AstridOrderedListUpdater { newSiblings.add(insertAfter + 1, node); } - writeSerialization(list, serializeTree()); + writeSerialization(list, serializeTree(), true); applyToFilter(filter); } @@ -300,7 +300,7 @@ public abstract class AstridOrderedListUpdater { beforeIndex--; } newSiblings.add(beforeIndex, moveThis); - writeSerialization(list, serializeTree()); + writeSerialization(list, serializeTree(), true); applyToFilter(filter); } @@ -321,7 +321,7 @@ public abstract class AstridOrderedListUpdater { treeRoot.children.add(moveThis); moveThis.parent = treeRoot; setNodeIndent(moveThis, 0); - writeSerialization(list, serializeTree()); + writeSerialization(list, serializeTree(), true); applyToFilter(filter); } @@ -332,7 +332,7 @@ public abstract class AstridOrderedListUpdater { Node newNode = new Node(taskId, treeRoot, 0); treeRoot.children.add(newNode); idToNode.put(taskId, newNode); - writeSerialization(list, serializeTree()); + writeSerialization(list, serializeTree(), true); applyToFilter(filter); } @@ -355,7 +355,7 @@ public abstract class AstridOrderedListUpdater { } idToNode.remove(taskId); - writeSerialization(list, serializeTree()); + writeSerialization(list, serializeTree(), true); applyToFilter(filter); } diff --git a/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksFilterUpdater.java b/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksFilterUpdater.java index 0fee786c7..687428e2a 100644 --- a/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksFilterUpdater.java +++ b/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksFilterUpdater.java @@ -15,9 +15,10 @@ public class SubtasksFilterUpdater extends SubtasksUpdater { } @Override - protected void writeSerialization(String list, String serialized) { + protected void writeSerialization(String list, String serialized, boolean shouldQueueSync) { Preferences.setString(list, serialized); - actFmSyncService.pushFilterOrderingOnSave(list); + if (shouldQueueSync) + actFmSyncService.pushFilterOrderingOnSave(list); } } diff --git a/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksTagUpdater.java b/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksTagUpdater.java index c15c3d33f..73e431e66 100644 --- a/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksTagUpdater.java +++ b/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksTagUpdater.java @@ -15,10 +15,11 @@ public class SubtasksTagUpdater extends SubtasksUpdater { } @Override - protected void writeSerialization(TagData list, String serialized) { + protected void writeSerialization(TagData list, String serialized, boolean shouldQueueSync) { list.setValue(TagData.TAG_ORDERING, serialized); tagDataService.save(list); - actFmSyncService.pushTagOrderingOnSave(list.getId()); + if (shouldQueueSync) + actFmSyncService.pushTagOrderingOnSave(list.getId()); } }