You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tasks/astrid/rmilk-src/org/weloveastrid/rmilk/sync/MilkTaskContainer.java

68 lines
2.4 KiB
Java

package org.weloveastrid.rmilk.sync;
import java.util.ArrayList;
import java.util.Iterator;
import org.weloveastrid.rmilk.api.data.RtmTaskSeries;
import org.weloveastrid.rmilk.data.MilkTaskFields;
import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.sync.SyncContainer;
/**
* RTM Task Container
*
* @author Tim Su <tim@todoroo.com>
*
*/
public class MilkTaskContainer extends SyncContainer {
public long listId, taskSeriesId, taskId;
public boolean repeating;
public RtmTaskSeries remote;
public MilkTaskContainer(Task task, ArrayList<Metadata> metadata,
long listId, long taskSeriesId, long taskId, boolean repeating,
RtmTaskSeries remote) {
this.task = task;
this.metadata = metadata;
this.listId = listId;
this.taskSeriesId = taskSeriesId;
this.taskId = taskId;
this.repeating = repeating;
this.remote = remote;
}
public MilkTaskContainer(Task task, ArrayList<Metadata> metadata,
RtmTaskSeries rtmTaskSeries) {
this(task, metadata, Long.parseLong(rtmTaskSeries.getList().getId()),
Long.parseLong(rtmTaskSeries.getId()), Long.parseLong(rtmTaskSeries.getTask().getId()),
rtmTaskSeries.hasRecurrence(), rtmTaskSeries);
}
public MilkTaskContainer(Task task, ArrayList<Metadata> metadata) {
this(task, metadata, 0, 0, 0, false, null);
for(Iterator<Metadata> iterator = metadata.iterator(); iterator.hasNext(); ) {
Metadata item = iterator.next();
if(MilkTaskFields.METADATA_KEY.equals(item.getValue(Metadata.KEY))) {
if(item.containsNonNullValue(MilkTaskFields.LIST_ID))
listId = item.getValue(MilkTaskFields.LIST_ID);
if(item.containsNonNullValue(MilkTaskFields.TASK_SERIES_ID))
taskSeriesId = item.getValue(MilkTaskFields.TASK_SERIES_ID);
if(item.containsNonNullValue(MilkTaskFields.TASK_ID))
taskId = item.getValue(MilkTaskFields.TASK_ID);
if(item.containsNonNullValue(MilkTaskFields.REPEATING))
repeating = item.getValue(MilkTaskFields.REPEATING) == 1;
iterator.remove();
break;
}
}
}
@Override
public void prepareForSaving() {
super.prepareForSaving();
metadata.add(MilkTaskFields.create(this));
}
}