diff --git a/Gemfile b/Gemfile index 6ae4945284..a34178384f 100644 --- a/Gemfile +++ b/Gemfile @@ -2,7 +2,7 @@ source "https://rubygems.org" gem "xcode-install" gem "fastlane" -gem "cocoapods", '~>1.11.2' +gem "cocoapods", '~>1.13.0' gem "slather" plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile') diff --git a/Gemfile.lock b/Gemfile.lock index 5bbce9861e..851230fb3f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -9,13 +9,12 @@ GEM specs: CFPropertyList (3.0.6) rexml - activesupport (6.1.7.3) + activesupport (7.0.8) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) tzinfo (~> 2.0) - zeitwerk (~> 2.3) - addressable (2.8.4) + addressable (2.8.5) public_suffix (>= 2.0.2, < 6.0) algoliasearch (1.27.5) httpclient (~> 2.8, >= 2.8.3) @@ -23,33 +22,33 @@ GEM artifactory (3.0.15) atomos (0.1.3) aws-eventstream (1.2.0) - aws-partitions (1.770.0) - aws-sdk-core (3.173.1) + aws-partitions (1.828.0) + aws-sdk-core (3.183.1) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.651.0) aws-sigv4 (~> 1.5) jmespath (~> 1, >= 1.6.1) - aws-sdk-kms (1.64.0) - aws-sdk-core (~> 3, >= 3.165.0) + aws-sdk-kms (1.71.0) + aws-sdk-core (~> 3, >= 3.177.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.122.0) - aws-sdk-core (~> 3, >= 3.165.0) + aws-sdk-s3 (1.136.0) + aws-sdk-core (~> 3, >= 3.181.0) aws-sdk-kms (~> 1) - aws-sigv4 (~> 1.4) - aws-sigv4 (1.5.2) + aws-sigv4 (~> 1.6) + aws-sigv4 (1.6.0) aws-eventstream (~> 1, >= 1.0.2) babosa (1.0.4) claide (1.1.0) clamp (1.3.2) - cocoapods (1.11.3) + cocoapods (1.13.0) addressable (~> 2.8) claide (>= 1.0.2, < 2.0) - cocoapods-core (= 1.11.3) + cocoapods-core (= 1.13.0) cocoapods-deintegrate (>= 1.0.3, < 2.0) - cocoapods-downloader (>= 1.4.0, < 2.0) + cocoapods-downloader (>= 1.6.0, < 2.0) cocoapods-plugins (>= 1.0.0, < 2.0) cocoapods-search (>= 1.0.0, < 2.0) - cocoapods-trunk (>= 1.4.0, < 2.0) + cocoapods-trunk (>= 1.6.0, < 2.0) cocoapods-try (>= 1.1.0, < 2.0) colored2 (~> 3.1) escape (~> 0.0.4) @@ -57,10 +56,10 @@ GEM gh_inspector (~> 1.0) molinillo (~> 0.8.0) nap (~> 1.0) - ruby-macho (>= 1.0, < 3.0) - xcodeproj (>= 1.21.0, < 2.0) - cocoapods-core (1.11.3) - activesupport (>= 5.0, < 7) + ruby-macho (>= 2.3.0, < 3.0) + xcodeproj (>= 1.23.0, < 2.0) + cocoapods-core (1.13.0) + activesupport (>= 5.0, < 8) addressable (~> 2.8) algoliasearch (~> 1.0) concurrent-ruby (~> 1.1) @@ -84,7 +83,7 @@ GEM highline (~> 2.0.0) concurrent-ruby (1.2.2) declarative (0.0.20) - digest-crc (0.6.4) + digest-crc (0.6.5) rake (>= 12.0.0, < 14.0.0) domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) @@ -93,7 +92,7 @@ GEM escape (0.0.4) ethon (0.16.0) ffi (>= 1.15.0) - excon (0.99.0) + excon (0.103.0) faraday (1.10.3) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) @@ -123,7 +122,7 @@ GEM faraday_middleware (1.2.0) faraday (~> 1.0) fastimage (2.2.7) - fastlane (2.213.0) + fastlane (2.216.0) CFPropertyList (>= 2.3, < 4.0.0) addressable (>= 2.8, < 3.0.0) artifactory (~> 3.0) @@ -144,6 +143,7 @@ GEM google-apis-playcustomapp_v1 (~> 0.1) google-cloud-storage (~> 1.31) highline (~> 2.0) + http-cookie (~> 1.0.5) json (< 3.0.0) jwt (>= 2.1.0, < 3) mini_magick (>= 4.9.4, < 5.0.0) @@ -155,7 +155,7 @@ GEM security (= 0.1.3) simctl (~> 1.6.3) terminal-notifier (>= 2.0.0, < 3.0.0) - terminal-table (>= 1.4.5, < 2.0.0) + terminal-table (~> 3) tty-screen (>= 0.6.3, < 1.0.0) tty-spinner (>= 0.8.0, < 1.0.0) word_wrap (~> 1.0.0) @@ -165,16 +165,16 @@ GEM fastlane-plugin-brew (0.1.1) fastlane-plugin-sentry (1.15.0) os (~> 1.1, >= 1.1.4) - fastlane-plugin-versioning (0.5.1) + fastlane-plugin-versioning (0.5.2) fastlane-plugin-xcodegen (1.1.0) fastlane-plugin-brew (~> 0.1.1) - ffi (1.15.5) + ffi (1.16.2) fourflusher (2.3.1) fuzzy_match (2.0.4) gh_inspector (1.1.3) - google-apis-androidpublisher_v3 (0.42.0) + google-apis-androidpublisher_v3 (0.50.0) google-apis-core (>= 0.11.0, < 2.a) - google-apis-core (0.11.0) + google-apis-core (0.11.1) addressable (~> 2.5, >= 2.5.1) googleauth (>= 0.16.2, < 2.a) httpclient (>= 2.8.1, < 3.a) @@ -203,10 +203,9 @@ GEM google-cloud-core (~> 1.6) googleauth (>= 0.16.2, < 2.a) mini_mime (~> 1.0) - googleauth (1.5.2) + googleauth (1.8.1) faraday (>= 0.17.3, < 3.a) jwt (>= 1.4, < 3.0) - memoist (~> 0.16) multi_json (~> 1.11) os (>= 0.9, < 2.0) signet (>= 0.16, < 2.a) @@ -214,16 +213,15 @@ GEM http-cookie (1.0.5) domain_name (~> 0.5) httpclient (2.8.3) - i18n (1.13.0) + i18n (1.14.1) concurrent-ruby (~> 1.0) jmespath (1.6.2) json (2.6.3) - jwt (2.7.0) - memoist (0.16.2) + jwt (2.7.1) mini_magick (4.12.0) - mini_mime (1.1.2) - mini_portile2 (2.8.2) - minitest (5.18.0) + mini_mime (1.1.5) + mini_portile2 (2.8.4) + minitest (5.20.0) molinillo (0.8.0) multi_json (1.15.0) multipart-post (2.3.0) @@ -231,27 +229,27 @@ GEM nap (1.1.0) naturally (2.2.1) netrc (0.11.0) - nokogiri (1.15.2) + nokogiri (1.15.4) mini_portile2 (~> 2.8.2) racc (~> 1.4) optparse (0.1.1) os (1.1.4) plist (3.7.0) public_suffix (4.0.7) - racc (1.6.2) + racc (1.7.1) rake (13.0.6) representable (3.2.0) declarative (< 0.1.0) trailblazer-option (>= 0.1.1, < 0.2.0) uber (< 0.2.0) retriable (3.1.2) - rexml (3.2.5) + rexml (3.2.6) rouge (2.0.7) ruby-macho (2.5.1) ruby2_keywords (0.0.5) rubyzip (2.3.2) security (0.1.3) - signet (0.17.0) + signet (0.18.0) addressable (~> 2.8) faraday (>= 0.17.5, < 3.a) jwt (>= 1.5, < 3.0) @@ -266,8 +264,8 @@ GEM nokogiri (>= 1.13.9) xcodeproj (~> 1.21) terminal-notifier (2.0.0) - terminal-table (1.8.0) - unicode-display_width (~> 1.1, >= 1.1.1) + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) trailblazer-option (0.1.2) tty-cursor (0.7.1) tty-screen (0.8.1) @@ -281,13 +279,13 @@ GEM unf (0.1.4) unf_ext unf_ext (0.0.8.2) - unicode-display_width (1.8.0) + unicode-display_width (2.4.2) webrick (1.8.1) word_wrap (1.0.0) xcode-install (2.8.1) claide (>= 0.9.1) fastlane (>= 2.1.0, < 3.0.0) - xcodeproj (1.22.0) + xcodeproj (1.23.0) CFPropertyList (>= 2.3.3, < 4.0) atomos (~> 0.1.3) claide (>= 1.0.2, < 2.0) @@ -298,13 +296,12 @@ GEM rouge (~> 2.0.7) xcpretty-travis-formatter (1.0.1) xcpretty (~> 0.2, >= 0.0.7) - zeitwerk (2.6.8) PLATFORMS ruby DEPENDENCIES - cocoapods (~> 1.11.2) + cocoapods (~> 1.13.0) fastlane fastlane-plugin-diawi! fastlane-plugin-sentry diff --git a/Podfile.lock b/Podfile.lock index ec974f0f28..e0d119c27a 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -210,4 +210,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: b926e281576aabcdbc2bdcb40ef3ad3e0991abe8 -COCOAPODS: 1.11.3 +COCOAPODS: 1.13.0 diff --git a/Riot.xcodeproj/xcshareddata/xcschemes/Riot.xcscheme b/Riot.xcodeproj/xcshareddata/xcschemes/Riot.xcscheme index 52ec9a4e18..9350fef630 100644 --- a/Riot.xcodeproj/xcshareddata/xcschemes/Riot.xcscheme +++ b/Riot.xcodeproj/xcshareddata/xcschemes/Riot.xcscheme @@ -1,11 +1,10 @@ + version = "1.3"> + buildImplicitDependencies = "YES"> @@ -35,11 +34,20 @@ + + + + @@ -52,17 +60,6 @@ - - - - - - - - - - diff --git a/Riot/Model/HomeserverConfiguration/HomeserverConfigurationBuilder.swift b/Riot/Model/HomeserverConfiguration/HomeserverConfigurationBuilder.swift index af4beb29e5..3bb6c86e1a 100644 --- a/Riot/Model/HomeserverConfiguration/HomeserverConfigurationBuilder.swift +++ b/Riot/Model/HomeserverConfiguration/HomeserverConfigurationBuilder.swift @@ -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, diff --git a/Riot/Model/HomeserverConfiguration/HomeserverJitsiConfiguration.swift b/Riot/Model/HomeserverConfiguration/HomeserverJitsiConfiguration.swift index e31ea363cc..16714b5dc3 100644 --- a/Riot/Model/HomeserverConfiguration/HomeserverJitsiConfiguration.swift +++ b/Riot/Model/HomeserverConfiguration/HomeserverJitsiConfiguration.swift @@ -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() } diff --git a/Riot/Model/WellKnown/VectorWellKnown.swift b/Riot/Model/WellKnown/VectorWellKnown.swift index 71c127e89b..356fbdde8c 100644 --- a/Riot/Model/WellKnown/VectorWellKnown.swift +++ b/Riot/Model/WellKnown/VectorWellKnown.swift @@ -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? } diff --git a/Riot/Modules/Room/RoomViewController.m b/Riot/Modules/Room/RoomViewController.m index 71b2e81074..a65ba666cf 100644 --- a/Riot/Modules/Room/RoomViewController.m +++ b/Riot/Modules/Room/RoomViewController.m @@ -1942,7 +1942,9 @@ - (void)refreshRoomTitle 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 @@ - (void)placeCallWithVideo2:(BOOL)video } 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]; diff --git a/changelog.d/7684.change b/changelog.d/7684.change new file mode 100644 index 0000000000..6c2916d5c3 --- /dev/null +++ b/changelog.d/7684.change @@ -0,0 +1 @@ +Allow the use of Jitsi for 1:1 calls via a well-known configuration flag. \ No newline at end of file