Update widget extras

pull/384/head
Alex Baker 10 years ago
parent cfa8fc9e2f
commit 96adc70fd1

@ -11,8 +11,6 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import com.todoroo.andlib.utility.DateUtilities; 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 com.todoroo.astrid.api.Filter;
import org.tasks.Broadcaster; 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 COMPLETE_TASK = "COMPLETE_TASK";
public static final String EDIT_TASK = "EDIT_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 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; private static final long SUPPRESS_TIME = DateUtilities.ONE_MINUTE * 5;
@ -45,13 +45,13 @@ public class TasksWidget extends InjectingAppWidgetProvider {
switch(intent.getAction()) { switch(intent.getAction()) {
case COMPLETE_TASK: case COMPLETE_TASK:
broadcaster.toggleCompletedState(intent.getLongExtra(TOKEN_ID, 0)); broadcaster.toggleCompletedState(intent.getLongExtra(EXTRA_ID, 0));
break; break;
case EDIT_TASK: case EDIT_TASK:
getEditTaskStack( getEditTaskStack(
context, context,
(Filter) intent.getParcelableExtra(TaskListFragment.TOKEN_FILTER), (Filter) intent.getParcelableExtra(EXTRA_FILTER),
intent.getLongExtra(TOKEN_ID, 0)) intent.getLongExtra(EXTRA_ID, 0))
.startActivities(); .startActivities();
break; break;
case BROADCAST_EVENT_REFRESH: case BROADCAST_EVENT_REFRESH:

@ -14,9 +14,7 @@ import android.widget.RemoteViewsService;
import com.todoroo.andlib.data.TodorooCursor; import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.activity.TaskEditFragment;
import com.todoroo.astrid.activity.TaskListActivity; import com.todoroo.astrid.activity.TaskListActivity;
import com.todoroo.astrid.activity.TaskListFragment;
import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.core.SortHelper; import com.todoroo.astrid.core.SortHelper;
import com.todoroo.astrid.dao.Database; import com.todoroo.astrid.dao.Database;
@ -135,7 +133,6 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac
if (task == null) { if (task == null) {
return null; return null;
} }
String textContent; String textContent;
Resources r = context.getResources(); Resources r = context.getResources();
int textColor = r.getColor(dark ? R.color.widget_text_color_dark : R.color.widget_text_color_light); 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); textColor = r.getColor(R.color.overdue);
} }
final long taskId = task.getId();
row.setTextViewText(R.id.text, textContent); row.setTextViewText(R.id.text, textContent);
row.setTextColor(R.id.text, textColor); row.setTextColor(R.id.text, textColor);
row.setImageViewBitmap(R.id.completeBox, getCheckbox(task)); row.setImageViewBitmap(R.id.completeBox, getCheckbox(task));
row.setOnClickFillInIntent(R.id.text, new Intent() {{
Intent editIntent = new Intent(); setAction(TasksWidget.EDIT_TASK);
editIntent.setAction(TasksWidget.EDIT_TASK); putExtra(TasksWidget.EXTRA_FILTER, filter);
editIntent.putExtra(TaskListFragment.TOKEN_FILTER, filter); putExtra(TasksWidget.EXTRA_ID, taskId);
editIntent.putExtra(TasksWidget.TOKEN_ID, task.getId()); }});
editIntent.putExtra(TaskListActivity.OPEN_TASK, task.getId());
row.setOnClickFillInIntent(R.id.text, editIntent);
if (hideCheckboxes) { if (hideCheckboxes) {
row.setViewVisibility(R.id.completeBox, View.GONE); row.setViewVisibility(R.id.completeBox, View.GONE);
} else { } else {
Intent completeIntent = new Intent(); row.setOnClickFillInIntent(R.id.completeBox, new Intent() {{
completeIntent.setAction(TasksWidget.COMPLETE_TASK); setAction(TasksWidget.COMPLETE_TASK);
completeIntent.putExtra(TasksWidget.TOKEN_ID, task.getId()); putExtra(TasksWidget.EXTRA_ID, taskId);
row.setOnClickFillInIntent(R.id.completeBox, completeIntent); }});
} }
return row; return row;

@ -80,7 +80,7 @@ public class WidgetHelper {
remoteViews.setTextViewText(R.id.widget_title, filter.listingTitle); remoteViews.setTextViewText(R.id.widget_title, filter.listingTitle);
remoteViews.setRemoteAdapter(R.id.list_view, rvIntent); remoteViews.setRemoteAdapter(R.id.list_view, rvIntent);
remoteViews.setEmptyView(R.id.list_view, R.id.empty_view); 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) { if (listIntent != null) {
remoteViews.setOnClickPendingIntent(R.id.widget_title, listIntent); remoteViews.setOnClickPendingIntent(R.id.widget_title, listIntent);
} }
@ -95,7 +95,7 @@ public class WidgetHelper {
return remoteViews; 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); Intent listIntent = new Intent(context, TaskListActivity.class);
String customIntent = preferences.getStringValue(WidgetConfigActivity.PREF_CUSTOM_INTENT String customIntent = preferences.getStringValue(WidgetConfigActivity.PREF_CUSTOM_INTENT
+ widgetId); + widgetId);

Loading…
Cancel
Save