From a2e897083e26462d0799457ffd6ad1e748e34c7b Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Tue, 22 Jan 2013 16:06:46 -0800 Subject: [PATCH] Fixed issues with writing tag_added or tag_removed to json in ChangesHappened --- .../actfm/sync/messages/ChangesHappened.java | 29 ++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/messages/ChangesHappened.java b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/messages/ChangesHappened.java index be19bd448..32655f8ea 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/messages/ChangesHappened.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/messages/ChangesHappened.java @@ -87,19 +87,28 @@ public class ChangesHappened localProperty = NameMaps.localColumnNameToProperty(table, localColumn); - if (localProperty == null) - throw new RuntimeException("No local property found for local column " + localColumn + " in table " + table); - - String serverColumn = NameMaps.localColumnNameToServerColumnName(table, localColumn); - if (serverColumn == null) - throw new RuntimeException("No server column found for local column " + localColumn + " in table " + table); - - JSONObject changeJson = new JSONObject(); changeJson.put("id", change.getId()); + String serverColumn; + if (NameMaps.TAG_ADDED_COLUMN.equals(localColumn)) { + serverColumn = NameMaps.TAG_ADDED_COLUMN; + changeJson.put("value", change.getValue(OutstandingEntry.VALUE_STRING_PROPERTY)); + } else if (NameMaps.TAG_REMOVED_COLUMN.equals(localColumn)) { + serverColumn = NameMaps.TAG_REMOVED_COLUMN; + changeJson.put("value", change.getValue(OutstandingEntry.VALUE_STRING_PROPERTY)); + } else { + Property localProperty = NameMaps.localColumnNameToProperty(table, localColumn); + if (localProperty == null) + throw new RuntimeException("No local property found for local column " + localColumn + " in table " + table); + + serverColumn = NameMaps.localColumnNameToServerColumnName(table, localColumn); + if (serverColumn == null) + throw new RuntimeException("No server column found for local column " + localColumn + " in table " + table); + + changeJson.put("value", localProperty.accept(visitor, change)); + } + changeJson.put("column", serverColumn); - changeJson.put("value", localProperty.accept(visitor, change)); array.put(changeJson); } catch (JSONException e) {