From 2912074002c67a0e84c8973bf449221d32a3b0f9 Mon Sep 17 00:00:00 2001 From: Gil Eluard Date: Mon, 19 Apr 2021 20:39:07 +0200 Subject: [PATCH 1/3] Enable / Disable VoIP feature in Rooms --- CHANGES.rst | 2 +- Config/BuildSettings.swift | 5 +++++ Riot/Managers/Settings/RiotSettings.swift | 25 +++++++++++++++++++++++ Riot/Modules/Room/RoomViewController.m | 3 ++- 4 files changed, 33 insertions(+), 2 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index 7c8a6df22..d7895013e 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -5,7 +5,7 @@ Changes to be released in next version * 🙌 Improvements - * + * Enable / Disable VoIP feature in Rooms (#4236). 🐛 Bugfix * diff --git a/Config/BuildSettings.swift b/Config/BuildSettings.swift index 90d9b4ac4..3627637e5 100644 --- a/Config/BuildSettings.swift +++ b/Config/BuildSettings.swift @@ -249,6 +249,11 @@ final class BuildSettings: NSObject { static let roomCreationScreenRoomIsEncrypted: Bool = true static let roomCreationScreenAllowRoomTypeConfiguration: Bool = true static let roomCreationScreenRoomIsPublic: Bool = false + + // MARK: - Room Screen + + static let roomScreenAllowVoIPForDirectRoom: Bool = true + static let roomScreenAllowVoIPForConferenceRoom: Bool = true // MARK: - Room Settings Screen diff --git a/Riot/Managers/Settings/RiotSettings.swift b/Riot/Managers/Settings/RiotSettings.swift index 64c53025e..0c30cd056 100644 --- a/Riot/Managers/Settings/RiotSettings.swift +++ b/Riot/Managers/Settings/RiotSettings.swift @@ -52,6 +52,8 @@ final class RiotSettings: NSObject { static let roomCreationScreenAllowRoomTypeConfiguration = "roomCreationScreenAllowRoomTypeConfiguration" static let roomCreationScreenRoomIsPublic = "roomCreationScreenRoomIsPublic" static let allowInviteExernalUsers = "allowInviteExernalUsers" + static let roomScreenAllowVoIPForDirectRoom = "roomScreenAllowVoIPForDirectRoom" + static let roomScreenAllowVoIPForConferenceRoom = "roomScreenAllowVoIPForConferenceRoom" } static let shared = RiotSettings() @@ -242,6 +244,29 @@ final class RiotSettings: NSObject { } } + // MARK: - Room Screen + + var roomScreenAllowVoIPForDirectRoom: Bool { + get { + guard defaults.object(forKey: UserDefaultsKeys.roomScreenAllowVoIPForDirectRoom) != nil else { + return BuildSettings.roomScreenAllowVoIPForDirectRoom + } + return defaults.bool(forKey: UserDefaultsKeys.roomScreenAllowVoIPForDirectRoom) + } set { + defaults.set(newValue, forKey: UserDefaultsKeys.roomScreenAllowVoIPForDirectRoom) + } + } + var roomScreenAllowVoIPForConferenceRoom: Bool { + get { + guard defaults.object(forKey: UserDefaultsKeys.roomScreenAllowVoIPForConferenceRoom) != nil else { + return BuildSettings.roomScreenAllowVoIPForConferenceRoom + } + return defaults.bool(forKey: UserDefaultsKeys.roomScreenAllowVoIPForConferenceRoom) + } set { + defaults.set(newValue, forKey: UserDefaultsKeys.roomScreenAllowVoIPForConferenceRoom) + } + } + // MARK: - Room Creation Screen var roomCreationScreenAllowEncryptionConfiguration: Bool { diff --git a/Riot/Modules/Room/RoomViewController.m b/Riot/Modules/Room/RoomViewController.m index e7941a69d..89e4e2b80 100644 --- a/Riot/Modules/Room/RoomViewController.m +++ b/Riot/Modules/Room/RoomViewController.m @@ -1400,7 +1400,8 @@ const NSTimeInterval kResizeComposerAnimationDuration = .05; - (BOOL)supportCallOption { - return BuildSettings.allowVoIPUsage && self.roomDataSource.mxSession.callManager && self.roomDataSource.room.summary.membersCount.joined >= 2; + BOOL callOptionAllowed = (self.roomDataSource.room.isDirect && RiotSettings.shared.roomScreenAllowVoIPForDirectRoom) || (!self.roomDataSource.room.isDirect && RiotSettings.shared.roomScreenAllowVoIPForConferenceRoom); + return callOptionAllowed && BuildSettings.allowVoIPUsage && self.roomDataSource.mxSession.callManager && self.roomDataSource.room.summary.membersCount.joined >= 2; } - (BOOL)isCallActive From bd1ce8d6f179d811c9e7cdb33310386bd6ce7dfd Mon Sep 17 00:00:00 2001 From: Gil Eluard Date: Mon, 19 Apr 2021 20:41:06 +0200 Subject: [PATCH 2/3] Enable / Disable VoIP feature in Rooms - Updated CHANGES.rst --- CHANGES.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGES.rst b/CHANGES.rst index d7895013e..2630aa2d3 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -5,7 +5,7 @@ Changes to be released in next version * 🙌 Improvements - * Enable / Disable VoIP feature in Rooms (#4236). + * RoomVC: Enable / Disable VoIP feature in Rooms (#4236). 🐛 Bugfix * From b178225617e14488f9c56f44168d145a630970f0 Mon Sep 17 00:00:00 2001 From: Gil Eluard Date: Tue, 20 Apr 2021 10:36:05 +0200 Subject: [PATCH 3/3] Enable / Disable VoIP feature in Rooms - Update after review --- Config/BuildSettings.swift | 2 +- Riot/Managers/Settings/RiotSettings.swift | 12 ++++++------ Riot/Modules/Room/RoomViewController.m | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Config/BuildSettings.swift b/Config/BuildSettings.swift index 3627637e5..c4eb24495 100644 --- a/Config/BuildSettings.swift +++ b/Config/BuildSettings.swift @@ -253,7 +253,7 @@ final class BuildSettings: NSObject { // MARK: - Room Screen static let roomScreenAllowVoIPForDirectRoom: Bool = true - static let roomScreenAllowVoIPForConferenceRoom: Bool = true + static let roomScreenAllowVoIPForNonDirectRoom: Bool = true // MARK: - Room Settings Screen diff --git a/Riot/Managers/Settings/RiotSettings.swift b/Riot/Managers/Settings/RiotSettings.swift index 0c30cd056..a22864a88 100644 --- a/Riot/Managers/Settings/RiotSettings.swift +++ b/Riot/Managers/Settings/RiotSettings.swift @@ -53,7 +53,7 @@ final class RiotSettings: NSObject { static let roomCreationScreenRoomIsPublic = "roomCreationScreenRoomIsPublic" static let allowInviteExernalUsers = "allowInviteExernalUsers" static let roomScreenAllowVoIPForDirectRoom = "roomScreenAllowVoIPForDirectRoom" - static let roomScreenAllowVoIPForConferenceRoom = "roomScreenAllowVoIPForConferenceRoom" + static let roomScreenAllowVoIPForNonDirectRoom = "roomScreenAllowVoIPForNonDirectRoom" } static let shared = RiotSettings() @@ -256,14 +256,14 @@ final class RiotSettings: NSObject { defaults.set(newValue, forKey: UserDefaultsKeys.roomScreenAllowVoIPForDirectRoom) } } - var roomScreenAllowVoIPForConferenceRoom: Bool { + var roomScreenAllowVoIPForNonDirectRoom: Bool { get { - guard defaults.object(forKey: UserDefaultsKeys.roomScreenAllowVoIPForConferenceRoom) != nil else { - return BuildSettings.roomScreenAllowVoIPForConferenceRoom + guard defaults.object(forKey: UserDefaultsKeys.roomScreenAllowVoIPForNonDirectRoom) != nil else { + return BuildSettings.roomScreenAllowVoIPForNonDirectRoom } - return defaults.bool(forKey: UserDefaultsKeys.roomScreenAllowVoIPForConferenceRoom) + return defaults.bool(forKey: UserDefaultsKeys.roomScreenAllowVoIPForNonDirectRoom) } set { - defaults.set(newValue, forKey: UserDefaultsKeys.roomScreenAllowVoIPForConferenceRoom) + defaults.set(newValue, forKey: UserDefaultsKeys.roomScreenAllowVoIPForNonDirectRoom) } } diff --git a/Riot/Modules/Room/RoomViewController.m b/Riot/Modules/Room/RoomViewController.m index 89e4e2b80..10eabeb65 100644 --- a/Riot/Modules/Room/RoomViewController.m +++ b/Riot/Modules/Room/RoomViewController.m @@ -1400,7 +1400,7 @@ const NSTimeInterval kResizeComposerAnimationDuration = .05; - (BOOL)supportCallOption { - BOOL callOptionAllowed = (self.roomDataSource.room.isDirect && RiotSettings.shared.roomScreenAllowVoIPForDirectRoom) || (!self.roomDataSource.room.isDirect && RiotSettings.shared.roomScreenAllowVoIPForConferenceRoom); + BOOL callOptionAllowed = (self.roomDataSource.room.isDirect && RiotSettings.shared.roomScreenAllowVoIPForDirectRoom) || (!self.roomDataSource.room.isDirect && RiotSettings.shared.roomScreenAllowVoIPForNonDirectRoom); return callOptionAllowed && BuildSettings.allowVoIPUsage && self.roomDataSource.mxSession.callManager && self.roomDataSource.room.summary.membersCount.joined >= 2; }