From 4c6d2edf48525e26fb11b3c36538cdbf563c75b1 Mon Sep 17 00:00:00 2001 From: Tim Su Date: Sun, 25 Jul 2010 16:36:07 -0700 Subject: [PATCH] Added by due date and importance filter, also fixed launch behavior of FLA --- astrid/AndroidManifest.xml | 2 + astrid/astrid.launch | 2 +- .../astrid/core/CoreFilterExposer.java | 54 +++++++++++++----- astrid/res/drawable/tango_warning.png | Bin 0 -> 954 bytes astrid/res/values/strings-filters.xml | 12 +++- 5 files changed, 52 insertions(+), 18 deletions(-) create mode 100644 astrid/res/drawable/tango_warning.png 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 0000000000000000000000000000000000000000..45b64a798ef3424ee3ed6af3e3abbcf9fbaeee07 GIT binary patch literal 954 zcmV;r14aCaP)uiL$5uuQc zi$WH))CSxL{R_J8s!$0u-4vuCbuod^p&AR)v?yq(24ZUxGdh{;VkV)9on&ec9Ny*L zcRu%f4~H*WYdXo(V08Mg)*3|z;fstPgXL+%xaW)XcT!_^0CnGhAKxAw4Xo5^;l|CI zH-Mh~>h@J^z*M-euhH)~j3$%Hw(V|T zf8B!kRjoH)NwEc=AIM~M@bP2J`J+@UT6VRHH!}ma z&FYymJV~ed;rjKbx0|Y;{wKw6!S}DlVk)@2OrTuGNG37jaqLowxCn<_*EHahwvyY- zZ1yvyp3R*+spnHE{adxFJS5PD6LcbNnWJ*EcYrtfeJ_ z=g*_UVO-b6^E^~n7r}`My4Kb>5{)VgraNkdFOuIhjQ;%L!-n42z?ql;z;#_**F{7K zo;}O+l@-Ru$IU^JkA0CN`-1Z@lN}l|jQjTqUbui*79xV@d4$7ZLveUbN- zWgQqicn~9#*#WKB>lBMc%H{GlR4GO1)F}vu$@TUsWmzd-nWUqo{7^|7NzE$-gM zotoMKFin%5o*oj3#P;6SdFUZuiGBRT4;G5m0K_@);6X2UZ<6TR!R%{YzwTl cuK!#83wh2#=*+j5WB>pF07*qoM6N<$f-^77nE(I) literal 0 HcmV?d00001 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