From 2fa3955fac4f4feae761b97204c8f3126236e77d Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Wed, 3 Feb 2016 22:14:10 -0600 Subject: [PATCH] Update widget --- .../astrid/activity/TaskListActivity.java | 15 +---- .../java/org/tasks/intents/TaskIntents.java | 51 ++++++---------- .../tasks/widget/ScrollableViewsFactory.java | 6 +- .../java/org/tasks/widget/WidgetHelper.java | 58 ++++++------------- src/main/res/layout/widget_row.xml | 12 ++-- 5 files changed, 47 insertions(+), 95 deletions(-) diff --git a/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java b/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java index ae5f657b9..8a624e097 100644 --- a/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java +++ b/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java @@ -39,6 +39,7 @@ import com.todoroo.astrid.ui.ReminderControlSet; import org.tasks.R; import org.tasks.injection.InjectingAppCompatActivity; +import org.tasks.intents.TaskIntents; import org.tasks.preferences.ActivityPreferences; import org.tasks.receivers.RepeatConfirmationReceiver; import org.tasks.ui.CalendarControlSet; @@ -250,16 +251,8 @@ public class TaskListActivity extends InjectingAppCompatActivity implements getTaskEditFragment().save(); } - // If showing both fragments, directly update the tasklist-fragment - Intent intent = getIntent(); - if(item instanceof Filter) { - Filter filter = (Filter)item; - - Bundle extras = configureIntentAndExtrasWithFilter(intent, filter); - TaskListFragment newFragment = newTaskListFragment(filter, extras); - - loadTaskListFragment(false, newFragment); + startActivity(TaskIntents.getTaskListIntent(this, (Filter) item)); } } @@ -548,10 +541,6 @@ public class TaskListActivity extends InjectingAppCompatActivity implements return getTaskEditFragment().startTimer(); } - public boolean isSinglePaneLayout() { - return !isDoublePaneLayout(); - } - public boolean isDoublePaneLayout() { return getResources().getBoolean(R.bool.two_pane_layout); } diff --git a/src/main/java/org/tasks/intents/TaskIntents.java b/src/main/java/org/tasks/intents/TaskIntents.java index f1330af27..29318e9ab 100644 --- a/src/main/java/org/tasks/intents/TaskIntents.java +++ b/src/main/java/org/tasks/intents/TaskIntents.java @@ -2,11 +2,8 @@ package org.tasks.intents; import android.content.Context; import android.content.Intent; -import android.os.Bundle; import android.support.v4.app.TaskStackBuilder; -import com.todoroo.andlib.utility.AndroidUtilities; -import com.todoroo.astrid.activity.TaskEditFragment; import com.todoroo.astrid.activity.TaskListActivity; import com.todoroo.astrid.activity.TaskListFragment; import com.todoroo.astrid.api.Filter; @@ -15,37 +12,27 @@ import com.todoroo.astrid.api.FilterWithCustomIntent; public class TaskIntents { public static Intent getNewTaskIntent(Context context, Filter filter) { - Intent intent; - intent = new Intent(context, TaskListActivity.class); - intent.putExtra(TaskListActivity.OPEN_TASK, 0L); - if (filter != null) { - intent.putExtra(TaskListFragment.TOKEN_FILTER, filter); - if (filter.valuesForNewTasks != null) { - String values = AndroidUtilities.contentValuesToSerializedString(filter.valuesForNewTasks); - intent.putExtra(TaskEditFragment.TOKEN_VALUES, values); - intent.setAction("E" + values); - } - if (filter instanceof FilterWithCustomIntent) { - Bundle customExtras = ((FilterWithCustomIntent) filter).customExtras; - intent.putExtras(customExtras); - } - } else { - intent.setAction("E"); - } - return intent; + return getEditTaskIntent(context, filter, 0L); } public static TaskStackBuilder getEditTaskStack(Context context, final Filter filter, final long taskId) { - return TaskStackBuilder.create(context) - .addNextIntent(new Intent(context, TaskListActivity.class) {{ - putExtra(TaskListActivity.OPEN_TASK, taskId); - if (filter != null) { - putExtra(TaskListFragment.TOKEN_FILTER, filter); - if (filter instanceof FilterWithCustomIntent) { - Bundle customExtras = ((FilterWithCustomIntent) filter).customExtras; - putExtras(customExtras); - } - } - }}); + return TaskStackBuilder.create(context).addNextIntent(getEditTaskIntent(context, filter, taskId)); + } + + public static Intent getEditTaskIntent(Context context, final Filter filter, final long taskId) { + Intent taskListIntent = getTaskListIntent(context, filter); + taskListIntent.putExtra(TaskListActivity.OPEN_TASK, taskId); + return taskListIntent; + } + + public static Intent getTaskListIntent(Context context, final Filter filter) { + return new Intent(context, TaskListActivity.class) {{ + if (filter != null) { + if (filter instanceof FilterWithCustomIntent) { + putExtras(((FilterWithCustomIntent) filter).customExtras); + } + putExtra(TaskListFragment.TOKEN_FILTER, filter); + } + }}; } } diff --git a/src/main/java/org/tasks/widget/ScrollableViewsFactory.java b/src/main/java/org/tasks/widget/ScrollableViewsFactory.java index cbaeab314..b02c38cd6 100644 --- a/src/main/java/org/tasks/widget/ScrollableViewsFactory.java +++ b/src/main/java/org/tasks/widget/ScrollableViewsFactory.java @@ -1,12 +1,10 @@ package org.tasks.widget; -import android.annotation.TargetApi; import android.content.Context; import android.content.Intent; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.Paint; -import android.os.Build; import android.text.TextUtils; import android.view.View; import android.widget.RemoteViews; @@ -14,7 +12,6 @@ import android.widget.RemoteViewsService; import com.todoroo.andlib.data.TodorooCursor; import com.todoroo.andlib.utility.DateUtilities; -import com.todoroo.astrid.activity.TaskListActivity; import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.core.SortHelper; import com.todoroo.astrid.dao.Database; @@ -31,7 +28,6 @@ import org.tasks.ui.WidgetCheckBoxes; import timber.log.Timber; -@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFactory { private final WidgetCheckBoxes checkBoxes; @@ -158,7 +154,7 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac row.setTextViewText(R.id.text, textContent); row.setTextColor(R.id.text, textColor); row.setImageViewBitmap(R.id.completeBox, getCheckbox(task)); - row.setOnClickFillInIntent(R.id.text, new Intent() {{ + row.setOnClickFillInIntent(R.id.widget_body, new Intent() {{ setAction(TasksWidget.EDIT_TASK); putExtra(TasksWidget.EXTRA_FILTER, filter); putExtra(TasksWidget.EXTRA_ID, taskId); diff --git a/src/main/java/org/tasks/widget/WidgetHelper.java b/src/main/java/org/tasks/widget/WidgetHelper.java index 9b068ff66..54da10eff 100644 --- a/src/main/java/org/tasks/widget/WidgetHelper.java +++ b/src/main/java/org/tasks/widget/WidgetHelper.java @@ -12,8 +12,6 @@ import android.view.View; import android.widget.RemoteViews; import com.todoroo.andlib.utility.AndroidUtilities; -import com.todoroo.astrid.activity.TaskListActivity; -import com.todoroo.astrid.activity.TaskListFragment; import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.FilterWithCustomIntent; import com.todoroo.astrid.core.BuiltInFilterExposer; @@ -77,46 +75,13 @@ 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 = getOpenListIntent(context, filter, id); - if (listIntent != null) { - remoteViews.setOnClickPendingIntent(R.id.widget_title, listIntent); - } - PendingIntent newTaskIntent = getNewTaskIntent(context, filter, id); - if (newTaskIntent != null) { - remoteViews.setOnClickPendingIntent(R.id.widget_button, newTaskIntent); - } - PendingIntent editTaskIntent = getEditTaskIntent(context, filter, id); - if (editTaskIntent != null) { - remoteViews.setPendingIntentTemplate(R.id.list_view, editTaskIntent); - } + remoteViews.setOnClickPendingIntent(R.id.widget_title, getOpenListIntent(context, filter, id)); + remoteViews.setOnClickPendingIntent(R.id.widget_button, getNewTaskIntent(context, filter, id)); + remoteViews.setPendingIntentTemplate(R.id.list_view, getFillInIntent(context, filter, id)); return remoteViews; } - 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); - if (customIntent != null) { - String serializedExtras = preferences.getStringValue(WidgetConfigActivity.PREF_CUSTOM_EXTRAS - + widgetId); - Bundle extras = AndroidUtilities.bundleFromSerializedString(serializedExtras); - listIntent.putExtras(extras); - } - listIntent.setFlags(flags); - if (filter != null) { - listIntent.putExtra(TaskListFragment.TOKEN_FILTER, filter); - listIntent.setAction("L" + widgetId + filter.getSqlQuery()); - } else { - listIntent.setAction("L" + widgetId); - } - if (filter instanceof FilterWithCustomIntent) { - listIntent.putExtras(((FilterWithCustomIntent) filter).customExtras); - } - - return PendingIntent.getActivity(context, widgetId, listIntent, PendingIntent.FLAG_CANCEL_CURRENT); - } - - private PendingIntent getEditTaskIntent(Context context, Filter filter, int widgetId) { + private PendingIntent getFillInIntent(Context context, Filter filter, int widgetId) { Intent intent = new Intent(context, TasksWidget.class); if (filter != null && filter instanceof FilterWithCustomIntent) { Bundle customExtras = ((FilterWithCustomIntent) filter).customExtras; @@ -125,14 +90,25 @@ public class WidgetHelper { return PendingIntent.getBroadcast(context, -widgetId, intent, 0); } + public PendingIntent getOpenListIntent(Context context, Filter filter, int widgetId) { + Intent listIntent = TaskIntents.getTaskListIntent(context, filter); + listIntent.setFlags(flags); + String customIntent = preferences.getStringValue(WidgetConfigActivity.PREF_CUSTOM_INTENT + widgetId); + if (customIntent != null) { + String serializedExtras = preferences.getStringValue(WidgetConfigActivity.PREF_CUSTOM_EXTRAS + widgetId); + Bundle extras = AndroidUtilities.bundleFromSerializedString(serializedExtras); + listIntent.putExtras(extras); + } + return PendingIntent.getActivity(context, widgetId, listIntent, PendingIntent.FLAG_CANCEL_CURRENT); + } + public PendingIntent getNewTaskIntent(Context context, Filter filter, int id) { Intent intent = TaskIntents.getNewTaskIntent(context, filter); intent.setFlags(flags); - return PendingIntent.getActivity(context, -id, intent, 0); + return PendingIntent.getActivity(context, -id, intent, PendingIntent.FLAG_CANCEL_CURRENT); } public Filter getFilter(Context context, int widgetId) { - // base our filter off the inbox filter, replace stuff if we have it Filter filter = BuiltInFilterExposer.getMyTasksFilter(context.getResources()); String sql = preferences.getStringValue(WidgetConfigActivity.PREF_SQL + widgetId); diff --git a/src/main/res/layout/widget_row.xml b/src/main/res/layout/widget_row.xml index 04fafa2af..a85d0c1a0 100644 --- a/src/main/res/layout/widget_row.xml +++ b/src/main/res/layout/widget_row.xml @@ -12,16 +12,20 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" + android:paddingTop="5dp" + android:paddingBottom="5dp" android:paddingLeft="5dp" - android:paddingStart="5dp" /> + android:paddingStart="5dp" + android:paddingRight="5dp" + android:paddingEnd="5dp"/> + android:layout_gravity="center_vertical" + android:gravity="center_vertical">