From 20b97fc716b2db0e64812fc197174ae8b717bf32 Mon Sep 17 00:00:00 2001 From: Benjamin Bouvier Date: Thu, 18 Jan 2024 16:29:22 +0100 Subject: [PATCH] room list service: add `$ME` as a required state for the `all_rooms` sliding sync list Without this, we wouldn't ever have the member information for the logged-in user, the first time they log in, if they don't happen to be the last user sending a message in a room (a case covered by `$LAZY`). --- crates/matrix-sdk-base/src/client.rs | 1 + crates/matrix-sdk-ui/src/room_list_service/mod.rs | 1 + crates/matrix-sdk-ui/tests/integration/room_list_service.rs | 1 + 3 files changed, 3 insertions(+) diff --git a/crates/matrix-sdk-base/src/client.rs b/crates/matrix-sdk-base/src/client.rs index b25801474..0d0ae7df3 100644 --- a/crates/matrix-sdk-base/src/client.rs +++ b/crates/matrix-sdk-base/src/client.rs @@ -1233,6 +1233,7 @@ impl BaseClient { } else if let Some(member) = Box::pin(room.get_member(user_id)).await? { member.name().to_owned() } else { + trace!("Couldn't get push context because of missing own member information"); return Ok(None); }; diff --git a/crates/matrix-sdk-ui/src/room_list_service/mod.rs b/crates/matrix-sdk-ui/src/room_list_service/mod.rs index fcd5cf90e..ff9ea5698 100644 --- a/crates/matrix-sdk-ui/src/room_list_service/mod.rs +++ b/crates/matrix-sdk-ui/src/room_list_service/mod.rs @@ -178,6 +178,7 @@ impl RoomListService { (StateEventType::RoomAvatar, "".to_owned()), (StateEventType::RoomEncryption, "".to_owned()), (StateEventType::RoomMember, "$LAZY".to_owned()), + (StateEventType::RoomMember, "$ME".to_owned()), (StateEventType::RoomPowerLevels, "".to_owned()), ]), )) diff --git a/crates/matrix-sdk-ui/tests/integration/room_list_service.rs b/crates/matrix-sdk-ui/tests/integration/room_list_service.rs index 37bba3271..a6d0da65b 100644 --- a/crates/matrix-sdk-ui/tests/integration/room_list_service.rs +++ b/crates/matrix-sdk-ui/tests/integration/room_list_service.rs @@ -275,6 +275,7 @@ async fn test_sync_all_states() -> Result<(), Error> { ["m.room.avatar", ""], ["m.room.encryption", ""], ["m.room.member", "$LAZY"], + ["m.room.member", "$ME"], ["m.room.power_levels", ""], ], "filters": {