diff --git a/ElementX/Sources/Application/Settings/AppSettings.swift b/ElementX/Sources/Application/Settings/AppSettings.swift index bb06320e9..eb0bdb026 100644 --- a/ElementX/Sources/Application/Settings/AppSettings.swift +++ b/ElementX/Sources/Application/Settings/AppSettings.swift @@ -61,6 +61,7 @@ final class AppSettings { case threadsEnabled case spacesEnabled case developerOptionsEnabled + case nextGenHTMLParserEnabled // Doug's tweaks 🔧 case hideUnreadMessagesBadge @@ -345,7 +346,7 @@ final class AppSettings { darkStyleID: "dea61faf-292b-4774-9660-58fcef89a7f3") // MARK: - Presence - + @UserPreference(key: UserDefaultsKeys.sharePresence, defaultValue: true, storageType: .userDefaults(store)) var sharePresence @@ -363,7 +364,7 @@ final class AppSettings { /// Configuration to enable only signed device isolation mode for crypto. In this mode only devices signed by their owner will be considered in e2ee rooms. @UserPreference(key: UserDefaultsKeys.enableOnlySignedDeviceIsolationMode, defaultValue: false, storageType: .userDefaults(store)) var enableOnlySignedDeviceIsolationMode - + /// Configuration to enable encrypted history sharing on invite, and accepting keys from inviters. @UserPreference(key: UserDefaultsKeys.enableKeyShareOnInvite, defaultValue: false, storageType: .userDefaults(store)) var enableKeyShareOnInvite @@ -377,6 +378,9 @@ final class AppSettings { @UserPreference(key: UserDefaultsKeys.spacesEnabled, defaultValue: false, storageType: .userDefaults(store)) var spacesEnabled + @UserPreference(key: UserDefaultsKeys.nextGenHTMLParserEnabled, defaultValue: isDevelopmentBuild, storageType: .userDefaults(store)) + var nextGenHTMLParserEnabled + @UserPreference(key: UserDefaultsKeys.developerOptionsEnabled, defaultValue: isDevelopmentBuild, storageType: .userDefaults(store)) var developerOptionsEnabled } diff --git a/ElementX/Sources/Screens/Settings/DeveloperOptionsScreen/DeveloperOptionsScreenModels.swift b/ElementX/Sources/Screens/Settings/DeveloperOptionsScreen/DeveloperOptionsScreenModels.swift index f61373bef..214de97bb 100644 --- a/ElementX/Sources/Screens/Settings/DeveloperOptionsScreen/DeveloperOptionsScreenModels.swift +++ b/ElementX/Sources/Screens/Settings/DeveloperOptionsScreen/DeveloperOptionsScreenModels.swift @@ -52,6 +52,8 @@ protocol DeveloperOptionsProtocol: AnyObject { var fuzzyRoomListSearchEnabled: Bool { get set } var lowPriorityFilterEnabled: Bool { get set } var knockingEnabled: Bool { get set } + + var nextGenHTMLParserEnabled: Bool { get set } } extension AppSettings: DeveloperOptionsProtocol { } diff --git a/ElementX/Sources/Screens/Settings/DeveloperOptionsScreen/View/DeveloperOptionsScreen.swift b/ElementX/Sources/Screens/Settings/DeveloperOptionsScreen/View/DeveloperOptionsScreen.swift index d99401b8b..c47bf3ce6 100644 --- a/ElementX/Sources/Screens/Settings/DeveloperOptionsScreen/View/DeveloperOptionsScreen.swift +++ b/ElementX/Sources/Screens/Settings/DeveloperOptionsScreen/View/DeveloperOptionsScreen.swift @@ -36,9 +36,14 @@ struct DeveloperOptionsScreen: View { Toggle(isOn: $context.threadsEnabled) { Text("Threads") } + Toggle(isOn: $context.spacesEnabled) { Text("Spaces") } + + Toggle(isOn: $context.nextGenHTMLParserEnabled) { + Text("Next gen HTML parsing") + } } Section("Room List") {