@Override
    public void drop(int from, int to) {
        if (from != to) {
            int cursorFrom = mListMapping.get(from, from);

            if (from > to) {
                for (int i = from; i > to; --i) {
                    mListMapping.put(i, mListMapping.get(i - 1, i - 1));
                }
            } else {
                for (int i = from; i < to; ++i) {
                    mListMapping.put(i, mListMapping.get(i + 1, i + 1));
                }
            }
            mListMapping.put(to, cursorFrom);

            cleanMapping();        
            notifyDataSetChanged();
        }
    }
On drop, this updates the mapping between Cursor positions
and ListView positions. The Cursor is unchanged. Retrieve
the current mapping with {@link getCursorPositions()}.

@see DragSortListView.DropListener#drop(int, int)
third_party/DragSortListView/src/com/mobeta/android/dslv/DragSortCursorAdapter.java