public void finish(boolean animate) {
if (mStarted) {
mRecyclerView.removeItemDecoration(this);
}
final RecyclerView.ItemAnimator itemAnimator = mRecyclerView.getItemAnimator();
if (itemAnimator != null) {
itemAnimator.endAnimations();
}
mRecyclerView.stopScroll();
if (mSwapTargetItem != null) {
updateSwapTargetTranslation(mDraggingItemViewHolder, mSwapTargetItem, mCurTranslationPhase);
moveToDefaultPosition(mSwapTargetItem.itemView, 1.0f, 1.0f, 0.0f, 1.0f, animate);
mSwapTargetItem = null;
}
mDraggingItemViewHolder = null;
mTranslationX = 0;
mTranslationY = 0;
mCurTranslationPhase = 0.0f;
mReqTranslationPhase = 0.0f;
mStarted = false;
mDraggingItemInfo = null;
}