Fix launching task from widget with custom intent

pull/384/head
Alex Baker 9 years ago
parent 1b13ea7ac1
commit 167ec840f3

@ -28,7 +28,6 @@ import com.todoroo.andlib.data.Callback;
import com.todoroo.andlib.sql.Criterion; import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.sql.QueryTemplate; import com.todoroo.andlib.sql.QueryTemplate;
import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.actfm.FilterSettingsActivity; import com.todoroo.astrid.actfm.FilterSettingsActivity;
import com.todoroo.astrid.actfm.TagSettingsActivity; import com.todoroo.astrid.actfm.TagSettingsActivity;
import com.todoroo.astrid.actfm.TagViewFragment; import com.todoroo.astrid.actfm.TagViewFragment;
@ -703,14 +702,18 @@ public class TaskListActivity extends InjectingAppCompatActivity implements
} }
protected Bundle configureIntentAndExtrasWithFilter(Intent intent, Filter filter) { protected Bundle configureIntentAndExtrasWithFilter(Intent intent, Filter filter) {
Bundle extras;
if(filter instanceof FilterWithCustomIntent) { if(filter instanceof FilterWithCustomIntent) {
int lastSelectedList = intent.getIntExtra(NavigationDrawerFragment.TOKEN_LAST_SELECTED, 0); Intent customIntent = ((FilterWithCustomIntent)filter).getCustomIntent();
intent = ((FilterWithCustomIntent)filter).getCustomIntent(); customIntent.putExtra(NavigationDrawerFragment.TOKEN_LAST_SELECTED, intent.getIntExtra(NavigationDrawerFragment.TOKEN_LAST_SELECTED, 0));
intent.putExtra(NavigationDrawerFragment.TOKEN_LAST_SELECTED, lastSelectedList); if (intent.hasExtra(OPEN_TASK)) {
setIntent(intent); customIntent.putExtra(OPEN_TASK, intent.getLongExtra(OPEN_TASK, 0));
}
setIntent(customIntent);
extras = customIntent.getExtras();
} else {
extras = intent.getExtras();
} }
Bundle extras = intent.getExtras();
if (extras != null) { if (extras != null) {
extras = (Bundle) extras.clone(); extras = (Bundle) extras.clone();
} }

@ -1,6 +1,5 @@
package org.tasks.widget; package org.tasks.widget;
import android.annotation.TargetApi;
import android.app.PendingIntent; import android.app.PendingIntent;
import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetManager;
import android.content.ComponentName; import android.content.ComponentName;
@ -8,7 +7,6 @@ import android.content.ContentValues;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.net.Uri; import android.net.Uri;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.view.View; import android.view.View;
import android.widget.RemoteViews; import android.widget.RemoteViews;
@ -54,7 +52,6 @@ public class WidgetHelper {
this.alarmManager = alarmManager; this.alarmManager = alarmManager;
} }
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
public RemoteViews createScrollableWidget(Context context, int id) { public RemoteViews createScrollableWidget(Context context, int id) {
Intent intent = new Intent(context, ScrollableWidgetUpdateService.class); Intent intent = new Intent(context, ScrollableWidgetUpdateService.class);
PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT); PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
@ -116,17 +113,14 @@ public class WidgetHelper {
listIntent.putExtras(((FilterWithCustomIntent) filter).customExtras); listIntent.putExtras(((FilterWithCustomIntent) filter).customExtras);
} }
return PendingIntent.getActivity(context, widgetId, return PendingIntent.getActivity(context, widgetId, listIntent, PendingIntent.FLAG_CANCEL_CURRENT);
listIntent, PendingIntent.FLAG_CANCEL_CURRENT);
} }
private PendingIntent getEditTaskIntent(Context context, Filter filter, int widgetId) { private PendingIntent getEditTaskIntent(Context context, Filter filter, int widgetId) {
Intent intent = new Intent(context, TasksWidget.class); Intent intent = new Intent(context, TasksWidget.class);
if (context.getResources().getBoolean(R.bool.two_pane_layout)) { if (filter != null && filter instanceof FilterWithCustomIntent) {
if (filter != null && filter instanceof FilterWithCustomIntent) { Bundle customExtras = ((FilterWithCustomIntent) filter).customExtras;
Bundle customExtras = ((FilterWithCustomIntent) filter).customExtras; intent.putExtras(customExtras);
intent.putExtras(customExtras);
}
} }
return PendingIntent.getBroadcast(context, -widgetId, intent, 0); return PendingIntent.getBroadcast(context, -widgetId, intent, 0);
} }

Loading…
Cancel
Save