mirror of https://github.com/tasks/tasks
Implemented special waiting on me fragment to bold unread items and set read dates when clicked
parent
8c4d37e49a
commit
a2ca7e2040
@ -0,0 +1,92 @@
|
||||
package com.todoroo.astrid.actfm;
|
||||
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
import android.database.Cursor;
|
||||
import android.graphics.Typeface;
|
||||
import android.text.TextUtils;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.todoroo.andlib.data.Property;
|
||||
import com.todoroo.andlib.data.TodorooCursor;
|
||||
import com.todoroo.andlib.service.Autowired;
|
||||
import com.todoroo.andlib.sql.Criterion;
|
||||
import com.todoroo.andlib.sql.Query;
|
||||
import com.todoroo.andlib.utility.AndroidUtilities;
|
||||
import com.todoroo.andlib.utility.DateUtilities;
|
||||
import com.todoroo.astrid.activity.TaskListFragment;
|
||||
import com.todoroo.astrid.adapter.TaskAdapter;
|
||||
import com.todoroo.astrid.adapter.TaskAdapter.OnCompletedTaskListener;
|
||||
import com.todoroo.astrid.dao.TaskDao;
|
||||
import com.todoroo.astrid.dao.WaitingOnMeDao;
|
||||
import com.todoroo.astrid.data.Task;
|
||||
import com.todoroo.astrid.data.WaitingOnMe;
|
||||
|
||||
public class WaitingOnMeFragment extends TaskListFragment {
|
||||
|
||||
@Autowired
|
||||
private WaitingOnMeDao waitingOnMeDao;
|
||||
|
||||
@Autowired
|
||||
private TaskDao taskDao;
|
||||
|
||||
@Override
|
||||
public Property<?>[] taskProperties() {
|
||||
return AndroidUtilities.addToArray(super.taskProperties(), WaitingOnMe.READ_AT, WaitingOnMe.ACKNOWLEDGED);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected TaskAdapter createTaskAdapter(TodorooCursor<Task> cursor) {
|
||||
return new WaitingOnMeTaskAdapter(this, getTaskRowResource(),
|
||||
cursor, sqlQueryTemplate, false,
|
||||
new OnCompletedTaskListener() {
|
||||
@Override
|
||||
public void onCompletedTask(Task item, boolean newState) {
|
||||
if (newState == true)
|
||||
onTaskCompleted(item);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static class WaitingOnMeTaskAdapter extends TaskAdapter {
|
||||
|
||||
public WaitingOnMeTaskAdapter(TaskListFragment fragment, int resource,
|
||||
Cursor c, AtomicReference<String> query, boolean autoRequery,
|
||||
OnCompletedTaskListener onCompletedTaskListener) {
|
||||
super(fragment, resource, c, query, autoRequery, onCompletedTaskListener);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setTaskAppearance(ViewHolder viewHolder, Task task) {
|
||||
super.setTaskAppearance(viewHolder, task);
|
||||
|
||||
TextView nameView = viewHolder.nameView;
|
||||
if (task.getValue(WaitingOnMe.READ_AT) == 0 && task.getValue(WaitingOnMe.ACKNOWLEDGED) == 0)
|
||||
nameView.setTypeface(null, Typeface.BOLD);
|
||||
else
|
||||
nameView.setTypeface(null, 0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTaskListItemClicked(long taskId, boolean editable) {
|
||||
super.onTaskListItemClicked(taskId, editable);
|
||||
String uuid = taskDao.uuidFromLocalId(taskId);
|
||||
if (!TextUtils.isEmpty(uuid)) {
|
||||
TodorooCursor<WaitingOnMe> womCursor = waitingOnMeDao.query(Query.select(WaitingOnMe.ID)
|
||||
.where(Criterion.and(WaitingOnMe.TASK_UUID.eq(uuid), WaitingOnMe.READ_AT.eq(0))));
|
||||
try {
|
||||
if (womCursor.getCount() > 0) {
|
||||
womCursor.moveToFirst();
|
||||
WaitingOnMe wom = new WaitingOnMe(womCursor);
|
||||
wom.setValue(WaitingOnMe.READ_AT, DateUtilities.now());
|
||||
waitingOnMeDao.saveExisting(wom);
|
||||
}
|
||||
} finally {
|
||||
womCursor.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue