Fixed several minor errors creating/processing tag member links

pull/14/head
Sam Bosley 12 years ago
parent 4588748ada
commit f010730549

@ -56,6 +56,7 @@ import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterWithCustomIntent; import com.todoroo.astrid.api.FilterWithCustomIntent;
import com.todoroo.astrid.core.SortHelper; import com.todoroo.astrid.core.SortHelper;
import com.todoroo.astrid.dao.TagMetadataDao; import com.todoroo.astrid.dao.TagMetadataDao;
import com.todoroo.astrid.dao.TagMetadataDao.TagMetadataCriteria;
import com.todoroo.astrid.dao.TaskDao.TaskCriteria; import com.todoroo.astrid.dao.TaskDao.TaskCriteria;
import com.todoroo.astrid.dao.UserDao; import com.todoroo.astrid.dao.UserDao;
import com.todoroo.astrid.data.RemoteModel; import com.todoroo.astrid.data.RemoteModel;
@ -376,13 +377,9 @@ public class TagViewFragment extends TaskListFragment {
TodorooCursor<User> users = userDao.query(Query.select(User.PROPERTIES) TodorooCursor<User> users = userDao.query(Query.select(User.PROPERTIES)
.where(User.UUID.in(Query.select(TagMemberMetadata.USER_UUID) .where(User.UUID.in(Query.select(TagMemberMetadata.USER_UUID)
.from(TagMetadata.TABLE) .from(TagMetadata.TABLE)
.where(Criterion.and(TagMetadata.TAG_UUID.eq(tagData.getUuid()), TagMetadata.DELETION_DATE.eq(0)))))); .where(Criterion.and(TagMetadataCriteria.byTagAndWithKey(tagData.getUuid(), TagMemberMetadata.KEY), TagMetadata.DELETION_DATE.eq(0))))));
try { try {
addedMembers = users.getCount() > 0; addedMembers = users.getCount() > 0;
if (addedMembers) {
membersView.setOnClickListener(null);
membersView.removeAllViews();
}
User user = new User(); User user = new User();
for (users.moveToFirst(); !users.isAfterLast(); users.moveToNext()) { for (users.moveToFirst(); !users.isAfterLast(); users.moveToNext()) {
user.clear(); user.clear();
@ -396,9 +393,10 @@ public class TagViewFragment extends TaskListFragment {
} }
TodorooCursor<TagMetadata> byEmail = tagMetadataDao.query(Query.select(TagMemberMetadata.USER_UUID) TodorooCursor<TagMetadata> byEmail = tagMetadataDao.query(Query.select(TagMemberMetadata.USER_UUID)
.where(Criterion.and(TagMetadata.TAG_UUID.eq(tagData.getUuid()), .where(Criterion.and(TagMetadataCriteria.byTagAndWithKey(tagData.getUuid(), TagMemberMetadata.KEY),
TagMemberMetadata.USER_UUID.like("%@%")))); //$NON-NLS-1$ TagMemberMetadata.USER_UUID.like("%@%"), TagMetadata.DELETION_DATE.eq(0)))); //$NON-NLS-1$
try { try {
addedMembers = addedMembers || byEmail.getCount() > 0;
TagMetadata tm = new TagMetadata(); TagMetadata tm = new TagMetadata();
for (byEmail.moveToFirst(); !byEmail.isAfterLast(); byEmail.moveToNext()) { for (byEmail.moveToFirst(); !byEmail.isAfterLast(); byEmail.moveToNext()) {
tm.clear(); tm.clear();
@ -413,6 +411,11 @@ public class TagViewFragment extends TaskListFragment {
} finally { } finally {
byEmail.close(); byEmail.close();
} }
if (addedMembers) {
membersView.setOnClickListener(null);
membersView.removeAllViews();
}
} }
} catch (JSONException e) { } catch (JSONException e) {
e.printStackTrace(); e.printStackTrace();

@ -12,6 +12,7 @@ public class TagMemberMetadata {
public static TagMetadata newMemberMetadata(long tagId, String tagUuid, String userUuid) { public static TagMetadata newMemberMetadata(long tagId, String tagUuid, String userUuid) {
TagMetadata m = new TagMetadata(); TagMetadata m = new TagMetadata();
m.setValue(TagMetadata.KEY, KEY);
m.setValue(TagMetadata.TAG_ID, tagId); m.setValue(TagMetadata.TAG_ID, tagId);
m.setValue(TagMetadata.TAG_UUID, tagUuid); m.setValue(TagMetadata.TAG_UUID, tagUuid);
m.setValue(USER_UUID, userUuid); m.setValue(USER_UUID, userUuid);

@ -113,19 +113,19 @@ public class TagMetadataDao extends DatabaseDao<TagMetadata> {
public void removeMemberLink(long tagId, String tagUuid, String memberId, boolean suppressOutstanding) { public void removeMemberLink(long tagId, String tagUuid, String memberId, boolean suppressOutstanding) {
TagMetadata deleteTemplate = new TagMetadata(); TagMetadata deleteTemplate = new TagMetadata();
deleteTemplate.setValue(TagMetadata.TAG_ID, tagId); // Need this for recording changes in outstanding table deleteTemplate.setValue(TagMetadata.TAG_ID, tagId); // Need this for recording changes in outstanding table
deleteTemplate.setValue(Metadata.DELETION_DATE, DateUtilities.now()); deleteTemplate.setValue(TagMetadata.DELETION_DATE, DateUtilities.now());
deleteTemplate.setValue(TagMemberMetadata.USER_UUID, memberId); // Need this for recording changes in outstanding table deleteTemplate.setValue(TagMemberMetadata.USER_UUID, memberId); // Need this for recording changes in outstanding table
if (suppressOutstanding) if (suppressOutstanding)
deleteTemplate.putTransitory(SyncFlags.ACTFM_SUPPRESS_OUTSTANDING_ENTRIES, true); deleteTemplate.putTransitory(SyncFlags.ACTFM_SUPPRESS_OUTSTANDING_ENTRIES, true);
update(Criterion.and(TagMetadataCriteria.withKey(TagMemberMetadata.KEY), Metadata.DELETION_DATE.eq(0), update(Criterion.and(TagMetadataCriteria.withKey(TagMemberMetadata.KEY), TagMetadata.DELETION_DATE.eq(0),
TagMetadata.TAG_UUID.eq(tagUuid), TagMemberMetadata.USER_UUID.eq(memberId)), deleteTemplate); TagMetadata.TAG_UUID.eq(tagUuid), TagMemberMetadata.USER_UUID.eq(memberId)), deleteTemplate);
} }
public void removeMemberLinks(long tagId, String tagUuid, String[] memberIds, boolean suppressOutstanding) { public void removeMemberLinks(long tagId, String tagUuid, String[] memberIds, boolean suppressOutstanding) {
TagMetadata deleteTemplate = new TagMetadata(); TagMetadata deleteTemplate = new TagMetadata();
deleteTemplate.setValue(TagMetadata.TAG_ID, tagId); // Need this for recording changes in outstanding table deleteTemplate.setValue(TagMetadata.TAG_ID, tagId); // Need this for recording changes in outstanding table
deleteTemplate.setValue(Metadata.DELETION_DATE, DateUtilities.now()); deleteTemplate.setValue(TagMetadata.DELETION_DATE, DateUtilities.now());
if (memberIds != null) { if (memberIds != null) {
for (String uuid : memberIds) { for (String uuid : memberIds) {
// TODO: Right now this is in a loop because each deleteTemplate needs the individual tagUuid in order to record // TODO: Right now this is in a loop because each deleteTemplate needs the individual tagUuid in order to record
@ -133,7 +133,7 @@ public class TagMetadataDao extends DatabaseDao<TagMetadata> {
deleteTemplate.setValue(TagMemberMetadata.USER_UUID, uuid); // Need this for recording changes in outstanding table deleteTemplate.setValue(TagMemberMetadata.USER_UUID, uuid); // Need this for recording changes in outstanding table
if (suppressOutstanding) if (suppressOutstanding)
deleteTemplate.putTransitory(SyncFlags.ACTFM_SUPPRESS_OUTSTANDING_ENTRIES, true); deleteTemplate.putTransitory(SyncFlags.ACTFM_SUPPRESS_OUTSTANDING_ENTRIES, true);
update(Criterion.and(TagMetadataCriteria.withKey(TagMemberMetadata.KEY), Metadata.DELETION_DATE.eq(0), update(Criterion.and(TagMetadataCriteria.withKey(TagMemberMetadata.KEY), TagMetadata.DELETION_DATE.eq(0),
TagMetadata.TAG_UUID.eq(tagUuid), TagMemberMetadata.USER_UUID.eq(uuid)), deleteTemplate); TagMetadata.TAG_UUID.eq(tagUuid), TagMemberMetadata.USER_UUID.eq(uuid)), deleteTemplate);
} }
} }

Loading…
Cancel
Save