From 4540583ff04938d62927df2590a6c524bec8a5b8 Mon Sep 17 00:00:00 2001 From: Tim Su Date: Fri, 15 May 2009 21:56:11 +0000 Subject: [PATCH] Fix bug where clear personal data would crash Astrid. Also updated the sync stat algorithm. --- src/com/timsu/astrid/sync/SynchronizationProvider.java | 5 +++-- src/com/timsu/astrid/sync/Synchronizer.java | 3 +++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/com/timsu/astrid/sync/SynchronizationProvider.java b/src/com/timsu/astrid/sync/SynchronizationProvider.java index 5e0a11ef8..0d6f62ec8 100644 --- a/src/com/timsu/astrid/sync/SynchronizationProvider.java +++ b/src/com/timsu/astrid/sync/SynchronizationProvider.java @@ -289,6 +289,8 @@ public abstract class SynchronizationProvider { remoteConflict = data.remoteChangeMap.get(mapping.getTask()); localTask.mergeWithOther(remoteConflict); stats.mergedTasks++; + } else { + stats.remoteUpdatedTasks++; } try { @@ -308,8 +310,7 @@ public abstract class SynchronizationProvider { TaskProxy newTask = helper.refetchTask(remoteConflict); remoteTasks.remove(remoteConflict); remoteTasks.add(newTask); - } else - stats.remoteUpdatedTasks++; + } } // 4. REMOTE SYNC load remote information diff --git a/src/com/timsu/astrid/sync/Synchronizer.java b/src/com/timsu/astrid/sync/Synchronizer.java index f3c41850f..96100e8d4 100644 --- a/src/com/timsu/astrid/sync/Synchronizer.java +++ b/src/com/timsu/astrid/sync/Synchronizer.java @@ -84,11 +84,14 @@ public class Synchronizer { /** Clears tokens of activated services */ public static void clearUserData(Activity activity) { + Synchronizer synchronizer = new Synchronizer(false); for(ServiceWrapper serviceWrapper : ServiceWrapper.values()) { if(serviceWrapper.isActivated(activity)) { + serviceWrapper.service.synchronizer = synchronizer; serviceWrapper.service.clearPersonalData(activity); } } + synchronizer.closeControllers(); } // --- internal synchronization logic