void notifyChildItemMoved(int fromGroupPosition, int fromChildPosition, int toGroupPosition, int toChildPosition) {
long packedFrom = RecyclerViewExpandableItemManager.getPackedPositionForChild(fromGroupPosition, fromChildPosition);
long packedTo = RecyclerViewExpandableItemManager.getPackedPositionForChild(toGroupPosition, toChildPosition);
int flatFrom = getFlatPosition(packedFrom);
int flatTo = getFlatPosition(packedTo);
mPositionTranslator.moveChildItem(fromGroupPosition, fromChildPosition, toGroupPosition, toChildPosition);
if (flatFrom != RecyclerView.NO_POSITION && flatTo != RecyclerView.NO_POSITION) {
notifyItemMoved(flatFrom, flatTo);
} else if (flatFrom != RecyclerView.NO_POSITION) {
notifyItemRemoved(flatFrom);
} else if (flatTo != RecyclerView.NO_POSITION) {
notifyItemInserted(flatTo);
}
}