Add support for the new client wide threads feature flag

- enable it everywhere as it's safer than dealing with different configurations
This commit is contained in:
Stefan Ceriu
2025-07-04 13:28:11 +03:00
committed by Stefan Ceriu
parent d32be1f728
commit 6a4a1b134b
5 changed files with 13 additions and 7 deletions
@@ -19,6 +19,7 @@ protocol CommonSettingsProtocol {
var enableOnlySignedDeviceIsolationMode: Bool { get }
var enableKeyShareOnInvite: Bool { get }
var hideQuietNotificationAlerts: Bool { get }
var threadsEnabled: Bool { get }
}
/// Store Element specific app settings.
@@ -343,9 +344,6 @@ final class AppSettings {
@UserPreference(key: UserDefaultsKeys.knockingEnabled, defaultValue: false, storageType: .userDefaults(store))
var knockingEnabled
@UserPreference(key: UserDefaultsKeys.threadsEnabled, defaultValue: false, storageType: .userDefaults(store))
var threadsEnabled
@UserPreference(key: UserDefaultsKeys.threadsEnabled, defaultValue: isDevelopmentBuild, storageType: .userDefaults(store))
var developerOptionsEnabled
@@ -372,6 +370,9 @@ final class AppSettings {
@UserPreference(key: UserDefaultsKeys.hideQuietNotificationAlerts, defaultValue: false, storageType: .userDefaults(store))
var hideQuietNotificationAlerts
@UserPreference(key: UserDefaultsKeys.threadsEnabled, defaultValue: false, storageType: .userDefaults(store))
var threadsEnabled
}
extension AppSettings: CommonSettingsProtocol { }
@@ -18,12 +18,14 @@ extension ClientBuilder {
enableOnlySignedDeviceIsolationMode: Bool,
enableKeyShareOnInvite: Bool,
requestTimeout: UInt64? = 30000,
maxRequestRetryTime: UInt64? = nil) -> ClientBuilder {
maxRequestRetryTime: UInt64? = nil,
threadsEnabled: Bool) -> ClientBuilder {
var builder = ClientBuilder()
.crossProcessStoreLocksHolderName(holderName: InfoPlistReader.main.bundleIdentifier)
.enableOidcRefreshLock()
.setSessionDelegate(sessionDelegate: sessionDelegate)
.userAgent(userAgent: UserAgentBuilder.makeASCIIUserAgent())
.threadsEnabled(enabled: threadsEnabled)
.requestConfig(config: .init(retryLimit: 0,
timeout: requestTimeout,
maxConcurrentRequests: nil,
@@ -49,7 +49,8 @@ struct AuthenticationClientBuilder: AuthenticationClientBuilderProtocol {
sessionDelegate: clientSessionDelegate,
appHooks: appHooks,
enableOnlySignedDeviceIsolationMode: appSettings.enableOnlySignedDeviceIsolationMode,
enableKeyShareOnInvite: appSettings.enableKeyShareOnInvite)
enableKeyShareOnInvite: appSettings.enableKeyShareOnInvite,
threadsEnabled: appSettings.threadsEnabled)
.sessionPaths(dataPath: sessionDirectories.dataPath,
cachePath: sessionDirectories.cachePath)
.sessionPassphrase(passphrase: passphrase)
@@ -124,7 +124,8 @@ class UserSessionStore: UserSessionStoreProtocol {
sessionDelegate: keychainController,
appHooks: appHooks,
enableOnlySignedDeviceIsolationMode: appSettings.enableOnlySignedDeviceIsolationMode,
enableKeyShareOnInvite: appSettings.enableKeyShareOnInvite)
enableKeyShareOnInvite: appSettings.enableKeyShareOnInvite,
threadsEnabled: appSettings.threadsEnabled)
.sessionPaths(dataPath: credentials.restorationToken.sessionDirectories.dataPath,
cachePath: credentials.restorationToken.sessionDirectories.cachePath)
.username(username: credentials.userID)