From f24907cbb654630be3b520793c57a12af2d2cfd0 Mon Sep 17 00:00:00 2001 From: Tim Su Date: Mon, 4 Oct 2010 19:09:37 -0700 Subject: [PATCH] Wired up swipe detector to behave as expected, restored old grabber icon at Jon's request, now indnet works --- .../commonsware/cwac/tlv/TouchListView.java | 7 ++++--- .../andlib/widget/Api4GestureDetector.java | 5 +++-- .../astrid/gtasks/GtasksListActivity.java | 4 ++-- .../astrid/gtasks/GtasksTaskListUpdater.java | 3 +++ .../astrid/notes/NoteDetailExposer.java | 3 +-- astrid/res/drawable/grabber.png | Bin 1161 -> 550 bytes .../res/layout/task_adapter_draggable_row.xml | 19 +++++++++--------- .../res/layout/task_list_body_draggable.xml | 12 +++-------- 8 files changed, 26 insertions(+), 27 deletions(-) diff --git a/astrid/common-src/com/commonsware/cwac/tlv/TouchListView.java b/astrid/common-src/com/commonsware/cwac/tlv/TouchListView.java index ad9542aff..61ae83a6e 100644 --- a/astrid/common-src/com/commonsware/cwac/tlv/TouchListView.java +++ b/astrid/common-src/com/commonsware/cwac/tlv/TouchListView.java @@ -44,6 +44,7 @@ public class TouchListView extends ListView { private int mFirstDragPos; // where was the dragged item originally private int mDragPoint; // at what offset inside the item did the user grab it private int mCoordOffset; // the difference between screen coordinates and coordinates in this view + private int mDragStartX; private DragListener mDragListener; private DropListener mDropListener; private SwipeListener mSwipeListener; @@ -123,6 +124,7 @@ public class TouchListView extends ListView { int touchSlop = mTouchSlop; mUpperBound = Math.min(y - touchSlop, mHeight / 3); mLowerBound = Math.max(y + touchSlop, mHeight * 2 /3); + mDragStartX = x; return false; } mDragView = null; @@ -260,13 +262,12 @@ public class TouchListView extends ListView { Rect r = mTempRect; mDragView.getDrawingRect(r); stopDragging(); - - if (mRemoveMode == SLIDE_RIGHT && ev.getX() > r.left+(r.width()*3/4)) { + if (ev.getX() > mDragStartX + 20) { if (mSwipeListener!= null) { mSwipeListener.swipeRight(mFirstDragPos); } unExpandViews(true); - } else if (mRemoveMode == SLIDE_LEFT && ev.getX() < r.left+(r.width()/4)) { + } else if (ev.getX() < mDragStartX - 20) { if (mSwipeListener!= null) { mSwipeListener.swipeLeft(mFirstDragPos); } diff --git a/astrid/common-src/com/todoroo/andlib/widget/Api4GestureDetector.java b/astrid/common-src/com/todoroo/andlib/widget/Api4GestureDetector.java index 11a110081..9c52756bf 100644 --- a/astrid/common-src/com/todoroo/andlib/widget/Api4GestureDetector.java +++ b/astrid/common-src/com/todoroo/andlib/widget/Api4GestureDetector.java @@ -7,8 +7,8 @@ import android.gesture.Gesture; import android.gesture.GestureLibraries; import android.gesture.GestureLibrary; import android.gesture.GestureOverlayView; -import android.gesture.Prediction; import android.gesture.GestureOverlayView.OnGesturePerformedListener; +import android.gesture.Prediction; import com.todoroo.andlib.widget.GestureService.GestureInterface; @@ -22,7 +22,8 @@ public class Api4GestureDetector implements OnGesturePerformedListener { if(mLibrary.load()) { GestureOverlayView gestures = (GestureOverlayView) activity.findViewById(view); - gestures.addOnGesturePerformedListener(this); + if(gestures != null) + gestures.addOnGesturePerformedListener(this); } } diff --git a/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksListActivity.java b/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksListActivity.java index 15f66eba5..263429577 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksListActivity.java +++ b/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksListActivity.java @@ -62,14 +62,14 @@ public class GtasksListActivity extends DraggableTaskListActivity { public void swipeRight(int which) { long targetTaskId = taskAdapter.getItemId(which); gtasksTaskListUpdater.indent(listId, targetTaskId, 1); - taskAdapter.notifyDataSetChanged(); + loadTaskListContent(true); } @Override public void swipeLeft(int which) { long targetTaskId = taskAdapter.getItemId(which); gtasksTaskListUpdater.indent(listId, targetTaskId, -1); - taskAdapter.notifyDataSetChanged(); + loadTaskListContent(true); } }; diff --git a/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksTaskListUpdater.java b/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksTaskListUpdater.java index 57978fa1c..56f00bf11 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksTaskListUpdater.java +++ b/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksTaskListUpdater.java @@ -6,9 +6,11 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; import android.text.TextUtils; +import android.widget.Toast; import com.todoroo.andlib.data.TodorooCursor; import com.todoroo.andlib.service.Autowired; +import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.astrid.api.Filter; @@ -77,6 +79,7 @@ public class GtasksTaskListUpdater { // if indenting is warranted, indent me and my children if(indent + delta <= previousIndent.get() + 1 && indent + delta >= 0) { targetTaskIndent.set(indent); + Toast.makeText(ContextManager.getContext(), "indent: " + (indent + delta), Toast.LENGTH_SHORT).show(); metadata.setValue(GtasksMetadata.INDENT, indent + delta); if(delta > 0) metadata.setValue(GtasksMetadata.PARENT_TASK, previousTask.get()); diff --git a/astrid/plugin-src/com/todoroo/astrid/notes/NoteDetailExposer.java b/astrid/plugin-src/com/todoroo/astrid/notes/NoteDetailExposer.java index 96397e5f7..870eeea44 100644 --- a/astrid/plugin-src/com/todoroo/astrid/notes/NoteDetailExposer.java +++ b/astrid/plugin-src/com/todoroo/astrid/notes/NoteDetailExposer.java @@ -9,10 +9,10 @@ import android.content.Context; import android.content.Intent; import com.timsu.astrid.R; +import com.todoroo.andlib.utility.Preferences; import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.core.PluginServices; import com.todoroo.astrid.data.Task; -import com.todoroo.andlib.utility.Preferences; /** * Exposes Task Detail for notes @@ -44,7 +44,6 @@ public class NoteDetailExposer extends BroadcastReceiver { } public String getTaskDetails(long id, boolean extended) { - if(Preferences.getBoolean(R.string.p_showNotes, false)) { if(extended) return null; diff --git a/astrid/res/drawable/grabber.png b/astrid/res/drawable/grabber.png index 9acdda0cbfa0e763d4e71b140b238f5ada838424..9169ae57b534fe790eb52c9cd4797c48e5a8141a 100644 GIT binary patch literal 550 zcmV+>0@?kEP)}Y&QG0+MCbkqv>=y0z<%)6_xY(+&e0V!{OU{y}lEN zqEe|;L{XHUFU5~Hh6WsgtVVBxBF4DpMij9=HW&=d%wdd~>U26iw`US-u$rcQ{tuV0 of%!_Jou3M$!l*DG?N5LK0DsKc6u0x}KL7v#07*qoM6N<$g2#*j@&Et; literal 1161 zcmV;41a|w0P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igh* z7bp#YCVl+?00aq1L_t(Y$L*C(Ok-6P$M5NVAAOI)>npUpwonLd3Is5GMZ|*JF+z$l zs9iuHW){R?1{VU-xG-X*>M%+o<18T5n27OX!MM;E*YXZEfvMm&+ACO)i|F6Fe|5@I)*YyXtT_vPDshvMl>rX=&-G$KyE>hEEGhBodD& zlgY8d!a`Y+Bmw~XWHR~4-rn9`PfyQ$Fc?&i%h#Q<8(k`us&hJ>xAb~_m=J<7#xbMO z_zTBzC7PyXoOH*jKmedQozAz*%F3SI+}!*jkw_qhVYbX>^Pt=9en}97@O^={x3{_U zxx2gjHp4J0ySuxIR4RouO-re&daJIk?l+IeLl8nJ7K^cG0#Qnt-rnA)0)fD_v9Ym& zw7;RDA+Bkf#Ih{H7;_k7?Py+CSJw+|ZEf#TO8FCi9isi~=_^Yil`%*x8T$@Batf*^z$hGA7zMI$34@5!=!!EUz)yk756d3kx{ zo*=*9-x7^RKXAL<0>^R5jg5`%a5#KG2r(2C6ujTp*Y{#N*5~tG#27z^G0p%0qSNWD zilSsvN;RJ6U#+RBdEM*vM(-Nfg@uKz@$vDuTrQU&2m&F5@K&oeKPM*#0RS?YOl6c( z3;^WL02i6f<_Bb1MuZRq0Eqr=I*jq9P$={{LTL6bP<3^6WO#V^GSBmVLWsh$Y&0Vy z<0pjBpOjKC8jWA4AqXLqnVESbH#hf7Ns<@5 - - + + android:scaleType="center" + android:src="@drawable/grabber"/> - - - + + android:paddingLeft="5dip" + android:button="@drawable/btn_check"/> diff --git a/astrid/res/layout/task_list_body_draggable.xml b/astrid/res/layout/task_list_body_draggable.xml index 24b70af4e..a62b5cc87 100644 --- a/astrid/res/layout/task_list_body_draggable.xml +++ b/astrid/res/layout/task_list_body_draggable.xml @@ -1,14 +1,8 @@ - + android:layout_height="wrap_content"> - +