import Foundation import Postbox import SwiftSignalKit import TelegramApi import MtProtoKit import SyncCore func managedAppConfigurationUpdates(postbox: Postbox, network: Network) -> Signal { let poll = Signal { subscriber in return (network.request(Api.functions.help.getAppConfig()) |> retryRequest |> mapToSignal { result -> Signal in return postbox.transaction { transaction -> Void in if let data = JSON(apiJson: result) { updateAppConfiguration(transaction: transaction, { configuration -> AppConfiguration in var configuration = configuration configuration.data = data return configuration }) } } }).start() } return (poll |> then(.complete() |> suspendAwareDelay(12.0 * 60.0 * 60.0, queue: Queue.concurrentDefaultQueue()))) |> restart }