Skip to content

Commit b932ac2

Browse files
committed
Solved the membership check by creating an active_users variable in MemberRoomInfo
1 parent fb6a845 commit b932ac2

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

crates/matrix-sdk-base/src/room/members.rs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -179,10 +179,13 @@ impl Room {
179179
.transpose()?
180180
.map(|e| e.content.ignored_users.into_keys().collect());
181181

182+
let active_users = self.store.get_user_ids(self.room_id(), RoomMemberships::ACTIVE).await?;
183+
182184
Ok(MemberRoomInfo {
183185
power_levels: power_levels.into(),
184186
max_power_level,
185187
users_display_names,
188+
active_users,
186189
ignored_users,
187190
})
188191
}
@@ -211,18 +214,18 @@ impl RoomMember {
211214
presence: Option<PresenceEvent>,
212215
room_info: &MemberRoomInfo<'_>,
213216
) -> Self {
214-
let MemberRoomInfo { power_levels, max_power_level, users_display_names, ignored_users } =
217+
let MemberRoomInfo { power_levels, max_power_level, users_display_names, ignored_users , active_users} =
215218
room_info;
216219

217220
let display_name = event.display_name();
218-
let membership = event.membership();
219221

220-
println!("{:?} {:?}", users_display_names, &display_name);
221222
let display_name_ambiguous = users_display_names.get(&display_name).is_some_and(|s| {
223+
// s.filter(|n| )
222224
if !is_display_name_ambiguous(&display_name, s) {
223225
return false;
224226
}
225-
matches!(*membership, MembershipState::Join | MembershipState::Invite)
227+
//We check of many active_users with the same surname exist
228+
active_users.iter().filter(|u| s.contains(*u)).count() > 1
226229
});
227230
let is_ignored = ignored_users.as_ref().is_some_and(|s| s.contains(event.user_id()));
228231

@@ -396,6 +399,7 @@ pub(crate) struct MemberRoomInfo<'a> {
396399
pub(crate) max_power_level: i64,
397400
pub(crate) users_display_names: HashMap<&'a DisplayName, BTreeSet<OwnedUserId>>,
398401
pub(crate) ignored_users: Option<BTreeSet<OwnedUserId>>,
402+
pub(crate) active_users: Vec<OwnedUserId>
399403
}
400404

401405
/// The kind of room member updates that just happened.

0 commit comments

Comments
 (0)