private static void safeUpdateExpandStateFlags(RecyclerView.ViewHolder holder, int flags) { if (!(holder instanceof ExpandableItemViewHolder)) { return; } final ExpandableItemViewHolder holder2 = (ExpandableItemViewHolder) holder; final int curFlags = holder2.getExpandStateFlags(); final int mask = ~Constants.STATE_FLAG_IS_UPDATED; // append HAS_EXPANDED_STATE_CHANGED flag if ((curFlags != STATE_FLAG_INITIAL_VALUE) && (((curFlags ^ flags) & Constants.STATE_FLAG_IS_EXPANDED) != 0)) { flags |= Constants.STATE_FLAG_HAS_EXPANDED_STATE_CHANGED; } // append UPDATED flag if ((curFlags == STATE_FLAG_INITIAL_VALUE) || (((curFlags ^ flags) & mask) != 0)) { flags |= Constants.STATE_FLAG_IS_UPDATED; } holder2.setExpandStateFlags(flags); }