diff --git a/astrid/AndroidManifest.xml b/astrid/AndroidManifest.xml
index 69598a175..363f8ed20 100644
--- a/astrid/AndroidManifest.xml
+++ b/astrid/AndroidManifest.xml
@@ -58,6 +58,7 @@
@@ -78,6 +79,7 @@
diff --git a/astrid/astrid.launch b/astrid/astrid.launch
index 6b1f50845..bcb2226e7 100644
--- a/astrid/astrid.launch
+++ b/astrid/astrid.launch
@@ -6,7 +6,7 @@
-
+
diff --git a/astrid/plugin-src/com/todoroo/astrid/core/CoreFilterExposer.java b/astrid/plugin-src/com/todoroo/astrid/core/CoreFilterExposer.java
index 0521feef3..e75b4d4f6 100644
--- a/astrid/plugin-src/com/todoroo/astrid/core/CoreFilterExposer.java
+++ b/astrid/plugin-src/com/todoroo/astrid/core/CoreFilterExposer.java
@@ -12,6 +12,7 @@ import android.graphics.drawable.BitmapDrawable;
import com.timsu.astrid.R;
import com.todoroo.andlib.sql.Criterion;
+import com.todoroo.andlib.sql.Functions;
import com.todoroo.andlib.sql.Order;
import com.todoroo.andlib.sql.QueryTemplate;
import com.todoroo.andlib.utility.DateUtilities;
@@ -44,16 +45,9 @@ public final class CoreFilterExposer extends BroadcastReceiver {
searchFilter.listingIcon = ((BitmapDrawable)r.getDrawable(R.drawable.tango_search)).getBitmap();
// extended
- FilterCategory extended = new FilterCategory(r.getString(R.string.BFE_Extended),
- new Filter[5]);
- Filter alphabetical = new Filter(r.getString(R.string.BFE_Alphabetical),
- r.getString(R.string.BFE_Alphabetical),
- new QueryTemplate().where(Criterion.and(TaskCriteria.isActive(),
- TaskCriteria.isVisible())).
- orderBy(Order.asc(Task.TITLE)),
- null);
- alphabetical.listingIcon = ((BitmapDrawable)r.getDrawable(R.drawable.tango_alpha)).getBitmap();
+ FilterCategory extended = new FilterCategory(r.getString(R.string.BFE_Extended),
+ new Filter[7]);
Filter recent = new Filter(r.getString(R.string.BFE_Recent),
r.getString(R.string.BFE_Recent),
@@ -86,11 +80,43 @@ public final class CoreFilterExposer extends BroadcastReceiver {
null);
deleted.listingIcon = ((BitmapDrawable)r.getDrawable(R.drawable.tango_trash)).getBitmap();
- extended.children[0] = alphabetical;
- extended.children[1] = recent;
- extended.children[2] = hidden;
- extended.children[3] = completed;
- extended.children[4] = deleted;
+ // sorting filters
+
+ Filter alphabetical = new Filter(r.getString(R.string.BFE_Alphabetical),
+ r.getString(R.string.BFE_Alphabetical),
+ new QueryTemplate().where(Criterion.and(TaskCriteria.isActive(),
+ TaskCriteria.isVisible())).
+ orderBy(Order.asc(Task.TITLE)),
+ null);
+ alphabetical.listingIcon = ((BitmapDrawable)r.getDrawable(R.drawable.tango_alpha)).getBitmap();
+
+ Filter dueDate = new Filter(r.getString(R.string.BFE_DueDate),
+ r.getString(R.string.BFE_DueDate),
+ new QueryTemplate().where(Criterion.and(TaskCriteria.isActive(),
+ TaskCriteria.isVisible())).
+ orderBy(Order.asc(Functions.caseStatement(Task.DUE_DATE.eq(0),
+ Long.MAX_VALUE, Task.DUE_DATE) + "+" + Task.IMPORTANCE)), //$NON-NLS-1$
+ null);
+ dueDate.listingIcon = ((BitmapDrawable)r.getDrawable(R.drawable.tango_calendar)).getBitmap();
+
+ Filter importance = new Filter(r.getString(R.string.BFE_Importance),
+ r.getString(R.string.BFE_Importance),
+ new QueryTemplate().where(Criterion.and(TaskCriteria.isActive(),
+ TaskCriteria.isVisible())).
+ orderBy(Order.asc(Task.IMPORTANCE + "*" + (2*DateUtilities.now()) + //$NON-NLS-1$
+ "+" + Functions.caseStatement(Task.DUE_DATE.eq(0), //$NON-NLS-1$
+ Functions.now() + "+" + DateUtilities.ONE_WEEK, //$NON-NLS-1$
+ Task.DUE_DATE))),
+ null);
+ importance.listingIcon = ((BitmapDrawable)r.getDrawable(R.drawable.tango_warning)).getBitmap();
+
+ extended.children[0] = recent;
+ extended.children[1] = hidden;
+ extended.children[2] = completed;
+ extended.children[3] = deleted;
+ extended.children[4] = alphabetical;
+ extended.children[5] = dueDate;
+ extended.children[6] = importance;
// transmit filter list
FilterListItem[] list = new FilterListItem[3];
diff --git a/astrid/res/drawable/tango_warning.png b/astrid/res/drawable/tango_warning.png
new file mode 100644
index 000000000..45b64a798
Binary files /dev/null and b/astrid/res/drawable/tango_warning.png differ
diff --git a/astrid/res/values/strings-filters.xml b/astrid/res/values/strings-filters.xml
index 77f5a901d..04d0712f7 100644
--- a/astrid/res/values/strings-filters.xml
+++ b/astrid/res/values/strings-filters.xml
@@ -16,9 +16,6 @@
More...
-
- Alphabetical
-
Recently Modified
@@ -28,6 +25,15 @@
Hidden Tasks
+
+ By Title
+
+
+ By Due Date
+
+
+ By Importance
+
Deleted Tasks