1
0
mirror of https://gitlab.com/comunic/comunicmobile synced 2024-11-29 16:26:27 +00:00
comunicmobile/lib/lists/users_list.dart

40 lines
860 B
Dart

import 'dart:collection';
import 'package:comunic/models/user.dart';
/// Users list
///
/// @author Pierre HUBERT
class UsersList extends ListBase<User> {
List<User> _list = [];
int get length => _list.length;
set length(l) => _list.length = l;
@override
User operator [](int index) {
return _list[index];
}
@override
void operator []=(int index, User value) {
_list[index] = value;
}
/// Find a user with a specific ID
User getUser(int userID) {
for (int i = 0; i < this.length; i++)
if (this[i].id == userID) return this[i];
throw "User not found in the list!";
}
/// Check if the user is included in this list or not
bool hasUser(int userID) => any((f) => f.id == userID);
/// Get the list of users ID present in this list
List<int> get usersID => List.generate(length, (i) => this[i].id);
}