public boolean remove(ExpIndData item,boolean expandGroupBeforeRemoval){
  int index;
  boolean removed=false;
  if (item != null && (index=mData.indexOf(item)) != -1) {
    if ((removed=mData.remove(item))) {
      if (mGroups.containsKey(item)) {
        if (expandGroupBeforeRemoval)         expandGroup(index);
        mGroups.remove(item);
      }
      if (mNotifyOnChange)       notifyItemRemoved(index);
    }
  }
  return removed;
}

public boolean remove ( ExpIndData item , boolean expandGroupBeforeRemoval ) { int index ; boolean removed = false ; if ( item != null && ( index = mData . indexOf ( item ) ) != - 1 ) { if ( ( removed = mData . remove ( item ) ) ) { if ( mGroups . containsKey ( item ) ) { if ( expandGroupBeforeRemoval ) expandGroup ( index ) ; mGroups . remove ( item ) ; } if ( mNotifyOnChange ) notifyItemRemoved ( index ) ; } } return removed ; }
remove an item or group . if it ' s a group it removes also all the items and groups that it contains if expandgroupbeforeremoval is false . if it ' s true the group is expanded and then only the item is removed .
