diff --git a/bindings/matrix-sdk-ffi/src/client.rs b/bindings/matrix-sdk-ffi/src/client.rs index 701aba39a..dea353a89 100644 --- a/bindings/matrix-sdk-ffi/src/client.rs +++ b/bindings/matrix-sdk-ffi/src/client.rs @@ -32,7 +32,7 @@ use matrix_sdk::{ AnyInitialStateEvent, AnyToDeviceEvent, InitialStateEvent, }, serde::Raw, - EventEncryptionAlgorithm, TransactionId, UInt, UserId, + EventEncryptionAlgorithm, RoomId, TransactionId, UInt, UserId, }, AuthApi, AuthSession, Client as MatrixClient, SessionChange, SessionTokens, }; @@ -751,6 +751,12 @@ impl Client { matrix_sdk::room_directory_search::RoomDirectorySearch::new((*self.inner).clone()), )) } + + pub async fn join_room_by_id(&self, room_id: String) -> Result, ClientError> { + let room_id = RoomId::parse(room_id)?; + let room = self.inner.join_room_by_id(room_id.as_ref()).await?; + Ok(Arc::new(Room::new(room))) + } } #[uniffi::export(callback_interface)]