diff --git a/astrid/plugin-src/com/todoroo/astrid/people/PeopleFilterMode.java b/astrid/plugin-src/com/todoroo/astrid/people/PeopleFilterMode.java index 47668e7a4..5adb54cd1 100644 --- a/astrid/plugin-src/com/todoroo/astrid/people/PeopleFilterMode.java +++ b/astrid/plugin-src/com/todoroo/astrid/people/PeopleFilterMode.java @@ -59,6 +59,6 @@ public class PeopleFilterMode implements FilterModeSpec { @Override public boolean showComments() { - return true; + return false; } } diff --git a/astrid/plugin-src/com/todoroo/astrid/tags/reusable/FeaturedTaskListFragment.java b/astrid/plugin-src/com/todoroo/astrid/tags/reusable/FeaturedTaskListFragment.java index d7966bfda..df09acb0f 100644 --- a/astrid/plugin-src/com/todoroo/astrid/tags/reusable/FeaturedTaskListFragment.java +++ b/astrid/plugin-src/com/todoroo/astrid/tags/reusable/FeaturedTaskListFragment.java @@ -20,11 +20,16 @@ import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.sql.Query; import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.astrid.actfm.TagViewFragment; +import com.todoroo.astrid.activity.TaskListActivity; import com.todoroo.astrid.adapter.TaskAdapter; +import com.todoroo.astrid.api.Filter; +import com.todoroo.astrid.dao.TaskDao.TaskCriteria; import com.todoroo.astrid.data.TagData; import com.todoroo.astrid.data.Task; import com.todoroo.astrid.helper.AsyncImageView; import com.todoroo.astrid.service.TagDataService; +import com.todoroo.astrid.tags.TagFilterExposer; +import com.todoroo.astrid.tags.TagService.Tag; import com.todoroo.astrid.utility.Flags; public class FeaturedTaskListFragment extends TagViewFragment { @@ -134,7 +139,7 @@ public class FeaturedTaskListFragment extends TagViewFragment { new Thread(new Runnable() { @Override public void run() { - TodorooCursor tasks = taskService.fetchFiltered(taskAdapter.getQuery(), null, Task.PROPERTIES); + final TodorooCursor tasks = taskService.fetchFiltered(taskAdapter.getQuery(), null, Task.PROPERTIES); try { Task t = new Task(); for (tasks.moveToFirst(); !tasks.isAfterLast(); tasks.moveToNext()) { @@ -142,13 +147,28 @@ public class FeaturedTaskListFragment extends TagViewFragment { taskService.cloneReusableTask(t, localName, finalRemoteId); } - Activity activity = getActivity(); + final Activity activity = getActivity(); if (activity != null) { DialogUtilities.dismissDialog(activity, pd); DialogUtilities.okDialog(activity, getString(R.string.actfm_feat_list_clone_success), null); } Flags.set(Flags.REFRESH); + if (activity instanceof TaskListActivity) { + activity.runOnUiThread(new Runnable() { + @Override + public void run() { + TaskListActivity tla = (TaskListActivity) activity; + tla.setFilterMode(TaskListActivity.FILTER_MODE_NORMAL); + + Filter clonedFilter; + Tag tag = new Tag(localName, tasks.getCount(), finalRemoteId); + clonedFilter = TagFilterExposer.filterFromTag(activity, tag, TaskCriteria.activeAndVisible()); + + tla.onFilterItemClicked(clonedFilter); + } + }); + } } finally { tasks.close(); } diff --git a/astrid/src/com/todoroo/astrid/activity/AstridActivity.java b/astrid/src/com/todoroo/astrid/activity/AstridActivity.java index 8d68c20c5..816f1a540 100644 --- a/astrid/src/com/todoroo/astrid/activity/AstridActivity.java +++ b/astrid/src/com/todoroo/astrid/activity/AstridActivity.java @@ -303,6 +303,7 @@ public class AstridActivity extends FragmentActivity final FragmentManager fm = getSupportFragmentManager(); Fragment fragment = fm.findFragmentByTag(tag); if(fragment == null || replace) { + Fragment oldFragment = fragment; try { fragment = cls.newInstance(); } catch (InstantiationException e) { @@ -312,8 +313,11 @@ public class AstridActivity extends FragmentActivity } FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); - if (container == 0) + if (container == 0) { + if (oldFragment != null && replace) + ft.remove(oldFragment); ft.add(fragment, tag); + } else ft.replace(container, fragment, tag); ft.commit(); diff --git a/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java b/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java index b8ab8eb5e..06b9b3b29 100644 --- a/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java @@ -78,9 +78,9 @@ public class TaskListActivity extends AstridActivity implements MainMenuListener private static final String FILTER_MODE = "filterMode"; //$NON-NLS-1$ - private static final int FILTER_MODE_NORMAL = 0; - private static final int FILTER_MODE_PEOPLE = 1; - private static final int FILTER_MODE_FEATURED = 2; + public static final int FILTER_MODE_NORMAL = 0; + public static final int FILTER_MODE_PEOPLE = 1; + public static final int FILTER_MODE_FEATURED = 2; @Autowired private ABTestEventReportingService abTestEventReportingService; @@ -703,9 +703,10 @@ public class TaskListActivity extends AstridActivity implements MainMenuListener tlf.handleOptionsMenuItemSelected(item, customIntent); } - private void setFilterMode(int mode) { + public void setFilterMode(int mode) { filterMode = mode; updateFilterModeSpec(mode); + getIntent().putExtra(FILTER_MODE, mode); refreshMainMenu(); if (fragmentLayout == LAYOUT_SINGLE) { @@ -728,7 +729,6 @@ public class TaskListActivity extends AstridActivity implements MainMenuListener onFilterItemClicked(getDefaultFilter()); if (fragmentLayout == LAYOUT_SINGLE) listsNav.performClick(); - getIntent().putExtra(FILTER_MODE, mode); } public void refreshMainMenu() {