private static void safeUpdateFlags(RecyclerView.ViewHolder holder, int flags) { if (!(holder instanceof DraggableItemViewHolder)) { return; } final DraggableItemViewHolder holder2 = (DraggableItemViewHolder) holder; final int curFlags = holder2.getDragStateFlags(); final int mask = ~RecyclerViewDragDropManager.STATE_FLAG_IS_UPDATED; // append UPDATED flag if ((curFlags == STATE_FLAG_INITIAL_VALUE) || (((curFlags ^ flags) & mask) != 0)) { flags |= RecyclerViewDragDropManager.STATE_FLAG_IS_UPDATED; } ((DraggableItemViewHolder) holder).setDragStateFlags(flags); }
@Override public VH onCreateViewHolder(ViewGroup parent, int viewType) { final VH holder = super.onCreateViewHolder(parent, viewType); if (holder instanceof DraggableItemViewHolder) { ((DraggableItemViewHolder) holder).setDragStateFlags(STATE_FLAG_INITIAL_VALUE); } return holder; }