From c3d11e8abecac7f574601864f85099a7ca6d1468 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Mon, 15 Oct 2012 14:32:08 -0700 Subject: [PATCH] Refactored new calendar list creation to be handled by the tasklistfragment, which makes resuming after creating the list easier --- .../todoroo/astrid/actfm/TagViewFragment.java | 21 ++----------------- .../astrid/gcal/CalendarAlarmListCreator.java | 16 ++++++-------- .../astrid/gcal/CalendarReminderActivity.java | 4 ++-- .../astrid/activity/TaskListFragment.java | 21 +++++++++++++++++++ 4 files changed, 31 insertions(+), 31 deletions(-) diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/TagViewFragment.java b/astrid/plugin-src/com/todoroo/astrid/actfm/TagViewFragment.java index 2a051c5dc..d4a252b54 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/TagViewFragment.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/TagViewFragment.java @@ -83,10 +83,6 @@ public class TagViewFragment extends TaskListFragment { public static final String TOKEN_START_ACTIVITY = "startActivity"; //$NON-NLS-1$ - public static final String TOKEN_START_SETTINGS = "startSettings"; //$NON-NLS-1$ - - public static final String TOKEN_MEMBERS = "members"; //$NON-NLS-1$ - protected TagData tagData; @Autowired TagDataService tagDataService; @@ -139,15 +135,8 @@ public class TagViewFragment extends TaskListFragment { Activity activity = getActivity(); Class settingsClass = AstridPreferences.useTabletLayout(activity) ? TagSettingsActivityTablet.class : TagSettingsActivity.class; Intent intent = new Intent(getActivity(), settingsClass); - if (extras.containsKey(TOKEN_MEMBERS)) { // This indicates that the fragment was launched from the calendar list creator--use special logic - intent.putExtra(TagSettingsActivity.TOKEN_AUTOPOPULATE_MEMBERS, extras.getString(TOKEN_MEMBERS)); - intent.putExtra(TagSettingsActivity.TOKEN_AUTOPOPULATE_NAME, extras.getString(EXTRA_TAG_NAME)); - extras.remove(TOKEN_MEMBERS); - getActivity().startActivityForResult(intent, FilterListFragment.REQUEST_NEW_LIST); - } else { - intent.putExtra(EXTRA_TAG_DATA, tagData); - startActivityForResult(intent, REQUEST_CODE_SETTINGS); - } + intent.putExtra(EXTRA_TAG_DATA, tagData); + startActivityForResult(intent, REQUEST_CODE_SETTINGS); if (!AstridPreferences.useTabletLayout(activity)) { AndroidUtilities.callOverridePendingTransition(activity, R.anim.slide_left_in, R.anim.slide_left_out); @@ -211,12 +200,6 @@ public class TagViewFragment extends TaskListFragment { if(tag == null && remoteId == 0) return; - if (extras.getBoolean(TOKEN_START_SETTINGS, false)) { - extras.remove(TOKEN_START_SETTINGS); - settingsListener.onClick(null); - return; - } - TodorooCursor cursor = tagDataService.query(Query.select(TagData.PROPERTIES).where(Criterion.or(TagData.NAME.eqCaseInsensitive(tag), Criterion.and(TagData.REMOTE_ID.gt(0), TagData.REMOTE_ID.eq(remoteId))))); try { diff --git a/astrid/plugin-src/com/todoroo/astrid/gcal/CalendarAlarmListCreator.java b/astrid/plugin-src/com/todoroo/astrid/gcal/CalendarAlarmListCreator.java index a3ce79525..8025a4437 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gcal/CalendarAlarmListCreator.java +++ b/astrid/plugin-src/com/todoroo/astrid/gcal/CalendarAlarmListCreator.java @@ -21,7 +21,6 @@ import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.sql.Query; import com.todoroo.andlib.utility.AndroidUtilities; -import com.todoroo.astrid.actfm.TagViewFragment; import com.todoroo.astrid.actfm.sync.ActFmPreferenceService; import com.todoroo.astrid.activity.EditPreferences; import com.todoroo.astrid.activity.TaskListActivity; @@ -31,7 +30,6 @@ import com.todoroo.astrid.data.TagData; import com.todoroo.astrid.data.User; import com.todoroo.astrid.service.TagDataService; import com.todoroo.astrid.service.ThemeService; -import com.todoroo.astrid.tags.TagFilterExposer; public class CalendarAlarmListCreator extends Activity { @@ -74,7 +72,6 @@ public class CalendarAlarmListCreator extends Activity { Intent intent = getIntent(); -// tagData = tagDataService.fetchById(intent.getLongExtra(TOKEN_LIST_ID, -1), TagData.PROPERTIES); tagName = intent.getStringExtra(TOKEN_LIST_NAME); inviteAll = (TextView) findViewById(R.id.invite_all); moreOptions = (TextView) findViewById(R.id.list_settings); @@ -148,7 +145,7 @@ public class CalendarAlarmListCreator extends Activity { public void onClick(View v) { Intent editPreferences = new Intent(CalendarAlarmListCreator.this, EditPreferences.class); startActivity(editPreferences); - finish(); + dismissListener.onClick(v); } }); @@ -166,7 +163,7 @@ public class CalendarAlarmListCreator extends Activity { tagData.setValue(TagData.MEMBERS, membersArray.toString()); tagData.setValue(TagData.MEMBER_COUNT, membersArray.length()); tagDataService.save(tagData); - finish(); + dismissListener.onClick(v); } } }); @@ -175,12 +172,11 @@ public class CalendarAlarmListCreator extends Activity { @Override public void onClick(View v) { Intent intent = new Intent(CalendarAlarmListCreator.this, TaskListActivity.class); - intent.putExtra(TaskListFragment.TOKEN_FILTER, TagFilterExposer.filterFromTagData(CalendarAlarmListCreator.this, new TagData())); - intent.putExtra(TagViewFragment.EXTRA_TAG_NAME, tagName); - intent.putExtra(TagViewFragment.TOKEN_MEMBERS, buildMembersArray().toString()); - intent.putExtra(TagViewFragment.TOKEN_START_SETTINGS, true); + intent.putExtra(TaskListFragment.TOKEN_NEW_LIST_NAME, tagName); + intent.putExtra(TaskListFragment.TOKEN_NEW_LIST_MEMBERS, buildMembersArray().toString()); + intent.putExtra(TaskListFragment.TOKEN_NEW_LIST, true); startActivity(intent); - finish(); + dismissListener.onClick(v); } }); } diff --git a/astrid/plugin-src/com/todoroo/astrid/gcal/CalendarReminderActivity.java b/astrid/plugin-src/com/todoroo/astrid/gcal/CalendarReminderActivity.java index 52e202bde..d7e6493e1 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gcal/CalendarReminderActivity.java +++ b/astrid/plugin-src/com/todoroo/astrid/gcal/CalendarReminderActivity.java @@ -162,7 +162,7 @@ public class CalendarReminderActivity extends Activity { public void onClick(View v) { Intent editPreferences = new Intent(CalendarReminderActivity.this, EditPreferences.class); startActivity(editPreferences); - finish(); + dismissListener.onClick(v); } }); @@ -243,7 +243,7 @@ public class CalendarReminderActivity extends Activity { if (Constants.DEBUG) Log.w(CalendarAlarmScheduler.TAG, "Scheduling calendar alarm for " + new Date(alarmTime)); am.set(AlarmManager.RTC_WAKEUP, alarmTime, pendingIntent); - finish(); + dismissButton.performClick(); } } diff --git a/astrid/src/com/todoroo/astrid/activity/TaskListFragment.java b/astrid/src/com/todoroo/astrid/activity/TaskListFragment.java index 9203c88da..d17eaec50 100644 --- a/astrid/src/com/todoroo/astrid/activity/TaskListFragment.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskListFragment.java @@ -66,6 +66,7 @@ import com.todoroo.andlib.sql.Join; import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.Preferences; import com.todoroo.astrid.actfm.ActFmLoginActivity; +import com.todoroo.astrid.actfm.TagSettingsActivity; import com.todoroo.astrid.actfm.TagUpdatesActivity; import com.todoroo.astrid.actfm.TagViewFragment; import com.todoroo.astrid.actfm.sync.ActFmPreferenceService; @@ -101,6 +102,7 @@ import com.todoroo.astrid.service.UpgradeService; import com.todoroo.astrid.subtasks.SubtasksListFragment; import com.todoroo.astrid.sync.SyncProviderPreferences; import com.todoroo.astrid.tags.TagService; +import com.todoroo.astrid.tags.TagsPlugin; import com.todoroo.astrid.taskrabbit.TaskRabbitMetadata; import com.todoroo.astrid.timers.TimerPlugin; import com.todoroo.astrid.ui.QuickAddBar; @@ -159,6 +161,11 @@ public class TaskListFragment extends ListFragment implements OnScrollListener, private static final String TOKEN_EXTRAS = "extras"; //$NON-NLS-1$ + /** For indicating the new list screen should be launched at fragment setup time */ + public static final String TOKEN_NEW_LIST = "newList"; //$NON-NLS-1$ + public static final String TOKEN_NEW_LIST_MEMBERS = "newListMembers"; //$NON-NLS-1$ + public static final String TOKEN_NEW_LIST_NAME = "newListName"; //$NON-NLS-1$ + // --- instance variables @Autowired @@ -384,6 +391,11 @@ public class TaskListFragment extends ListFragment implements OnScrollListener, ((AstridActivity) getActivity()).setupActivityFragment(getActiveTagData()); contextMenuExtensionLoader.loadInNewThread(getActivity()); + + if (extras != null && extras.getBoolean(TOKEN_NEW_LIST, false)) { + extras.remove(TOKEN_NEW_LIST); + newListFromLaunch(); + } } protected void addSyncRefreshMenuItem(Menu menu, int themeFlags) { @@ -414,6 +426,15 @@ public class TaskListFragment extends ListFragment implements OnScrollListener, } } + private void newListFromLaunch() { + Intent intent = TagsPlugin.newTagDialog(getActivity()); + intent.putExtra(TagSettingsActivity.TOKEN_AUTOPOPULATE_MEMBERS, extras.getString(TOKEN_NEW_LIST_MEMBERS)); + intent.putExtra(TagSettingsActivity.TOKEN_AUTOPOPULATE_NAME, extras.getString(TOKEN_NEW_LIST_NAME)); + extras.remove(TOKEN_NEW_LIST_MEMBERS); + extras.remove(TOKEN_NEW_LIST_NAME); + getActivity().startActivityForResult(intent, FilterListFragment.REQUEST_NEW_LIST); + } + /** * Create options menu (displayed when user presses menu key) *