From a11472b4120822c5b8780cfddb5ff64ee34e5978 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Commaille?= Date: Sat, 23 Aug 2025 10:25:36 +0200 Subject: [PATCH] global-account-data: Be stricter about the private media preview setting Currently, it would show media previews for non-public rooms, but it is safer to show it for values that we know are private. --- src/session/model/global_account_data.rs | 7 +++++-- .../view/content/room_history/message_row/visual_media.rs | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/session/model/global_account_data.rs b/src/session/model/global_account_data.rs index 1c125282..2214c9de 100644 --- a/src/session/model/global_account_data.rs +++ b/src/session/model/global_account_data.rs @@ -12,7 +12,7 @@ use tokio::task::AbortHandle; use tracing::error; use super::{Room, Session}; -use crate::{spawn, spawn_tokio}; +use crate::{session::model::JoinRuleValue, spawn, spawn_tokio}; /// We default the media previews setting to private. const DEFAULT_MEDIA_PREVIEWS: MediaPreviews = MediaPreviews::Private; @@ -271,7 +271,10 @@ impl GlobalAccountData { pub(crate) fn should_room_show_media_previews(&self, room: &Room) -> bool { match &*self.imp().media_previews_enabled.borrow() { MediaPreviews::Off => false, - MediaPreviews::Private => !room.join_rule().anyone_can_join(), + MediaPreviews::Private => matches!( + room.join_rule().value(), + JoinRuleValue::Invite | JoinRuleValue::RoomMembership + ), _ => true, } } diff --git a/src/session/view/content/room_history/message_row/visual_media.rs b/src/session/view/content/room_history/message_row/visual_media.rs index 53c3b83d..0ecea5e6 100644 --- a/src/session/view/content/room_history/message_row/visual_media.rs +++ b/src/session/view/content/room_history/message_row/visual_media.rs @@ -475,7 +475,7 @@ mod imp { return; }; - let join_rule_handler = room.join_rule().connect_anyone_can_join_notify(clone!( + let join_rule_handler = room.join_rule().connect_value_notify(clone!( #[weak(rename_to = imp)] self, move |_| {