From 2e32c252e805639fdedf43ba784be736d4e1f414 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20Mart=C3=ADn?= Date: Tue, 22 Jul 2025 12:27:24 +0200 Subject: [PATCH] refactor: Rename `fn MediaEventContent::filename` to `MediaEventContent::filename_or_body` since it was previously clashing with another function definition. Also, make sure it returns either the filename or the body if that's missing - which should contain the actual filename in that case. --- crates/matrix-sdk-base/src/media.rs | 20 ++++++++++---------- crates/matrix-sdk/src/send_queue/mod.rs | 10 +++++----- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/crates/matrix-sdk-base/src/media.rs b/crates/matrix-sdk-base/src/media.rs index 924f8efe3..f62329772 100644 --- a/crates/matrix-sdk-base/src/media.rs +++ b/crates/matrix-sdk-base/src/media.rs @@ -143,7 +143,7 @@ pub trait MediaEventContent { fn source(&self) -> Option; /// Get the name of the uploaded file for `Self`. - fn filename(&self) -> Option; + fn filename_or_body(&self) -> Option; /// Get the source of the thumbnail for `Self`. /// @@ -156,7 +156,7 @@ impl MediaEventContent for StickerEventContent { Some(MediaSource::from(self.source.clone())) } - fn filename(&self) -> Option { + fn filename_or_body(&self) -> Option { None } @@ -170,8 +170,8 @@ impl MediaEventContent for AudioMessageEventContent { Some(self.source.clone()) } - fn filename(&self) -> Option { - self.filename.clone() + fn filename_or_body(&self) -> Option { + Some(self.filename.clone().unwrap_or_else(|| self.body.clone())) } fn thumbnail_source(&self) -> Option { @@ -184,8 +184,8 @@ impl MediaEventContent for FileMessageEventContent { Some(self.source.clone()) } - fn filename(&self) -> Option { - self.filename.clone() + fn filename_or_body(&self) -> Option { + Some(self.filename.clone().unwrap_or_else(|| self.body.clone())) } fn thumbnail_source(&self) -> Option { @@ -198,7 +198,7 @@ impl MediaEventContent for ImageMessageEventContent { Some(self.source.clone()) } - fn filename(&self) -> Option { + fn filename_or_body(&self) -> Option { self.filename.clone() } @@ -215,8 +215,8 @@ impl MediaEventContent for VideoMessageEventContent { Some(self.source.clone()) } - fn filename(&self) -> Option { - self.filename.clone() + fn filename_or_body(&self) -> Option { + Some(self.filename.clone().unwrap_or_else(|| self.body.clone())) } fn thumbnail_source(&self) -> Option { @@ -232,7 +232,7 @@ impl MediaEventContent for LocationMessageEventContent { None } - fn filename(&self) -> Option { + fn filename_or_body(&self) -> Option { None } diff --git a/crates/matrix-sdk/src/send_queue/mod.rs b/crates/matrix-sdk/src/send_queue/mod.rs index 045fe99b7..95cd02ed0 100644 --- a/crates/matrix-sdk/src/send_queue/mod.rs +++ b/crates/matrix-sdk/src/send_queue/mod.rs @@ -169,7 +169,7 @@ use ruma::{ }; use tokio::sync::{broadcast, oneshot, Mutex, Notify, OwnedMutexGuard}; use tracing::{debug, error, info, instrument, trace, warn}; - +use matrix_sdk_base::media::MediaEventContent; #[cfg(feature = "e2e-encryption")] use crate::crypto::{OlmError, SessionRecipientCollectionError}; use crate::{ @@ -1284,10 +1284,10 @@ impl QueueStorage { let store = client.state_store(); let mut filename = match &event.msgtype { - MessageType::Image(msgtype) => msgtype.filename.clone(), - MessageType::Audio(msgtype) => msgtype.filename.clone(), - MessageType::Video(msgtype) => msgtype.filename.clone(), - MessageType::File(msgtype) => msgtype.filename.clone(), + MessageType::Image(msgtype) => msgtype.filename_or_body(), + MessageType::Audio(msgtype) => msgtype.filename_or_body(), + MessageType::Video(msgtype) => msgtype.filename_or_body(), + MessageType::File(msgtype) => msgtype.filename_or_body(), _ => None, };