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 a97c82861d
commit 4d616c550c
5 changed files with 13 additions and 7 deletions

View File

@@ -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 { }

View File

@@ -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,

View File

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

View File

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

View File

@@ -63,7 +63,8 @@ final class NSEUserSession {
enableOnlySignedDeviceIsolationMode: appSettings.enableOnlySignedDeviceIsolationMode,
enableKeyShareOnInvite: appSettings.enableKeyShareOnInvite,
requestTimeout: 15000,
maxRequestRetryTime: 5000)
maxRequestRetryTime: 5000,
threadsEnabled: appSettings.threadsEnabled)
.systemIsMemoryConstrained()
.sessionPaths(dataPath: credentials.restorationToken.sessionDirectories.dataPath,
cachePath: credentials.restorationToken.sessionDirectories.cachePath)