Merge pull request #518 from pangeachat/512-bump-matrix-sdk
bump matrix sdk version, fixes timeline memory issue
This commit is contained in:
commit
fb104ecca1
5 changed files with 14 additions and 9 deletions
|
|
@ -277,7 +277,11 @@ class MyAnalyticsController {
|
|||
// get the timelines for each chat
|
||||
final List<Future<Timeline>> timelineFutures = [];
|
||||
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 Map<String, Timeline> timelineMap =
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ part of "client_extension.dart";
|
|||
extension GeneralInfoClientExtension on Client {
|
||||
Future<List<String>> get _teacherRoomIds async {
|
||||
final List<String> adminRoomIds = [];
|
||||
for (final Room adminSpace in (await _spacesImTeaching)) {
|
||||
for (final Room adminSpace in (_spacesImTeaching)) {
|
||||
adminRoomIds.add(adminSpace.id);
|
||||
final List<String> adminSpaceRooms = adminSpace.allSpaceChildRoomIds;
|
||||
adminRoomIds.addAll(adminSpaceRooms);
|
||||
|
|
@ -59,7 +59,7 @@ extension GeneralInfoClientExtension on Client {
|
|||
final Event? originalEvent = await room!.getEventById(edittedEventId);
|
||||
if (originalEvent == null) return [];
|
||||
|
||||
final Timeline timeline = await room.getTimeline();
|
||||
final Timeline timeline = room.timeline ?? await room.getTimeline();
|
||||
final List<Event> editEvents = originalEvent
|
||||
.aggregatedEvents(
|
||||
timeline,
|
||||
|
|
|
|||
|
|
@ -320,7 +320,7 @@ extension EventsRoomExtension on Room {
|
|||
"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) {
|
||||
await timeline.requestHistory(historyCount: 100);
|
||||
|
|
@ -433,7 +433,7 @@ extension EventsRoomExtension on Room {
|
|||
}) async {
|
||||
try {
|
||||
int numberOfSearches = 0;
|
||||
final Timeline timeline = await getTimeline();
|
||||
final Timeline timeline = this.timeline ?? await getTimeline();
|
||||
|
||||
List<Event> relevantEvents() => timeline.events
|
||||
.where((event) => event.senderId == sender && event.type == type)
|
||||
|
|
|
|||
|
|
@ -166,7 +166,7 @@ class ConstructListViewState extends State<ConstructListView> {
|
|||
if (_timelinesCache.containsKey(use.chatId)) {
|
||||
timeline = _timelinesCache[use.chatId];
|
||||
} else {
|
||||
timeline = await msgRoom.getTimeline();
|
||||
timeline = msgRoom.timeline ?? await msgRoom.getTimeline();
|
||||
_timelinesCache[use.chatId] = timeline;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -36,9 +36,10 @@ class GetChatListItemSubtitle {
|
|||
eventContextId = null;
|
||||
}
|
||||
|
||||
final Timeline timeline = await event.room.getTimeline(
|
||||
eventContextId: eventContextId,
|
||||
);
|
||||
final Timeline timeline = event.room.timeline != null &&
|
||||
event.room.timeline!.chunk.eventsMap.containsKey(eventContextId)
|
||||
? event.room.timeline!
|
||||
: await event.room.getTimeline(eventContextId: eventContextId);
|
||||
|
||||
if (moveBackInTimeline(event)) {
|
||||
event = timeline.events.firstWhereOrNull((e) => !moveBackInTimeline(e));
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue