Suppress outstanding entries when creating new tag links during sync

pull/14/head
Sam Bosley 13 years ago
parent 96b29c30bc
commit 4456dfc143

@ -174,7 +174,7 @@ public class MakeChanges<TYPE extends RemoteModel> extends ServerToClientMessage
for (int i = 0; i < addTags.length(); i++) { for (int i = 0; i < addTags.length(); i++) {
try { try {
String tagUuid = addTags.getString(i); String tagUuid = addTags.getString(i);
tagService.createLink(model.getId(), uuid, tagUuid); tagService.createLink(model.getId(), uuid, tagUuid, true);
} catch (JSONException e) { } catch (JSONException e) {
// //
} }

@ -39,6 +39,7 @@ import com.todoroo.astrid.dao.MetadataDao.MetadataCriteria;
import com.todoroo.astrid.dao.TaskDao.TaskCriteria; import com.todoroo.astrid.dao.TaskDao.TaskCriteria;
import com.todoroo.astrid.data.Metadata; import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.RemoteModel; import com.todoroo.astrid.data.RemoteModel;
import com.todoroo.astrid.data.SyncFlags;
import com.todoroo.astrid.data.TagData; import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.TaskApiDao; import com.todoroo.astrid.data.TaskApiDao;
@ -269,7 +270,7 @@ public final class TagService {
* @param taskUuid * @param taskUuid
* @param tagUuid * @param tagUuid
*/ */
public void createLink(long taskId, String taskUuid, String tagUuid) { public void createLink(long taskId, String taskUuid, String tagUuid, boolean suppressOutstanding) {
TodorooCursor<TagData> existingTag = tagDataService.query(Query.select(TagData.NAME, TagData.UUID).where(TagData.UUID.eq(tagUuid))); TodorooCursor<TagData> existingTag = tagDataService.query(Query.select(TagData.NAME, TagData.UUID).where(TagData.UUID.eq(tagUuid)));
try { try {
TagData tagData; TagData tagData;
@ -283,6 +284,8 @@ public final class TagService {
Metadata link = TagMetadata.newTagMetadata(taskId, taskUuid, name, tagUuid); Metadata link = TagMetadata.newTagMetadata(taskId, taskUuid, name, tagUuid);
if (metadataDao.update(Criterion.and(MetadataCriteria.byTaskAndwithKey(taskId, TagMetadata.KEY), if (metadataDao.update(Criterion.and(MetadataCriteria.byTaskAndwithKey(taskId, TagMetadata.KEY),
TagMetadata.TASK_UUID.eq(taskUuid), TagMetadata.TAG_UUID.eq(tagUuid)), link) <= 0) { TagMetadata.TASK_UUID.eq(taskUuid), TagMetadata.TAG_UUID.eq(tagUuid)), link) <= 0) {
if (suppressOutstanding)
link.putTransitory(SyncFlags.ACTFM_SUPPRESS_OUTSTANDING_ENTRIES, true);
metadataDao.createNew(link); metadataDao.createNew(link);
} }

Loading…
Cancel
Save