From c38cbbc8dc5b953681f63fec8418200964084f22 Mon Sep 17 00:00:00 2001 From: Mohammad Reza Moradi Date: Mon, 18 Sep 2023 11:33:17 +0200 Subject: [PATCH] fix: apply state event before decryption on leaved room --- lib/src/client.dart | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/lib/src/client.dart b/lib/src/client.dart index 5e80ec02..70952aaa 100644 --- a/lib/src/client.dart +++ b/lib/src/client.dart @@ -947,6 +947,21 @@ class Client extends MatrixApi { .toList() ?? [])); + leftRoom.prev_batch = room.timeline?.prevBatch; + room.state?.forEach((event) { + leftRoom.setState(Event.fromMatrixEvent( + event, + leftRoom, + )); + }); + + room.timeline?.events?.forEach((event) { + leftRoom.setState(Event.fromMatrixEvent( + event, + leftRoom, + )); + }); + for (var i = 0; i < timeline.events.length; i++) { // Try to decrypt encrypted events but don't update the database. if (leftRoom.encrypted && leftRoom.client.encryptionEnabled) { @@ -960,21 +975,6 @@ class Client extends MatrixApi { } } - room.timeline?.events?.forEach((event) { - leftRoom.setState(Event.fromMatrixEvent( - event, - leftRoom, - )); - }); - - leftRoom.prev_batch = room.timeline?.prevBatch; - room.state?.forEach((event) { - leftRoom.setState(Event.fromMatrixEvent( - event, - leftRoom, - )); - }); - _archivedRooms.add(ArchivedRoom(room: leftRoom, timeline: timeline)); } }