Skip to content

Commit 3d541e6

Browse files
committed
chore(spaces): ignore room list change updates if empty
1 parent 6f0c641 commit 3d541e6

File tree

3 files changed

+18
-1
lines changed

3 files changed

+18
-1
lines changed

crates/matrix-sdk-base/src/sync.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,15 @@ impl RoomUpdates {
9797
.chain(self.invited.keys())
9898
.chain(self.knocked.keys())
9999
}
100+
101+
/// Returns whether or not this update contains any changes to the list
102+
/// of invited, joined, knocked or left rooms.
103+
pub fn is_empty(&self) -> bool {
104+
self.invited.is_empty()
105+
&& self.joined.is_empty()
106+
&& self.knocked.is_empty()
107+
&& self.left.is_empty()
108+
}
100109
}
101110

102111
#[cfg(test)]

crates/matrix-sdk-ui/src/spaces/mod.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,11 @@ impl SpaceService {
7777

7878
loop {
7979
match all_room_updates_receiver.recv().await {
80-
Ok(_) => {
80+
Ok(updates) => {
81+
if updates.is_empty() {
82+
continue;
83+
}
84+
8185
let new_spaces = Vector::from(Self::joined_spaces_for(&client).await);
8286
Self::update_joined_spaces_if_needed(new_spaces, &joined_spaces);
8387
}

crates/matrix-sdk-ui/src/spaces/room_list.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,10 @@ impl SpaceRoomList {
6666
loop {
6767
match all_room_updates_receiver.recv().await {
6868
Ok(updates) => {
69+
if updates.is_empty() {
70+
continue;
71+
}
72+
6973
let mut mutable_rooms = rooms_clone.lock();
7074

7175
updates.iter_all_room_ids().for_each(|updated_room_id| {

0 commit comments

Comments
 (0)