@Override public void onItemRangeRemoved(int positionStart, int itemCount) { final BaseWrapperAdapter<VH> holder = mRefHolder.get(); if (holder != null) { holder.onWrappedAdapterItemRangeRemoved(positionStart, itemCount); } }
@Override public void onItemRangeChanged(int positionStart, int itemCount, Object payload) { final BaseWrapperAdapter<VH> holder = mRefHolder.get(); if (holder != null) { holder.onWrappedAdapterItemRangeChanged(positionStart, itemCount, payload); } }
@Override public void onChanged() { final BaseWrapperAdapter<VH> holder = mRefHolder.get(); if (holder != null) { holder.onWrappedAdapterChanged(); } }
@Override public void onItemRangeMoved(int fromPosition, int toPosition, int itemCount) { final BaseWrapperAdapter<VH> holder = mRefHolder.get(); if (holder != null) { holder.onWrappedAdapterRangeMoved(fromPosition, toPosition, itemCount); } }
@Override protected void onRelease() { super.onRelease(); mDraggingItem = null; mDraggableItemAdapter = null; mDragDropManager = null; }
@Override protected void onHandleWrappedAdapterRangeMoved(int fromPosition, int toPosition, int itemCount) { if (shouldCancelDragOnDataUpdated()) { cancelDrag(); } else { super.onHandleWrappedAdapterRangeMoved(fromPosition, toPosition, itemCount); } }
@Override protected void onHandleWrappedAdapterItemRangeRemoved(int positionStart, int itemCount) { if (shouldCancelDragOnDataUpdated()) { cancelDrag(); } else { super.onHandleWrappedAdapterItemRangeRemoved(positionStart, itemCount); } }
@Override protected void onHandleWrappedAdapterChanged() { if (shouldCancelDragOnDataUpdated()) { cancelDrag(); } else { super.onHandleWrappedAdapterChanged(); } }
@Override public void onViewRecycled(VH holder) { if (isDragging()) { if (holder == mDraggingItem) { if (LOCAL_LOGI) { Log.i(TAG, "a view holder object which is bound to currently dragging item is recycled"); } mDraggingItem = null; mDragDropManager.onDraggingItemViewRecycled(); } } super.onViewRecycled(holder); }
@Override public void onBindViewHolder(VH holder, int position) { if (isDragging()) { final long itemId = holder.getItemId(); final int origPosition = convertToOriginalPosition( position, mDraggingItemInitialPosition, mDraggingItemCurrentPosition); if (itemId == mDraggingItemId && holder != mDraggingItem) { if (mDraggingItem == null) { if (LOCAL_LOGI) { Log.i(TAG, "a new view holder object for the currently dragging item is assigned"); } mDraggingItem = holder; mDragDropManager.onNewDraggingItemViewBinded(holder); } else { Log.e(TAG, "an another view holder object for the currently dragging item is assigned"); } } int flags = RecyclerViewDragDropManager.STATE_FLAG_DRAGGING; if (itemId == mDraggingItemId) { flags |= RecyclerViewDragDropManager.STATE_FLAG_IS_ACTIVE; } if (mDraggableRange.checkInRange(position)) { flags |= RecyclerViewDragDropManager.STATE_FLAG_IS_IN_RANGE; } safeUpdateFlags(holder, flags); super.onBindViewHolder(holder, origPosition); } else { safeUpdateFlags(holder, 0); super.onBindViewHolder(holder, position); } }