limit knock FF only room creation and access type changes

# Conflicts:
#	ElementX/Sources/Screens/RoomScreen/RoomScreenViewModel.swift
This commit is contained in:
Mauro Romito
2026-04-30 15:08:55 +02:00
committed by Stefan Ceriu
parent 272c8ca764
commit d02459d9b8
12 changed files with 10 additions and 41 deletions
@@ -808,7 +808,7 @@ class ClientProxy: ClientProxyProtocol {
}
func roomDirectorySearchProxy() -> RoomDirectorySearchProxyProtocol {
RoomDirectorySearchProxy(roomDirectorySearch: client.roomDirectorySearch(), appSettings: appSettings)
RoomDirectorySearchProxy(roomDirectorySearch: client.roomDirectorySearch())
}
func resolveRoomAlias(_ alias: String) async -> Result<ResolvedRoomAlias, ClientProxyError> {
@@ -1206,10 +1206,6 @@ class ClientProxy: ClientProxyProtocol {
case .invited:
return try await .invited(InvitedRoomProxy(room: room))
case .knocked:
guard appSettings.knockingEnabled else {
return nil
}
return try await .knocked(KnockedRoomProxy(room: room))
case .joined:
let roomProxy = try await JoinedRoomProxy(roomListService: roomListService,
@@ -12,7 +12,6 @@ import MatrixRustSDK
final class RoomDirectorySearchProxy: RoomDirectorySearchProxyProtocol {
private let roomDirectorySearch: RoomDirectorySearchProtocol
private let appSettings: AppSettings
private let serialDispatchQueue = DispatchQueue(label: "io.element.elementx.room_directory_search_proxy", qos: .default)
private let resultsSubject = CurrentValueSubject<[RoomDirectorySearchResult], Never>([])
@@ -32,10 +31,8 @@ final class RoomDirectorySearchProxy: RoomDirectorySearchProxyProtocol {
private var cancellables = Set<AnyCancellable>()
init(roomDirectorySearch: RoomDirectorySearchProtocol,
appSettings: AppSettings) {
init(roomDirectorySearch: RoomDirectorySearchProtocol) {
self.roomDirectorySearch = roomDirectorySearch
self.appSettings = appSettings
diffsPublisher
.receive(on: serialDispatchQueue)
.sink { [weak self] in self?.updateResultsWithDiffs($0) }
@@ -149,6 +146,6 @@ final class RoomDirectorySearchProxy: RoomDirectorySearchProxyProtocol {
name: value.name,
topic: value.topic,
avatar: .room(id: value.roomId, name: value.name, avatarURL: value.avatarUrl.flatMap(URL.init(string:))),
canBeJoined: value.joinRule == .public || (appSettings.knockingEnabled && value.joinRule == .knock))
canBeJoined: value.joinRule == .public || value.joinRule == .knock)
}
}