Update XMPPService.swift
iOS CI / Build and Test SwiftUI App (push) Canceled after 0s
Build Unsigned iOS and macOS Apps / Build Unsigned iOS IPA (push) Canceled after 0s
Build Unsigned iOS and macOS Apps / Build macOS ZIP (push) Canceled after 0s

This commit is contained in:
wt committed 2026-08-10 17:44:55 +07:00
1 parent 7791535d95
commit 94bea40220
1 file changed
+9 -26
+9 -26
View File
@@ -1849,57 +1849,40 @@ final class XMPPService {
}
var supportsNonAnonymousRooms = false
if let field: ListSingleField = configuration.getField(
named: "muc#roomconfig_whois")
{
if let field: ListSingleField = configuration.getField(named: "muc#roomconfig_whois") {
field.value = "anyone"
supportsNonAnonymousRooms = true
} else if let field: TextSingleField = configuration.getField(
named: "muc#roomconfig_whois")
} else if let field: TextSingleField = configuration.getField(named: "muc#roomconfig_whois")
{
field.value = "anyone"
supportsNonAnonymousRooms = true
}
if let field: ListMultiField = configuration.getField(
named: "muc#roomconfig_getmemberlist")
if let field: ListMultiField = configuration.getField(named: "muc#roomconfig_getmemberlist")
{
field.value = Array(Set(field.value + ["moderator", "participant"])).sorted()
}
if makeMembersOnly,
let field: BooleanField = configuration.getField(
named: "muc#roomconfig_membersonly")
let field: BooleanField = configuration.getField(named: "muc#roomconfig_membersonly")
{
field.value = true
}
if makeMembersOnly,
let field: BooleanField = configuration.getField(
named: "muc#roomconfig_persistentroom")
let field: BooleanField = configuration.getField(named: "muc#roomconfig_persistentroom")
{
field.value = true
}
try await withCheckedThrowingContinuation {
(continuation: CheckedContinuation<Void, Error>) in
try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in
muc.setRoomConfiguration(roomJid: roomJID, configuration: configuration) { result in
switch result {
case .success: continuation.resume()
case .success(let value): continuation.resume(returning: value)
case .failure(let error): continuation.resume(throwing: error)
}
}
}
if makeMembersOnly {
try await withCheckedThrowingContinuation {
(continuation: CheckedContinuation<Void, Error>) in
muc.allowAccess(room: room, to: [JID(account!.bareJid)]) { result in
switch result {
case .success: continuation.resume()
case .failure(let error): continuation.resume(throwing: error)
}
}
}
if supportsNonAnonymousRooms {
omemoConfiguredRoomJIDs.insert(room.jid.stringValue.lowercased())
}
return supportsNonAnonymousRooms
}