/*package*/ void notifyChildItemRangeInserted(int groupPosition, int childPositionStart, int itemCount) { mPositionTranslator.insertChildItems(groupPosition, childPositionStart, itemCount); final long packedPosition = ExpandableAdapterHelper.getPackedPositionForChild(groupPosition, childPositionStart); final int flatPosition = mPositionTranslator.getFlatPosition(packedPosition); if (flatPosition != RecyclerView.NO_POSITION) { notifyItemRangeInserted(flatPosition, itemCount); } }
/*package*/ void notifyGroupItemRangeInserted(int groupPositionStart, int count, boolean expanded) { int insertedCount = mPositionTranslator.insertGroupItems(groupPositionStart, count, expanded); if (insertedCount > 0) { final long packedPosition = ExpandableAdapterHelper.getPackedPositionForGroup(groupPositionStart); final int flatPosition = mPositionTranslator.getFlatPosition(packedPosition); notifyItemRangeInserted(flatPosition, insertedCount); raiseOnGroupExpandedSequentially(groupPositionStart, count, false, null); } }
/*package*/ boolean expandGroup(int groupPosition, boolean fromUser, Object payload) { if (mPositionTranslator.isGroupExpanded(groupPosition)) { return false; } // call hook method if (!mExpandableItemAdapter.onHookGroupExpand(groupPosition, fromUser, payload)) { return false; } if (mPositionTranslator.expandGroup(groupPosition)) { final long packedPosition = ExpandableAdapterHelper.getPackedPositionForGroup(groupPosition); final int flatPosition = mPositionTranslator.getFlatPosition(packedPosition); final int childCount = mPositionTranslator.getChildCount(groupPosition); notifyItemRangeInserted(flatPosition + 1, childCount); } { final long packedPosition = ExpandableAdapterHelper.getPackedPositionForGroup(groupPosition); final int flatPosition = mPositionTranslator.getFlatPosition(packedPosition); notifyItemChanged(flatPosition, payload); } // raise onGroupExpand() event if (mOnGroupExpandListener != null) { mOnGroupExpandListener.onGroupExpand(groupPosition, fromUser, payload); } return true; }