From 6b543d105fecae53a435f7f3478e176d63ea212f Mon Sep 17 00:00:00 2001 From: Benjamin Bouvier Date: Thu, 3 Oct 2024 14:16:29 +0200 Subject: [PATCH] timeline: avoid passing the raw event in two places --- .../matrix-sdk-ui/src/timeline/controller/state.rs | 14 +++----------- crates/matrix-sdk-ui/src/timeline/event_handler.rs | 3 ++- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/crates/matrix-sdk-ui/src/timeline/controller/state.rs b/crates/matrix-sdk-ui/src/timeline/controller/state.rs index b4f8b60f7..4cd8095a1 100644 --- a/crates/matrix-sdk-ui/src/timeline/controller/state.rs +++ b/crates/matrix-sdk-ui/src/timeline/controller/state.rs @@ -201,13 +201,7 @@ impl TimelineState { let mut day_divider_adjuster = DayDividerAdjuster::default(); TimelineEventHandler::new(&mut txn, ctx) - .handle_event( - &mut day_divider_adjuster, - content, - // Local events are never UTD, so no need to pass in a raw_event - this is only - // used to determine the type of UTD if there is one. - None, - ) + .handle_event(&mut day_divider_adjuster, content) .await; txn.adjust_day_dividers(day_divider_adjuster); @@ -586,7 +580,7 @@ impl TimelineStateTransaction<'_> { is_highlighted: event.push_actions.iter().any(Action::is_highlight), flow: Flow::Remote { event_id: event_id.clone(), - raw_event: raw.clone(), + raw_event: raw, encryption_info: event.encryption_info, txn_id, position, @@ -594,9 +588,7 @@ impl TimelineStateTransaction<'_> { should_add_new_items: should_add, }; - TimelineEventHandler::new(self, ctx) - .handle_event(day_divider_adjuster, event_kind, Some(&raw)) - .await + TimelineEventHandler::new(self, ctx).handle_event(day_divider_adjuster, event_kind).await } fn clear(&mut self) { diff --git a/crates/matrix-sdk-ui/src/timeline/event_handler.rs b/crates/matrix-sdk-ui/src/timeline/event_handler.rs index 356242a32..2be4e58a0 100644 --- a/crates/matrix-sdk-ui/src/timeline/event_handler.rs +++ b/crates/matrix-sdk-ui/src/timeline/event_handler.rs @@ -289,7 +289,6 @@ impl<'a, 'o> TimelineEventHandler<'a, 'o> { mut self, day_divider_adjuster: &mut DayDividerAdjuster, event_kind: TimelineEventKind, - raw_event: Option<&Raw>, ) -> HandleEventResult { let span = tracing::Span::current(); @@ -334,6 +333,8 @@ impl<'a, 'o> TimelineEventHandler<'a, 'o> { AnyMessageLikeEventContent::RoomEncrypted(c) => { // TODO: Handle replacements if the replaced event is also UTD + let raw_event = + as_variant!(&self.ctx.flow, Flow::Remote { raw_event, .. } => raw_event); let cause = UtdCause::determine(raw_event); self.add_item(TimelineItemContent::unable_to_decrypt(c, cause), None);