Skip to content

Commit c5893f3

Browse files
committed
Applied android formatting. Fling remove works on the drag handle when drag init mode is onLongPress
1 parent d736daa commit c5893f3

File tree

2 files changed

+394
-404
lines changed

2 files changed

+394
-404
lines changed

library/src/com/mobeta/android/dslv/DragSortController.java

Lines changed: 87 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public class DragSortController extends SimpleFloatViewManager implements View.O
4444
private int mRemoveMode;
4545

4646
private boolean mRemoveEnabled = false;
47-
private boolean mIsRemoving = false;
47+
private boolean mIsRemoving = false;
4848

4949
private GestureDetector mDetector;
5050

@@ -79,8 +79,7 @@ public class DragSortController extends SimpleFloatViewManager implements View.O
7979
private boolean mCanDrag;
8080

8181
private DragSortListView mDslv;
82-
private int mPositionX;
83-
82+
private int mPositionX;
8483

8584
/**
8685
* Calls {@link #DragSortController(DragSortListView, int)} with a
@@ -97,9 +96,9 @@ public DragSortController(DragSortListView dslv) {
9796
public DragSortController(DragSortListView dslv, int dragHandleId, int dragInitMode, int removeMode) {
9897
this(dslv, dragHandleId, dragInitMode, removeMode, 0);
9998
}
100-
public DragSortController(DragSortListView dslv, int dragHandleId, int dragInitMode, int removeMode, int clickRemoveId)
101-
{
102-
this(dslv, dragHandleId, dragInitMode, removeMode, clickRemoveId,0);
99+
100+
public DragSortController(DragSortListView dslv, int dragHandleId, int dragInitMode, int removeMode, int clickRemoveId) {
101+
this(dslv, dragHandleId, dragInitMode, removeMode, clickRemoveId, 0);
103102
}
104103

105104
/**
@@ -109,8 +108,8 @@ public DragSortController(DragSortListView dslv, int dragHandleId, int dragInitM
109108
* @param dragHandleId The resource id of the View that represents
110109
* the drag handle in a list item.
111110
*/
112-
public DragSortController(DragSortListView dslv, int dragHandleId, int dragInitMode, int removeMode, int clickRemoveId, int flingHandleId)
113-
{
111+
public DragSortController(DragSortListView dslv, int dragHandleId, int dragInitMode,
112+
int removeMode, int clickRemoveId, int flingHandleId) {
114113
super(dslv);
115114
mDslv = dslv;
116115
mDetector = new GestureDetector(dslv.getContext(), this);
@@ -186,8 +185,8 @@ public boolean isRemoveEnabled() {
186185
*/
187186
public void setDragHandleId(int id) {
188187
mDragHandleId = id;
189-
}
190-
188+
}
189+
191190
/**
192191
* Set the resource id for the View that represents the fling
193192
* handle in a list item.
@@ -208,7 +207,6 @@ public void setClickRemoveId(int id) {
208207
mClickRemoveId = id;
209208
}
210209

211-
212210
/**
213211
* Sets flags to restrict certain motions of the floating View
214212
* based on DragSortController settings (such as remove mode).
@@ -220,18 +218,19 @@ public void setClickRemoveId(int id) {
220218
*
221219
* @return True if drag started, false otherwise.
222220
*/
223-
public boolean startDrag(int position, int deltaX, int deltaY) {
221+
public boolean startDrag(int position, int deltaX, int deltaY) {
224222

225223
int dragFlags = 0;
226224
if (mSortEnabled && !mIsRemoving) {
227225
dragFlags |= DragSortListView.DRAG_POS_Y | DragSortListView.DRAG_NEG_Y;
228226
}
229-
if (mRemoveEnabled && mIsRemoving){
230-
dragFlags |= DragSortListView.DRAG_POS_X;
231-
dragFlags |= DragSortListView.DRAG_NEG_X;
227+
if (mRemoveEnabled && mIsRemoving) {
228+
dragFlags |= DragSortListView.DRAG_POS_X;
229+
dragFlags |= DragSortListView.DRAG_NEG_X;
232230
}
233-
234-
mDragging = mDslv.startDrag(position - mDslv.getHeaderViewsCount(), dragFlags, deltaX, deltaY);
231+
232+
mDragging = mDslv.startDrag(position - mDslv.getHeaderViewsCount(), dragFlags, deltaX,
233+
deltaY);
235234
return mDragging;
236235
}
237236

@@ -242,29 +241,29 @@ public boolean onTouch(View v, MotionEvent ev) {
242241
}
243242

244243
mDetector.onTouchEvent(ev);
245-
if (mRemoveEnabled && mDragging && mRemoveMode == FLING_REMOVE ) {
244+
if (mRemoveEnabled && mDragging && mRemoveMode == FLING_REMOVE) {
246245
mFlingRemoveDetector.onTouchEvent(ev);
247246
}
248247

249248
int action = ev.getAction() & MotionEvent.ACTION_MASK;
250249

251250
switch (action) {
252-
case MotionEvent.ACTION_DOWN:
253-
mCurrX = (int) ev.getX();
254-
mCurrY = (int) ev.getY();
255-
break;
256-
case MotionEvent.ACTION_UP:
257-
if (mRemoveEnabled && mIsRemoving ) {
258-
int x = mPositionX >= 0 ? mPositionX : -mPositionX;
259-
int removePoint = mDslv.getWidth() / 2;
260-
if( x > removePoint ){
261-
mDslv.stopDragWithVelocity(true,0);
251+
case MotionEvent.ACTION_DOWN:
252+
mCurrX = (int) ev.getX();
253+
mCurrY = (int) ev.getY();
254+
break;
255+
case MotionEvent.ACTION_UP:
256+
if (mRemoveEnabled && mIsRemoving) {
257+
int x = mPositionX >= 0 ? mPositionX : -mPositionX;
258+
int removePoint = mDslv.getWidth() / 2;
259+
if (x > removePoint) {
260+
mDslv.stopDragWithVelocity(true, 0);
261+
}
262262
}
263-
}
264-
case MotionEvent.ACTION_CANCEL:
265-
mIsRemoving = false;
266-
mDragging = false;
267-
break;
263+
case MotionEvent.ACTION_CANCEL:
264+
mIsRemoving = false;
265+
mDragging = false;
266+
break;
268267
}
269268

270269
return false;
@@ -276,7 +275,7 @@ public boolean onTouch(View v, MotionEvent ev) {
276275
@Override
277276
public void onDragFloatView(View floatView, Point position, Point touch) {
278277

279-
if (mRemoveEnabled && mIsRemoving ){
278+
if (mRemoveEnabled && mIsRemoving) {
280279
mPositionX = position.x;
281280
}
282281
}
@@ -297,8 +296,9 @@ public void onDragFloatView(View floatView, Point position, Point touch) {
297296
public int startDragPosition(MotionEvent ev) {
298297
return dragHandleHitPosition(ev);
299298
}
299+
300300
public int startFlingPosition(MotionEvent ev) {
301-
return mRemoveMode == FLING_REMOVE ? flingHandleHitPosition(ev) : MISS;
301+
return mRemoveMode == FLING_REMOVE ? flingHandleHitPosition(ev) : MISS;
302302
}
303303

304304
/**
@@ -314,32 +314,34 @@ public int startFlingPosition(MotionEvent ev) {
314314
public int dragHandleHitPosition(MotionEvent ev) {
315315
return viewIdHitPosition(ev, mDragHandleId);
316316
}
317+
317318
public int flingHandleHitPosition(MotionEvent ev) {
318-
return viewIdHitPosition(ev, mFlingHandleId);
319+
return viewIdHitPosition(ev, mFlingHandleId);
319320
}
320321

321322
public int viewIdHitPosition(MotionEvent ev, int id) {
322323
final int x = (int) ev.getX();
323324
final int y = (int) ev.getY();
324325

325-
int touchPos = mDslv.pointToPosition(x, y); //includes headers/footers
326-
326+
int touchPos = mDslv.pointToPosition(x, y); // includes headers/footers
327+
327328
final int numHeaders = mDslv.getHeaderViewsCount();
328329
final int numFooters = mDslv.getFooterViewsCount();
329330
final int count = mDslv.getCount();
330-
331-
//Log.d("mobeta", "touch down on position " + itemnum);
331+
332+
// Log.d("mobeta", "touch down on position " + itemnum);
332333
// We're only interested if the touch was on an
333334
// item that's not a header or footer.
334-
if (touchPos != AdapterView.INVALID_POSITION && touchPos >= numHeaders && touchPos < (count - numFooters)) {
335+
if (touchPos != AdapterView.INVALID_POSITION && touchPos >= numHeaders
336+
&& touchPos < (count - numFooters)) {
335337
final View item = mDslv.getChildAt(touchPos - mDslv.getFirstVisiblePosition());
336338
final int rawX = (int) ev.getRawX();
337339
final int rawY = (int) ev.getRawY();
338-
340+
339341
View dragBox = id == 0 ? item : (View) item.findViewById(id);
340342
if (dragBox != null) {
341343
dragBox.getLocationOnScreen(mTempLoc);
342-
344+
343345
if (rawX > mTempLoc[0] && rawY > mTempLoc[1] &&
344346
rawX < mTempLoc[0] + dragBox.getWidth() &&
345347
rawY < mTempLoc[1] + dragBox.getHeight()) {
@@ -362,67 +364,56 @@ public boolean onDown(MotionEvent ev) {
362364
}
363365

364366
mHitPos = startDragPosition(ev);
365-
if (mHitPos != MISS && mDragInitMode == ON_DOWN ) {
366-
startDrag(mHitPos, (int) ev.getX() - mItemX, (int) ev.getY() - mItemY);
367+
if (mHitPos != MISS && mDragInitMode == ON_DOWN) {
368+
startDrag(mHitPos, (int) ev.getX() - mItemX, (int) ev.getY() - mItemY);
367369
}
368-
370+
369371
mIsRemoving = false;
370372
mCanDrag = true;
371373
mPositionX = 0;
372374
mFlingHitPos = startFlingPosition(ev);
373375

374376
return true;
375377
}
376-
378+
377379
@Override
378380
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
379381

380382
final int x1 = (int) e1.getX();
381383
final int y1 = (int) e1.getY();
382384
final int x2 = (int) e2.getX();
383385
final int y2 = (int) e2.getY();
384-
final int deltaX = x2-mItemX;
385-
final int deltaY = y2-mItemY;
386-
387-
if( mCanDrag && !mDragging && (mHitPos != MISS || mFlingHitPos !=MISS )) {
388-
389-
if( mHitPos != MISS )
390-
{
391-
if( mDragInitMode == ON_DRAG )
392-
{
393-
if( Math.abs(y2-y1)>mTouchSlop && mSortEnabled )
394-
{
395-
startDrag(mHitPos, deltaX, deltaY);
396-
}
397-
else if( Math.abs(x2 - x1) > mTouchSlop && mRemoveEnabled )
398-
{
399-
mIsRemoving = true;
400-
startDrag(mFlingHitPos, deltaX, deltaY);
401-
}
402-
}
403-
//if mDragInitMode != ON_DRAG shloudn't do anything
404-
}
405-
else if( mFlingHitPos != MISS)
406-
{
407-
if( Math.abs(x2 - x1) > mTouchSlop && mRemoveEnabled)
408-
{
409-
mIsRemoving = true;
410-
startDrag(mFlingHitPos, deltaX, deltaY);
411-
}
412-
else if( Math.abs(y2-y1) > mTouchSlop)
413-
{
414-
mCanDrag = false; //if started to scroll the list then don't allow sorting nor fling-removing
415-
}
386+
final int deltaX = x2 - mItemX;
387+
final int deltaY = y2 - mItemY;
388+
389+
if (mCanDrag && !mDragging && (mHitPos != MISS || mFlingHitPos != MISS)) {
390+
if (mHitPos != MISS) {
391+
if (mDragInitMode == ON_DRAG && Math.abs(y2 - y1) > mTouchSlop && mSortEnabled) {
392+
startDrag(mHitPos, deltaX, deltaY);
393+
}
394+
else if (mDragInitMode != ON_DOWN && Math.abs(x2 - x1) > mTouchSlop && mRemoveEnabled)
395+
{
396+
mIsRemoving = true;
397+
startDrag(mFlingHitPos, deltaX, deltaY);
398+
}
399+
} else if (mFlingHitPos != MISS) {
400+
if (Math.abs(x2 - x1) > mTouchSlop && mRemoveEnabled) {
401+
mIsRemoving = true;
402+
startDrag(mFlingHitPos, deltaX, deltaY);
403+
} else if (Math.abs(y2 - y1) > mTouchSlop) {
404+
mCanDrag = false; // if started to scroll the list then
405+
// don't allow sorting nor fling-removing
406+
}
416407
}
417-
}
408+
}
418409
// return whatever
419410
return false;
420411
}
421412

422413
@Override
423414
public void onLongPress(MotionEvent e) {
424-
//Log.d("mobeta", "lift listener long pressed");
425-
if (mHitPos != MISS && mDragInitMode == ON_LONG_PRESS ) {
415+
// Log.d("mobeta", "lift listener long pressed");
416+
if (mHitPos != MISS && mDragInitMode == ON_LONG_PRESS) {
426417
mDslv.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS);
427418
startDrag(mHitPos, mCurrX - mItemX, mCurrY - mItemY);
428419
}
@@ -454,24 +445,20 @@ public void onShowPress(MotionEvent ev) {
454445
private GestureDetector.OnGestureListener mFlingRemoveListener =
455446
new GestureDetector.SimpleOnGestureListener() {
456447
@Override
457-
public final boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
458-
//Log.d("mobeta", "on fling remove called");
459-
if (mRemoveEnabled && mIsRemoving ) {
460-
int w = mDslv.getWidth();
461-
int minPos = w/5;
462-
if (velocityX > mFlingSpeed )
463-
{
464-
if( mPositionX > -minPos )
465-
{
466-
mDslv.stopDragWithVelocity(true,velocityX);
467-
}
468-
}
469-
else if (velocityX < -mFlingSpeed )
470-
{
471-
if( mPositionX < minPos )
472-
{
473-
mDslv.stopDragWithVelocity(true,velocityX);
474-
}
448+
public final boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
449+
float velocityY) {
450+
// Log.d("mobeta", "on fling remove called");
451+
if (mRemoveEnabled && mIsRemoving) {
452+
int w = mDslv.getWidth();
453+
int minPos = w / 5;
454+
if (velocityX > mFlingSpeed) {
455+
if (mPositionX > -minPos) {
456+
mDslv.stopDragWithVelocity(true, velocityX);
457+
}
458+
} else if (velocityX < -mFlingSpeed) {
459+
if (mPositionX < minPos) {
460+
mDslv.stopDragWithVelocity(true, velocityX);
461+
}
475462
}
476463
mIsRemoving = false;
477464
}
@@ -480,4 +467,3 @@ else if (velocityX < -mFlingSpeed )
480467
};
481468

482469
}
483-

0 commit comments

Comments
 (0)