From 0e898a2607a98a23e465bb50527155e0ee1c982f Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Tue, 12 Feb 2013 17:31:13 -0800 Subject: [PATCH] Started working on a way to record tag_added outstanding entries for tasks that need it in the migration --- .../astrid/actfm/sync/AstridNewSyncMigrator.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/AstridNewSyncMigrator.java b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/AstridNewSyncMigrator.java index 6cfdf0ef0..0a8d32284 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/AstridNewSyncMigrator.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/AstridNewSyncMigrator.java @@ -1,5 +1,8 @@ package com.todoroo.astrid.actfm.sync; +import java.util.HashSet; +import java.util.Set; + import android.text.TextUtils; import android.util.Log; @@ -124,6 +127,7 @@ public class AstridNewSyncMigrator { // -------------- // Then ensure that every remote model has a remote id, by generating one using the uuid generator for all those without one // -------------- + final Set tasksThatNeedTagSync = new HashSet(); try { Query tagsQuery = Query.select(TagData.ID, TagData.UUID, TagData.MODIFICATION_DATE).where(Criterion.or(TagData.UUID.eq(RemoteModel.NO_UUID), TagData.UUID.isNull())); assertUUIDsExist(tagsQuery, new TagData(), tagDataDao, tagOutstandingDao, new TagOutstanding(), NameMaps.syncableProperties(NameMaps.TABLE_ID_TAGS), new UUIDAssertionExtras() { @@ -167,9 +171,15 @@ public class AstridNewSyncMigrator { @Override public boolean shouldCreateOutstandingEntries(Task instance) { + boolean result; if (!instance.containsNonNullValue(Task.MODIFICATION_DATE) || instance.getValue(Task.LAST_SYNC) == 0) - return true; - return instance.getValue(Task.LAST_SYNC) < instance.getValue(Task.MODIFICATION_DATE); + result = true; + else + result = instance.getValue(Task.LAST_SYNC) < instance.getValue(Task.MODIFICATION_DATE); + if (result) + tasksThatNeedTagSync.add(instance.getId()); + + return result; } }); } catch (Exception e) { @@ -314,6 +324,7 @@ public class AstridNewSyncMigrator { } finally { incompleteMetadata.close(); } + } catch (Exception e) { Log.e(LOG_TAG, "Error validating task to tag metadata", e); }