From d03651c8013619ce058e5ab75738478e57fc1489 Mon Sep 17 00:00:00 2001 From: Tim Su Date: Tue, 13 Jul 2010 01:11:03 -0700 Subject: [PATCH] Response to user feedback: Moved edit activity stuff around, tweaked background gradient, updated filters to be more useful. --- astrid/AndroidManifest.xml | 14 --- .../astrid/core/CoreFilterExposer.java | 75 ++++++++++++--- .../astrid/core/ExtendedFilterExposer.java | 89 ------------------ .../todoroo/astrid/core/ExtendedPlugin.java | 24 ----- astrid/res/drawable/background_gradient.xml | 2 +- astrid/res/drawable/tango_check.png | Bin 0 -> 937 bytes astrid/res/layout/task_edit_activity.xml | 24 ++--- astrid/res/values/strings-3.0.xml | 12 +-- astrid/res/values/strings-filters.xml | 29 ++++-- .../todoroo/astrid/adapter/FilterAdapter.java | 6 +- .../todoroo/astrid/adapter/TaskAdapter.java | 6 ++ 11 files changed, 112 insertions(+), 169 deletions(-) delete mode 100644 astrid/plugin-src/com/todoroo/astrid/core/ExtendedFilterExposer.java delete mode 100644 astrid/plugin-src/com/todoroo/astrid/core/ExtendedPlugin.java create mode 100644 astrid/res/drawable/tango_check.png diff --git a/astrid/AndroidManifest.xml b/astrid/AndroidManifest.xml index 6ee64e42b..b53fad1e9 100644 --- a/astrid/AndroidManifest.xml +++ b/astrid/AndroidManifest.xml @@ -165,20 +165,6 @@ - - - - - - - - - - - - - - diff --git a/astrid/plugin-src/com/todoroo/astrid/core/CoreFilterExposer.java b/astrid/plugin-src/com/todoroo/astrid/core/CoreFilterExposer.java index 2c26828b0..39d793148 100644 --- a/astrid/plugin-src/com/todoroo/astrid/core/CoreFilterExposer.java +++ b/astrid/plugin-src/com/todoroo/astrid/core/CoreFilterExposer.java @@ -4,6 +4,7 @@ package com.todoroo.astrid.core; import android.content.BroadcastReceiver; +import android.content.ContentValues; import android.content.Context; import android.content.Intent; import android.content.res.Resources; @@ -17,6 +18,7 @@ import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.astrid.activity.FilterListActivity; import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.api.Filter; +import com.todoroo.astrid.api.FilterCategory; import com.todoroo.astrid.api.FilterListItem; import com.todoroo.astrid.api.SearchFilter; import com.todoroo.astrid.dao.TaskDao.TaskCriteria; @@ -34,25 +36,72 @@ public final class CoreFilterExposer extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { Resources r = context.getResources(); - // build filters + // core filters Filter inbox = buildInboxFilter(r); - Filter all = new Filter(CorePlugin.IDENTIFIER, r.getString(R.string.BFE_All), - r.getString(R.string.BFE_All), - new QueryTemplate().where(Criterion.not(TaskCriteria.isDeleted())). - orderBy(Order.desc(Task.MODIFICATION_DATE)), - null); - all.listingIcon = ((BitmapDrawable)r.getDrawable(R.drawable.tango_files)).getBitmap(); - SearchFilter searchFilter = new SearchFilter(CorePlugin.IDENTIFIER, - "Search"); + r.getString(R.string.BFE_Search)); searchFilter.listingIcon = ((BitmapDrawable)r.getDrawable(R.drawable.tango_search)).getBitmap(); + // extended + FilterCategory extended = new FilterCategory(CorePlugin.IDENTIFIER, + r.getString(R.string.BFE_Extended), new Filter[5]); + + Filter alphabetical = new Filter(CorePlugin.IDENTIFIER, + r.getString(R.string.BFE_Alphabetical), + r.getString(R.string.BFE_Alphabetical), + new QueryTemplate().where(Criterion.and(TaskCriteria.isActive(), + TaskCriteria.isVisible(DateUtilities.now()))). + orderBy(Order.asc(Task.TITLE)), + null); + alphabetical.listingIcon = ((BitmapDrawable)r.getDrawable(R.drawable.tango_alpha)).getBitmap(); + + Filter recent = new Filter(CorePlugin.IDENTIFIER, + r.getString(R.string.BFE_Recent), + r.getString(R.string.BFE_Recent), + new QueryTemplate().orderBy(Order.desc(Task.MODIFICATION_DATE)).limit(15), + null); + recent.listingIcon = ((BitmapDrawable)r.getDrawable(R.drawable.tango_new)).getBitmap(); + + ContentValues hiddenValues = new ContentValues(); + hiddenValues.put(Task.HIDE_UNTIL.name, DateUtilities.now() + DateUtilities.ONE_DAY); + Filter hidden = new Filter(CorePlugin.IDENTIFIER, + r.getString(R.string.BFE_Hidden), + r.getString(R.string.BFE_Hidden), + new QueryTemplate().where(Criterion.and(TaskCriteria.isActive(), + Criterion.not(TaskCriteria.isVisible(DateUtilities.now())))). + orderBy(Order.asc(Task.HIDE_UNTIL)), + hiddenValues); + hidden.listingIcon = ((BitmapDrawable)r.getDrawable(R.drawable.tango_clouds)).getBitmap(); + + ContentValues completedValues = new ContentValues(); + hiddenValues.put(Task.COMPLETION_DATE.name, DateUtilities.now()); + Filter completed = new Filter(CorePlugin.IDENTIFIER, r.getString(R.string.BFE_Completed), + r.getString(R.string.BFE_Completed), + new QueryTemplate().where(Criterion.and(TaskCriteria.completedBefore(DateUtilities.now()), + Criterion.not(TaskCriteria.isDeleted()))). orderBy(Order.desc(Task.COMPLETION_DATE)), + completedValues); + completed.listingIcon = ((BitmapDrawable)r.getDrawable(R.drawable.tango_check)).getBitmap(); + + Filter deleted = new Filter(CorePlugin.IDENTIFIER, + r.getString(R.string.BFE_Deleted), + r.getString(R.string.BFE_Deleted), + new QueryTemplate().where(TaskCriteria.isDeleted()). + orderBy(Order.desc(Task.DELETION_DATE)), + 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; + // transmit filter list FilterListItem[] list = new FilterListItem[3]; list[0] = inbox; - list[1] = all; - list[2] = searchFilter; + list[1] = searchFilter; + list[2] = extended; Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_SEND_FILTERS); broadcastIntent.putExtra(AstridApiConstants.EXTRAS_RESPONSE, list); context.sendBroadcast(broadcastIntent, AstridApiConstants.PERMISSION_READ); @@ -64,8 +113,8 @@ public final class CoreFilterExposer extends BroadcastReceiver { */ @SuppressWarnings("nls") public static Filter buildInboxFilter(Resources r) { - Filter inbox = new Filter(CorePlugin.IDENTIFIER, r.getString(R.string.BFE_Inbox), - r.getString(R.string.BFE_Inbox_title), + Filter inbox = new Filter(CorePlugin.IDENTIFIER, r.getString(R.string.BFE_Active), + r.getString(R.string.BFE_Active_title), new QueryTemplate().where(Criterion.and(TaskCriteria.isActive(), TaskCriteria.isVisible(DateUtilities.now()))), null); diff --git a/astrid/plugin-src/com/todoroo/astrid/core/ExtendedFilterExposer.java b/astrid/plugin-src/com/todoroo/astrid/core/ExtendedFilterExposer.java deleted file mode 100644 index 5b7600f24..000000000 --- a/astrid/plugin-src/com/todoroo/astrid/core/ExtendedFilterExposer.java +++ /dev/null @@ -1,89 +0,0 @@ -/** - * See the file "LICENSE" for the full license governing this code. - */ -package com.todoroo.astrid.core; - -import android.content.BroadcastReceiver; -import android.content.ContentValues; -import android.content.Context; -import android.content.Intent; -import android.content.res.Resources; -import android.graphics.drawable.BitmapDrawable; - -import com.timsu.astrid.R; -import com.todoroo.andlib.sql.Criterion; -import com.todoroo.andlib.sql.Order; -import com.todoroo.andlib.sql.QueryTemplate; -import com.todoroo.andlib.utility.DateUtilities; -import com.todoroo.astrid.activity.FilterListActivity; -import com.todoroo.astrid.api.AstridApiConstants; -import com.todoroo.astrid.api.Filter; -import com.todoroo.astrid.api.FilterListHeader; -import com.todoroo.astrid.api.FilterListItem; -import com.todoroo.astrid.dao.TaskDao.TaskCriteria; -import com.todoroo.astrid.model.Task; - -/** - * Exposes Astrid's built in filters to the {@link FilterListActivity} - * - * @author Tim Su - * - */ -public final class ExtendedFilterExposer extends BroadcastReceiver { - - @Override - public void onReceive(Context context, Intent intent) { - Resources r = context.getResources(); - - // build filters - FilterListHeader header = new FilterListHeader(ExtendedPlugin.IDENTIFIER, - "Extended"); - - Filter alphabetical = new Filter(ExtendedPlugin.IDENTIFIER, - "Alphabetical", - "Alphabetical", - new QueryTemplate().where(Criterion.and(TaskCriteria.isActive(), - TaskCriteria.isVisible(DateUtilities.now()))). - orderBy(Order.asc(Task.TITLE)), - null); - alphabetical.listingIcon = ((BitmapDrawable)r.getDrawable(R.drawable.tango_alpha)).getBitmap(); - - Filter recent = new Filter(ExtendedPlugin.IDENTIFIER, - "Recently Modified", - "Recently Modified", - new QueryTemplate().orderBy(Order.desc(Task.MODIFICATION_DATE)).limit(15), - null); - recent.listingIcon = ((BitmapDrawable)r.getDrawable(R.drawable.tango_new)).getBitmap(); - - ContentValues hiddenValues = new ContentValues(); - hiddenValues.put(Task.HIDE_UNTIL.name, DateUtilities.now() + DateUtilities.ONE_DAY); - Filter hidden = new Filter(ExtendedPlugin.IDENTIFIER, - "Hidden Tasks", - "Hidden Tasks", - new QueryTemplate().where(Criterion.and(TaskCriteria.isActive(), - Criterion.not(TaskCriteria.isVisible(DateUtilities.now())))). - orderBy(Order.asc(Task.HIDE_UNTIL)), - hiddenValues); - hidden.listingIcon = ((BitmapDrawable)r.getDrawable(R.drawable.tango_clouds)).getBitmap(); - - Filter deleted = new Filter(ExtendedPlugin.IDENTIFIER, - "Deleted Tasks", - "Deleted Tasks", - new QueryTemplate().where(TaskCriteria.isDeleted()). - orderBy(Order.desc(Task.DELETION_DATE)), - null); - deleted.listingIcon = ((BitmapDrawable)r.getDrawable(R.drawable.tango_trash)).getBitmap(); - - // transmit filter list - FilterListItem[] list = new FilterListItem[5]; - list[0] = header; - list[1] = alphabetical; - list[2] = recent; - list[3] = hidden; - list[4] = deleted; - Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_SEND_FILTERS); - broadcastIntent.putExtra(AstridApiConstants.EXTRAS_RESPONSE, list); - context.sendBroadcast(broadcastIntent, AstridApiConstants.PERMISSION_READ); - } - -} diff --git a/astrid/plugin-src/com/todoroo/astrid/core/ExtendedPlugin.java b/astrid/plugin-src/com/todoroo/astrid/core/ExtendedPlugin.java deleted file mode 100644 index c012b5dba..000000000 --- a/astrid/plugin-src/com/todoroo/astrid/core/ExtendedPlugin.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.todoroo.astrid.core; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; - -import com.todoroo.astrid.api.Addon; -import com.todoroo.astrid.api.AstridApiConstants; - -public class ExtendedPlugin extends BroadcastReceiver { - - static final String IDENTIFIER = "extended"; - - @Override - public void onReceive(Context context, Intent intent) { - Addon plugin = new Addon(IDENTIFIER, "Extended Filters", "Todoroo", - "Provides extended filters for viewing subsets of your tasks"); - - Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_SEND_ADDONS); - broadcastIntent.putExtra(AstridApiConstants.EXTRAS_ADDON, plugin); - context.sendBroadcast(broadcastIntent, AstridApiConstants.PERMISSION_READ); - } - -} diff --git a/astrid/res/drawable/background_gradient.xml b/astrid/res/drawable/background_gradient.xml index 21ad1b2eb..56efcba45 100644 --- a/astrid/res/drawable/background_gradient.xml +++ b/astrid/res/drawable/background_gradient.xml @@ -3,7 +3,7 @@ android:shape="rectangle"> Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2igY> z2R0iy4c|Bb00SvWL_t(I%e9q3Xk1kkhQD*)eKSsQnsf}fa1mSy8oN=DVvwu^H4DW} z-KV9{bWtPX%7p|fv{@KIV~sGo;zmsuiny6YsHnIILP14BC{~4xV`eg$nfKm3$3OsMkxHe4h#U!OW;7a&N7mNXmbSLG#(=A0W>l-y^_iKOQ{NZA<65#zM>kOv4MJX)z#xYk(aXZO?5brARR4W-0pbqQ%Za0x_Qh-!(e$18z3~D?x^#IXnMX|#5rTxn!DdF# zK;$AKBD{+=v$Q2h8NuCfU&a8p^an24MH-=j!(n2m3`;Sjaj<~vhtA6!H~bgw37#BP zQ}-rs<@*-7!ky+FTJ09jIaHNk;c&2+;LIT+ycoaC{gk;JE%FT0JSC?|NLaCDZvMGO z7BT>mknH`q;e?05s!C!BjaGyC^dh_LQm_IG{%yR(Txg%A+WKe+kcI5OGgg!|q?lRj z+uk>v*?EaS?034>;!#mxSdP3&U|zCbVS<)_WuJ-{U^VP?6X_dokbFX@p; zl0!v=l9dLQ6~H`z_x{%Q_V%e)$6jNxafKb($ul=I6dh_lW`@J%u@N`IrIYitS}lOT z78VwEJwUx)U#it=?@muom%f^K{#cE^*=$m))sl^kjgL1sHy;!;qg*bR=jP_lO-xLj zkK_2^<6KRu`s@1o`e)T@^?JMA{!s?{iHHYI0NrEWpN0P1Hna3^)hWh6j)kp<00000 LNkvXXu0mjfN4dKI literal 0 HcmV?d00001 diff --git a/astrid/res/layout/task_edit_activity.xml b/astrid/res/layout/task_edit_activity.xml index 699810f2b..af3df49b3 100644 --- a/astrid/res/layout/task_edit_activity.xml +++ b/astrid/res/layout/task_edit_activity.xml @@ -55,15 +55,17 @@ android:id="@+id/urgency" android:layout_width="fill_parent" android:layout_height="wrap_content" /> - - + + - @@ -183,17 +185,15 @@ android:layout_height="1dip" android:padding="5dip" android:background="@android:drawable/divider_horizontal_dark" /> - - + + - diff --git a/astrid/res/values/strings-3.0.xml b/astrid/res/values/strings-3.0.xml index 52ac44c60..9c547fe22 100644 --- a/astrid/res/values/strings-3.0.xml +++ b/astrid/res/values/strings-3.0.xml @@ -251,28 +251,28 @@ to the plugin creator for fastest service. Basic - Extra + Advanced Add-ons - What to do? + Title Task Summary - How Important? + Importance - When to Start? + Deadline - Hide Until? + Hide Until - Notes: + Notes Enter Task Notes... diff --git a/astrid/res/values/strings-filters.xml b/astrid/res/values/strings-filters.xml index 7fb0ce1dd..8fcfbd469 100644 --- a/astrid/res/values/strings-filters.xml +++ b/astrid/res/values/strings-filters.xml @@ -4,16 +4,31 @@ - - Inbox + + Active Tasks - - Astrid: Inbox + + Astrid: Home + + + Search + + + More... + + + Alphabetical + + + Recently Modified - Completed + Completed Tasks + + + Hidden Tasks - - All Tasks + + Deleted Tasks diff --git a/astrid/src/com/todoroo/astrid/adapter/FilterAdapter.java b/astrid/src/com/todoroo/astrid/adapter/FilterAdapter.java index 54b6dfcca..7d9578372 100644 --- a/astrid/src/com/todoroo/astrid/adapter/FilterAdapter.java +++ b/astrid/src/com/todoroo/astrid/adapter/FilterAdapter.java @@ -13,9 +13,9 @@ import android.widget.AbsListView; import android.widget.BaseExpandableListAdapter; import android.widget.FrameLayout; import android.widget.ImageView; -import android.widget.ImageView.ScaleType; import android.widget.LinearLayout; import android.widget.TextView; +import android.widget.ImageView.ScaleType; import com.timsu.astrid.R; import com.todoroo.astrid.api.FilterCategory; @@ -135,7 +135,7 @@ public class FilterAdapter extends BaseExpandableListAdapter { textView.setTextAppearance(activity, R.style.TextAppearance_FLA_Category); View view = augmentView(textView, filter); - view.setPadding(60, 2, 0, 2); + view.setPadding(50, 2, 0, 2); FrameLayout.LayoutParams rowLayout = new FrameLayout.LayoutParams( ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); rowLayout.gravity = Gravity.CENTER_VERTICAL; @@ -182,7 +182,7 @@ public class FilterAdapter extends BaseExpandableListAdapter { View view = augmentView(textView, filter); view.setBackgroundDrawable(null); view.setLayoutParams(lp); - view.setPadding(isChild ? 50 : 10, 0, 0, 0); + view.setPadding(isChild ? 40 : 10, 0, 0, 0); return view; } diff --git a/astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java b/astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java index 027a32e3a..f5438c4e4 100644 --- a/astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java +++ b/astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java @@ -228,6 +228,12 @@ public class TaskAdapter extends CursorAdapter { } dueDateView.setText(dateValue); setVisibility(dueDateView); + } else if(task.isCompleted()) { + String dateValue = DateUtilities.getDateFormat(activity).format(task.getValue(Task.COMPLETION_DATE)); + dueDateView.setText(r.getString(R.string.TAd_completed, dateValue)); + dueDateView.setTextAppearance(activity, R.style.TextAppearance_TAd_ItemDetails); + setVisibility(dueDateView); + } else { dueDateView.setVisibility(View.GONE); }