Fix tap knockable room and custom keyboard did show scrolling (#3603)

* making knockable rooms tappable

* added a way to customise the keyboard scrolling

in case we want the focussed view/textview to display something outside its content

* better documentation
This commit is contained in:
Mauro
2024-12-11 16:09:52 +01:00
committed by GitHub
parent 4931ad0ed3
commit 9856e3e5b4
6 changed files with 64 additions and 28 deletions
@@ -12,6 +12,7 @@ import MatrixRustSDK
final class RoomDirectorySearchProxy: RoomDirectorySearchProxyProtocol {
private let roomDirectorySearch: RoomDirectorySearchProtocol
private let appSettings: AppSettings
private let serialDispatchQueue = DispatchQueue(label: "io.element.elementx.roomdirectorysearch", qos: .default)
private let resultsSubject = CurrentValueSubject<[RoomDirectorySearchResult], Never>([])
@@ -31,8 +32,10 @@ final class RoomDirectorySearchProxy: RoomDirectorySearchProxyProtocol {
private var cancellables = Set<AnyCancellable>()
init(roomDirectorySearch: RoomDirectorySearchProtocol) {
init(roomDirectorySearch: RoomDirectorySearchProtocol,
appSettings: AppSettings) {
self.roomDirectorySearch = roomDirectorySearch
self.appSettings = appSettings
diffsPublisher
.receive(on: serialDispatchQueue)
.sink { [weak self] in self?.updateResultsWithDiffs($0) }
@@ -146,7 +149,7 @@ 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)
canBeJoined: value.joinRule == .public || (appSettings.knockingEnabled && value.joinRule == .knock))
}
}