diff --git a/bindings/matrix-sdk-ffi/src/room_list.rs b/bindings/matrix-sdk-ffi/src/room_list.rs index 845de4c77..9cf93c82d 100644 --- a/bindings/matrix-sdk-ffi/src/room_list.rs +++ b/bindings/matrix-sdk-ffi/src/room_list.rs @@ -5,8 +5,8 @@ use futures_util::{pin_mut, StreamExt}; use ruma::RoomId; use crate::{ - Client, EventTimelineItem, Room, RoomListEntry, TaskHandle, TimelineDiff, TimelineItem, - TimelineListener, RUNTIME, + Client, EventTimelineItem, Room, RoomListEntry, RoomSubscription, TaskHandle, TimelineDiff, + TimelineItem, TimelineListener, RUNTIME, }; #[uniffi::export] @@ -202,6 +202,14 @@ impl RoomListItem { Arc::new(Room::new(self.inner.inner_room().clone())) } + fn subscribe(&self, settings: Option) { + self.inner.subscribe(settings.map(Into::into)); + } + + fn unsubscribe(&self) { + self.inner.unsubscribe(); + } + async fn timeline(&self, listener: Box) -> RoomListItemTimelineResult { let timeline = self.inner.timeline().await; let (items, items_stream) = timeline.subscribe().await;