package com.bigfat.itemtouchhelperdemo;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.helper.ItemTouchHelper;
public class ItemTouchHelperCallback extends ItemTouchHelper.Callback {
private final ItemTouchHelperAdapter mItemTouchHelperAdapter;
private int mDraggedPosition;
private int mTargetPosition;
ItemTouchHelperCallback(ItemTouchHelperAdapter itemTouchHelperAdapter) {
mItemTouchHelperAdapter = itemTouchHelperAdapter;
}
@Override
public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
int dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN | ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT;
return makeMovementFlags(dragFlags, 0);
}
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder
target) {
mDraggedPosition = viewHolder.getAdapterPosition();
mTargetPosition = target.getAdapterPosition();
// mItemTouchHelperAdapter.onItemMove(viewHolder.getAdapterPosition(), target.getAdapterPosition());
return false;
}
@Override
public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) {
super.onSelectedChanged(viewHolder, actionState);
switch (actionState) {
case ItemTouchHelper.ACTION_STATE_DRAG:
mItemTouchHelperAdapter.onDragStarted();
break;
case ItemTouchHelper.ACTION_STATE_IDLE:
mItemTouchHelperAdapter.onItemMove(mDraggedPosition, mTargetPosition);
// mItemTouchHelperAdapter.onDragEnded();
break;
}
}
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
mItemTouchHelperAdapter.onItemDismiss(viewHolder.getAdapterPosition());
}
@Override
public boolean isLongPressDragEnabled() {
return true;
}
@Override
public boolean isItemViewSwipeEnabled() {
return true;
}
}