From db9a3e06cbdae5a3926f1c11e5a70884dea50a89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20M=C3=BCller?= Date: Mon, 12 Aug 2024 18:08:58 +0200 Subject: [PATCH] Check call enabled flag local and remote MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marcel Müller --- NextcloudTalk/NCRoom.swift | 16 +++++++++++----- NextcloudTalk/NCRoomsManagerExtensions.swift | 2 +- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/NextcloudTalk/NCRoom.swift b/NextcloudTalk/NCRoom.swift index bebf079a3..8fd6a3eda 100644 --- a/NextcloudTalk/NCRoom.swift +++ b/NextcloudTalk/NCRoom.swift @@ -58,17 +58,23 @@ import Realm return false } - public var supportsFederationV2: Bool { + public var supportsFederatedCalling: Bool { guard self.isFederated else { return false } - let remoteSupported = NCDatabaseManager.sharedInstance().roomHasTalkCapability(kCapabilityFederationV2, for: self) - let localSupported = NCDatabaseManager.sharedInstance().serverHasTalkCapability(kCapabilityFederationV2, forAccountId: self.accountId) + let remoteCapabilitySupported = NCDatabaseManager.sharedInstance().roomHasTalkCapability(kCapabilityFederationV2, for: self) + let localCapabilitySupported = NCDatabaseManager.sharedInstance().serverHasTalkCapability(kCapabilityFederationV2, forAccountId: self.accountId) - return remoteSupported && localSupported + let remoteCallingEnabled = NCDatabaseManager.sharedInstance().roomTalkCapabilities(for: self)?.callEnabled ?? false + let localCallingEnabled = NCDatabaseManager.sharedInstance().serverCapabilities(forAccountId: self.accountId)?.callEnabled ?? false + + let capabilitySupported = remoteCapabilitySupported && localCapabilitySupported + let callingEnabled = remoteCallingEnabled && localCallingEnabled + + return capabilitySupported && callingEnabled } public var supportsCalling: Bool { - if self.isFederated, !self.supportsFederationV2 { + if self.isFederated, !self.supportsFederatedCalling { return false } diff --git a/NextcloudTalk/NCRoomsManagerExtensions.swift b/NextcloudTalk/NCRoomsManagerExtensions.swift index 01f99e148..ee818fccf 100644 --- a/NextcloudTalk/NCRoomsManagerExtensions.swift +++ b/NextcloudTalk/NCRoomsManagerExtensions.swift @@ -194,7 +194,7 @@ import Foundation private func getSignalingSettingsHelper(for account: TalkAccount, forRoom token: String, withCompletion completion: @escaping (SignalingSettings?) -> Void) { // Currently we only need the signaling settings in case the room supports federation-v2 - if let room = NCDatabaseManager.sharedInstance().room(withToken: token, forAccountId: account.accountId), room.supportsFederationV2 { + if let room = NCDatabaseManager.sharedInstance().room(withToken: token, forAccountId: account.accountId), room.supportsFederatedCalling { NCAPIController.sharedInstance().getSignalingSettings(for: account, forRoom: token) { signalingSettings, _ in completion(signalingSettings) }