Skip to content

Commit a208d56

Browse files
committed
recent_senders [nfc]: Make addAll take QueueList instead of List
This will avoid copying the list on each call to `addAll`. Also make `removeAll` take `QueueList` instead of `List`.
1 parent b7df0b9 commit a208d56

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

lib/model/recent_senders.dart

+9-9
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,13 @@ class RecentSenders {
3434
/// [messages] should be sorted by [id] ascendingly, which are, the way app
3535
/// receives and handles messages.
3636
void handleMessages(List<Message> messages) {
37-
final messagesByUserInStream = <(int, int), List<int>>{};
38-
final messagesByUserInTopic = <(int, String, int), List<int>>{};
37+
final messagesByUserInStream = <(int, int), QueueList<int>>{};
38+
final messagesByUserInTopic = <(int, String, int), QueueList<int>>{};
3939
for (final message in messages) {
4040
if (message is! StreamMessage) continue;
4141
final StreamMessage(:streamId, :topic, :senderId, id: int messageId) = message;
42-
(messagesByUserInStream[(streamId, senderId)] ??= []).add(messageId);
43-
(messagesByUserInTopic[(streamId, topic, senderId)] ??= []).add(messageId);
42+
(messagesByUserInStream[(streamId, senderId)] ??= QueueList()).add(messageId);
43+
(messagesByUserInTopic[(streamId, topic, senderId)] ??= QueueList()).add(messageId);
4444
}
4545

4646
for (final entry in messagesByUserInStream.entries) {
@@ -70,11 +70,11 @@ class RecentSenders {
7070
void handleDeleteMessageEvent(DeleteMessageEvent event, Map<int, Message> cachedMessages) {
7171
if (event.messageType != MessageType.stream) return;
7272

73-
final messagesByUser = <int, List<int>>{};
73+
final messagesByUser = <int, QueueList<int>>{};
7474
for (final id in event.messageIds) {
7575
final message = cachedMessages[id] as StreamMessage?;
7676
if (message == null) continue;
77-
(messagesByUser[message.senderId] ??= []).add(id);
77+
(messagesByUser[message.senderId] ??= QueueList()).add(id);
7878
}
7979

8080
final DeleteMessageEvent(:streamId!, :topic!) = event;
@@ -128,15 +128,15 @@ class MessageIdTracker {
128128
/// Add the messages IDs to the tracker list at the proper place, if not present.
129129
///
130130
/// [newIds] should be sorted ascendingly.
131-
void addAll(List<int> newIds) {
131+
void addAll(QueueList<int> newIds) {
132132
if (ids.isEmpty) {
133-
ids = QueueList.from(newIds);
133+
ids = newIds;
134134
return;
135135
}
136136
ids = setUnion(ids, newIds);
137137
}
138138

139-
void removeAll(List<int> idsToRemove) {
139+
void removeAll(QueueList<int> idsToRemove) {
140140
ids.removeWhere((id) {
141141
final i = lowerBound(idsToRemove, id);
142142
return i < idsToRemove.length && idsToRemove[i] == id;

0 commit comments

Comments
 (0)