import Foundation import Postbox import SwiftSignalKit import MtProtoKit public func updateContentPrivacySettings(postbox: Postbox, _ f: @escaping (ContentPrivacySettings) -> ContentPrivacySettings) -> Signal { return postbox.transaction { transaction -> Void in var updated: ContentPrivacySettings? transaction.updatePreferencesEntry(key: PreferencesKeys.contentPrivacySettings, { current in if let current = current?.get(ContentPrivacySettings.self) { updated = f(current) return PreferencesEntry(updated) } else { updated = f(ContentPrivacySettings.defaultSettings) return PreferencesEntry(updated) } }) } }