Merge branch 'krille/post-load-users' into 'main'
fix: Post load all users on room opening See merge request famedly/company/frontend/famedlysdk!998
This commit is contained in:
commit
21378313c3
|
|
@ -1275,8 +1275,7 @@ class Room {
|
|||
void Function()? onUpdate,
|
||||
}) async {
|
||||
await postLoad();
|
||||
var events;
|
||||
events = await client.database?.getEventList(
|
||||
final events = await client.database?.getEventList(
|
||||
this,
|
||||
limit: defaultHistoryCount,
|
||||
) ??
|
||||
|
|
@ -1288,13 +1287,20 @@ class Room {
|
|||
for (var i = 0; i < events.length; i++) {
|
||||
if (events[i].type == EventTypes.Encrypted &&
|
||||
events[i].content['can_request_session'] == true) {
|
||||
events[i] = await client.encryption
|
||||
?.decryptRoomEvent(id, events[i], store: true);
|
||||
events[i] = await client.encryption!
|
||||
.decryptRoomEvent(id, events[i], store: true);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Fetch all users from database we have got here.
|
||||
for (final event in events) {
|
||||
if (getState(EventTypes.RoomMember, event.senderId) != null) continue;
|
||||
final dbUser = await client.database?.getUser(event.senderId, this);
|
||||
if (dbUser != null) setState(dbUser);
|
||||
}
|
||||
|
||||
final timeline = Timeline(
|
||||
room: this,
|
||||
events: events,
|
||||
|
|
@ -1303,9 +1309,6 @@ class Room {
|
|||
onInsert: onInsert,
|
||||
onUpdate: onUpdate,
|
||||
);
|
||||
if (client.database == null) {
|
||||
await requestHistory(historyCount: 10);
|
||||
}
|
||||
return timeline;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -85,6 +85,16 @@ class Timeline {
|
|||
limit: Room.defaultHistoryCount,
|
||||
);
|
||||
if (eventsFromStore != null && eventsFromStore.isNotEmpty) {
|
||||
// Fetch all users from database we have got here.
|
||||
for (final event in events) {
|
||||
if (room.getState(EventTypes.RoomMember, event.senderId) != null) {
|
||||
continue;
|
||||
}
|
||||
final dbUser =
|
||||
await room.client.database?.getUser(event.senderId, room);
|
||||
if (dbUser != null) room.setState(dbUser);
|
||||
}
|
||||
|
||||
events.addAll(eventsFromStore);
|
||||
final startIndex = events.length - eventsFromStore.length;
|
||||
final endIndex = events.length;
|
||||
|
|
|
|||
Loading…
Reference in New Issue