From 6d4a7bb2b54f1176f6850598aab1558f9ef08cfe Mon Sep 17 00:00:00 2001 From: Jorge Martin Espinosa Date: Tue, 29 Apr 2025 15:52:23 +0200 Subject: [PATCH] Fix `Client.getJoinedRoom` crash when a room doesn't exist locally (#4656) --- .../libraries/matrix/impl/RustMatrixClient.kt | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClient.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClient.kt index 6491ae03d3..9dba6fc589 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClient.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClient.kt @@ -267,17 +267,12 @@ class RustMatrixClient( } } - override suspend fun getRoom(roomId: RoomId): BaseRoom? { - return roomFactory.getBaseRoom(roomId) + override suspend fun getRoom(roomId: RoomId): BaseRoom? = withContext(sessionDispatcher) { + roomFactory.getBaseRoom(roomId) } - override suspend fun getJoinedRoom(roomId: RoomId): JoinedRoom? { - return try { - (roomFactory.getJoinedRoomOrPreview(roomId) as GetRoomResult.Joined).joinedRoom - } catch (e: ClassCastException) { - Timber.e(e, "Room $roomId is not a joined room") - null - } + override suspend fun getJoinedRoom(roomId: RoomId): JoinedRoom? = withContext(sessionDispatcher) { + (roomFactory.getJoinedRoomOrPreview(roomId) as? GetRoomResult.Joined)?.joinedRoom } /**