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) {