Update widget

pull/384/head
Alex Baker 9 years ago
parent 1bf33847fa
commit 2fa3955fac

@ -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);
}

@ -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);
return getEditTaskIntent(context, filter, 0L);
}
} else {
intent.setAction("E");
public static TaskStackBuilder getEditTaskStack(Context context, final Filter filter, final long taskId) {
return TaskStackBuilder.create(context).addNextIntent(getEditTaskIntent(context, filter, taskId));
}
return intent;
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 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);
public static Intent getTaskListIntent(Context context, final Filter filter) {
return new Intent(context, TaskListActivity.class) {{
if (filter != null) {
putExtra(TaskListFragment.TOKEN_FILTER, filter);
if (filter instanceof FilterWithCustomIntent) {
Bundle customExtras = ((FilterWithCustomIntent) filter).customExtras;
putExtras(customExtras);
putExtras(((FilterWithCustomIntent) filter).customExtras);
}
putExtra(TaskListFragment.TOKEN_FILTER, filter);
}
}});
}};
}
}

@ -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);

@ -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,62 +75,40 @@ 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);
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;
}
PendingIntent editTaskIntent = getEditTaskIntent(context, filter, id);
if (editTaskIntent != null) {
remoteViews.setPendingIntentTemplate(R.id.list_view, editTaskIntent);
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;
intent.putExtras(customExtras);
}
return remoteViews;
return PendingIntent.getBroadcast(context, -widgetId, intent, 0);
}
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);
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);
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) {
Intent intent = new Intent(context, TasksWidget.class);
if (filter != null && filter instanceof FilterWithCustomIntent) {
Bundle customExtras = ((FilterWithCustomIntent) filter).customExtras;
intent.putExtras(customExtras);
}
return PendingIntent.getBroadcast(context, -widgetId, intent, 0);
}
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);

@ -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"/>
<LinearLayout
android:id="@+id/widget_body"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_vertical"
android:paddingLeft="5dp"
android:paddingStart="5dp">
android:layout_gravity="center_vertical"
android:gravity="center_vertical">
<TextView
android:id="@+id/text"

Loading…
Cancel
Save