private static int insertionIndexForKey(SparseBooleanArray sba, int key) {
        int low = 0;
        int high = sba.size();
        while (high - low > 0) {
            int middle = (low + high) >> 1;
            if (sba.keyAt(middle) < key)
                low = middle + 1;
            else
                high = middle;
        }
        return low;
    }
Use this when an item has been deleted, to move the check state of all
following items up one step. If you have a choiceMode which is not none,
this method must be called when the order of items changes in an
underlying adapter which does not have stable IDs (see
{@link ListAdapter#hasStableIds()}). This is because without IDs, the
ListView has no way of knowing which items have moved where, and cannot
update the check state accordingly.

See also further comments on {@link #moveCheckState(int, int)}.

@param position
third_party/DragSortListView/src/com/mobeta/android/dslv/DragSortListView.java