diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/TagSettingsActivity.java b/astrid/plugin-src/com/todoroo/astrid/actfm/TagSettingsActivity.java index c469539b2..c78847ad0 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/TagSettingsActivity.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/TagSettingsActivity.java @@ -37,6 +37,9 @@ import com.todoroo.andlib.utility.Preferences; import com.todoroo.astrid.actfm.ActFmCameraModule.CameraResultCallback; import com.todoroo.astrid.actfm.sync.ActFmPreferenceService; import com.todoroo.astrid.actfm.sync.ActFmSyncService; +import com.todoroo.astrid.activity.FilterListFragment; +import com.todoroo.astrid.activity.ShortcutActivity; +import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.data.TagData; import com.todoroo.astrid.service.StatisticsConstants; import com.todoroo.astrid.service.StatisticsService; @@ -60,6 +63,7 @@ public class TagSettingsActivity extends FragmentActivity { private static final String MEMBERS_IN_PROGRESS = "members"; //$NON-NLS-1$ private TagData tagData; + private Filter filter; // Used for creating shortcuts, only initialized if necessary @Autowired TagDataService tagDataService; @@ -173,6 +177,20 @@ public class TagSettingsActivity extends FragmentActivity { } }); + if (isNewTag) { + findViewById(R.id.create_shortcut_container).setVisibility(View.GONE); + } else { + findViewById(R.id.create_shortcut).setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + if (filter == null) { + filter = TagFilterExposer.filterFromTagData(TagSettingsActivity.this, tagData); + } + FilterListFragment.showCreateShortcutDialog(TagSettingsActivity.this, ShortcutActivity.createIntent(filter), filter); + } + }); + } + refreshSettingsPage(); } diff --git a/astrid/res/layout/tag_settings_activity.xml b/astrid/res/layout/tag_settings_activity.xml index 130ac174a..92f902a30 100644 --- a/astrid/res/layout/tag_settings_activity.xml +++ b/astrid/res/layout/tag_settings_activity.xml @@ -138,46 +138,80 @@ android:layout_marginTop="10dip" android:hint="@string/actfm_TVA_tag_description_hint" /> - - - - - - - - - - - - - + android:layout_marginTop="10dip" + android:layout_below="@id/tag_description" + style="@style/TEA_Separator" /> + + + + + + + + + + + + + + + + + + + + + + + diff --git a/astrid/src/com/todoroo/astrid/activity/FilterListFragment.java b/astrid/src/com/todoroo/astrid/activity/FilterListFragment.java index d08fc6282..d02261b7d 100644 --- a/astrid/src/com/todoroo/astrid/activity/FilterListFragment.java +++ b/astrid/src/com/todoroo/astrid/activity/FilterListFragment.java @@ -322,7 +322,7 @@ public class FilterListFragment extends ListFragment { @Override public void onClick(DialogInterface dialog, int which) { if (which == 0) { - showCreateShortcutDialog(ShortcutActivity.createIntent(filter), filter); + showCreateShortcutDialog(getActivity(), ShortcutActivity.createIntent(filter), filter); } else { startActivityForResult(intents[which - 1], REQUEST_CUSTOM_INTENT); } @@ -390,19 +390,19 @@ public class FilterListFragment extends ListFragment { * @param shortcutIntent * @param label */ - private void createShortcut(Filter filter, Intent shortcutIntent, String label) { + private static void createShortcut(Activity activity, Filter filter, Intent shortcutIntent, String label) { if(label.length() == 0) return; Bitmap emblem = filter.listingIcon; if(emblem == null) - emblem = ((BitmapDrawable) getResources().getDrawable( + emblem = ((BitmapDrawable) activity.getResources().getDrawable( R.drawable.gl_list)).getBitmap(); // create icon by superimposing astrid w/ icon DisplayMetrics metrics = new DisplayMetrics(); - getActivity().getWindowManager().getDefaultDisplay().getMetrics(metrics); - Bitmap bitmap = ((BitmapDrawable) getResources().getDrawable( + activity.getWindowManager().getDefaultDisplay().getMetrics(metrics); + Bitmap bitmap = ((BitmapDrawable) activity.getResources().getDrawable( R.drawable.icon_blank)).getBitmap(); bitmap = bitmap.copy(bitmap.getConfig(), true); Canvas canvas = new Canvas(bitmap); @@ -417,9 +417,9 @@ public class FilterListFragment extends ListFragment { createShortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON, bitmap); createShortcutIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); //$NON-NLS-1$ - getActivity().sendBroadcast(createShortcutIntent); - Toast.makeText(getActivity(), - getString(R.string.FLA_toast_onCreateShortcut, label), Toast.LENGTH_LONG).show(); + activity.sendBroadcast(createShortcutIntent); + Toast.makeText(activity, + activity.getString(R.string.FLA_toast_onCreateShortcut, label), Toast.LENGTH_LONG).show(); } @Override @@ -452,7 +452,7 @@ public class FilterListFragment extends ListFragment { final Intent shortcutIntent = item.getIntent(); FilterListItem filter = ((FilterAdapter.ViewHolder)info.targetView.getTag()).item; if(filter instanceof Filter) - showCreateShortcutDialog(shortcutIntent, (Filter)filter); + showCreateShortcutDialog(getActivity(), shortcutIntent, (Filter)filter); return true; } @@ -470,11 +470,11 @@ public class FilterListFragment extends ListFragment { return false; } - private void showCreateShortcutDialog(final Intent shortcutIntent, + public static void showCreateShortcutDialog(final Activity activity, final Intent shortcutIntent, final Filter filter) { - FrameLayout frameLayout = new FrameLayout(getActivity()); + FrameLayout frameLayout = new FrameLayout(activity); frameLayout.setPadding(10, 0, 10, 0); - final EditText editText = new EditText(getActivity()); + final EditText editText = new EditText(activity); if(filter.listingTitle == null) filter.listingTitle = ""; //$NON-NLS-1$ editText.setText(filter.listingTitle. @@ -487,7 +487,7 @@ public class FilterListFragment extends ListFragment { @Override public void run() { String label = editText.getText().toString(); - createShortcut(filter, shortcutIntent, label); + createShortcut(activity, filter, shortcutIntent, label); } }; editText.setOnEditorActionListener(new OnEditorActionListener() { @@ -501,7 +501,7 @@ public class FilterListFragment extends ListFragment { } }); - new AlertDialog.Builder(getActivity()) + new AlertDialog.Builder(activity) .setTitle(R.string.FLA_shortcut_dialog_title) .setMessage(R.string.FLA_shortcut_dialog) .setView(frameLayout) @@ -512,7 +512,7 @@ public class FilterListFragment extends ListFragment { } }) .setNegativeButton(android.R.string.cancel, null) - .show().setOwnerActivity(getActivity()); + .show().setOwnerActivity(activity); } public void clear() {