code: private void switchViews(final View switchView, final long switchId, final float translationY) {
          assert mHoverDrawable != null;
          assert mAdapter != null;
          assert mMobileView != null;
  
          final int switchViewPosition = mWrapper.getPositionForView(switchView);
          int mobileViewPosition = mWrapper.getPositionForView(mMobileView);
  
          ((Swappable) mAdapter).swapItems(switchViewPosition - mWrapper.getHeaderViewsCount(), mobileViewPosition - mWrapper.getHeaderViewsCount());
          ((BaseAdapter) mAdapter).notifyDataSetChanged();
  
          mHoverDrawable.shift(switchView.getHeight());
          mSwitchViewAnimator.animateSwitchView(switchId, translationY);
      }
docs: Switches the item that is currently being dragged with the item belonging to given id,
  by notifying the adapter to swap positions and that the data set has changed.
  
  @param switchView   the {@code View} that should be animated towards the old position of the currently dragging item.
  @param switchId     the id of the item that will take the position of the currently dragging item.
  @param translationY the distance in pixels the {@code switchView} should animate - i.e. the (positive or negative) height of the {@code View} corresponding to the currently
  dragging item.