From 2cdf3f9f62b71fd23ff77d0ca69af079f4d572db Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Fri, 20 Jan 2012 14:37:44 -0800 Subject: [PATCH] Fixed a bunch of bugs with behavior when creating new lists --- .../astrid/actfm/TagSettingsActivity.java | 9 ++---- .../todoroo/astrid/actfm/TagViewActivity.java | 8 +++-- .../astrid/activity/FilterListActivity.java | 16 ++++------ .../activity/TaskListWrapperActivity.java | 32 +++++++++++++++---- .../todoroo/astrid/adapter/FilterAdapter.java | 4 --- 5 files changed, 40 insertions(+), 29 deletions(-) diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/TagSettingsActivity.java b/astrid/plugin-src/com/todoroo/astrid/actfm/TagSettingsActivity.java index de16bda57..e6db19bfb 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/TagSettingsActivity.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/TagSettingsActivity.java @@ -49,6 +49,8 @@ import com.todoroo.astrid.welcome.HelpInfoPopover; public class TagSettingsActivity extends FragmentActivity { + public static final String TOKEN_NEW_FILTER = "newFilter"; + private static final int MENU_SAVE_ID = R.string.TEA_menu_save; private static final int MENU_DISCARD_ID = R.string.TEA_menu_discard; @@ -210,16 +212,11 @@ public class TagSettingsActivity extends FragmentActivity { Flags.set(Flags.ACTFM_SUPPRESS_SYNC); tagDataService.save(tagData); - final String name = newName; final Runnable loadTag = new Runnable() { @Override public void run() { - Intent intent = new Intent(TagSettingsActivity.this, TagViewActivity.class); - intent.putExtra(TagViewActivity.EXTRA_TAG_NAME, name); - intent.putExtra(TagViewActivity.TOKEN_FILTER, - TagFilterExposer.filterFromTagData(TagSettingsActivity.this, tagData)); + setResult(RESULT_OK, new Intent().putExtra(TOKEN_NEW_FILTER, TagFilterExposer.filterFromTagData(TagSettingsActivity.this, tagData))); finish(); - startActivity(intent); } }; diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/TagViewActivity.java b/astrid/plugin-src/com/todoroo/astrid/actfm/TagViewActivity.java index 5bc01f50f..5a2de9e5e 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/TagViewActivity.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/TagViewActivity.java @@ -241,9 +241,11 @@ public class TagViewActivity extends TaskListActivity { @Override protected void initiateAutomaticSync() { - long lastAutoSync = Preferences.getLong(LAST_FETCH_KEY + tagData.getId(), 0); - if(DateUtilities.now() - lastAutoSync > DateUtilities.ONE_HOUR) - refreshData(false); + if (tagData != null) { + long lastAutoSync = Preferences.getLong(LAST_FETCH_KEY + tagData.getId(), 0); + if(DateUtilities.now() - lastAutoSync > DateUtilities.ONE_HOUR) + refreshData(false); + } } /** refresh the list with latest data from the web */ diff --git a/astrid/src/com/todoroo/astrid/activity/FilterListActivity.java b/astrid/src/com/todoroo/astrid/activity/FilterListActivity.java index 67857a9be..d550f448e 100644 --- a/astrid/src/com/todoroo/astrid/activity/FilterListActivity.java +++ b/astrid/src/com/todoroo/astrid/activity/FilterListActivity.java @@ -87,6 +87,7 @@ public class FilterListActivity extends ListFragment { private static final int REQUEST_CUSTOM_INTENT = 1; static final int REQUEST_VIEW_TASKS = 2; public static final int REQUEST_NEW_BUTTON = 3; + public static final int REQUEST_NEW_LIST = 4; // --- instance variables @@ -174,7 +175,7 @@ public class FilterListActivity extends ListFragment { @Override public void onClick(View v) { Intent intent = TagsPlugin.newTagDialog(getActivity()); - startActivity(intent); + getActivity().startActivityForResult(intent, REQUEST_NEW_LIST); AndroidUtilities.callOverridePendingTransition(getActivity(), R.anim.slide_left_in, R.anim.slide_left_out); } }); @@ -487,13 +488,9 @@ public class FilterListActivity extends ListFragment { .show().setOwnerActivity(getActivity()); } - @Override - public void onActivityResult(int requestCode, int resultCode, Intent data) { - if(resultCode != Activity.RESULT_CANCELED) - // will get lists automatically - adapter.clear(); - - super.onActivityResult(requestCode, resultCode, data); + public void refresh() { + adapter.clear(); + adapter.getLists(); } /** @@ -511,8 +508,7 @@ public class FilterListActivity extends ListFragment { getActivity().runOnUiThread(new Runnable() { @Override public void run() { - adapter.clear(); - adapter.getLists(); + refresh(); } }); } diff --git a/astrid/src/com/todoroo/astrid/activity/TaskListWrapperActivity.java b/astrid/src/com/todoroo/astrid/activity/TaskListWrapperActivity.java index cbd502772..a334fc593 100644 --- a/astrid/src/com/todoroo/astrid/activity/TaskListWrapperActivity.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskListWrapperActivity.java @@ -1,5 +1,7 @@ package com.todoroo.astrid.activity; +import android.app.Activity; +import android.content.Intent; import android.os.Bundle; import android.support.v4.app.ActionBar; import android.view.View; @@ -10,6 +12,7 @@ import android.widget.TextView; import com.timsu.astrid.R; import com.todoroo.andlib.utility.AndroidUtilities; +import com.todoroo.astrid.actfm.TagSettingsActivity; import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.FilterListItem; import com.todoroo.astrid.service.ThemeService; @@ -44,7 +47,7 @@ public class TaskListWrapperActivity extends AstridWrapperActivity { actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); actionBar.setCustomView(R.layout.header_nav_views); - listsNav = actionBar.getCustomView().findViewById(R.id.lists_nav); + listsNav = actionBar.getCustomView().findViewById(R.id.lists_nav); lists = (TextView) actionBar.getCustomView().findViewById(R.id.list_title); View container = findViewById(R.id.filterlist_fragment_container); @@ -60,11 +63,6 @@ public class TaskListWrapperActivity extends AstridWrapperActivity { createPopover(); } - Filter savedFilter = getIntent().getParcelableExtra(TaskListActivity.TOKEN_FILTER); - setupTasklistFragmentWithFilter(savedFilter); - if (savedFilter != null) - lists.setText(savedFilter.title); - setupFilterlistFragment(); } private void createPopover() { @@ -109,6 +107,16 @@ public class TaskListWrapperActivity extends AstridWrapperActivity { @Override protected void onResume() { super.onResume(); + + Filter savedFilter = getIntent().getParcelableExtra(TaskListActivity.TOKEN_FILTER); + setupTasklistFragmentWithFilter(savedFilter); + if (savedFilter != null) + lists.setText(savedFilter.title); + setupFilterlistFragment(); + FilterListActivity fla = getFilterListFragment(); + if (fla != null) { + fla.adapter.clear(); + } } @Override @@ -132,4 +140,16 @@ public class TaskListWrapperActivity extends AstridWrapperActivity { super.finish(); AndroidUtilities.callOverridePendingTransition(this, R.anim.slide_right_in, R.anim.slide_right_out); } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + if (requestCode == FilterListActivity.REQUEST_NEW_LIST && resultCode == Activity.RESULT_OK) { + Filter newList = data.getParcelableExtra(TagSettingsActivity.TOKEN_NEW_FILTER); + if (newList != null) { + getIntent().putExtra(TaskListActivity.TOKEN_FILTER, newList); + } + } + + super.onActivityResult(requestCode, resultCode, data); + } } diff --git a/astrid/src/com/todoroo/astrid/adapter/FilterAdapter.java b/astrid/src/com/todoroo/astrid/adapter/FilterAdapter.java index f39816ed0..16b1cceb8 100644 --- a/astrid/src/com/todoroo/astrid/adapter/FilterAdapter.java +++ b/astrid/src/com/todoroo/astrid/adapter/FilterAdapter.java @@ -251,10 +251,6 @@ public class FilterAdapter extends ArrayAdapter { * ============================================================= receiver * ====================================================================== */ - private static final String createExpansionPreference(FilterCategory category) { - return "Expansion:" + category.listingTitle; //$NON-NLS-1$ - } - /** * Receiver which receives intents to add items to the filter list *