// // Copyright 2025 Element Creations Ltd. // Copyright 2025 New Vector Ltd. // // SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial. // Please see LICENSE files in the repository root for full details. // import MatrixRustSDK extension RoomProtocol { func joinCallIntent(voiceOnly: Bool = false) async -> Intent { switch await (hasActiveRoomCall(), isDirect()) { case (true, true): voiceOnly ? .joinExistingDmVoice : .joinExistingDm case (true, false): .joinExisting case (false, true): voiceOnly ? .startCallDmVoice : .startCallDm case (false, false): .startCall } } }