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 |_| {