From 573e9167bd909cd5b9dd425b99b25871f49ce8fa Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Mon, 29 Aug 2011 11:48:32 -0700 Subject: [PATCH] Task counts now update correctly in filter list view --- .../com/todoroo/astrid/api/FilterWithCustomIntent.java | 6 +++--- .../com/todoroo/astrid/gtasks/GtasksListAdder.java | 2 +- .../com/todoroo/astrid/tags/TagFilterExposer.java | 10 ++++++---- .../todoroo/astrid/activity/FilterListActivity.java | 8 ++++---- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/api/src/com/todoroo/astrid/api/FilterWithCustomIntent.java b/api/src/com/todoroo/astrid/api/FilterWithCustomIntent.java index 9c28a75d4..afdd78cec 100644 --- a/api/src/com/todoroo/astrid/api/FilterWithCustomIntent.java +++ b/api/src/com/todoroo/astrid/api/FilterWithCustomIntent.java @@ -1,9 +1,9 @@ package com.todoroo.astrid.api; +import android.app.Activity; import android.content.ComponentName; import android.content.ContentValues; -import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.os.Parcel; @@ -37,13 +37,13 @@ public class FilterWithCustomIntent extends Filter { super(listingTitle, title, sqlQuery, valuesForNewTasks); } - public void start(Context context) { + public void start(Activity activity, int resultCode) { Intent intent = new Intent(); intent.putExtra("filter", this); //$NON-NLS-1$ intent.setComponent(customTaskList); if(customExtras != null) intent.putExtras(customExtras); - context.startActivity(intent); + activity.startActivityForResult(intent, resultCode); } // --- parcelable diff --git a/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksListAdder.java b/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksListAdder.java index d56eb2444..2c3517536 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksListAdder.java +++ b/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksListAdder.java @@ -58,7 +58,7 @@ public class GtasksListAdder extends Activity { StoreObject newList = gtasksListService.addNewList(service.createGtaskList(title)); if (newList != null) { FilterWithCustomIntent listFilter = (FilterWithCustomIntent) GtasksFilterExposer.filterFromList(activity, newList); - listFilter.start(activity); + listFilter.start(activity, 0); } } catch (IOException e) { diff --git a/astrid/plugin-src/com/todoroo/astrid/tags/TagFilterExposer.java b/astrid/plugin-src/com/todoroo/astrid/tags/TagFilterExposer.java index 3bbf03c2b..20ae96e87 100644 --- a/astrid/plugin-src/com/todoroo/astrid/tags/TagFilterExposer.java +++ b/astrid/plugin-src/com/todoroo/astrid/tags/TagFilterExposer.java @@ -71,18 +71,20 @@ public class TagFilterExposer extends BroadcastReceiver { /** Create filter from new tag object */ @SuppressWarnings("nls") public static FilterWithCustomIntent filterFromTag(Context context, Tag tag, Criterion criterion) { - String listTitle = tag.tag + " (" + tag.count + ")"; String title = context.getString(R.string.tag_FEx_name, tag.tag); QueryTemplate tagTemplate = tag.queryTemplate(criterion); ContentValues contentValues = new ContentValues(); contentValues.put(Metadata.KEY.name, TagService.KEY); contentValues.put(TagService.TAG.name, tag.tag); - FilterWithUpdate filter = new FilterWithUpdate(listTitle, + FilterWithUpdate filter = new FilterWithUpdate(tag.tag, title, tagTemplate, contentValues); - if(tag.count == 0) - filter.color = Color.GRAY; + if(tag.remoteId > 0) { + filter.listingTitle += " (" + tag.count + ")"; + if(tag.count == 0) + filter.color = Color.GRAY; + } filter.contextMenuLabels = new String[] { context.getString(R.string.tag_cm_rename), diff --git a/astrid/src/com/todoroo/astrid/activity/FilterListActivity.java b/astrid/src/com/todoroo/astrid/activity/FilterListActivity.java index be5ecf553..79408c35f 100644 --- a/astrid/src/com/todoroo/astrid/activity/FilterListActivity.java +++ b/astrid/src/com/todoroo/astrid/activity/FilterListActivity.java @@ -79,6 +79,7 @@ public class FilterListActivity extends ExpandableListActivity { private static final int CONTEXT_MENU_INTENT = Menu.FIRST + 4; private static final int REQUEST_CUSTOM_INTENT = 1; + private static final int REQUEST_VIEW_TASKS = 2; // --- instance variables @@ -231,11 +232,11 @@ public class FilterListActivity extends ExpandableListActivity { Filter filter = (Filter)item; if(filter instanceof FilterWithCustomIntent) { FilterWithCustomIntent customFilter = ((FilterWithCustomIntent)filter); - customFilter.start(this); + customFilter.start(this, REQUEST_VIEW_TASKS); } else { Intent intent = new Intent(FilterListActivity.this, TaskListActivity.class); intent.putExtra(TaskListActivity.TOKEN_FILTER, filter); - startActivity(intent); + startActivityForResult(intent, REQUEST_VIEW_TASKS); } AndroidUtilities.callApiMethod(5, this, "overridePendingTransition", //$NON-NLS-1$ new Class[] { Integer.TYPE, Integer.TYPE }, @@ -479,9 +480,8 @@ public class FilterListActivity extends ExpandableListActivity { @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { - if(resultCode != RESULT_CANCELED) - adapter.clear(); // will get lists automatically + adapter.clear(); super.onActivityResult(requestCode, resultCode, data); }