Use new API awaitRoomRemoteEcho to ensure that the room is ready SDK side.

This commit is contained in:
Benoit Marty 2024-09-17 10:59:26 +02:00
parent 6117a23ed5
commit 70a5756369

View file

@ -272,6 +272,8 @@ class RustMatrixClient(
.filter(predicate) .filter(predicate)
.first() .first()
.first() .first()
// Ensure that the room is ready
.also { client.awaitRoomRemoteEcho(it.roomId.value) }
} }
} }
@ -311,16 +313,14 @@ class RustMatrixClient(
avatar = createRoomParams.avatar, avatar = createRoomParams.avatar,
powerLevelContentOverride = defaultRoomCreationPowerLevels, powerLevelContentOverride = defaultRoomCreationPowerLevels,
) )
val roomId = client.createRoom(rustParams) val roomId = RoomId(client.createRoom(rustParams))
// Wait to receive the room back from the sync but do not returns failure if it fails. // Wait to receive the room back from the sync but do not returns failure if it fails.
try { try {
withTimeout(30.seconds) { awaitJoinedRoom(roomId.toRoomIdOrAlias(), 30.seconds)
client.awaitRoomRemoteEcho(roomId)
}
} catch (e: Exception) { } catch (e: Exception) {
Timber.e(e, "Timeout waiting for the room to be available in the room list") Timber.e(e, "Timeout waiting for the room to be available in the room list")
} }
RoomId(roomId) roomId
} }
} }