From 03bbdce15f4bd00f28533e11a3147dd4054ee74b Mon Sep 17 00:00:00 2001 From: Jonas Platte Date: Mon, 4 Sep 2023 12:50:05 +0200 Subject: [PATCH] ffi: Add in_reply_to field to MessageLikeEventContent::RoomMessage --- bindings/matrix-sdk-ffi/src/event.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/bindings/matrix-sdk-ffi/src/event.rs b/bindings/matrix-sdk-ffi/src/event.rs index e4dcefafc..beab2748a 100644 --- a/bindings/matrix-sdk-ffi/src/event.rs +++ b/bindings/matrix-sdk-ffi/src/event.rs @@ -1,7 +1,7 @@ use anyhow::{bail, Context}; use ruma::events::{ - AnySyncMessageLikeEvent, AnySyncStateEvent, AnySyncTimelineEvent, AnyTimelineEvent, - MessageLikeEventContent as RumaMessageLikeEventContent, RedactContent, + room::message::Relation, AnySyncMessageLikeEvent, AnySyncStateEvent, AnySyncTimelineEvent, + AnyTimelineEvent, MessageLikeEventContent as RumaMessageLikeEventContent, RedactContent, RedactedStateEventContent, StaticStateEventContent, SyncMessageLikeEvent, SyncStateEvent, }; @@ -128,7 +128,7 @@ pub enum MessageLikeEventContent { KeyVerificationDone, ReactionContent { related_event_id: String }, RoomEncrypted, - RoomMessage { message_type: MessageType }, + RoomMessage { message_type: MessageType, in_reply_to_event_id: Option }, RoomRedaction, Sticker, } @@ -172,8 +172,14 @@ impl TryFrom for MessageLikeEventContent { AnySyncMessageLikeEvent::RoomEncrypted(_) => MessageLikeEventContent::RoomEncrypted, AnySyncMessageLikeEvent::RoomMessage(content) => { let original_content = get_message_like_event_original_content(content)?; + let in_reply_to_event_id = + original_content.relates_to.and_then(|relation| match relation { + Relation::Reply { in_reply_to } => Some(in_reply_to.event_id.to_string()), + _ => None, + }); MessageLikeEventContent::RoomMessage { message_type: original_content.msgtype.try_into()?, + in_reply_to_event_id, } } AnySyncMessageLikeEvent::RoomRedaction(_) => MessageLikeEventContent::RoomRedaction,