code: @UiThread
      public void notifyChildRemoved(int parentPosition, int childPosition) {
          int flatParentPosition = getFlatParentPosition(parentPosition);
          ExpandableWrapper<P, C> parentWrapper = mFlatItemList.get(flatParentPosition);
          parentWrapper.setParent(mParentList.get(parentPosition));
  
          if (parentWrapper.isExpanded()) {
              mFlatItemList.remove(flatParentPosition + childPosition + 1);
              notifyItemRemoved(flatParentPosition + childPosition + 1);
          }
      }
docs: Notify any registered observers that the parent located at {@code parentPosition}
  has a child that has been removed from the data set, previously located at {@code childPosition}.
  The child list item previously located at and after {@code childPosition} may
  now be found at {@code childPosition - 1}.
  <p>
  This is a structural change event. Representations of other existing items in the
  data set are still considered up to date and will not be rebound, though their positions
  may be altered.
  
  @param parentPosition Position of the parent which has a child removed from, relative
  to the list of parents only.
  @param childPosition Position of the child that has been removed, relative to children
  of the parent specified by {@code parentPosition} only.