From aff8b1c89378f1c1a1b590b4168065c062957b64 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Mon, 2 Apr 2012 18:08:51 -0700 Subject: [PATCH] Fixed the 'wrong task clicked' bug somehow --- .../astrid/activity/TaskListFragment.java | 16 +++++++++++++++ .../todoroo/astrid/adapter/TaskAdapter.java | 20 +------------------ 2 files changed, 17 insertions(+), 19 deletions(-) diff --git a/astrid/src/com/todoroo/astrid/activity/TaskListFragment.java b/astrid/src/com/todoroo/astrid/activity/TaskListFragment.java index a1d1431cc..91a1c2e6b 100644 --- a/astrid/src/com/todoroo/astrid/activity/TaskListFragment.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskListFragment.java @@ -41,7 +41,9 @@ import android.view.View.OnTouchListener; import android.view.ViewGroup; import android.widget.AbsListView; import android.widget.AbsListView.OnScrollListener; +import android.widget.AdapterView; import android.widget.AdapterView.AdapterContextMenuInfo; +import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView; import android.widget.TextView; @@ -295,6 +297,20 @@ public class TaskListFragment extends ListFragment implements OnScrollListener, } }); + getListView().setOnItemClickListener(new OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, + int position, long id) { + TodorooCursor cursor = (TodorooCursor)taskAdapter.getItem(position); + Task task = new Task(cursor); + if(task.isDeleted()) + return; + + if (!task.getFlag(Task.FLAGS, Task.FLAG_IS_READONLY)) { + onTaskListItemClicked(id); + } + } + }); } /** diff --git a/astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java b/astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java index 5254f176c..74aaeb4cb 100644 --- a/astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java +++ b/astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java @@ -30,13 +30,10 @@ import android.text.Spanned; import android.text.TextUtils; import android.util.DisplayMetrics; import android.util.Log; -import android.view.ContextMenu; -import android.view.ContextMenu.ContextMenuInfo; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; -import android.view.View.OnCreateContextMenuListener; import android.view.View.OnTouchListener; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; @@ -596,14 +593,6 @@ public class TaskAdapter extends CursorAdapter implements Filterable { } } }); - - if(applyListeners == APPLY_LISTENERS_ROW_BODY) { - viewHolder.rowBody.setOnCreateContextMenuListener(listener); - viewHolder.rowBody.setOnClickListener(listener); - } else if(applyListeners == APPLY_LISTENERS_PARENT) { - container.setOnCreateContextMenuListener(listener); - container.setOnClickListener(listener); - } } /* ====================================================================== @@ -1000,14 +989,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable { return (ViewHolder)((View)v.getParent()).getTag(); } - public class TaskRowListener implements OnCreateContextMenuListener, OnClickListener { - - public void onCreateContextMenu(ContextMenu menu, View v, - ContextMenuInfo menuInfo) { - // this is all a big sham. it's actually handled in Task List - // Activity. however, we need this to be here. - } - + public class TaskRowListener implements OnClickListener { @Override public void onClick(View v) { // expand view (unless deleted)