diff --git a/bindings/matrix-sdk-ffi/src/sliding_sync.rs b/bindings/matrix-sdk-ffi/src/sliding_sync.rs index 49afb57b3..e41f95c4a 100644 --- a/bindings/matrix-sdk-ffi/src/sliding_sync.rs +++ b/bindings/matrix-sdk-ffi/src/sliding_sync.rs @@ -90,7 +90,6 @@ pub struct SlidingSyncRoom { inner: matrix_sdk::SlidingSyncRoom, timeline: TimelineLock, client: Client, - latest_room_message: Option>, } #[uniffi::export] @@ -130,7 +129,8 @@ impl SlidingSyncRoom { #[allow(clippy::significant_drop_in_scrutinee)] pub fn latest_room_message(&self) -> Option> { - self.latest_room_message.clone() + let item = RUNTIME.block_on(self.inner.latest_event())?; + Some(Arc::new(EventTimelineItem(item))) } } @@ -565,13 +565,10 @@ impl SlidingSync { pub fn get_room(&self, room_id: String) -> anyhow::Result>> { Ok(self.inner.get_room(OwnedRoomId::try_from(room_id)?).map(|inner| { - let latest_room_message = RUNTIME - .block_on(async { Some(Arc::new(EventTimelineItem(inner.latest_event().await?))) }); Arc::new(SlidingSyncRoom { inner, client: self.client.clone(), timeline: Default::default(), - latest_room_message, }) })) } @@ -590,14 +587,10 @@ impl SlidingSync { .into_iter() .map(|o| { o.map(|inner| { - let latest_room_message = RUNTIME.block_on(async { - Some(Arc::new(EventTimelineItem(inner.latest_event().await?))) - }); Arc::new(SlidingSyncRoom { inner, client: self.client.clone(), timeline: Default::default(), - latest_room_message, }) }) })