diff --git a/astrid/src/main/AndroidManifest.xml b/astrid/src/main/AndroidManifest.xml index 08e6c8c79..dfcc6751a 100644 --- a/astrid/src/main/AndroidManifest.xml +++ b/astrid/src/main/AndroidManifest.xml @@ -199,6 +199,8 @@ android:label="@string/widget_mini"> + + = TaskAdapter.IMPORTANCE_RESOURCES.length) { + value = TaskAdapter.IMPORTANCE_RESOURCES.length - 1; + } + int[] boxes; + if (!TextUtils.isEmpty(task.getValue(Task.RECURRENCE))) { + boxes = completed ? TaskAdapter.IMPORTANCE_REPEAT_RESOURCES_CHECKED : TaskAdapter.IMPORTANCE_REPEAT_RESOURCES; + } else { + boxes = completed ? TaskAdapter.IMPORTANCE_RESOURCES_CHECKED : TaskAdapter.IMPORTANCE_RESOURCES; + } + return boxes[value]; + } + public RemoteViews buildUpdate(int position) { try { Task task = getTask(position); @@ -111,11 +128,17 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac row.setTextViewText(R.id.text, textContent); row.setTextColor(R.id.text, textColor); + row.setImageViewResource(R.id.completeBox, getCheckbox(task)); + + Intent editIntent = new Intent(); + editIntent.setAction(TasksWidget.EDIT_TASK); + editIntent.putExtra(TaskEditFragment.TOKEN_ID, task.getId()); + row.setOnClickFillInIntent(R.id.text, editIntent); - Intent intent = new Intent(context, TaskEditActivity.class); - intent.putExtra(TaskEditFragment.TOKEN_ID, task.getId()); - intent.putExtra(TaskListActivity.OPEN_TASK, task.getId()); - row.setOnClickFillInIntent(R.id.text, intent); + Intent completeIntent = new Intent(); + completeIntent.setAction(TasksWidget.COMPLETE_TASK); + completeIntent.putExtra(TaskEditFragment.TOKEN_ID, task.getId()); + row.setOnClickFillInIntent(R.id.completeBox, completeIntent); return row; } catch (Exception e) { @@ -127,7 +150,7 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac } private TodorooCursor getCursor() { - return taskService.fetchFiltered(query, null, Task.ID, Task.TITLE, Task.DUE_DATE, Task.COMPLETION_DATE); + return taskService.fetchFiltered(query, null, Task.ID, Task.TITLE, Task.DUE_DATE, Task.COMPLETION_DATE, Task.IMPORTANCE, Task.RECURRENCE); } private Task getTask(int position) { diff --git a/astrid/src/main/java/org/tasks/widget/WidgetHelper.java b/astrid/src/main/java/org/tasks/widget/WidgetHelper.java index 0419d436a..c28f26830 100644 --- a/astrid/src/main/java/org/tasks/widget/WidgetHelper.java +++ b/astrid/src/main/java/org/tasks/widget/WidgetHelper.java @@ -50,13 +50,12 @@ public class WidgetHelper { AstridDependencyInjector.initialize(); } - private static int flags = FLAG_ACTIVITY_NEW_TASK + public static int flags = FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_MULTIPLE_TASK | FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET | FLAG_ACTIVITY_NO_HISTORY | FLAG_ACTIVITY_PREVIOUS_IS_TOP; - public static void startWidgetService(Context context) { Class widgetServiceClass = android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH ? WidgetUpdateService.class @@ -142,19 +141,14 @@ public class WidgetHelper { } private PendingIntent getEditTaskIntent(Context context, Filter filter, int widgetId) { - Intent intent; + Intent intent = new Intent(context, TasksWidget.class); if (AstridPreferences.useTabletLayout(context)) { - intent = new Intent(context, TaskListActivity.class); if (filter != null && filter instanceof FilterWithCustomIntent) { Bundle customExtras = ((FilterWithCustomIntent) filter).customExtras; intent.putExtras(customExtras); } - } else { - intent = new Intent(context, TaskEditActivity.class); } - intent.setFlags(flags); - intent.putExtra(TaskEditFragment.OVERRIDE_FINISH_ANIM, false); - return PendingIntent.getActivity(context, widgetId, intent, PendingIntent.FLAG_CANCEL_CURRENT); + return PendingIntent.getBroadcast(context, -widgetId, intent, 0); } public PendingIntent getNewTaskIntent(Context context, Filter filter, int id) { diff --git a/astrid/src/main/res/layout/widget_row.xml b/astrid/src/main/res/layout/widget_row.xml index 3bfb050b7..2be683cbb 100644 --- a/astrid/src/main/res/layout/widget_row.xml +++ b/astrid/src/main/res/layout/widget_row.xml @@ -1,19 +1,27 @@ - - - + - + + + + + \ No newline at end of file