From 8afc0af018eb0506c56511f170fbb4046acb7bd8 Mon Sep 17 00:00:00 2001 From: Tim Su Date: Fri, 30 Sep 2011 16:58:59 -0700 Subject: [PATCH] Only clear details if model has changed --- api/src/com/todoroo/andlib/data/AbstractModel.java | 5 +++++ .../com/todoroo/astrid/actfm/sync/ActFmSyncService.java | 7 +++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/api/src/com/todoroo/andlib/data/AbstractModel.java b/api/src/com/todoroo/andlib/data/AbstractModel.java index 4bce165e9..afef455fa 100644 --- a/api/src/com/todoroo/andlib/data/AbstractModel.java +++ b/api/src/com/todoroo/andlib/data/AbstractModel.java @@ -144,6 +144,11 @@ public abstract class AbstractModel implements Parcelable, Cloneable { return clone; } + /** Check if this model has values that have been changed */ + public boolean isModified() { + return setValues.size() > 0; + } + // --- data retrieval /** diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java index 659f9b723..b5a895993 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java @@ -959,7 +959,6 @@ public final class ActFmSyncService { model.setValue(Task.REMOTE_ID, json.getLong("id")); readUser(json.getJSONObject("user"), model, Task.USER_ID, Task.USER); readUser(json.getJSONObject("creator"), model, Task.CREATOR_ID, null); - model.setValue(Task.COMMENT_COUNT, json.getInt("comment_count")); model.setValue(Task.TITLE, json.getString("title")); model.setValue(Task.IMPORTANCE, json.getInt("importance")); int urgency = json.getBoolean("has_due_time") ? Task.URGENCY_SPECIFIC_DAY_TIME : Task.URGENCY_SPECIFIC_DAY; @@ -975,7 +974,11 @@ public final class ActFmSyncService { model.setValue(Task.NOTES, json.optString("notes", "")); model.setValue(Task.DETAILS_DATE, 0L); model.setValue(Task.LAST_SYNC, DateUtilities.now() + 1000L); - model.setValue(Task.DETAILS, null); + + if(model.isModified()) + model.setValue(Task.DETAILS, null); + + model.setValue(Task.COMMENT_COUNT, json.getInt("comment_count")); JSONArray tags = json.getJSONArray("tags"); for(int i = 0; i < tags.length(); i++) {