Workaround for wrong task complete with debug printlns

pull/14/head
Sam Bosley 14 years ago
parent 3dd18c26b4
commit 408eb95bad

@ -36,12 +36,15 @@ import android.text.Spanned;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.DisplayMetrics; import android.util.DisplayMetrics;
import android.util.Log; import android.util.Log;
import android.util.Pair;
import android.view.ContextMenu; import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo; import android.view.ContextMenu.ContextMenuInfo;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
import android.view.View.OnCreateContextMenuListener; import android.view.View.OnCreateContextMenuListener;
import android.view.View.OnTouchListener;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams; import android.view.ViewGroup.LayoutParams;
import android.view.ViewGroup.MarginLayoutParams; import android.view.ViewGroup.MarginLayoutParams;
@ -438,6 +441,8 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
protected TaskRowListener listener = new TaskRowListener(); protected TaskRowListener listener = new TaskRowListener();
private Pair<Float, Float> lastTouchYRawY = new Pair<Float, Float>(0f, 0f);
/** /**
* Set listeners for this view. This is called once per view when it is * Set listeners for this view. This is called once per view when it is
* created. * created.
@ -446,13 +451,17 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
final ViewHolder viewHolder = (ViewHolder)container.getTag(); final ViewHolder viewHolder = (ViewHolder)container.getTag();
// check box listener // check box listener
viewHolder.completeBox.setOnClickListener(completeBoxListener); OnTouchListener otl = new OnTouchListener() {
viewHolder.completeArea.setOnClickListener(new OnClickListener() {
@Override @Override
public void onClick(View v) { public boolean onTouch(View v, MotionEvent event) {
viewHolder.completeBox.performClick(); lastTouchYRawY = new Pair<Float, Float>(event.getY(), event.getRawY());
return false;
} }
}); };
viewHolder.completeBox.setOnTouchListener(otl);
viewHolder.completeArea.setOnTouchListener(otl);
viewHolder.completeBox.setOnClickListener(completeBoxListener);
viewHolder.completeArea.setOnClickListener(completeBoxListener);
if(applyListenersToRowBody) { if(applyListenersToRowBody) {
viewHolder.rowBody.setOnCreateContextMenuListener(listener); viewHolder.rowBody.setOnCreateContextMenuListener(listener);
@ -850,10 +859,19 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
protected final View.OnClickListener completeBoxListener = new View.OnClickListener() { protected final View.OnClickListener completeBoxListener = new View.OnClickListener() {
public void onClick(View v) { public void onClick(View v) {
int[] location = new int[2];
v.getLocationOnScreen(location);
ViewHolder viewHolder = (ViewHolder)((View)v.getParent().getParent()).getTag(); ViewHolder viewHolder = (ViewHolder)((View)v.getParent().getParent()).getTag();
if(Math.abs(location[1] + lastTouchYRawY.first - lastTouchYRawY.second) > 10) {
viewHolder.completeBox.setChecked(!viewHolder.completeBox.isChecked());
return;
}
Task task = viewHolder.task; Task task = viewHolder.task;
completeTask(task, ((CheckBox)v).isChecked()); completeTask(task, viewHolder.completeBox.isChecked());
// set check box to actual action item state // set check box to actual action item state
setTaskAppearance(viewHolder, task); setTaskAppearance(viewHolder, task);

Loading…
Cancel
Save