From dba397d47064f2ef49da654c0ed540436916ae1f Mon Sep 17 00:00:00 2001 From: Ivan Enderlin Date: Wed, 14 Jun 2023 10:56:59 +0200 Subject: [PATCH] feat(ffi): Add `RoomListItem::subscribe` and `::unsubscribe`. --- bindings/matrix-sdk-ffi/src/room_list.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) 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;