Skip to content

Commit 9f71792

Browse files
committed
fix(ffi): correctly populate all audio content fields when converting from FFI types to Ruma
- fixes forwarding audio and voice messages that would previously show up as files because of missing fields
1 parent c8da9cb commit 9f71792

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

bindings/matrix-sdk-ffi/src/ruma.rs

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ use ruma::{
3434
MessageType as RumaMessageType,
3535
NoticeMessageEventContent as RumaNoticeMessageEventContent,
3636
RoomMessageEventContentWithoutRelation,
37-
TextMessageEventContent as RumaTextMessageEventContent,
37+
TextMessageEventContent as RumaTextMessageEventContent, UnstableAmplitude,
3838
UnstableAudioDetailsContentBlock as RumaUnstableAudioDetailsContentBlock,
3939
UnstableVoiceContentBlock as RumaUnstableVoiceContentBlock,
4040
VideoInfo as RumaVideoInfo,
@@ -362,6 +362,8 @@ impl TryFrom<MessageType> for RumaMessageType {
362362
.info(content.info.map(Into::into).map(Box::new));
363363
event_content.formatted = content.formatted_caption.map(Into::into);
364364
event_content.filename = filename;
365+
event_content.audio = content.audio.map(Into::into);
366+
event_content.voice = content.voice.map(Into::into);
365367
Self::Audio(event_content)
366368
}
367369
MessageType::Video { content } => {
@@ -658,6 +660,15 @@ impl From<RumaUnstableAudioDetailsContentBlock> for UnstableAudioDetailsContent
658660
}
659661
}
660662

663+
impl From<UnstableAudioDetailsContent> for RumaUnstableAudioDetailsContentBlock {
664+
fn from(details: UnstableAudioDetailsContent) -> Self {
665+
Self::new(
666+
details.duration,
667+
details.waveform.iter().map(|x| UnstableAmplitude::new(x.to_owned())).collect(),
668+
)
669+
}
670+
}
671+
661672
#[derive(Clone, uniffi::Record)]
662673
pub struct UnstableVoiceContent {}
663674

@@ -667,6 +678,12 @@ impl From<RumaUnstableVoiceContentBlock> for UnstableVoiceContent {
667678
}
668679
}
669680

681+
impl From<UnstableVoiceContent> for RumaUnstableVoiceContentBlock {
682+
fn from(_details: UnstableVoiceContent) -> Self {
683+
Self::new()
684+
}
685+
}
686+
670687
#[derive(Clone, uniffi::Record)]
671688
pub struct VideoInfo {
672689
pub duration: Option<Duration>,

0 commit comments

Comments
 (0)