filter method

Implementation

List<EnhancedRoomModel> filter(List<EnhancedRoomModel> rooms) {
  List<EnhancedRoomModel> newRooms = [];
  for (var element in rooms) {
    var ok = true;

    if (loggedIn != null) {
      List<String> blockedMembers = loggedIn!.getBlocked();

      // do not add room if all members are blocked
      if (element.roomModel.members != null) {
        int bad = 0;
        for (var member in element.roomModel.members!) {
          if (blockedMembers.contains(member)) {
            bad++;
          }
        }
        // this room is ok if there are more members in it other than blocked members, excluding myself
        ok = (element.roomModel.members!.length - 1 > bad);
      }
    }
    if (ok) {
      newRooms.add(element);
    }
  }
  return newRooms;
}