mirror of
https://github.com/matrix-org/matrix-rust-sdk.git
synced 2026-05-15 03:25:46 -04:00
feat(ffi): Add RoomListItem::subscribe and ::unsubscribe.
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user