</BUG>
if (!fromParentWrapper.hasChildren(children)) return;
final int childCount = children.size();
for (int i = 0; i < childCount; i++) {
<BUG>Object fromChildItem = children.get(i);

if (fromChildItem == null) continue;
int fromChildAdapterPos =</BUG>
moveToBottom ? fromParentAdapterPos  : fromParentAdapterPos + i + 1;
int toChildAdapterPos = moveToBottom ? moveToParentAdapterPos

moveToParentAdapterPos = toParentAdapterPos;
}
mItems.add(moveToParentAdapterPos, fromParentWrapper);
notifyItemMoved(fromParentAdapterPos,moveToParentAdapterPos);
if (isFromExpanded) {
List<C> children = fromParentWrapper.getChildren();
if (!fromParentWrapper.hasChildren(children)) return;
final int childCount = children.size();
for (int i = 0; i < childCount; i++) {
C fromChild = children.get(i);
if (fromChild == null) continue;
int fromChildAdapterPos =
moveToBottom ? fromParentAdapterPos  : fromParentAdapterPos + i + 1;
int toChildAdapterPos = moveToBottom ? moveToParentAdapterPos
