package com.dropbox.sample.datastoretask; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.Date; import java.util.List; import com.dropbox.sync.android.DbxDatastore; import com.dropbox.sync.android.DbxException; import com.dropbox.sync.android.DbxFields; import com.dropbox.sync.android.DbxRecord; import com.dropbox.sync.android.DbxTable; public class TaskTable { private DbxDatastore mDatastore; private DbxTable mTable; public class Task { private DbxRecord mRecord; public Task(DbxRecord record) { mRecord = record; } public String getId() { return mRecord.getId(); } public String getName() { return mRecord.getString("taskname"); } public Date getCreated() { return mRecord.getDate("created"); } public boolean isCompleted() { return mRecord.getBoolean("completed"); } public void delete() throws DbxException { mRecord.deleteRecord(); mDatastore.sync(); } public void toggleCompleted() throws DbxException { mRecord.set("completed", !isCompleted()); mDatastore.sync(); } } public TaskTable(DbxDatastore datastore) { mDatastore = datastore; mTable = datastore.getTable("tasks"); } public void createTask(String taskname) throws DbxException { DbxFields taskFields = new DbxFields() .set("completed", false) .set("taskname", taskname) .set("created", new Date()); mTable.insert(taskFields); mDatastore.sync(); } public List<Task> getTasksSorted() throws DbxException { List<Task> resultList = new ArrayList<Task>(); for (DbxRecord result : mTable.query()) { resultList.add(new Task(result)); } Collections.sort(resultList, new Comparator<Task>() { @Override public int compare(Task o1, Task o2) { return o1.getCreated().compareTo(o2.getCreated()); } }); return resultList; } }