import 'dart:collection'; import 'package:comunic/models/conversation_message.dart'; /// Conversations messages list /// /// @author Pierre HUBERT class ConversationMessagesList extends ListBase { final List _list = List(); set length(int v) => _list.length = v; int get length => _list.length; @override ConversationMessage operator [](int index) { return _list[index]; } @override void operator []=(int index, ConversationMessage value) { _list[index] = value; } /// Get the list of the users ID who own a message in this list List getUsersID() { final List users = List(); for (ConversationMessage message in this) if (!users.contains(message.userID)) users.add(message.userID); return users; } /// Get the ID of the last message present in this list int get lastMessageID { int lastMessageID = 0; for (ConversationMessage message in this) if (message.id > lastMessageID) lastMessageID = message.id; return lastMessageID; } /// Get the ID of the first message present in this list int get firstMessageID { int firstMessageID = this[0].id; for (ConversationMessage message in this) if (message.id < firstMessageID) firstMessageID = message.id; return firstMessageID; } }