Pending Intent filter shortcut

pull/14/head
Tim Su 15 years ago
parent e08dc10c63
commit 75d5cc5819

@ -5,8 +5,8 @@ package com.todoroo.astrid.activity;
import android.app.AlertDialog;
import android.app.ExpandableListActivity;
import android.app.PendingIntent.CanceledException;
import android.app.SearchManager;
import android.app.PendingIntent.CanceledException;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
@ -18,22 +18,21 @@ import android.net.Uri;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.WindowManager;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.inputmethod.EditorInfo;
import android.widget.EditText;
import android.widget.ExpandableListView;
import android.widget.ExpandableListView.ExpandableListContextMenuInfo;
import android.widget.FrameLayout;
import android.widget.TextView;
import android.widget.TextView.OnEditorActionListener;
import android.widget.Toast;
import android.widget.ExpandableListView.ExpandableListContextMenuInfo;
import android.widget.TextView.OnEditorActionListener;
import com.todoroo.astrid.service.StatisticsService;
import com.timsu.astrid.R;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.DependencyInjectionService;
@ -50,7 +49,7 @@ import com.todoroo.astrid.api.IntentFilter;
import com.todoroo.astrid.core.SearchFilter;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.StartupService;
import com.todoroo.astrid.utility.Constants;
import com.todoroo.astrid.service.StatisticsService;
/**
* Activity that displays a user's task lists and allows users

@ -22,6 +22,8 @@ package com.todoroo.astrid.activity;
import java.util.Map.Entry;
import android.app.Activity;
import android.app.PendingIntent;
import android.app.PendingIntent.CanceledException;
import android.content.ContentValues;
import android.content.Intent;
import android.os.Bundle;
@ -31,6 +33,7 @@ import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.sql.QueryTemplate;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterWithCustomIntent;
import com.todoroo.astrid.data.Task;
/**
@ -60,6 +63,8 @@ public class ShortcutActivity extends Activity {
/** token for passing a {@link Filter}'s values for new tasks through extras as exploded ContentValues */
public static final String TOKEN_FILTER_VALUES_ITEM = "v4ntp_"; //$NON-NLS-1$
/** token for passing a PendingIntent to launch */
public static final String TOKEN_PENDING_INTENT = "pintent"; //$NON-NLS-1$
// --- implementation
@ -80,7 +85,14 @@ public class ShortcutActivity extends Activity {
private void launchTaskList(Intent intent) {
Bundle extras = intent.getExtras();
if(extras != null && extras.containsKey(TOKEN_FILTER_SQL)) {
if(extras != null && extras.containsKey(TOKEN_PENDING_INTENT)) {
PendingIntent pending = extras.getParcelable(TOKEN_PENDING_INTENT);
try {
pending.send();
} catch (CanceledException e) {
// ignore it
}
} else if(extras != null && extras.containsKey(TOKEN_FILTER_SQL)) {
// launched from desktop shortcut, must create a fake filter
String title = extras.getString(TOKEN_FILTER_TITLE);
String sql = extras.getString(TOKEN_FILTER_SQL);
@ -131,6 +143,10 @@ public class ShortcutActivity extends Activity {
Intent shortcutIntent = new Intent(ContextManager.getContext(),
ShortcutActivity.class);
if(filter instanceof FilterWithCustomIntent)
shortcutIntent.putExtra(ShortcutActivity.TOKEN_PENDING_INTENT,
((FilterWithCustomIntent)filter).intent);
shortcutIntent.setAction(Intent.ACTION_VIEW);
shortcutIntent.putExtra(ShortcutActivity.TOKEN_FILTER_TITLE,
filter.title);

Loading…
Cancel
Save