|
|
@ -3,6 +3,7 @@
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
package com.todoroo.astrid.activity;
|
|
|
|
package com.todoroo.astrid.activity;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import android.app.AlertDialog;
|
|
|
|
import android.app.ExpandableListActivity;
|
|
|
|
import android.app.ExpandableListActivity;
|
|
|
|
import android.app.SearchManager;
|
|
|
|
import android.app.SearchManager;
|
|
|
|
import android.content.BroadcastReceiver;
|
|
|
|
import android.content.BroadcastReceiver;
|
|
|
@ -10,18 +11,20 @@ import android.content.Context;
|
|
|
|
import android.content.DialogInterface;
|
|
|
|
import android.content.DialogInterface;
|
|
|
|
import android.content.Intent;
|
|
|
|
import android.content.Intent;
|
|
|
|
import android.content.IntentFilter;
|
|
|
|
import android.content.IntentFilter;
|
|
|
|
|
|
|
|
import android.graphics.Bitmap;
|
|
|
|
|
|
|
|
import android.graphics.Canvas;
|
|
|
|
import android.graphics.drawable.BitmapDrawable;
|
|
|
|
import android.graphics.drawable.BitmapDrawable;
|
|
|
|
import android.os.Bundle;
|
|
|
|
import android.os.Bundle;
|
|
|
|
import android.os.Parcelable;
|
|
|
|
import android.os.Parcelable;
|
|
|
|
import android.view.ContextMenu;
|
|
|
|
import android.view.ContextMenu;
|
|
|
|
|
|
|
|
import android.view.ContextMenu.ContextMenuInfo;
|
|
|
|
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.ContextMenu.ContextMenuInfo;
|
|
|
|
|
|
|
|
import android.widget.EditText;
|
|
|
|
import android.widget.EditText;
|
|
|
|
import android.widget.ExpandableListView;
|
|
|
|
import android.widget.ExpandableListView;
|
|
|
|
import android.widget.Toast;
|
|
|
|
|
|
|
|
import android.widget.ExpandableListView.ExpandableListContextMenuInfo;
|
|
|
|
import android.widget.ExpandableListView.ExpandableListContextMenuInfo;
|
|
|
|
|
|
|
|
import android.widget.Toast;
|
|
|
|
|
|
|
|
|
|
|
|
import com.flurry.android.FlurryAgent;
|
|
|
|
import com.flurry.android.FlurryAgent;
|
|
|
|
import com.timsu.astrid.R;
|
|
|
|
import com.timsu.astrid.R;
|
|
|
@ -272,7 +275,9 @@ public class FilterListActivity extends ExpandableListActivity {
|
|
|
|
menuItem = menu.add(0, CONTEXT_MENU_SHORTCUT, 0, R.string.FLA_context_shortcut);
|
|
|
|
menuItem = menu.add(0, CONTEXT_MENU_SHORTCUT, 0, R.string.FLA_context_shortcut);
|
|
|
|
Intent shortcutIntent = new Intent(this, TaskListActivity.class);
|
|
|
|
Intent shortcutIntent = new Intent(this, TaskListActivity.class);
|
|
|
|
shortcutIntent.setAction(Intent.ACTION_VIEW);
|
|
|
|
shortcutIntent.setAction(Intent.ACTION_VIEW);
|
|
|
|
shortcutIntent.putExtra(TaskListActivity.TOKEN_FILTER, filter);
|
|
|
|
shortcutIntent.putExtra(TaskListActivity.TOKEN_FILTER_TITLE, filter.title);
|
|
|
|
|
|
|
|
shortcutIntent.putExtra(TaskListActivity.TOKEN_FILTER_SQL, filter.sqlQuery);
|
|
|
|
|
|
|
|
shortcutIntent.putExtra(TaskListActivity.TOKEN_FILTER_VALUES, filter.valuesForNewTasks);
|
|
|
|
menuItem.setIntent(shortcutIntent);
|
|
|
|
menuItem.setIntent(shortcutIntent);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -287,6 +292,46 @@ public class FilterListActivity extends ExpandableListActivity {
|
|
|
|
menu.setHeaderTitle(item.listingTitle);
|
|
|
|
menu.setHeaderTitle(item.listingTitle);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* Creates a shortcut on the user's home screen
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
* @param shortcutIntent
|
|
|
|
|
|
|
|
* @param label
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
private void createShortcut(Filter filter, Intent shortcutIntent, String label) {
|
|
|
|
|
|
|
|
Bitmap bitmap;
|
|
|
|
|
|
|
|
if(filter.listingIcon == null)
|
|
|
|
|
|
|
|
bitmap = ((BitmapDrawable) getResources().getDrawable(
|
|
|
|
|
|
|
|
R.drawable.icon_tag)).getBitmap();
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
// create icon by superimposing astrid w/ icon
|
|
|
|
|
|
|
|
bitmap = ((BitmapDrawable) getResources().getDrawable(
|
|
|
|
|
|
|
|
R.drawable.icon)).getBitmap();
|
|
|
|
|
|
|
|
bitmap = bitmap.copy(bitmap.getConfig(), true);
|
|
|
|
|
|
|
|
Canvas canvas = new Canvas(bitmap);
|
|
|
|
|
|
|
|
/*canvas.drawBitmap(filter.listingIcon, bitmap.getWidth() -
|
|
|
|
|
|
|
|
filter.listingIcon.getWidth(), bitmap.getHeight() -
|
|
|
|
|
|
|
|
filter.listingIcon.getHeight(), null);*/
|
|
|
|
|
|
|
|
canvas.save();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
Intent createShortcutIntent = new Intent();
|
|
|
|
|
|
|
|
createShortcutIntent.putExtra(
|
|
|
|
|
|
|
|
Intent.EXTRA_SHORTCUT_INTENT,
|
|
|
|
|
|
|
|
shortcutIntent);
|
|
|
|
|
|
|
|
createShortcutIntent.putExtra(
|
|
|
|
|
|
|
|
Intent.EXTRA_SHORTCUT_NAME, label);
|
|
|
|
|
|
|
|
createShortcutIntent.putExtra(
|
|
|
|
|
|
|
|
Intent.EXTRA_SHORTCUT_ICON, bitmap);
|
|
|
|
|
|
|
|
createShortcutIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); //$NON-NLS-1$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sendBroadcast(createShortcutIntent);
|
|
|
|
|
|
|
|
Toast.makeText(
|
|
|
|
|
|
|
|
FilterListActivity.this,
|
|
|
|
|
|
|
|
getString(
|
|
|
|
|
|
|
|
R.string.FLA_toast_onCreateShortcut,
|
|
|
|
|
|
|
|
label), Toast.LENGTH_LONG).show();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public boolean onMenuItemSelected(int featureId, final MenuItem item) {
|
|
|
|
public boolean onMenuItemSelected(int featureId, final MenuItem item) {
|
|
|
|
|
|
|
|
|
|
|
@ -306,37 +351,24 @@ public class FilterListActivity extends ExpandableListActivity {
|
|
|
|
ExpandableListContextMenuInfo info = (ExpandableListContextMenuInfo)item.getMenuInfo();
|
|
|
|
ExpandableListContextMenuInfo info = (ExpandableListContextMenuInfo)item.getMenuInfo();
|
|
|
|
|
|
|
|
|
|
|
|
final Intent shortcutIntent = item.getIntent();
|
|
|
|
final Intent shortcutIntent = item.getIntent();
|
|
|
|
Filter filter = (Filter)info.targetView.getTag();
|
|
|
|
final Filter filter = (Filter)info.targetView.getTag();
|
|
|
|
|
|
|
|
|
|
|
|
String dialogText = getString(R.string.FLA_shortcut_dialog);
|
|
|
|
|
|
|
|
final EditText editText = new EditText(this);
|
|
|
|
final EditText editText = new EditText(this);
|
|
|
|
editText.setText(filter.listingTitle);
|
|
|
|
editText.setText(filter.listingTitle);
|
|
|
|
|
|
|
|
|
|
|
|
dialogUtilities.viewDialog(this, dialogText, editText,
|
|
|
|
new AlertDialog.Builder(this)
|
|
|
|
new DialogInterface.OnClickListener() {
|
|
|
|
.setTitle(R.string.FLA_shortcut_dialog_title)
|
|
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
|
|
.setMessage(R.string.FLA_shortcut_dialog)
|
|
|
|
String label = editText.getText().toString();
|
|
|
|
.setView(editText)
|
|
|
|
|
|
|
|
.setIcon(android.R.drawable.ic_dialog_info)
|
|
|
|
Intent createShortcutIntent = new Intent();
|
|
|
|
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
|
|
|
createShortcutIntent.putExtra(
|
|
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
|
|
Intent.EXTRA_SHORTCUT_INTENT,
|
|
|
|
String label = editText.getText().toString();
|
|
|
|
shortcutIntent);
|
|
|
|
createShortcut(filter, shortcutIntent, label);
|
|
|
|
createShortcutIntent.putExtra(
|
|
|
|
}
|
|
|
|
Intent.EXTRA_SHORTCUT_NAME, label);
|
|
|
|
})
|
|
|
|
createShortcutIntent.putExtra(
|
|
|
|
.setNegativeButton(android.R.string.cancel, null)
|
|
|
|
Intent.EXTRA_SHORTCUT_ICON,
|
|
|
|
.show();
|
|
|
|
((BitmapDrawable) getResources().getDrawable(
|
|
|
|
|
|
|
|
R.drawable.icon_tag)).getBitmap());
|
|
|
|
|
|
|
|
createShortcutIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); //$NON-NLS-1$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sendBroadcast(createShortcutIntent);
|
|
|
|
|
|
|
|
Toast.makeText(
|
|
|
|
|
|
|
|
FilterListActivity.this,
|
|
|
|
|
|
|
|
getString(
|
|
|
|
|
|
|
|
R.string.FLA_toast_onCreateShortcut,
|
|
|
|
|
|
|
|
label), Toast.LENGTH_LONG).show();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}, null);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|