refactor: Improve getTimeline senders
This creates a set before requesting users from the database. This prevents doing the same check for the same user multiple times and also prevents concurrent modifications of the event list.
This commit is contained in:
parent
6dfd18ca47
commit
eef79aad2b
|
|
@ -1499,9 +1499,10 @@ class Room {
|
|||
|
||||
// Fetch all users from database we have got here.
|
||||
if (eventContextId == null) {
|
||||
for (final event in events) {
|
||||
if (getState(EventTypes.RoomMember, event.senderId) != null) continue;
|
||||
final dbUser = await client.database?.getUser(event.senderId, this);
|
||||
final userIds = events.map((event) => event.senderId).toSet();
|
||||
for (final userId in userIds) {
|
||||
if (getState(EventTypes.RoomMember, userId) != null) continue;
|
||||
final dbUser = await client.database?.getUser(userId, this);
|
||||
if (dbUser != null) setState(dbUser);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue