boolean expandGroup(int groupPosition, boolean fromUser, Object payload) {
if (mPositionTranslator.isGroupExpanded(groupPosition)) {
return false;
}
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);
}
if (mOnGroupExpandListener != null) {
mOnGroupExpandListener.onGroupExpand(groupPosition, fromUser, payload);
}
return true;
}