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); }