mirror of https://github.com/tasks/tasks
Constructing task outstanding from master table should include tag_added
parent
e2a9d34701
commit
6819e94458
@ -0,0 +1,48 @@
|
||||
package com.todoroo.astrid.actfm.sync.messages;
|
||||
|
||||
import com.todoroo.andlib.data.Property.LongProperty;
|
||||
import com.todoroo.andlib.data.TodorooCursor;
|
||||
import com.todoroo.andlib.sql.Criterion;
|
||||
import com.todoroo.andlib.sql.Query;
|
||||
import com.todoroo.astrid.dao.MetadataDao;
|
||||
import com.todoroo.astrid.dao.MetadataDao.MetadataCriteria;
|
||||
import com.todoroo.astrid.dao.OutstandingEntryDao;
|
||||
import com.todoroo.astrid.dao.RemoteModelDao;
|
||||
import com.todoroo.astrid.data.Metadata;
|
||||
import com.todoroo.astrid.data.Task;
|
||||
import com.todoroo.astrid.data.TaskOutstanding;
|
||||
import com.todoroo.astrid.tags.TaskToTagMetadata;
|
||||
|
||||
public class ConstructTaskOutstandingTableFromMasterTable extends ConstructOutstandingTableFromMasterTable<Task, TaskOutstanding> {
|
||||
|
||||
private final MetadataDao metadataDao;
|
||||
|
||||
public ConstructTaskOutstandingTableFromMasterTable(String table, RemoteModelDao<Task> dao, OutstandingEntryDao<TaskOutstanding> outstandingDao, MetadataDao metadataDao, LongProperty createdAtProperty) {
|
||||
super(table, dao, outstandingDao, createdAtProperty);
|
||||
this.metadataDao = metadataDao;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void extras(long itemId, long createdAt) {
|
||||
super.extras(itemId, createdAt);
|
||||
TodorooCursor<Metadata> tagMetadata = metadataDao.query(Query.select(Metadata.PROPERTIES)
|
||||
.where(Criterion.and(MetadataCriteria.byTaskAndwithKey(itemId, TaskToTagMetadata.KEY), Metadata.DELETION_DATE.eq(0))));
|
||||
Metadata m = new Metadata();
|
||||
try {
|
||||
for (tagMetadata.moveToFirst(); !tagMetadata.isAfterLast(); tagMetadata.moveToNext()) {
|
||||
m.clear();
|
||||
m.readFromCursor(tagMetadata);
|
||||
|
||||
TaskOutstanding oe = new TaskOutstanding();
|
||||
oe.setValue(TaskOutstanding.ENTITY_ID_PROPERTY, itemId);
|
||||
oe.setValue(TaskOutstanding.COLUMN_STRING, NameMaps.TAG_ADDED_COLUMN);
|
||||
oe.setValue(TaskOutstanding.VALUE_STRING, m.getValue(TaskToTagMetadata.TAG_UUID));
|
||||
oe.setValue(TaskOutstanding.CREATED_AT, createdAt);
|
||||
outstandingDao.createNew(oe);
|
||||
}
|
||||
} finally {
|
||||
tagMetadata.close();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue