From 322aa776f2ab94e48d0f8ce20f79f89bc427ef1f Mon Sep 17 00:00:00 2001 From: Ivan Enderlin Date: Mon, 30 Jan 2023 08:49:48 +0100 Subject: [PATCH] =?UTF-8?q?feat(sdk):=20Remove=20`LocalEventTimelineItem.e?= =?UTF-8?q?ncryption=5Finfo`=20and=20`.raw`,=20and=20`Remote=E2=80=A6.raw`?= =?UTF-8?q?=20is=20no=20more=20an=20`Option`.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/room/timeline/event_handler.rs | 31 +++++++++---------- .../src/room/timeline/event_item.rs | 14 +++------ crates/matrix-sdk/src/room/timeline/inner.rs | 5 --- .../tests/integration/room/timeline.rs | 3 -- 4 files changed, 18 insertions(+), 35 deletions(-) diff --git a/crates/matrix-sdk/src/room/timeline/event_handler.rs b/crates/matrix-sdk/src/room/timeline/event_handler.rs index 7128139d9..ea00a7253 100644 --- a/crates/matrix-sdk/src/room/timeline/event_handler.rs +++ b/crates/matrix-sdk/src/room/timeline/event_handler.rs @@ -512,32 +512,29 @@ impl<'a, 'i> TimelineEventHandler<'a, 'i> { let item = { let sender = self.meta.sender.to_owned(); let sender_profile = self.meta.sender_profile.clone(); - let timestamp = self.flow.timestamp(); - let encryption_info = self.meta.encryption_info.clone(); - let raw = self.flow.raw_event().cloned(); match &self.flow { - Flow::Local { txn_id, .. } => EventTimelineItem::Local(LocalEventTimelineItem { - transaction_id: txn_id.to_owned(), - event_id: None, - sender, - sender_profile, - timestamp, - content, - encryption_info, - raw, - }), - Flow::Remote { event_id, .. } => { + Flow::Local { txn_id, timestamp } => { + EventTimelineItem::Local(LocalEventTimelineItem { + transaction_id: txn_id.to_owned(), + event_id: None, + sender, + sender_profile, + timestamp: *timestamp, + content, + }) + } + Flow::Remote { event_id, origin_server_ts, raw_event, .. } => { EventTimelineItem::Remote(RemoteEventTimelineItem { event_id: event_id.clone(), sender, sender_profile, - timestamp, + timestamp: *origin_server_ts, content, reactions, is_own: self.meta.is_own_event, - encryption_info, - raw, + encryption_info: self.meta.encryption_info.clone(), + raw: raw_event.clone(), }) } } diff --git a/crates/matrix-sdk/src/room/timeline/event_item.rs b/crates/matrix-sdk/src/room/timeline/event_item.rs index e33876e78..f52294841 100644 --- a/crates/matrix-sdk/src/room/timeline/event_item.rs +++ b/crates/matrix-sdk/src/room/timeline/event_item.rs @@ -161,9 +161,9 @@ impl EventTimelineItem { /// Returns `None` if this event hasn't been echoed back by the server /// yet. pub fn raw(&self) -> Option<&Raw> { - match self { - Self::Local(local_event) => local_event.raw.as_ref(), - Self::Remote(remote_event) => remote_event.raw.as_ref(), + match &self { + Self::Local(local_event) => None, + Self::Remote(ref remote_event) => Some(&remote_event.raw), } } @@ -194,10 +194,6 @@ pub struct LocalEventTimelineItem { pub timestamp: MilliSecondsSinceUnixEpoch, /// The content of the event. pub content: TimelineItemContent, - /// Encryption information. - pub encryption_info: Option, - // FIXME: Expose the raw JSON of aggregated events somehow - pub raw: Option>, } impl LocalEventTimelineItem { @@ -221,8 +217,6 @@ impl fmt::Debug for LocalEventTimelineItem { .field("sender", &self.sender) .field("timestamp", &self.timestamp) .field("content", &self.content) - .field("encryption_info", &self.encryption_info) - // skip raw, too noisy .finish_non_exhaustive() } } @@ -246,7 +240,7 @@ pub struct RemoteEventTimelineItem { /// Encryption information. pub encryption_info: Option, // FIXME: Expose the raw JSON of aggregated events somehow - pub raw: Option>, + pub raw: Raw, } impl RemoteEventTimelineItem { diff --git a/crates/matrix-sdk/src/room/timeline/inner.rs b/crates/matrix-sdk/src/room/timeline/inner.rs index 5653ad63b..ff600eff8 100644 --- a/crates/matrix-sdk/src/room/timeline/inner.rs +++ b/crates/matrix-sdk/src/room/timeline/inner.rs @@ -258,11 +258,6 @@ impl TimelineInner

{ return None; }; - let Some(raw) = raw else { - error!("No raw event in unable-to-decrypt timeline item"); - return None; - }; - Some(( idx, event_id.to_owned(), diff --git a/crates/matrix-sdk/tests/integration/room/timeline.rs b/crates/matrix-sdk/tests/integration/room/timeline.rs index e67c0c803..c357f8cca 100644 --- a/crates/matrix-sdk/tests/integration/room/timeline.rs +++ b/crates/matrix-sdk/tests/integration/room/timeline.rs @@ -188,7 +188,6 @@ async fn echo() { assert_matches!(timeline_stream.next().await, Some(VecDiff::Push { value }) => value); let item = local_echo.as_event().unwrap().as_local().unwrap(); assert!(item.event_id.is_none()); - assert!(item.raw.is_none()); let msg = assert_matches!(item.content, TimelineItemContent::Message(ref msg) => msg); let text = assert_matches!(msg.msgtype(), MessageType::Text(text) => text); @@ -203,7 +202,6 @@ async fn echo() { ); let item = sent_confirmation.as_event().unwrap().as_local().unwrap(); assert!(item.event_id.is_some()); - assert!(item.raw.is_none()); ev_builder.add_joined_room(JoinedRoomBuilder::new(room_id).add_timeline_event( TimelineTestEvent::Custom(json!({ @@ -235,7 +233,6 @@ async fn echo() { let item = remote_echo.as_event().unwrap().as_remote().unwrap(); assert!(item.is_own); assert_eq!(item.timestamp, MilliSecondsSinceUnixEpoch(uint!(152038280))); - assert_matches!(item.raw, Some(_)); } #[async_test]