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.AlertDialog;
import android.app.ExpandableListActivity; import android.app.ExpandableListActivity;
import android.app.PendingIntent.CanceledException;
import android.app.SearchManager; import android.app.SearchManager;
import android.app.PendingIntent.CanceledException;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.graphics.Bitmap; import android.graphics.Bitmap;
@ -18,22 +18,21 @@ import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.util.DisplayMetrics; import android.util.DisplayMetrics;
import android.view.ContextMenu; import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.Menu; import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.WindowManager; import android.view.WindowManager;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.inputmethod.EditorInfo; import android.view.inputmethod.EditorInfo;
import android.widget.EditText; import android.widget.EditText;
import android.widget.ExpandableListView; import android.widget.ExpandableListView;
import android.widget.ExpandableListView.ExpandableListContextMenuInfo;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import android.widget.TextView; import android.widget.TextView;
import android.widget.TextView.OnEditorActionListener;
import android.widget.Toast; 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.timsu.astrid.R;
import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.DependencyInjectionService; 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.core.SearchFilter;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.StartupService; 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 * 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 java.util.Map.Entry;
import android.app.Activity; import android.app.Activity;
import android.app.PendingIntent;
import android.app.PendingIntent.CanceledException;
import android.content.ContentValues; import android.content.ContentValues;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
@ -31,6 +33,7 @@ import com.todoroo.andlib.service.ContextManager;
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.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterWithCustomIntent;
import com.todoroo.astrid.data.Task; 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 */ /** 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$ 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 // --- implementation
@ -80,7 +85,14 @@ public class ShortcutActivity extends Activity {
private void launchTaskList(Intent intent) { private void launchTaskList(Intent intent) {
Bundle extras = intent.getExtras(); 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 // launched from desktop shortcut, must create a fake filter
String title = extras.getString(TOKEN_FILTER_TITLE); String title = extras.getString(TOKEN_FILTER_TITLE);
String sql = extras.getString(TOKEN_FILTER_SQL); String sql = extras.getString(TOKEN_FILTER_SQL);
@ -131,6 +143,10 @@ public class ShortcutActivity extends Activity {
Intent shortcutIntent = new Intent(ContextManager.getContext(), Intent shortcutIntent = new Intent(ContextManager.getContext(),
ShortcutActivity.class); ShortcutActivity.class);
if(filter instanceof FilterWithCustomIntent)
shortcutIntent.putExtra(ShortcutActivity.TOKEN_PENDING_INTENT,
((FilterWithCustomIntent)filter).intent);
shortcutIntent.setAction(Intent.ACTION_VIEW); shortcutIntent.setAction(Intent.ACTION_VIEW);
shortcutIntent.putExtra(ShortcutActivity.TOKEN_FILTER_TITLE, shortcutIntent.putExtra(ShortcutActivity.TOKEN_FILTER_TITLE,
filter.title); filter.title);

Loading…
Cancel
Save