From 98d36d0ef0b0e5f704ab227f5d3e1b78b75db6b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damir=20Jeli=C4=87?= Date: Tue, 7 Jul 2020 15:48:28 +0200 Subject: [PATCH] base: Only update the tracked users when we're done with the state and timeline. --- matrix_sdk_base/src/client.rs | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/matrix_sdk_base/src/client.rs b/matrix_sdk_base/src/client.rs index 89abdbb8..06e6ade0 100644 --- a/matrix_sdk_base/src/client.rs +++ b/matrix_sdk_base/src/client.rs @@ -990,21 +990,6 @@ impl BaseClient { self.get_or_create_joined_room(&room_id).await?.clone() }; - #[cfg(feature = "encryption")] - { - let mut olm = self.olm.lock().await; - - if let Some(o) = &mut *olm { - let room = matrix_room.read().await; - - // If the room is encrypted, update the tracked users. - if room.is_encrypted() { - o.update_tracked_users(room.joined_members.keys()).await; - o.update_tracked_users(room.invited_members.keys()).await; - } - } - } - // RoomSummary contains information for calculating room name. matrix_room .write() @@ -1042,6 +1027,21 @@ impl BaseClient { } } + #[cfg(feature = "encryption")] + { + let mut olm = self.olm.lock().await; + + if let Some(o) = &mut *olm { + let room = matrix_room.read().await; + + // If the room is encrypted, update the tracked users. + if room.is_encrypted() { + o.update_tracked_users(room.joined_members.keys()).await; + o.update_tracked_users(room.invited_members.keys()).await; + } + } + } + // look at AccountData to further cut down users by collecting ignored users if let Some(account_data) = &joined_room.account_data { for account_data in &account_data.events {