From a2794f404c03b8a02a6d62bf8cb6243a8fef0c18 Mon Sep 17 00:00:00 2001 From: Gil Eluard Date: Mon, 19 Apr 2021 18:53:32 +0200 Subject: [PATCH 1/6] Show/Hide Home Screen tabs --- Config/BuildSettings.swift | 7 + Riot/Managers/Settings/RiotSettings.swift | 47 ++++++ Riot/Modules/TabBar/MasterTabBarController.m | 158 +++++++++++++------ 3 files changed, 163 insertions(+), 49 deletions(-) diff --git a/Config/BuildSettings.swift b/Config/BuildSettings.swift index 90d9b4ac4..62625a5e9 100644 --- a/Config/BuildSettings.swift +++ b/Config/BuildSettings.swift @@ -214,6 +214,13 @@ final class BuildSettings: NSObject { /// Indicates should the app log out the user when number of biometrics failures reaches `maxAllowedNumberOfBiometricsFailures`. Defaults to `false` static let logOutUserWhenBiometricsFailuresExceeded: Bool = false + // MARK: - Main Tabs + + static let homeScreenShowFavouritesTab: Bool = true + static let homeScreenShowPeopleTab: Bool = true + static let homeScreenShowRoomsTab: Bool = true + static let homeScreenShowCommunitiesTab: Bool = true + // MARK: - General Settings Screen static let settingsScreenShowUserFirstName: Bool = false diff --git a/Riot/Managers/Settings/RiotSettings.swift b/Riot/Managers/Settings/RiotSettings.swift index 64c53025e..ef3d0594d 100644 --- a/Riot/Managers/Settings/RiotSettings.swift +++ b/Riot/Managers/Settings/RiotSettings.swift @@ -52,6 +52,10 @@ final class RiotSettings: NSObject { static let roomCreationScreenAllowRoomTypeConfiguration = "roomCreationScreenAllowRoomTypeConfiguration" static let roomCreationScreenRoomIsPublic = "roomCreationScreenRoomIsPublic" static let allowInviteExernalUsers = "allowInviteExernalUsers" + static let homeScreenShowFavouritesTab = "homeScreenShowFavouritesTab" + static let homeScreenShowPeopleTab = "homeScreenShowPeopleTab" + static let homeScreenShowRoomsTab = "homeScreenShowRoomsTab" + static let homeScreenShowCommunitiesTab = "homeScreenShowCommunitiesTab" } static let shared = RiotSettings() @@ -297,6 +301,49 @@ final class RiotSettings: NSObject { defaults.set(newValue, forKey: UserDefaultsKeys.allowInviteExernalUsers) } } + + // MARK: - Main Tabs + + var homeScreenShowFavouritesTab: Bool { + get { + guard defaults.object(forKey: UserDefaultsKeys.homeScreenShowFavouritesTab) != nil else { + return BuildSettings.homeScreenShowFavouritesTab + } + return defaults.bool(forKey: UserDefaultsKeys.homeScreenShowFavouritesTab) + } set { + defaults.set(newValue, forKey: UserDefaultsKeys.homeScreenShowFavouritesTab) + } + } + var homeScreenShowPeopleTab: Bool { + get { + guard defaults.object(forKey: UserDefaultsKeys.homeScreenShowPeopleTab) != nil else { + return BuildSettings.homeScreenShowPeopleTab + } + return defaults.bool(forKey: UserDefaultsKeys.homeScreenShowPeopleTab) + } set { + defaults.set(newValue, forKey: UserDefaultsKeys.homeScreenShowPeopleTab) + } + } + var homeScreenShowRoomsTab: Bool { + get { + guard defaults.object(forKey: UserDefaultsKeys.homeScreenShowRoomsTab) != nil else { + return BuildSettings.homeScreenShowRoomsTab + } + return defaults.bool(forKey: UserDefaultsKeys.homeScreenShowRoomsTab) + } set { + defaults.set(newValue, forKey: UserDefaultsKeys.homeScreenShowRoomsTab) + } + } + var homeScreenShowCommunitiesTab: Bool { + get { + guard defaults.object(forKey: UserDefaultsKeys.homeScreenShowCommunitiesTab) != nil else { + return BuildSettings.homeScreenShowCommunitiesTab + } + return defaults.bool(forKey: UserDefaultsKeys.homeScreenShowCommunitiesTab) + } set { + defaults.set(newValue, forKey: UserDefaultsKeys.homeScreenShowCommunitiesTab) + } + } // MARK: General Settings diff --git a/Riot/Modules/TabBar/MasterTabBarController.m b/Riot/Modules/TabBar/MasterTabBarController.m index d532bfdca..dd7a3e9f2 100644 --- a/Riot/Modules/TabBar/MasterTabBarController.m +++ b/Riot/Modules/TabBar/MasterTabBarController.m @@ -130,6 +130,8 @@ }]; [self userInterfaceThemeDidChange]; + + [self updateTabs]; } - (void)userInterfaceThemeDidChange @@ -880,38 +882,75 @@ #pragma mark - +- (void)updateTabs +{ + if (RiotSettings.shared.homeScreenShowCommunitiesTab && RiotSettings.shared.homeScreenShowRoomsTab + && RiotSettings.shared.homeScreenShowPeopleTab && RiotSettings.shared.homeScreenShowFavouritesTab) + { + return; + } + + NSMutableArray *newTabs = [NSMutableArray arrayWithArray:self.viewControllers]; + if (!RiotSettings.shared.homeScreenShowCommunitiesTab) + { + [newTabs removeObjectAtIndex:TABBAR_GROUPS_INDEX]; + } + if (!RiotSettings.shared.homeScreenShowRoomsTab) + { + [newTabs removeObjectAtIndex:TABBAR_ROOMS_INDEX]; + } + if (!RiotSettings.shared.homeScreenShowPeopleTab) + { + [newTabs removeObjectAtIndex:TABBAR_PEOPLE_INDEX]; + } + if (!RiotSettings.shared.homeScreenShowFavouritesTab) + { + [newTabs removeObjectAtIndex:TABBAR_FAVOURITES_INDEX]; + } + self.viewControllers = newTabs; +} + - (void)refreshTabBarBadges { // Use a middle dot to signal missed notif in favourites - [self setMissedDiscussionsMark:(recentsDataSource.missedFavouriteDiscussionsCount? @"\u00B7": nil) - onTabBarItem:TABBAR_FAVOURITES_INDEX - withBadgeColor:(recentsDataSource.missedHighlightFavouriteDiscussionsCount ? ThemeService.shared.theme.noticeColor : ThemeService.shared.theme.noticeSecondaryColor)]; + if (RiotSettings.shared.homeScreenShowFavouritesTab) + { + [self setMissedDiscussionsMark:(recentsDataSource.missedFavouriteDiscussionsCount? @"\u00B7": nil) + onTabBarItem:TABBAR_FAVOURITES_INDEX + withBadgeColor:(recentsDataSource.missedHighlightFavouriteDiscussionsCount ? ThemeService.shared.theme.noticeColor : ThemeService.shared.theme.noticeSecondaryColor)]; + } // Update the badge on People and Rooms tabs - if (recentsDataSource.unsentMessagesDirectDiscussionsCount) + if (RiotSettings.shared.homeScreenShowPeopleTab) { - [self setBadgeValue:@"!" - onTabBarItem:TABBAR_PEOPLE_INDEX - withBadgeColor:ThemeService.shared.theme.noticeColor]; - } - else - { - [self setMissedDiscussionsCount:recentsDataSource.missedDirectDiscussionsCount - onTabBarItem:TABBAR_PEOPLE_INDEX - withBadgeColor:(recentsDataSource.missedHighlightDirectDiscussionsCount ? ThemeService.shared.theme.noticeColor : ThemeService.shared.theme.noticeSecondaryColor)]; + if (recentsDataSource.unsentMessagesDirectDiscussionsCount) + { + [self setBadgeValue:@"!" + onTabBarItem:TABBAR_PEOPLE_INDEX + withBadgeColor:ThemeService.shared.theme.noticeColor]; + } + else + { + [self setMissedDiscussionsCount:recentsDataSource.missedDirectDiscussionsCount + onTabBarItem:TABBAR_PEOPLE_INDEX + withBadgeColor:(recentsDataSource.missedHighlightDirectDiscussionsCount ? ThemeService.shared.theme.noticeColor : ThemeService.shared.theme.noticeSecondaryColor)]; + } } - if (recentsDataSource.unsentMessagesGroupDiscussionsCount) + if (RiotSettings.shared.homeScreenShowRoomsTab) { - [self setMissedDiscussionsCount:recentsDataSource.unsentMessagesGroupDiscussionsCount - onTabBarItem:TABBAR_ROOMS_INDEX - withBadgeColor:ThemeService.shared.theme.noticeColor]; - } - else - { - [self setMissedDiscussionsCount:recentsDataSource.missedGroupDiscussionsCount - onTabBarItem:TABBAR_ROOMS_INDEX - withBadgeColor:(recentsDataSource.missedHighlightGroupDiscussionsCount ? ThemeService.shared.theme.noticeColor : ThemeService.shared.theme.noticeSecondaryColor)]; + if (recentsDataSource.unsentMessagesGroupDiscussionsCount) + { + [self setMissedDiscussionsCount:recentsDataSource.unsentMessagesGroupDiscussionsCount + onTabBarItem:TABBAR_ROOMS_INDEX + withBadgeColor:ThemeService.shared.theme.noticeColor]; + } + else + { + [self setMissedDiscussionsCount:recentsDataSource.missedGroupDiscussionsCount + onTabBarItem:TABBAR_ROOMS_INDEX + withBadgeColor:(recentsDataSource.missedHighlightGroupDiscussionsCount ? ThemeService.shared.theme.noticeColor : ThemeService.shared.theme.noticeSecondaryColor)]; + } } } @@ -922,39 +961,47 @@ - (void)setBadgeValue:(NSString *)value onTabBarItem:(NSUInteger)index withBadgeColor:(UIColor*)badgeColor { - if (value) + NSInteger itemIndex = [self indexOfTabItemWithTag:index]; + if (itemIndex != NSNotFound) { - self.tabBar.items[index].badgeValue = value; - - self.tabBar.items[index].badgeColor = badgeColor; - - [self.tabBar.items[index] setBadgeTextAttributes:@{ - NSForegroundColorAttributeName: ThemeService.shared.theme.baseTextPrimaryColor - } - forState:UIControlStateNormal]; - } - else - { - self.tabBar.items[index].badgeValue = nil; + if (value) + { + self.tabBar.items[itemIndex].badgeValue = value; + + self.tabBar.items[itemIndex].badgeColor = badgeColor; + + [self.tabBar.items[itemIndex] setBadgeTextAttributes:@{ + NSForegroundColorAttributeName: ThemeService.shared.theme.baseTextPrimaryColor + } + forState:UIControlStateNormal]; + } + else + { + self.tabBar.items[itemIndex].badgeValue = nil; + } } } - (void)setMissedDiscussionsMark:(NSString*)mark onTabBarItem:(NSUInteger)index withBadgeColor:(UIColor*)badgeColor { - if (mark) + NSInteger itemIndex = [self indexOfTabItemWithTag:index]; + if (itemIndex != NSNotFound) { - self.tabBar.items[index].badgeValue = mark; - - self.tabBar.items[index].badgeColor = badgeColor; - - [self.tabBar.items[index] setBadgeTextAttributes:@{ - NSForegroundColorAttributeName: ThemeService.shared.theme.baseTextPrimaryColor - } - forState:UIControlStateNormal]; - } - else - { - self.tabBar.items[index].badgeValue = nil; + if (mark) + { + self.tabBar.items[itemIndex].badgeValue = mark; + + self.tabBar.items[itemIndex].badgeColor = badgeColor; + + [self.tabBar.items[itemIndex] setBadgeTextAttributes:@{ + NSForegroundColorAttributeName: ThemeService.shared.theme.baseTextPrimaryColor + } + forState:UIControlStateNormal]; + } + else + { + self.tabBar.items[itemIndex].badgeValue = nil; + } } } @@ -975,6 +1022,19 @@ return badgeValue; } +- (NSInteger)indexOfTabItemWithTag:(NSUInteger)tag +{ + for (int i = 0 ; i < self.tabBar.items.count ; i++) + { + if (self.tabBar.items[i].tag == tag) + { + return i; + } + } + + return NSNotFound; +} + #pragma mark - - (void)promptUserBeforeUsingAnalytics From 497c554ea82f1107243c2b07df66a9517760cab4 Mon Sep 17 00:00:00 2001 From: Gil Eluard Date: Mon, 19 Apr 2021 18:55:46 +0200 Subject: [PATCH 2/6] Show/Hide Home Screen tabs - Updated CHANGES.rst --- CHANGES.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGES.rst b/CHANGES.rst index 7c8a6df22..aad6c9142 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -5,7 +5,7 @@ Changes to be released in next version * 🙌 Improvements - * + * MasterTabBarController: Show/Hide Home Screen tabs (#4234). 🐛 Bugfix * From c001314e2643bacbd5d35b10961ad1691eeba475 Mon Sep 17 00:00:00 2001 From: Gil Eluard Date: Mon, 19 Apr 2021 20:39:07 +0200 Subject: [PATCH 3/6] 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 fb33c0bbb2e4db9dec94e0a680191bbfea124e24 Mon Sep 17 00:00:00 2001 From: Gil Eluard Date: Mon, 19 Apr 2021 20:41:06 +0200 Subject: [PATCH 4/6] 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 4d8b2de5b8cab8ebbdf6770170a1b7fe9d84f82d Mon Sep 17 00:00:00 2001 From: Gil Eluard Date: Tue, 20 Apr 2021 10:31:04 +0200 Subject: [PATCH 5/6] Show/Hide public directory in Unified Search --- CHANGES.rst | 1 + Config/BuildSettings.swift | 3 +++ Riot/Managers/Settings/RiotSettings.swift | 15 +++++++++++++++ .../DataSources/UnifiedSearchRecentsDataSource.m | 6 +++++- 4 files changed, 24 insertions(+), 1 deletion(-) diff --git a/CHANGES.rst b/CHANGES.rst index aad6c9142..9c39e46b9 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -6,6 +6,7 @@ Changes to be released in next version 🙌 Improvements * MasterTabBarController: Show/Hide Home Screen tabs (#4234). + * UnifiedSearchRecentsDataSource: Show/Hide public directory (#4242). 🐛 Bugfix * diff --git a/Config/BuildSettings.swift b/Config/BuildSettings.swift index 62625a5e9..b9ba37485 100644 --- a/Config/BuildSettings.swift +++ b/Config/BuildSettings.swift @@ -286,4 +286,7 @@ final class BuildSettings: NSObject { static let authScreenShowPhoneNumber = true static let authScreenShowForgotPassword = true static let authScreenShowCustomServerOptions = true + + // Mark: - Unified Search + static let unifiedSearchScreenShowPublicDirectory = true } diff --git a/Riot/Managers/Settings/RiotSettings.swift b/Riot/Managers/Settings/RiotSettings.swift index ef3d0594d..190e4b5ca 100644 --- a/Riot/Managers/Settings/RiotSettings.swift +++ b/Riot/Managers/Settings/RiotSettings.swift @@ -56,6 +56,7 @@ final class RiotSettings: NSObject { static let homeScreenShowPeopleTab = "homeScreenShowPeopleTab" static let homeScreenShowRoomsTab = "homeScreenShowRoomsTab" static let homeScreenShowCommunitiesTab = "homeScreenShowCommunitiesTab" + static let unifiedSearchScreenShowPublicDirectory = "unifiedSearchScreenShowPublicDirectory" } static let shared = RiotSettings() @@ -447,4 +448,18 @@ final class RiotSettings: NSObject { defaults.set(newValue, forKey: UserDefaultsKeys.settingsSecurityScreenShowAdvancedUnverifiedDevices) } } + + // Mark: - Unified Search + + var unifiedSearchScreenShowPublicDirectory: Bool { + get { + guard defaults.object(forKey: UserDefaultsKeys.unifiedSearchScreenShowPublicDirectory) != nil else { + return BuildSettings.unifiedSearchScreenShowPublicDirectory + } + return defaults.bool(forKey: UserDefaultsKeys.unifiedSearchScreenShowPublicDirectory) + } set { + defaults.set(newValue, forKey: UserDefaultsKeys.unifiedSearchScreenShowPublicDirectory) + } + } + } diff --git a/Riot/Modules/GlobalSearch/DataSources/UnifiedSearchRecentsDataSource.m b/Riot/Modules/GlobalSearch/DataSources/UnifiedSearchRecentsDataSource.m index df95e8ff8..1a4605ba6 100644 --- a/Riot/Modules/GlobalSearch/DataSources/UnifiedSearchRecentsDataSource.m +++ b/Riot/Modules/GlobalSearch/DataSources/UnifiedSearchRecentsDataSource.m @@ -22,6 +22,7 @@ #import "DirectoryRecentTableViewCell.h" #import "MXRoom+Riot.h" +#import "Riot-Swift.h" @interface UnifiedSearchRecentsDataSource() { @@ -85,7 +86,10 @@ } // The public rooms directory cell is then visible whatever the search activity. - self.directorySection = sectionsOffset++; + if (RiotSettings.shared.unifiedSearchScreenShowPublicDirectory) + { + self.directorySection = sectionsOffset++; + } if (_hideRecents) { From 2551c34d1bb229e37fc305482d768b683156a299 Mon Sep 17 00:00:00 2001 From: Gil Eluard Date: Tue, 20 Apr 2021 10:36:05 +0200 Subject: [PATCH 6/6] 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; }