From 9fd8cab63e04894f2c5f1806aefa3ae0a639b7ec Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Tue, 1 May 2012 14:51:28 -0700 Subject: [PATCH] Added an intent extra to the task list activity that can start by immediately editing a task --- .../astrid/activity/TaskListActivity.java | 16 +++++++++++++++- .../com/todoroo/astrid/widget/TasksWidget.java | 11 +++++++++-- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java b/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java index fd7abe59a..99ab14c73 100644 --- a/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java @@ -64,7 +64,9 @@ public class TaskListActivity extends AstridActivity implements MainMenuListener /** token for indicating source of TLA launch */ public static final String TOKEN_SOURCE = "source"; //$NON-NLS-1$ - public static final String NEW_LIST = "newList"; + public static final String NEW_LIST = "newList"; //$NON-NLS-1$ + + public static final String OPEN_TASK = "openTask"; //$NON-NLS-1$ @Autowired private ABTestEventReportingService abTestEventReportingService; @@ -393,6 +395,18 @@ public class TaskListActivity extends AstridActivity implements MainMenuListener onFilterItemClicked(newList); getIntent().removeExtra(NEW_LIST); } + + if (getIntent().hasExtra(OPEN_TASK)) { + long id = getIntent().getLongExtra(OPEN_TASK, 0); + if (id > 0) { + onTaskListItemClicked(id); + } else { + TaskListFragment tlf = getTaskListFragment(); + if (tlf != null) + tlf.quickAddBar.quickAddTask("", true); //$NON-NLS-1$ + } + getIntent().removeExtra(OPEN_TASK); + } } public void setListsTitle(String title) { diff --git a/astrid/src/com/todoroo/astrid/widget/TasksWidget.java b/astrid/src/com/todoroo/astrid/widget/TasksWidget.java index 92572f72a..0ff8bd888 100644 --- a/astrid/src/com/todoroo/astrid/widget/TasksWidget.java +++ b/astrid/src/com/todoroo/astrid/widget/TasksWidget.java @@ -233,12 +233,18 @@ public class TasksWidget extends AppWidgetProvider { views.setOnClickPendingIntent(R.id.taskbody, pListIntent); - Intent editIntent = new Intent(context, TaskEditActivity.class); + Intent editIntent; + boolean tablet = AndroidUtilities.isTabletSized(context); + if (tablet) + editIntent = new Intent(context, TaskListActivity.class); + else + editIntent = new Intent(context, TaskEditActivity.class); + editIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK); editIntent.putExtra(TaskEditFragment.OVERRIDE_FINISH_ANIM, false); if(filter != null) { editIntent.putExtra(TaskListFragment.TOKEN_FILTER, filter); - if (filter.valuesForNewTasks != null) { + if (filter.valuesForNewTasks != null && tablet) { String values = AndroidUtilities.contentValuesToSerializedString(filter.valuesForNewTasks); values = PermaSql.replacePlaceholders(values); editIntent.putExtra(TaskEditFragment.TOKEN_VALUES, values); @@ -247,6 +253,7 @@ public class TasksWidget extends AppWidgetProvider { } else { editIntent.setAction("E" + widgetId); } + PendingIntent pEditIntent = PendingIntent.getActivity(context, -widgetId, editIntent, 0); if (pEditIntent != null) {