Add next gen HTML parser feature flag

This commit is contained in:
Stefan Ceriu
2025-08-19 14:57:45 +03:00
committed by Doug
parent addfaf67cc
commit 530810354d
3 changed files with 13 additions and 2 deletions
@@ -61,6 +61,7 @@ final class AppSettings {
case threadsEnabled case threadsEnabled
case spacesEnabled case spacesEnabled
case developerOptionsEnabled case developerOptionsEnabled
case nextGenHTMLParserEnabled
// Doug's tweaks 🔧 // Doug's tweaks 🔧
case hideUnreadMessagesBadge case hideUnreadMessagesBadge
@@ -345,7 +346,7 @@ final class AppSettings {
darkStyleID: "dea61faf-292b-4774-9660-58fcef89a7f3") darkStyleID: "dea61faf-292b-4774-9660-58fcef89a7f3")
// MARK: - Presence // MARK: - Presence
@UserPreference(key: UserDefaultsKeys.sharePresence, defaultValue: true, storageType: .userDefaults(store)) @UserPreference(key: UserDefaultsKeys.sharePresence, defaultValue: true, storageType: .userDefaults(store))
var sharePresence 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. /// 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)) @UserPreference(key: UserDefaultsKeys.enableOnlySignedDeviceIsolationMode, defaultValue: false, storageType: .userDefaults(store))
var enableOnlySignedDeviceIsolationMode var enableOnlySignedDeviceIsolationMode
/// Configuration to enable encrypted history sharing on invite, and accepting keys from inviters. /// Configuration to enable encrypted history sharing on invite, and accepting keys from inviters.
@UserPreference(key: UserDefaultsKeys.enableKeyShareOnInvite, defaultValue: false, storageType: .userDefaults(store)) @UserPreference(key: UserDefaultsKeys.enableKeyShareOnInvite, defaultValue: false, storageType: .userDefaults(store))
var enableKeyShareOnInvite var enableKeyShareOnInvite
@@ -377,6 +378,9 @@ final class AppSettings {
@UserPreference(key: UserDefaultsKeys.spacesEnabled, defaultValue: false, storageType: .userDefaults(store)) @UserPreference(key: UserDefaultsKeys.spacesEnabled, defaultValue: false, storageType: .userDefaults(store))
var spacesEnabled var spacesEnabled
@UserPreference(key: UserDefaultsKeys.nextGenHTMLParserEnabled, defaultValue: isDevelopmentBuild, storageType: .userDefaults(store))
var nextGenHTMLParserEnabled
@UserPreference(key: UserDefaultsKeys.developerOptionsEnabled, defaultValue: isDevelopmentBuild, storageType: .userDefaults(store)) @UserPreference(key: UserDefaultsKeys.developerOptionsEnabled, defaultValue: isDevelopmentBuild, storageType: .userDefaults(store))
var developerOptionsEnabled var developerOptionsEnabled
} }
@@ -52,6 +52,8 @@ protocol DeveloperOptionsProtocol: AnyObject {
var fuzzyRoomListSearchEnabled: Bool { get set } var fuzzyRoomListSearchEnabled: Bool { get set }
var lowPriorityFilterEnabled: Bool { get set } var lowPriorityFilterEnabled: Bool { get set }
var knockingEnabled: Bool { get set } var knockingEnabled: Bool { get set }
var nextGenHTMLParserEnabled: Bool { get set }
} }
extension AppSettings: DeveloperOptionsProtocol { } extension AppSettings: DeveloperOptionsProtocol { }
@@ -36,9 +36,14 @@ struct DeveloperOptionsScreen: View {
Toggle(isOn: $context.threadsEnabled) { Toggle(isOn: $context.threadsEnabled) {
Text("Threads") Text("Threads")
} }
Toggle(isOn: $context.spacesEnabled) { Toggle(isOn: $context.spacesEnabled) {
Text("Spaces") Text("Spaces")
} }
Toggle(isOn: $context.nextGenHTMLParserEnabled) {
Text("Next gen HTML parsing")
}
} }
Section("Room List") { Section("Room List") {