private boolean showHeaderOf(int position,@NonNull T item,boolean init){
  IHeader header=getHeaderOf(item);
  if (header == null || getPendingRemovedItem(item) != null)   return false;
  if (header.isHidden()) {
    if (DEBUG)     Log.v(TAG,"Showing header at position " + position + " header="+ header);
    header.setHidden(false);
    if (init) {
      if (position < mItems.size()) {
        mItems.add(position,(T)header);
      }
 else {
        mItems.add((T)header);
      }
      return true;
    }
 else {
      return addItem(position,(T)header);
    }
  }
  return false;
}

private boolean showHeaderOf ( int position , @ NonNull T item , boolean init ) { IHeader header = getHeaderOf ( item ) ; if ( header == null || getPendingRemovedItem ( item ) != null ) return false ; if ( header . isHidden ( ) ) { if ( DEBUG ) Log . v ( TAG , "Showing header at position " + position + " header=" + header ) ; header . setHidden ( false ) ; if ( init ) { if ( position < mItems . size ( ) ) { mItems . add ( position , ( T ) header ) ; } else { mItems . add ( ( T ) header ) ; } return true ; } else { return addItem ( position , ( T ) header ) ; } } return false ; }
internal method to show / add a header in the internal list .
