code: @UiThread
      public void notifyParentRangeChanged(int parentPositionStart, int itemCount) {
          int flatParentPositionStart = getFlatParentPosition(parentPositionStart);
  
          int flatParentPosition = flatParentPositionStart;
          int sizeChanged = 0;
          int changed;
          P parent;
          for (int j = 0; j < itemCount; j++) {
              parent = mParentList.get(parentPositionStart);
              changed = changeParentWrapper(flatParentPosition, parent);
              sizeChanged += changed;
              flatParentPosition += changed;
              parentPositionStart++;
          }
          notifyItemRangeChanged(flatParentPositionStart, sizeChanged);
      }
docs: Notify any registered observers that the {@code itemCount} parents starting
  at {@code parentPositionStart} have changed. This will also trigger an item changed
  for children of the parent list specified.
  <p>
  This is an item change event, not a structural change event. It indicates that any
  reflection of the data in the given position range is out of date and should be updated.
  The parents in the given range retain the same identity. This means that the number of
  children must stay the same.
  
  @param parentPositionStart Position of the item that has changed
  @param itemCount Number of parents changed in the data set