From dadcc683362b296d85cccf804463dc9f358c1f4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damir=20Jeli=C4=87?= Date: Tue, 24 Nov 2020 10:57:21 +0100 Subject: [PATCH] base: Use the room summary for the display name calculation if we have one. --- matrix_sdk_base/src/store.rs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/matrix_sdk_base/src/store.rs b/matrix_sdk_base/src/store.rs index ffc94aaf..84cba3f3 100644 --- a/matrix_sdk_base/src/store.rs +++ b/matrix_sdk_base/src/store.rs @@ -214,7 +214,23 @@ impl Room { let is_own_member = |m: &RoomMember| &m.user_id() == &*own_user_id; - if heroes_count >= invited_joined { + if !inner.summary.heroes.is_empty() { + let mut names = stream::iter(inner.summary.heroes.iter()) + .take(3) + .filter_map(|u| async move { + let user_id = UserId::try_from(u.as_str()).ok()?; + self.get_member(&user_id).await + }) + .map(|mem| { + mem.display_name() + .clone() + .unwrap_or_else(|| mem.user_id().localpart().to_string()) + }) + .collect::>() + .await; + names.sort(); + names.join(", ") + } else if heroes_count >= invited_joined { let mut names = members .filter(|m| future::ready(is_own_member(m))) .take(3)