Home telegram - network helper
Post
Cancel

telegram - network helper

NetworkHelper

class NetworkHelper:MTContextChangeListener

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
private let requestPublicKeys: (Int) -> Signal<NSArray, NoError>
private let isContextNetworkAccessAllowedImpl: () -> Signal<Bool, NoError>

private let contextProxyIdUpdated: (NetworkContextProxyId?) -> Void

func fetchContextDatacenterPublicKeys(_ context: MTContext!, datacenterId: Int) -> MTSignal! {
    return MTSignal { subscriber in
        let disposable = self.requestPublicKeys(datacenterId).start(next: { next in
            subscriber?.putNext(next)
            subscriber?.putCompletion()
        })
        
        return MTBlockDisposable(block: {
            disposable.dispose()
        })
    }
}

func isContextNetworkAccessAllowed(_ context: MTContext!) -> MTSignal! {
    return MTSignal { subscriber in
        let disposable = self.isContextNetworkAccessAllowedImpl().start(next: { next in
            subscriber?.putNext(next as NSNumber)
            subscriber?.putCompletion()
        })
        
        return MTBlockDisposable(block: {
            disposable.dispose()
        })
    }
}

func contextApiEnvironmentUpdated(_ context: MTContext!, apiEnvironment: MTApiEnvironment!) {
    let settings: MTSocksProxySettings? = apiEnvironment.socksProxySettings
    self.contextProxyIdUpdated(settings.flatMap(NetworkContextProxyId.init(settings:)))
}
This post is licensed under CC BY 4.0 by the author.