/*package*/ void notifyChildItemRangeRemoved(int groupPosition, int childPositionStart, int itemCount) { final long packedPosition = ExpandableAdapterHelper.getPackedPositionForChild(groupPosition, childPositionStart); final int flatPosition = mPositionTranslator.getFlatPosition(packedPosition); mPositionTranslator.removeChildItems(groupPosition, childPositionStart, itemCount); if (flatPosition != RecyclerView.NO_POSITION) { notifyItemRangeRemoved(flatPosition, itemCount); } }
/*package*/ void notifyGroupItemRemoved(int groupPosition) { final long packedPosition = ExpandableAdapterHelper.getPackedPositionForGroup(groupPosition); final int flatPosition = mPositionTranslator.getFlatPosition(packedPosition); int removedCount = mPositionTranslator.removeGroupItem(groupPosition); if (removedCount > 0) { notifyItemRangeRemoved(flatPosition, removedCount); } }
/*package*/ void notifyGroupItemRangeRemoved(int groupPositionStart, int count) { final long packedPosition = ExpandableAdapterHelper.getPackedPositionForGroup(groupPositionStart); final int flatPosition = mPositionTranslator.getFlatPosition(packedPosition); int removedCount = mPositionTranslator.removeGroupItems(groupPositionStart, count); if (removedCount > 0) { notifyItemRangeRemoved(flatPosition, removedCount); } }
/*package*/ boolean collapseGroup(int groupPosition, boolean fromUser, Object payload) { if (!mPositionTranslator.isGroupExpanded(groupPosition)) { return false; } // call hook method if (!mExpandableItemAdapter.onHookGroupCollapse(groupPosition, fromUser, payload)) { return false; } if (mPositionTranslator.collapseGroup(groupPosition)) { final long packedPosition = ExpandableAdapterHelper.getPackedPositionForGroup(groupPosition); final int flatPosition = mPositionTranslator.getFlatPosition(packedPosition); final int childCount = mPositionTranslator.getChildCount(groupPosition); notifyItemRangeRemoved(flatPosition + 1, childCount); } { final long packedPosition = ExpandableAdapterHelper.getPackedPositionForGroup(groupPosition); final int flatPosition = mPositionTranslator.getFlatPosition(packedPosition); notifyItemChanged(flatPosition, payload); } // raise onGroupCollapse() event if (mOnGroupCollapseListener != null) { mOnGroupCollapseListener.onGroupCollapse(groupPosition, fromUser, payload); } return true; }