diff --git a/src/main/java/com/todoroo/astrid/widget/TasksWidget.java b/src/main/java/com/todoroo/astrid/widget/TasksWidget.java index 3a80de1fb..5fd3c6d8f 100644 --- a/src/main/java/com/todoroo/astrid/widget/TasksWidget.java +++ b/src/main/java/com/todoroo/astrid/widget/TasksWidget.java @@ -11,8 +11,6 @@ import android.content.Context; import android.content.Intent; import com.todoroo.andlib.utility.DateUtilities; -import com.todoroo.astrid.activity.TaskEditFragment; -import com.todoroo.astrid.activity.TaskListFragment; import com.todoroo.astrid.api.Filter; import org.tasks.Broadcaster; @@ -34,7 +32,9 @@ public class TasksWidget extends InjectingAppWidgetProvider { public static final String COMPLETE_TASK = "COMPLETE_TASK"; public static final String EDIT_TASK = "EDIT_TASK"; - public static final String TOKEN_ID = "id"; //$NON-NLS-1$ + + public static final String EXTRA_FILTER = "extra_filter"; + public static final String EXTRA_ID = "id"; //$NON-NLS-1$ public static long suppressUpdateFlag = 0; // Timestamp--don't update widgets if this flag is non-zero and now() is within 5 minutes private static final long SUPPRESS_TIME = DateUtilities.ONE_MINUTE * 5; @@ -45,13 +45,13 @@ public class TasksWidget extends InjectingAppWidgetProvider { switch(intent.getAction()) { case COMPLETE_TASK: - broadcaster.toggleCompletedState(intent.getLongExtra(TOKEN_ID, 0)); + broadcaster.toggleCompletedState(intent.getLongExtra(EXTRA_ID, 0)); break; case EDIT_TASK: getEditTaskStack( context, - (Filter) intent.getParcelableExtra(TaskListFragment.TOKEN_FILTER), - intent.getLongExtra(TOKEN_ID, 0)) + (Filter) intent.getParcelableExtra(EXTRA_FILTER), + intent.getLongExtra(EXTRA_ID, 0)) .startActivities(); break; case BROADCAST_EVENT_REFRESH: diff --git a/src/main/java/org/tasks/widget/ScrollableViewsFactory.java b/src/main/java/org/tasks/widget/ScrollableViewsFactory.java index 4061c55b7..ffd49892a 100644 --- a/src/main/java/org/tasks/widget/ScrollableViewsFactory.java +++ b/src/main/java/org/tasks/widget/ScrollableViewsFactory.java @@ -14,9 +14,7 @@ import android.widget.RemoteViewsService; import com.todoroo.andlib.data.TodorooCursor; import com.todoroo.andlib.utility.DateUtilities; -import com.todoroo.astrid.activity.TaskEditFragment; import com.todoroo.astrid.activity.TaskListActivity; -import com.todoroo.astrid.activity.TaskListFragment; import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.core.SortHelper; import com.todoroo.astrid.dao.Database; @@ -135,7 +133,6 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac if (task == null) { return null; } - String textContent; Resources r = context.getResources(); int textColor = r.getColor(dark ? R.color.widget_text_color_dark : R.color.widget_text_color_light); @@ -157,24 +154,23 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac textColor = r.getColor(R.color.overdue); } + final long taskId = task.getId(); row.setTextViewText(R.id.text, textContent); row.setTextColor(R.id.text, textColor); row.setImageViewBitmap(R.id.completeBox, getCheckbox(task)); - - Intent editIntent = new Intent(); - editIntent.setAction(TasksWidget.EDIT_TASK); - editIntent.putExtra(TaskListFragment.TOKEN_FILTER, filter); - editIntent.putExtra(TasksWidget.TOKEN_ID, task.getId()); - editIntent.putExtra(TaskListActivity.OPEN_TASK, task.getId()); - row.setOnClickFillInIntent(R.id.text, editIntent); + row.setOnClickFillInIntent(R.id.text, new Intent() {{ + setAction(TasksWidget.EDIT_TASK); + putExtra(TasksWidget.EXTRA_FILTER, filter); + putExtra(TasksWidget.EXTRA_ID, taskId); + }}); if (hideCheckboxes) { row.setViewVisibility(R.id.completeBox, View.GONE); } else { - Intent completeIntent = new Intent(); - completeIntent.setAction(TasksWidget.COMPLETE_TASK); - completeIntent.putExtra(TasksWidget.TOKEN_ID, task.getId()); - row.setOnClickFillInIntent(R.id.completeBox, completeIntent); + row.setOnClickFillInIntent(R.id.completeBox, new Intent() {{ + setAction(TasksWidget.COMPLETE_TASK); + putExtra(TasksWidget.EXTRA_ID, taskId); + }}); } return row; diff --git a/src/main/java/org/tasks/widget/WidgetHelper.java b/src/main/java/org/tasks/widget/WidgetHelper.java index 2c18ba956..b43318dbe 100644 --- a/src/main/java/org/tasks/widget/WidgetHelper.java +++ b/src/main/java/org/tasks/widget/WidgetHelper.java @@ -80,7 +80,7 @@ public class WidgetHelper { remoteViews.setTextViewText(R.id.widget_title, filter.listingTitle); remoteViews.setRemoteAdapter(R.id.list_view, rvIntent); remoteViews.setEmptyView(R.id.list_view, R.id.empty_view); - PendingIntent listIntent = getListIntent(context, filter, id); + PendingIntent listIntent = getOpenListIntent(context, filter, id); if (listIntent != null) { remoteViews.setOnClickPendingIntent(R.id.widget_title, listIntent); } @@ -95,7 +95,7 @@ public class WidgetHelper { return remoteViews; } - public PendingIntent getListIntent(Context context, Filter filter, int widgetId) { + public PendingIntent getOpenListIntent(Context context, Filter filter, int widgetId) { Intent listIntent = new Intent(context, TaskListActivity.class); String customIntent = preferences.getStringValue(WidgetConfigActivity.PREF_CUSTOM_INTENT + widgetId);