Implemented UserData message, send created_at for each change

pull/14/head
Sam Bosley 13 years ago
parent 4a03d185e5
commit cb21c10b1d

@ -124,6 +124,9 @@ public class ChangesHappened<TYPE extends RemoteModel, OE extends OutstandingEnt
changeJson.put("column", serverColumn);
String createdAt = DateUtilities.timeToIso8601(change.getValue(OutstandingEntry.CREATED_AT_PROPERTY), true);
changeJson.put("created_at", createdAt);
array.put(changeJson);
} catch (JSONException e) {
Log.e(ERROR_TAG, "Error writing change to JSON", e);

@ -15,8 +15,8 @@ public abstract class ServerToClientMessage {
public abstract void processMessage();
public static final String TYPE_MAKE_CHANGES = "MakeChanges";
public static final String TYPE_USER_DATA = "UserData";
public static final String TYPE_ACKNOWLEDGE_CHANGE = "AcknowledgeChange";
public static final String TYPE_USER_DATA = "UserData";
public static final String TYPE_DOUBLE_CHECK = "DoubleCheck";
public static final String TYPE_DEBUG = "Debug";
@ -32,6 +32,8 @@ public abstract class ServerToClientMessage {
return instantiateMakeChanges(json, pushedAt);
else if (TYPE_ACKNOWLEDGE_CHANGE.equals(type))
return new AcknowledgeChange(json);
else if (TYPE_USER_DATA.equals(type))
return new UserData(json);
else if (TYPE_DOUBLE_CHECK.equals(json))
return new DoubleCheck(json);
else if (TYPE_DEBUG.equals(json))

@ -0,0 +1,43 @@
package com.todoroo.astrid.actfm.sync.messages;
import org.json.JSONObject;
import android.text.TextUtils;
import com.todoroo.andlib.sql.Criterion;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.dao.TagMetadataDao.TagMetadataCriteria;
import com.todoroo.astrid.data.SyncFlags;
import com.todoroo.astrid.data.TagMetadata;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.tags.TagMemberMetadata;
public class UserData extends ServerToClientMessage {
public UserData(JSONObject json) {
super(json);
}
@Override
@SuppressWarnings("nls")
public void processMessage() {
String uuid = json.optString("uuid");
String email = json.optString("email");
if (TextUtils.isEmpty(uuid))
return;
Task taskTemplate = new Task();
taskTemplate.setValue(Task.USER_ID, uuid);
taskTemplate.putTransitory(SyncFlags.ACTFM_SUPPRESS_OUTSTANDING_ENTRIES, true);
PluginServices.getTaskDao().update(Task.USER_ID.eq(email), taskTemplate);
TagMetadata metadataTemplate = new TagMetadata();
metadataTemplate.setValue(TagMemberMetadata.USER_UUID, uuid);
metadataTemplate.putTransitory(SyncFlags.ACTFM_SUPPRESS_OUTSTANDING_ENTRIES, true);
PluginServices.getTagMetadataDao().update(Criterion.and(TagMetadataCriteria.withKey(TagMemberMetadata.KEY),
TagMemberMetadata.USER_UUID.eq(email)), metadataTemplate);
}
}
Loading…
Cancel
Save