From 51bf8445e6ae528163bc622f623ee9aaca6abcd3 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Thu, 24 Jan 2013 15:34:35 -0800 Subject: [PATCH] Deprecated the user json properties, clear some of them on sync --- .../com/todoroo/astrid/data/RemoteModel.java | 2 +- api/src/com/todoroo/astrid/data/TagData.java | 2 +- api/src/com/todoroo/astrid/data/Task.java | 4 +-- api/src/com/todoroo/astrid/data/Update.java | 2 +- .../actfm/sync/ActFmPreferenceService.java | 32 ++++++------------- .../messages/JSONChangeToPropertyVisitor.java | 9 ++++-- .../actfm/sync/messages/MakeChanges.java | 6 ++++ 7 files changed, 27 insertions(+), 30 deletions(-) diff --git a/api/src/com/todoroo/astrid/data/RemoteModel.java b/api/src/com/todoroo/astrid/data/RemoteModel.java index 7d5fc53c5..fc81feaf3 100644 --- a/api/src/com/todoroo/astrid/data/RemoteModel.java +++ b/api/src/com/todoroo/astrid/data/RemoteModel.java @@ -35,7 +35,7 @@ abstract public class RemoteModel extends AbstractModel { protected static final String USER_JSON_PROPERTY_NAME = "user"; //$NON-NLS-1$ /** user json property */ - public static final StringProperty USER_JSON_PROPERTY = new StringProperty(null, USER_JSON_PROPERTY_NAME); + @Deprecated public static final StringProperty USER_JSON_PROPERTY = new StringProperty(null, USER_JSON_PROPERTY_NAME); /** pushed at date property name */ public static final String PUSHED_AT_PROPERTY_NAME = "pushedAt"; //$NON-NLS-1$ diff --git a/api/src/com/todoroo/astrid/data/TagData.java b/api/src/com/todoroo/astrid/data/TagData.java index ff6d729d0..8856da92b 100644 --- a/api/src/com/todoroo/astrid/data/TagData.java +++ b/api/src/com/todoroo/astrid/data/TagData.java @@ -50,7 +50,7 @@ public final class TagData extends RemoteModel { TABLE, USER_ID_PROPERTY_NAME, Property.PROP_FLAG_USER_ID); /** User Object (JSON) */ - public static final StringProperty USER = new StringProperty( + @Deprecated public static final StringProperty USER = new StringProperty( TABLE, USER_JSON_PROPERTY_NAME); /** Remote goal id */ diff --git a/api/src/com/todoroo/astrid/data/Task.java b/api/src/com/todoroo/astrid/data/Task.java index 1c085d5d2..d4f805a6c 100644 --- a/api/src/com/todoroo/astrid/data/Task.java +++ b/api/src/com/todoroo/astrid/data/Task.java @@ -162,11 +162,11 @@ public final class Task extends RemoteModel { TABLE, USER_ID_PROPERTY_NAME, Property.PROP_FLAG_USER_ID); /** User Object (JSON) */ - public static final StringProperty USER = new StringProperty( + @Deprecated public static final StringProperty USER = new StringProperty( TABLE, USER_JSON_PROPERTY_NAME); /** Creator user id */ - public static final LongProperty CREATOR_ID = new LongProperty( + public static final StringProperty CREATOR_ID = new StringProperty( TABLE, "creatorId", Property.PROP_FLAG_USER_ID); /** Last Sync date */ diff --git a/api/src/com/todoroo/astrid/data/Update.java b/api/src/com/todoroo/astrid/data/Update.java index 8d22f1b30..4018be911 100644 --- a/api/src/com/todoroo/astrid/data/Update.java +++ b/api/src/com/todoroo/astrid/data/Update.java @@ -71,7 +71,7 @@ public class Update extends RemoteModel { TABLE, USER_ID_PROPERTY_NAME); /** From User Object (JSON) */ - public static final StringProperty USER = new StringProperty( + @Deprecated public static final StringProperty USER = new StringProperty( TABLE, USER_JSON_PROPERTY_NAME); /** Other user id */ diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmPreferenceService.java b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmPreferenceService.java index 1a8d32564..c35e71c81 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmPreferenceService.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmPreferenceService.java @@ -8,13 +8,11 @@ package com.todoroo.astrid.actfm.sync; import org.json.JSONException; import org.json.JSONObject; -import android.text.TextUtils; - import com.timsu.astrid.R; import com.todoroo.andlib.utility.Preferences; import com.todoroo.astrid.billing.BillingConstants; import com.todoroo.astrid.data.RemoteModel; -import com.todoroo.astrid.data.Update; +import com.todoroo.astrid.data.Task; import com.todoroo.astrid.service.StatisticsConstants; import com.todoroo.astrid.service.StatisticsService; import com.todoroo.astrid.sync.SyncProviderUtilities; @@ -59,8 +57,12 @@ public class ActFmPreferenceService extends SyncProviderUtilities { /** * @return get user id */ - public static long userId() { - return Preferences.getLong(PREF_USER_ID, -2L); + public static String userId() { + try { + return Preferences.getStringValue(PREF_USER_ID); + } catch (Exception e) { + return Long.toString(Preferences.getLong(PREF_USER_ID, -2L)); + } } /** Act.fm current user id */ @@ -103,9 +105,9 @@ public class ActFmPreferenceService extends SyncProviderUtilities { * @return */ public static JSONObject userFromModel(RemoteModel model) { - if(model.getValue(RemoteModel.USER_ID_PROPERTY) == 0) { + if (Task.USER_ID_SELF.equals(model.getValue(RemoteModel.USER_ID_PROPERTY))) { return thisUser(); - }else { + } else { try { return new JSONObject(model.getValue(RemoteModel.USER_JSON_PROPERTY)); } catch (JSONException e) { @@ -114,20 +116,6 @@ public class ActFmPreferenceService extends SyncProviderUtilities { } } - @SuppressWarnings("nls") - public static String updateToString(Update update) { - JSONObject updateUser = ActFmPreferenceService.userFromModel(update); - String description = update.getValue(Update.ACTION); - String message = update.getValue(Update.MESSAGE); - if(update.getValue(Update.ACTION_CODE).equals("task_comment") || - update.getValue(Update.ACTION_CODE).equals("tag_comment")) - description = message; - else if(!TextUtils.isEmpty(message)) - description += " " + message; - return String.format("%s: %s", updateUser.optString("name"), description); - } - - public synchronized static JSONObject thisUser() { if(user == null) { user = new JSONObject(); @@ -151,7 +139,7 @@ public class ActFmPreferenceService extends SyncProviderUtilities { user.put("premium", isPremiumUser()); user.put("email", Preferences.getStringValue(PREF_EMAIL)); user.put("picture", Preferences.getStringValue(PREF_PICTURE)); - user.put("id", Preferences.getLong(PREF_USER_ID, 0)); + user.put("id", ActFmPreferenceService.userId()); } catch (JSONException e) { throw new RuntimeException(e); } diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/messages/JSONChangeToPropertyVisitor.java b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/messages/JSONChangeToPropertyVisitor.java index 4ce38df75..1040156c3 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/messages/JSONChangeToPropertyVisitor.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/messages/JSONChangeToPropertyVisitor.java @@ -54,9 +54,7 @@ public class JSONChangeToPropertyVisitor implements PropertyVisitor property, String key) { try { long value = data.optLong(key, 0); - if (property.checkFlag(Property.PROP_FLAG_USER_ID) && value == ActFmPreferenceService.userId()) - value = 0; - else if (property.checkFlag(Property.PROP_FLAG_DATE)) { + if (property.checkFlag(Property.PROP_FLAG_DATE)) { String valueString = data.getString(key); try { value = DateUtilities.parseIso8601(valueString); @@ -91,6 +89,11 @@ public class JSONChangeToPropertyVisitor implements PropertyVisitor extends ServerToClientMessage Criterion.and(MetadataCriteria.withKey(TagMetadata.KEY), TagMetadata.TAG_UUID.eq(uuid)), template); } + + if (changes.has("member_added")) { + model.setValue(TagData.MEMBERS, "{}"); // Clear this value for migration purposes + //TODO: Do more things here also + } } }