Allow the use of Jitsi for 1:1 calls via the client well-known.

This commit is contained in:
Doug 2023-09-27 13:03:28 +01:00 committed by Doug
parent db464a7484
commit f1b6f52fde
5 changed files with 16 additions and 5 deletions

View file

@ -72,6 +72,8 @@ final class HomeserverConfigurationBuilder: NSObject {
jitsiServerURL = hardcodedJitsiServerURL
}
let useJitsiFor1To1Calls = vectorWellKnownJitsiConfiguration?.useFor1To1Calls
// Tile server configuration
let tileServerMapStyleURL: URL
@ -87,7 +89,8 @@ final class HomeserverConfigurationBuilder: NSObject {
// Create HomeserverConfiguration
let jitsiConfiguration = HomeserverJitsiConfiguration(serverDomain: jitsiPreferredDomain,
serverURL: jitsiServerURL)
serverURL: jitsiServerURL,
useFor1To1Calls: useJitsiFor1To1Calls)
return HomeserverConfiguration(jitsi: jitsiConfiguration,
encryption: encryptionConfiguration,

View file

@ -21,10 +21,12 @@ import Foundation
final class HomeserverJitsiConfiguration: NSObject {
let serverDomain: String?
let serverURL: URL?
let useFor1To1Calls: Bool
init(serverDomain: String?, serverURL: URL?) {
init(serverDomain: String?, serverURL: URL?, useFor1To1Calls: Bool?) {
self.serverDomain = serverDomain
self.serverURL = serverURL
self.useFor1To1Calls = useFor1To1Calls ?? false
super.init()
}

View file

@ -74,7 +74,8 @@ extension VectorWellKnownEncryptionConfiguration: Decodable {
// MARK: - Jitsi
struct VectorWellKnownJitsiConfiguration: Decodable {
/// Default Jitsi server
let preferredDomain: String?
/// Override native calling with Jitsi for 1:1 calls.
let useFor1To1Calls: Bool?
}

View file

@ -1942,7 +1942,9 @@ static CGSize kThreadListBarButtonItemImageSize;
if (self.supportCallOption)
{
if (self.roomDataSource.room.summary.membersCount.joined == 2 && self.roomDataSource.room.isDirect)
if (self.roomDataSource.room.summary.membersCount.joined == 2
&& self.roomDataSource.room.isDirect
&& !self.mainSession.vc_homeserverConfiguration.jitsi.useFor1To1Calls)
{
// voice call button for Matrix call
UIBarButtonItem *itemVoice = [[UIBarButtonItem alloc] initWithImage:AssetImages.voiceCallHangonIcon.image
@ -5038,7 +5040,9 @@ static CGSize kThreadListBarButtonItemImageSize;
}
else
{
if (self.roomDataSource.room.summary.membersCount.joined == 2 && self.roomDataSource.room.isDirect)
if (self.roomDataSource.room.summary.membersCount.joined == 2
&& self.roomDataSource.room.isDirect
&& !self.mainSession.vc_homeserverConfiguration.jitsi.useFor1To1Calls)
{
// Matrix call
[self.roomDataSource.room placeCallWithVideo:video success:nil failure:nil];

1
changelog.d/7684.change Normal file
View file

@ -0,0 +1 @@
Allow the use of Jitsi for 1:1 calls via a well-known configuration flag.