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 c2a2ebe6b..4b7d5bb28 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java @@ -1146,11 +1146,7 @@ public final class ActFmSyncService { invokeFetchList("task", manual, null, new TaskListItemProcessor(manual) { @Override protected void deleteExtras(Long[] localIds) { - taskService.deleteWhere(Criterion.and( - TagService.memberOfTagData(tagData.getValue(TagData.REMOTE_ID)), - TaskCriteria.activeAndVisible(), - Task.REMOTE_ID.isNotNull(), - Criterion.not(Task.ID.in(localIds)))); + // } }, done, "tasks:" + tagData.getId(), "tag_id", tagData.getValue(TagData.REMOTE_ID)); } diff --git a/astrid/plugin-src/com/todoroo/astrid/tags/TagCaseMigrator.java b/astrid/plugin-src/com/todoroo/astrid/tags/TagCaseMigrator.java index c33724319..856d92070 100644 --- a/astrid/plugin-src/com/todoroo/astrid/tags/TagCaseMigrator.java +++ b/astrid/plugin-src/com/todoroo/astrid/tags/TagCaseMigrator.java @@ -16,6 +16,7 @@ import com.todoroo.andlib.sql.Criterion; import com.todoroo.andlib.sql.Join; import com.todoroo.andlib.sql.Query; import com.todoroo.andlib.utility.Preferences; +import com.todoroo.astrid.dao.MetadataDao.MetadataCriteria; import com.todoroo.astrid.data.Metadata; import com.todoroo.astrid.data.TagData; import com.todoroo.astrid.data.Task; @@ -107,9 +108,16 @@ public class TagCaseMigrator { addTasksToTargetTag(renameMap.get(tag), targetNameForTag(tag)); } + @Deprecated + private static Criterion tagEq(String tag, Criterion additionalCriterion) { + return Criterion.and( + MetadataCriteria.withKey(TagMetadata.KEY), TagMetadata.TAG_NAME.eq(tag), + additionalCriterion); + } + private void addTasksToTargetTag(String tag, String target) { TodorooCursor tasks = taskService.query(Query.select(Task.ID).join(Join.inner(Metadata.TABLE, - Task.ID.eq(Metadata.TASK))).where(TagService.tagEq(tag, Criterion.all))); + Task.ID.eq(Metadata.TASK))).where(tagEq(tag, Criterion.all))); try { for (tasks.moveToFirst(); !tasks.isAfterLast(); tasks.moveToNext()) { Task curr = new Task(tasks); diff --git a/astrid/plugin-src/com/todoroo/astrid/tags/TagService.java b/astrid/plugin-src/com/todoroo/astrid/tags/TagService.java index e3453bfb7..0ce17fa06 100644 --- a/astrid/plugin-src/com/todoroo/astrid/tags/TagService.java +++ b/astrid/plugin-src/com/todoroo/astrid/tags/TagService.java @@ -161,12 +161,8 @@ public final class TagService { } - public static Criterion memberOfTagData(long tagDataUUID) { - return Task.ID.in(Query.select(Metadata.TASK).from(Metadata.TABLE).where( - Criterion.and(Metadata.KEY.eq(TagMetadata.KEY), TagMetadata.TAG_UUID.eq(tagDataUUID)))); - } - - public static Criterion tagEq(String tag, Criterion additionalCriterion) { + @Deprecated + private static Criterion tagEq(String tag, Criterion additionalCriterion) { return Criterion.and( MetadataCriteria.withKey(TagMetadata.KEY), TagMetadata.TAG_NAME.eq(tag), additionalCriterion); @@ -179,7 +175,7 @@ public final class TagService { } public QueryTemplate untaggedTemplate() { - Long[] emergentTags = getEmergentTagIds(); + String[] emergentTags = getEmergentTagIds(); return new QueryTemplate().where(Criterion.and( Criterion.not(Task.UUID.in(Query.select(TagMetadata.TASK_UUID).from(Metadata.TABLE) @@ -222,18 +218,20 @@ public final class TagService { } } - public Long[] getEmergentTagIds() { - TodorooCursor emergent = tagDataService.query(Query.select(TagData.ID) + public String[] getEmergentTagIds() { + TodorooCursor emergent = tagDataService.query(Query.select(TagData.UUID) .where(Functions.bitwiseAnd(TagData.FLAGS, TagData.FLAG_EMERGENT).gt(0))); try { - Long[] tags = new Long[emergent.getCount()]; + ArrayList tags = new ArrayList(); TagData data = new TagData(); for (int i = 0; i < emergent.getCount(); i++) { emergent.moveToPosition(i); data.readFromCursor(emergent); - tags[i] = data.getId(); + String uuid = data.getValue(TagData.UUID); + if (!TextUtils.isEmpty(uuid) && !"0".equals(uuid)) + tags.add(uuid); } - return tags; + return tags.toArray(new String[tags.size()]); } finally { emergent.close(); } @@ -337,7 +335,7 @@ public final class TagService { Metadata.DELETION_DATE.eq(0), Metadata.TASK.eq(taskId)))); if (!includeEmergent) - criterion = Criterion.and(Criterion.not(TagData.ID.in(getEmergentTagIds())), criterion); + criterion = Criterion.and(Criterion.not(TagData.UUID.in(getEmergentTagIds())), criterion); return tagDataService.query(Query.select(properties).where(criterion)); } diff --git a/astrid/src/com/todoroo/astrid/activity/TaskListFragment.java b/astrid/src/com/todoroo/astrid/activity/TaskListFragment.java index c89b7d8ea..3ef1cce24 100644 --- a/astrid/src/com/todoroo/astrid/activity/TaskListFragment.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskListFragment.java @@ -950,7 +950,7 @@ public class TaskListFragment extends ListFragment implements OnScrollListener, if (getActiveTagData() != null) tagName = getActiveTagData().getValue(TagData.NAME); - Long[] emergentTagIds = TagService.getInstance().getEmergentTagIds(); + String[] emergentTagIds = TagService.getInstance().getEmergentTagIds(); StringProperty tagProperty = new StringProperty(null, TAGS_METADATA_JOIN + "." + TagMetadata.TAG_UUID.name); Criterion tagsJoinCriterion = Criterion.and(