From 99b057243a15277fcb8fac24f37e045169d467f7 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Fri, 3 Feb 2012 14:01:05 -0800 Subject: [PATCH] Fixed long-press on filterlist for phones, text color in add comments fields --- astrid/res/layout/tag_updates_fragment.xml | 1 + astrid/res/layout/task_edit_activity.xml | 1 + .../astrid/activity/FilterListFragment.java | 51 +++++++++++++++---- 3 files changed, 44 insertions(+), 9 deletions(-) diff --git a/astrid/res/layout/tag_updates_fragment.xml b/astrid/res/layout/tag_updates_fragment.xml index c247d00c8..7ea9b7f4d 100644 --- a/astrid/res/layout/tag_updates_fragment.xml +++ b/astrid/res/layout/tag_updates_fragment.xml @@ -63,6 +63,7 @@ android:background="@drawable/footer_comment_edittext" android:capitalize="sentences" android:hint="@string/TVA_add_comment" + android:textColor="@android:color/black" android:paddingLeft="10dip" android:textSize="16sp" /> diff --git a/astrid/res/layout/task_edit_activity.xml b/astrid/res/layout/task_edit_activity.xml index 67917a9cb..1764f65e5 100644 --- a/astrid/res/layout/task_edit_activity.xml +++ b/astrid/res/layout/task_edit_activity.xml @@ -158,6 +158,7 @@ android:background="@drawable/footer_comment_edittext" android:capitalize="sentences" android:hint="@string/TVA_add_comment" + android:textColor="@android:color/black" android:paddingLeft="10dip" android:textSize="16sp" /> diff --git a/astrid/src/com/todoroo/astrid/activity/FilterListFragment.java b/astrid/src/com/todoroo/astrid/activity/FilterListFragment.java index 5e7582cd9..d08fc6282 100644 --- a/astrid/src/com/todoroo/astrid/activity/FilterListFragment.java +++ b/astrid/src/com/todoroo/astrid/activity/FilterListFragment.java @@ -5,6 +5,7 @@ package com.todoroo.astrid.activity; import android.app.Activity; import android.app.AlertDialog; +import android.app.Dialog; import android.app.SearchManager; import android.content.BroadcastReceiver; import android.content.Context; @@ -32,7 +33,10 @@ import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.view.inputmethod.EditorInfo; +import android.widget.AdapterView; import android.widget.AdapterView.AdapterContextMenuInfo; +import android.widget.AdapterView.OnItemLongClickListener; +import android.widget.ArrayAdapter; import android.widget.EditText; import android.widget.FrameLayout; import android.widget.ListView; @@ -167,14 +171,6 @@ public class FilterListFragment extends ListFragment { //ImageView backButton = (ImageView) getView().findViewById(R.id.back); newListButton = getView().findViewById(R.id.lists_footer); -// backButton.setOnClickListener(new OnClickListener() { -// @Override -// public void onClick(View v) { -// getActivity().finish(); -// AndroidUtilities.callOverridePendingTransition(getActivity(), R.anim.slide_left_in, R.anim.slide_left_out); -// } -// }); - newListButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { @@ -305,7 +301,44 @@ public class FilterListFragment extends ListFragment { adapter.setLastSelected(mSelectedIndex); - registerForContextMenu(getListView()); + // Can't do context menus when list is in popup menu for some reason--workaround + if (((AstridActivity) getActivity()).fragmentLayout == AstridActivity.LAYOUT_SINGLE) { + getListView().setOnItemLongClickListener(new OnItemLongClickListener() { + @Override + public boolean onItemLongClick(AdapterView parent, View view, + int position, long id) { + // Do stuff + final Filter filter = adapter.getItem(position); + final String[] labels = filter.contextMenuLabels; + final Intent[] intents = filter.contextMenuIntents; + ArrayAdapter intentAdapter = new ArrayAdapter(getActivity(), android.R.layout.simple_list_item_1); + intentAdapter.add(getString(R.string.FLA_context_shortcut)); + for (String l : labels) { + intentAdapter.add(l); + } + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + builder.setTitle(filter.title); + builder.setAdapter(intentAdapter, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + if (which == 0) { + showCreateShortcutDialog(ShortcutActivity.createIntent(filter), filter); + } else { + startActivityForResult(intents[which - 1], REQUEST_CUSTOM_INTENT); + } + } + }); + + Dialog d = builder.create(); + d.setOwnerActivity(getActivity()); + d.show(); + return true; + } + + }); + } else { + registerForContextMenu(getListView()); + } }