From 252beae2efe027dd42589d28e3aebbd76ac860d8 Mon Sep 17 00:00:00 2001 From: Tim Su Date: Thu, 26 Aug 2010 14:57:29 -0700 Subject: [PATCH] Show recently completed tasks. Unfortunately, completed tasks will still jump to the bottom of the list due to sort --- .../src/com/todoroo/astrid/widget/PowerWidget.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/astrid/src/com/todoroo/astrid/widget/PowerWidget.java b/astrid/src/com/todoroo/astrid/widget/PowerWidget.java index 796942e54..f5fceb3ee 100644 --- a/astrid/src/com/todoroo/astrid/widget/PowerWidget.java +++ b/astrid/src/com/todoroo/astrid/widget/PowerWidget.java @@ -8,6 +8,7 @@ import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.graphics.Color; +import android.graphics.Paint; import android.os.IBinder; import android.text.format.DateUtils; import android.util.Log; @@ -19,6 +20,7 @@ import com.todoroo.andlib.data.TodorooCursor; import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.service.DependencyInjectionService; +import com.todoroo.andlib.sql.Criterion; import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.astrid.activity.ShortcutActivity; @@ -279,9 +281,12 @@ public class PowerWidget extends AppWidgetProvider { int sort = Preferences.getInt(SortSelectionActivity.PREF_SORT_SORT, 0); String query = SortSelectionActivity.adjustQueryForFlagsAndSort( filter.sqlQuery, flags, sort); + query = query.replace(Task.COMPLETION_DATE.eq(0).toString(), Criterion.or(Task.COMPLETION_DATE.eq(0), + Task.COMPLETION_DATE.gt(DateUtilities.now() - 60000L)).toString()); database.openForReading(); - cursor = taskService.fetchFiltered(query, null, Task.ID, Task.TITLE, Task.DUE_DATE, Task.IMPORTANCE); + cursor = taskService.fetchFiltered(query, null, Task.ID, Task.TITLE, + Task.DUE_DATE, Task.IMPORTANCE, Task.COMPLETION_DATE); // adjust bounds of scrolling if (scrollOffset < 0){ @@ -298,7 +303,10 @@ public class PowerWidget extends AppWidgetProvider { String textContent = ""; int titleColor = textColor; int dueString = R.string.PPW_due; - if(task.hasDueDate() && task.getValue(Task.DUE_DATE) < DateUtilities.now()){ + if(task.isCompleted()) { + titleColor = context.getResources().getColor(R.color.task_list_done); + dueString = 0; + } else if(task.hasDueDate() && task.getValue(Task.DUE_DATE) < DateUtilities.now()){ titleColor = overdueColor; dueString = R.string.PPW_past_due; } @@ -333,6 +341,8 @@ public class PowerWidget extends AppWidgetProvider { // set click listener for checkbox taskLine.setOnClickPendingIntent(R.id.checkbox, pMarkCompleteIntent); // set task title + if(task.isCompleted()) + taskLine.setInt(R.id.task_title, "setPaintFlags", Paint.STRIKE_THRU_TEXT_FLAG); taskLine.setTextViewText(R.id.task_title, textContent); taskLine.setTextColor(R.id.task_title, titleColor); // set due date