code: public static void onMove(ItemAdapter itemAdapter, int oldPosition, int newPosition) {
          // necessary, because the positions passed to this function may be jumping in case of that the recycler view is scrolled while holding an item outside of the recycler view
          if (oldPosition < newPosition) {
              for (int i = oldPosition + 1; i <= newPosition; i++) {
                  itemAdapter.move(i, i - 1);
              }
          } else {
              for (int i = oldPosition - 1; i >= newPosition; i--) {
                  itemAdapter.move(i, i + 1);
              }
          }
      }
docs: /*
  This functions handles the default drag and drop move event
  It takes care to move all items one by one within the passed in positions
  
  @param fastAdapter the adapter
  @param oldPosition the start position of the move
  @param newPosition the end position of the move