lib-manipulation/src/main/java/com/nhaarman/listviewanimations/itemmanipulation/dragdrop/DragAndDropHandler.java
private void switchIfNecessary() {
        if (mHoverDrawable == null || mAdapter == null) {
            return;
        }

        int position = getPositionForId(mMobileItemId);
        long aboveItemId = position - 1 - mWrapper.getHeaderViewsCount() >= 0 ? mAdapter.getItemId(position - 1 - mWrapper.getHeaderViewsCount()) : INVALID_ID;
        long belowItemId = position + 1 - mWrapper.getHeaderViewsCount() < mAdapter.getCount()
                           ? mAdapter.getItemId(position + 1 - mWrapper.getHeaderViewsCount())
                           : INVALID_ID;

        final long switchId = mHoverDrawable.isMovingUpwards() ? aboveItemId : belowItemId;
        View switchView = getViewForId(switchId);

        final int deltaY = mHoverDrawable.getDeltaY();
        if (switchView != null && Math.abs(deltaY) > mHoverDrawable.getIntrinsicHeight()) {
            switchViews(switchView, switchId, mHoverDrawable.getIntrinsicHeight() * (deltaY < 0 ? -1 : 1));
        }

        mScrollHandler.handleMobileCellScroll();

        mWrapper.getListView().invalidate();
    }
private void switchIfNecessary() {
        if (mHoverDrawable == null || mAdapter == null) {
            return;
        }

        int position = getPositionForId(mMobileItemId);
        long aboveItemId = position - 1 - mWrapper.getHeaderViewsCount() >= 0 ? mAdapter.getItemId(position - 1 - mWrapper.getHeaderViewsCount()) : INVALID_ID;
        long belowItemId = position + 1 - mWrapper.getHeaderViewsCount() < mAdapter.getCount()
                           ? mAdapter.getItemId(position + 1 - mWrapper.getHeaderViewsCount())
                           : INVALID_ID;

        final long switchId = mHoverDrawable.isMovingUpwards() ? aboveItemId : belowItemId;
        View switchView = getViewForId(switchId);

        final int deltaY = mHoverDrawable.getDeltaY();
        if (switchView != null && Math.abs(deltaY) > mHoverDrawable.getIntrinsicHeight()) {
            switchViews(switchView, switchId, mHoverDrawable.getIntrinsicHeight() * (deltaY < 0 ? -1 : 1));
        }

        mScrollHandler.handleMobileCellScroll();

        mWrapper.getListView().invalidate();
    }
private void switchIfNecessary ( ) { if ( mHoverDrawable == null || mAdapter == null ) { return ; } int position = getPositionForId ( mMobileItemId ) ; long aboveItemId = position - 1 - mWrapper . getHeaderViewsCount ( ) >= 0 ? mAdapter . getItemId ( position - 1 - mWrapper . getHeaderViewsCount ( ) ) : INVALID_ID ; long belowItemId = position + 1 - mWrapper . getHeaderViewsCount ( ) < mAdapter . getCount ( ) ? mAdapter . getItemId ( position + 1 - mWrapper . getHeaderViewsCount ( ) ) : INVALID_ID ; final long switchId = mHoverDrawable . isMovingUpwards ( ) ? aboveItemId : belowItemId ; View switchView = getViewForId ( switchId ) ; final int deltaY = mHoverDrawable . getDeltaY ( ) ; if ( switchView != null && Math . abs ( deltaY ) > mHoverDrawable . getIntrinsicHeight ( ) ) { switchViews ( switchView , switchId , mHoverDrawable . getIntrinsicHeight ( ) * ( deltaY < 0 ? - 1 : 1 ) ) ; } mScrollHandler . handleMobileCellScroll ( ) ; mWrapper . getListView ( ) . invalidate ( ) ; }
Finds the {@code View} that is a candidate for switching, and executes the switch if necessary.
Finds the {