Stop relying on the room list service and its items when retrieving room from the ClientProxy

This commit is contained in:
Stefan Ceriu
2025-05-26 10:12:10 +03:00
committed by Stefan Ceriu
parent ebbe0eb646
commit f56b060250

View File

@@ -904,33 +904,20 @@ class ClientProxy: ClientProxyProtocol {
private func buildRoomForIdentifier(_ roomID: String) async -> RoomProxyType? {
do {
let roomListItem = try roomListService.room(roomId: roomID)
guard let room = try client.getRoom(roomId: roomID) else {
return nil
}
switch roomListItem.membership() {
switch room.membership() {
case .invited:
guard let room = try client.getRoom(roomId: roomID) else {
MXLog.error("Could not find room with ID: \(roomID)")
return nil
}
return try await .invited(InvitedRoomProxy(room: room))
case .knocked:
guard appSettings.knockingEnabled else {
return nil
}
guard let room = try client.getRoom(roomId: roomID) else {
MXLog.error("Could not find room with ID: \(roomID)")
return nil
}
return try await .knocked(KnockedRoomProxy(room: room))
case .joined:
guard let room = try client.getRoom(roomId: roomID) else {
MXLog.error("Could not find room with ID: \(roomID)")
return nil
}
let roomProxy = try await JoinedRoomProxy(roomListService: roomListService,
room: room)