diff --git a/matrix_sdk_base/src/models/room.rs b/matrix_sdk_base/src/models/room.rs index 523d15ac..2f25c2a9 100644 --- a/matrix_sdk_base/src/models/room.rs +++ b/matrix_sdk_base/src/models/room.rs @@ -341,15 +341,12 @@ impl Room { } fn add_member(&mut self, event: &MemberEvent) -> bool { - if self - .members - .contains_key(&UserId::try_from(event.state_key.as_str()).unwrap()) - { + let new_member = RoomMember::new(event); + + if self.members.contains_key(&new_member.user_id) { return false; } - let new_member = RoomMember::new(event); - // Find all users that share the same display name as the joining user. let users_with_same_name: Vec = self .members @@ -487,6 +484,7 @@ impl Room { } else { return false; }; + if let Some(member) = self.members.get_mut(&user) { member.update_member(event) } else {