diff --git a/submodules/SyncCore/Sources/NetworkSettings.swift b/submodules/SyncCore/Sources/NetworkSettings.swift index b8341c79fb..ba104abbc9 100644 --- a/submodules/SyncCore/Sources/NetworkSettings.swift +++ b/submodules/SyncCore/Sources/NetworkSettings.swift @@ -4,21 +4,27 @@ public struct NetworkSettings: PreferencesEntry, Equatable { public var reducedBackupDiscoveryTimeout: Bool public var applicationUpdateUrlPrefix: String? public var backupHostOverride: String? + public var defaultEnableTempKeys: Bool + public var userEnableTempKeys: Bool? public static var defaultSettings: NetworkSettings { - return NetworkSettings(reducedBackupDiscoveryTimeout: false, applicationUpdateUrlPrefix: nil, backupHostOverride: nil) + return NetworkSettings(reducedBackupDiscoveryTimeout: false, applicationUpdateUrlPrefix: nil, backupHostOverride: nil, defaultEnableTempKeys: true, userEnableTempKeys: nil) } - public init(reducedBackupDiscoveryTimeout: Bool, applicationUpdateUrlPrefix: String?, backupHostOverride: String?) { + public init(reducedBackupDiscoveryTimeout: Bool, applicationUpdateUrlPrefix: String?, backupHostOverride: String?, defaultEnableTempKeys: Bool, userEnableTempKeys: Bool?) { self.reducedBackupDiscoveryTimeout = reducedBackupDiscoveryTimeout self.applicationUpdateUrlPrefix = applicationUpdateUrlPrefix self.backupHostOverride = backupHostOverride + self.defaultEnableTempKeys = defaultEnableTempKeys + self.userEnableTempKeys = userEnableTempKeys } public init(decoder: PostboxDecoder) { self.reducedBackupDiscoveryTimeout = decoder.decodeInt32ForKey("reducedBackupDiscoveryTimeout", orElse: 0) != 0 self.applicationUpdateUrlPrefix = decoder.decodeOptionalStringForKey("applicationUpdateUrlPrefix") self.backupHostOverride = decoder.decodeOptionalStringForKey("backupHostOverride") + self.defaultEnableTempKeys = decoder.decodeBoolForKey("defaultEnableTempKeys", orElse: true) + self.userEnableTempKeys = decoder.decodeOptionalBoolForKey("userEnableTempKeys") } public func encode(_ encoder: PostboxEncoder) { @@ -33,6 +39,12 @@ public struct NetworkSettings: PreferencesEntry, Equatable { } else { encoder.encodeNil(forKey: "backupHostOverride") } + encoder.encodeBool(self.defaultEnableTempKeys, forKey: "defaultEnableTempKeys") + if let userEnableTempKeys = self.userEnableTempKeys { + encoder.encodeBool(userEnableTempKeys, forKey: "userEnableTempKeys") + } else { + encoder.encodeNil(forKey: "userEnableTempKeys") + } } public func isEqual(to: PreferencesEntry) -> Bool { diff --git a/submodules/TelegramCore/Sources/ManagedAppConfigurationUpdates.swift b/submodules/TelegramCore/Sources/ManagedAppConfigurationUpdates.swift index b7a757eee1..607c7d5102 100644 --- a/submodules/TelegramCore/Sources/ManagedAppConfigurationUpdates.swift +++ b/submodules/TelegramCore/Sources/ManagedAppConfigurationUpdates.swift @@ -23,6 +23,15 @@ func updateAppConfigurationOnce(postbox: Postbox, network: Network) -> Signal NetworkSettings) { +public func updateNetworkSettingsInteractively(transaction: Transaction, network: Network?, _ f: @escaping (NetworkSettings) -> NetworkSettings) { var updateNetwork = false var updatedSettings: NetworkSettings? transaction.updatePreferencesEntry(key: PreferencesKeys.networkSettings, { current in @@ -33,7 +33,7 @@ public func updateNetworkSettingsInteractively(transaction: Transaction, network return updated }) - if updateNetwork, let updatedSettings = updatedSettings { + if let network = network, updateNetwork, let updatedSettings = updatedSettings { network.context.updateApiEnvironment { current in return current?.withUpdatedNetworkSettings(updatedSettings.mtNetworkSettings) }