feat(ffi): Add RoomListItem::subscribe and ::unsubscribe.

This commit is contained in:
Ivan Enderlin
2023-06-14 10:56:59 +02:00
parent 712b395310
commit dba397d470

View File

@@ -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<RoomSubscription>) {
self.inner.subscribe(settings.map(Into::into));
}
fn unsubscribe(&self) {
self.inner.unsubscribe();
}
async fn timeline(&self, listener: Box<dyn TimelineListener>) -> RoomListItemTimelineResult {
let timeline = self.inner.timeline().await;
let (items, items_stream) = timeline.subscribe().await;