mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-05 20:09:04 +00:00
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:
committed by
Stefan Ceriu
parent
d32be1f728
commit
6a4a1b134b
@@ -19,6 +19,7 @@ protocol CommonSettingsProtocol {
|
|||||||
var enableOnlySignedDeviceIsolationMode: Bool { get }
|
var enableOnlySignedDeviceIsolationMode: Bool { get }
|
||||||
var enableKeyShareOnInvite: Bool { get }
|
var enableKeyShareOnInvite: Bool { get }
|
||||||
var hideQuietNotificationAlerts: Bool { get }
|
var hideQuietNotificationAlerts: Bool { get }
|
||||||
|
var threadsEnabled: Bool { get }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Store Element specific app settings.
|
/// Store Element specific app settings.
|
||||||
@@ -343,9 +344,6 @@ final class AppSettings {
|
|||||||
@UserPreference(key: UserDefaultsKeys.knockingEnabled, defaultValue: false, storageType: .userDefaults(store))
|
@UserPreference(key: UserDefaultsKeys.knockingEnabled, defaultValue: false, storageType: .userDefaults(store))
|
||||||
var knockingEnabled
|
var knockingEnabled
|
||||||
|
|
||||||
@UserPreference(key: UserDefaultsKeys.threadsEnabled, defaultValue: false, storageType: .userDefaults(store))
|
|
||||||
var threadsEnabled
|
|
||||||
|
|
||||||
@UserPreference(key: UserDefaultsKeys.threadsEnabled, defaultValue: isDevelopmentBuild, storageType: .userDefaults(store))
|
@UserPreference(key: UserDefaultsKeys.threadsEnabled, defaultValue: isDevelopmentBuild, storageType: .userDefaults(store))
|
||||||
var developerOptionsEnabled
|
var developerOptionsEnabled
|
||||||
|
|
||||||
@@ -372,6 +370,9 @@ final class AppSettings {
|
|||||||
|
|
||||||
@UserPreference(key: UserDefaultsKeys.hideQuietNotificationAlerts, defaultValue: false, storageType: .userDefaults(store))
|
@UserPreference(key: UserDefaultsKeys.hideQuietNotificationAlerts, defaultValue: false, storageType: .userDefaults(store))
|
||||||
var hideQuietNotificationAlerts
|
var hideQuietNotificationAlerts
|
||||||
|
|
||||||
|
@UserPreference(key: UserDefaultsKeys.threadsEnabled, defaultValue: false, storageType: .userDefaults(store))
|
||||||
|
var threadsEnabled
|
||||||
}
|
}
|
||||||
|
|
||||||
extension AppSettings: CommonSettingsProtocol { }
|
extension AppSettings: CommonSettingsProtocol { }
|
||||||
|
|||||||
@@ -18,12 +18,14 @@ extension ClientBuilder {
|
|||||||
enableOnlySignedDeviceIsolationMode: Bool,
|
enableOnlySignedDeviceIsolationMode: Bool,
|
||||||
enableKeyShareOnInvite: Bool,
|
enableKeyShareOnInvite: Bool,
|
||||||
requestTimeout: UInt64? = 30000,
|
requestTimeout: UInt64? = 30000,
|
||||||
maxRequestRetryTime: UInt64? = nil) -> ClientBuilder {
|
maxRequestRetryTime: UInt64? = nil,
|
||||||
|
threadsEnabled: Bool) -> ClientBuilder {
|
||||||
var builder = ClientBuilder()
|
var builder = ClientBuilder()
|
||||||
.crossProcessStoreLocksHolderName(holderName: InfoPlistReader.main.bundleIdentifier)
|
.crossProcessStoreLocksHolderName(holderName: InfoPlistReader.main.bundleIdentifier)
|
||||||
.enableOidcRefreshLock()
|
.enableOidcRefreshLock()
|
||||||
.setSessionDelegate(sessionDelegate: sessionDelegate)
|
.setSessionDelegate(sessionDelegate: sessionDelegate)
|
||||||
.userAgent(userAgent: UserAgentBuilder.makeASCIIUserAgent())
|
.userAgent(userAgent: UserAgentBuilder.makeASCIIUserAgent())
|
||||||
|
.threadsEnabled(enabled: threadsEnabled)
|
||||||
.requestConfig(config: .init(retryLimit: 0,
|
.requestConfig(config: .init(retryLimit: 0,
|
||||||
timeout: requestTimeout,
|
timeout: requestTimeout,
|
||||||
maxConcurrentRequests: nil,
|
maxConcurrentRequests: nil,
|
||||||
|
|||||||
@@ -49,7 +49,8 @@ struct AuthenticationClientBuilder: AuthenticationClientBuilderProtocol {
|
|||||||
sessionDelegate: clientSessionDelegate,
|
sessionDelegate: clientSessionDelegate,
|
||||||
appHooks: appHooks,
|
appHooks: appHooks,
|
||||||
enableOnlySignedDeviceIsolationMode: appSettings.enableOnlySignedDeviceIsolationMode,
|
enableOnlySignedDeviceIsolationMode: appSettings.enableOnlySignedDeviceIsolationMode,
|
||||||
enableKeyShareOnInvite: appSettings.enableKeyShareOnInvite)
|
enableKeyShareOnInvite: appSettings.enableKeyShareOnInvite,
|
||||||
|
threadsEnabled: appSettings.threadsEnabled)
|
||||||
.sessionPaths(dataPath: sessionDirectories.dataPath,
|
.sessionPaths(dataPath: sessionDirectories.dataPath,
|
||||||
cachePath: sessionDirectories.cachePath)
|
cachePath: sessionDirectories.cachePath)
|
||||||
.sessionPassphrase(passphrase: passphrase)
|
.sessionPassphrase(passphrase: passphrase)
|
||||||
|
|||||||
@@ -124,7 +124,8 @@ class UserSessionStore: UserSessionStoreProtocol {
|
|||||||
sessionDelegate: keychainController,
|
sessionDelegate: keychainController,
|
||||||
appHooks: appHooks,
|
appHooks: appHooks,
|
||||||
enableOnlySignedDeviceIsolationMode: appSettings.enableOnlySignedDeviceIsolationMode,
|
enableOnlySignedDeviceIsolationMode: appSettings.enableOnlySignedDeviceIsolationMode,
|
||||||
enableKeyShareOnInvite: appSettings.enableKeyShareOnInvite)
|
enableKeyShareOnInvite: appSettings.enableKeyShareOnInvite,
|
||||||
|
threadsEnabled: appSettings.threadsEnabled)
|
||||||
.sessionPaths(dataPath: credentials.restorationToken.sessionDirectories.dataPath,
|
.sessionPaths(dataPath: credentials.restorationToken.sessionDirectories.dataPath,
|
||||||
cachePath: credentials.restorationToken.sessionDirectories.cachePath)
|
cachePath: credentials.restorationToken.sessionDirectories.cachePath)
|
||||||
.username(username: credentials.userID)
|
.username(username: credentials.userID)
|
||||||
|
|||||||
@@ -63,7 +63,8 @@ final class NSEUserSession {
|
|||||||
enableOnlySignedDeviceIsolationMode: appSettings.enableOnlySignedDeviceIsolationMode,
|
enableOnlySignedDeviceIsolationMode: appSettings.enableOnlySignedDeviceIsolationMode,
|
||||||
enableKeyShareOnInvite: appSettings.enableKeyShareOnInvite,
|
enableKeyShareOnInvite: appSettings.enableKeyShareOnInvite,
|
||||||
requestTimeout: 15000,
|
requestTimeout: 15000,
|
||||||
maxRequestRetryTime: 5000)
|
maxRequestRetryTime: 5000,
|
||||||
|
threadsEnabled: appSettings.threadsEnabled)
|
||||||
.systemIsMemoryConstrained()
|
.systemIsMemoryConstrained()
|
||||||
.sessionPaths(dataPath: credentials.restorationToken.sessionDirectories.dataPath,
|
.sessionPaths(dataPath: credentials.restorationToken.sessionDirectories.dataPath,
|
||||||
cachePath: credentials.restorationToken.sessionDirectories.cachePath)
|
cachePath: credentials.restorationToken.sessionDirectories.cachePath)
|
||||||
|
|||||||
Reference in New Issue
Block a user