Merge pull request #518 from pangeachat/512-bump-matrix-sdk

bump matrix sdk version, fixes timeline memory issue
pull/1384/head
ggurdin 1 year ago committed by GitHub
commit fb104ecca1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -277,7 +277,11 @@ class MyAnalyticsController {
// get the timelines for each chat // get the timelines for each chat
final List<Future<Timeline>> timelineFutures = []; final List<Future<Timeline>> timelineFutures = [];
for (final chat in chats) { for (final chat in chats) {
timelineFutures.add(chat.getTimeline()); timelineFutures.add(
chat.timeline == null
? chat.getTimeline()
: Future.value(chat.timeline),
);
} }
final List<Timeline> timelines = await Future.wait(timelineFutures); final List<Timeline> timelines = await Future.wait(timelineFutures);
final Map<String, Timeline> timelineMap = final Map<String, Timeline> timelineMap =

@ -3,7 +3,7 @@ part of "client_extension.dart";
extension GeneralInfoClientExtension on Client { extension GeneralInfoClientExtension on Client {
Future<List<String>> get _teacherRoomIds async { Future<List<String>> get _teacherRoomIds async {
final List<String> adminRoomIds = []; final List<String> adminRoomIds = [];
for (final Room adminSpace in (await _spacesImTeaching)) { for (final Room adminSpace in (_spacesImTeaching)) {
adminRoomIds.add(adminSpace.id); adminRoomIds.add(adminSpace.id);
final List<String> adminSpaceRooms = adminSpace.allSpaceChildRoomIds; final List<String> adminSpaceRooms = adminSpace.allSpaceChildRoomIds;
adminRoomIds.addAll(adminSpaceRooms); adminRoomIds.addAll(adminSpaceRooms);
@ -59,7 +59,7 @@ extension GeneralInfoClientExtension on Client {
final Event? originalEvent = await room!.getEventById(edittedEventId); final Event? originalEvent = await room!.getEventById(edittedEventId);
if (originalEvent == null) return []; if (originalEvent == null) return [];
final Timeline timeline = await room.getTimeline(); final Timeline timeline = room.timeline ?? await room.getTimeline();
final List<Event> editEvents = originalEvent final List<Event> editEvents = originalEvent
.aggregatedEvents( .aggregatedEvents(
timeline, timeline,

@ -320,7 +320,7 @@ extension EventsRoomExtension on Room {
"In messageListForChat with room that is not a chat", "In messageListForChat with room that is not a chat",
); );
} }
final Timeline timeline = await getTimeline(); final Timeline timeline = this.timeline ?? await getTimeline();
while (timeline.canRequestHistory && numberOfSearches < 50) { while (timeline.canRequestHistory && numberOfSearches < 50) {
await timeline.requestHistory(historyCount: 100); await timeline.requestHistory(historyCount: 100);
@ -433,7 +433,7 @@ extension EventsRoomExtension on Room {
}) async { }) async {
try { try {
int numberOfSearches = 0; int numberOfSearches = 0;
final Timeline timeline = await getTimeline(); final Timeline timeline = this.timeline ?? await getTimeline();
List<Event> relevantEvents() => timeline.events List<Event> relevantEvents() => timeline.events
.where((event) => event.senderId == sender && event.type == type) .where((event) => event.senderId == sender && event.type == type)

@ -166,7 +166,7 @@ class ConstructListViewState extends State<ConstructListView> {
if (_timelinesCache.containsKey(use.chatId)) { if (_timelinesCache.containsKey(use.chatId)) {
timeline = _timelinesCache[use.chatId]; timeline = _timelinesCache[use.chatId];
} else { } else {
timeline = await msgRoom.getTimeline(); timeline = msgRoom.timeline ?? await msgRoom.getTimeline();
_timelinesCache[use.chatId] = timeline; _timelinesCache[use.chatId] = timeline;
} }

@ -36,9 +36,10 @@ class GetChatListItemSubtitle {
eventContextId = null; eventContextId = null;
} }
final Timeline timeline = await event.room.getTimeline( final Timeline timeline = event.room.timeline != null &&
eventContextId: eventContextId, event.room.timeline!.chunk.eventsMap.containsKey(eventContextId)
); ? event.room.timeline!
: await event.room.getTimeline(eventContextId: eventContextId);
if (moveBackInTimeline(event)) { if (moveBackInTimeline(event)) {
event = timeline.events.firstWhereOrNull((e) => !moveBackInTimeline(e)); event = timeline.events.firstWhereOrNull((e) => !moveBackInTimeline(e));

Loading…
Cancel
Save