diff --git a/crates/matrix-sdk-common/src/deserialized_responses.rs b/crates/matrix-sdk-common/src/deserialized_responses.rs index 356c3133c3..b8dcaed979 100644 --- a/crates/matrix-sdk-common/src/deserialized_responses.rs +++ b/crates/matrix-sdk-common/src/deserialized_responses.rs @@ -487,8 +487,9 @@ impl TimelineEvent { /// Takes ownership of this `TimelineEvent`, returning the (potentially /// decrypted) Matrix event within. - pub fn into_event(self) -> Raw { - self.inner_event + pub fn into_event(self) -> Raw { + // TODO: make `inner_event` an AnySyncTimelineEvent instead. + self.inner_event.cast() } } diff --git a/crates/matrix-sdk-ui/src/notification_client.rs b/crates/matrix-sdk-ui/src/notification_client.rs index 98cf977569..7122b489ec 100644 --- a/crates/matrix-sdk-ui/src/notification_client.rs +++ b/crates/matrix-sdk-ui/src/notification_client.rs @@ -500,7 +500,7 @@ impl NotificationClient { self.retry_decryption(&room, timeline_event).await? { let push_actions = timeline_event.push_actions.take(); - raw_event = RawNotificationEvent::Timeline(timeline_event.into_event().cast()); + raw_event = RawNotificationEvent::Timeline(timeline_event.into_event()); push_actions } else { room.event_push_actions(timeline_event).await? @@ -566,7 +566,7 @@ impl NotificationClient { Ok(Some( NotificationItem::new( &room, - RawNotificationEvent::Timeline(timeline_event.into_event().cast()), + RawNotificationEvent::Timeline(timeline_event.into_event()), push_actions.as_deref(), state_events, ) diff --git a/crates/matrix-sdk-ui/src/timeline/mod.rs b/crates/matrix-sdk-ui/src/timeline/mod.rs index fd6737d174..58f0b34620 100644 --- a/crates/matrix-sdk-ui/src/timeline/mod.rs +++ b/crates/matrix-sdk-ui/src/timeline/mod.rs @@ -415,11 +415,7 @@ impl Timeline { UnsupportedReplyItem::MissingEvent })?; - // We need to get the content and we can do that by casting the event as a - // `AnySyncTimelineEvent` which is the same as a `AnyTimelineEvent`, but without - // the `room_id` field. The cast is valid because we are just losing - // track of such field. - let raw_sync_event: Raw = event.into_event().cast(); + let raw_sync_event = event.into_event(); let sync_event = raw_sync_event.deserialize().map_err(|error| { error!("Failed to deserialize event with ID {event_id} with error: {error}"); UnsupportedReplyItem::FailedToDeserializeEvent diff --git a/crates/matrix-sdk-ui/tests/integration/timeline/pinned_event.rs b/crates/matrix-sdk-ui/tests/integration/timeline/pinned_event.rs index ed7d89f542..d9a1c98c32 100644 --- a/crates/matrix-sdk-ui/tests/integration/timeline/pinned_event.rs +++ b/crates/matrix-sdk-ui/tests/integration/timeline/pinned_event.rs @@ -731,7 +731,7 @@ impl TestHelper { if add_to_timeline { joined_room_builder = - joined_room_builder.add_timeline_event(timeline_event.into_event().cast()); + joined_room_builder.add_timeline_event(timeline_event.into_event()); } }