timeline: avoid passing the raw event in two places

This commit is contained in:
Benjamin Bouvier
2024-10-03 14:16:29 +02:00
parent 5a1728a468
commit 6b543d105f
2 changed files with 5 additions and 12 deletions

View File

@@ -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) {

View File

@@ -289,7 +289,6 @@ impl<'a, 'o> TimelineEventHandler<'a, 'o> {
mut self,
day_divider_adjuster: &mut DayDividerAdjuster,
event_kind: TimelineEventKind,
raw_event: Option<&Raw<AnySyncTimelineEvent>>,
) -> 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);