1
0
mirror of https://gitlab.com/comunic/comunicmobile synced 2024-11-25 06:19:22 +00:00
comunicmobile/lib/lists/conversations_list.dart

37 lines
920 B
Dart
Raw Normal View History

import 'dart:collection';
import 'package:comunic/models/conversation.dart';
/// Conversations list
///
/// @author Pierre HUBERT
class ConversationsList extends ListBase<Conversation> {
2021-03-13 14:14:54 +00:00
final List<Conversation> _list = [];
set length(l) => _list.length = l;
2021-03-10 16:54:41 +00:00
int get length => _list.length;
@override
Conversation operator [](int index) => _list[index];
@override
void operator []=(int index, Conversation value) => _list[index] = value;
/// Get the entire lists of users ID in this list
2021-03-10 16:54:41 +00:00
Set<int> get allUsersID {
final Set<int> list = Set();
forEach((c) => c.members!.forEach((member) => list.add(member.userID)));
return list;
}
2021-04-06 16:04:16 +00:00
/// Get the entire lists of groups ID in this list
Set<int?> get allGroupsID => where((element) => element.isGroupConversation)
2021-04-06 16:04:16 +00:00
.map((e) => e.groupID)
.toSet();
@override
void add(Conversation element) => _list.add(element);
}