mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-10-09 03:20:48 +00:00
Merge branch 'master' of gitlab.com:peter-iakovlev/telegram-ios
This commit is contained in:
commit
eab00ad5cf
@ -3,15 +3,24 @@ import Postbox
|
||||
import TelegramApi
|
||||
|
||||
internal func _internal_updateIsPremiumRequiredToContact(account: Account, peerIds: [EnginePeer.Id]) -> Signal<[EnginePeer.Id], NoError> {
|
||||
return account.postbox.transaction { transaction -> [Api.InputUser] in
|
||||
return account.postbox.transaction { transaction -> ([Api.InputUser], [PeerId]) in
|
||||
var inputUsers: [Api.InputUser] = []
|
||||
var premiumRequired:[EnginePeer.Id] = []
|
||||
for id in peerIds {
|
||||
if let peer = transaction.getPeer(id), let inputUser = apiInputUser(peer) {
|
||||
if let cachedData = transaction.getPeerCachedData(peerId: id) as? CachedUserData {
|
||||
if cachedData.flags.contains(.premiumRequired) {
|
||||
premiumRequired.append(id)
|
||||
}
|
||||
} else {
|
||||
inputUsers.append(inputUser)
|
||||
}
|
||||
}
|
||||
return inputUsers
|
||||
} |> mapToSignal { inputUsers -> Signal<[EnginePeer.Id], NoError> in
|
||||
}
|
||||
return (inputUsers, premiumRequired)
|
||||
} |> mapToSignal { inputUsers, premiumRequired -> Signal<[EnginePeer.Id], NoError> in
|
||||
|
||||
if !inputUsers.isEmpty {
|
||||
return account.network.request(Api.functions.users.getIsPremiumRequiredToContact(id: inputUsers))
|
||||
|> retryRequest
|
||||
|> mapToSignal { result in
|
||||
@ -34,9 +43,14 @@ internal func _internal_updateIsPremiumRequiredToContact(account: Account, peerI
|
||||
requiredPeerIds.append(peerId)
|
||||
}
|
||||
}
|
||||
let result = requiredPeerIds + premiumRequired
|
||||
return result
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return .single(premiumRequired)
|
||||
}
|
||||
|
||||
|
||||
return requiredPeerIds
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -340,6 +340,55 @@ public extension TelegramEngine {
|
||||
}
|
||||
}
|
||||
|
||||
public func subscribe<
|
||||
T0: TelegramEngineDataItem,
|
||||
T1: TelegramEngineDataItem,
|
||||
T2: TelegramEngineDataItem,
|
||||
T3: TelegramEngineDataItem,
|
||||
T4: TelegramEngineDataItem,
|
||||
T5: TelegramEngineDataItem,
|
||||
T6: TelegramEngineDataItem
|
||||
>(
|
||||
_ t0: T0,
|
||||
_ t1: T1,
|
||||
_ t2: T2,
|
||||
_ t3: T3,
|
||||
_ t4: T4,
|
||||
_ t5: T5,
|
||||
_ t6: T6
|
||||
) -> Signal<
|
||||
(
|
||||
T0.Result,
|
||||
T1.Result,
|
||||
T2.Result,
|
||||
T3.Result,
|
||||
T4.Result,
|
||||
T5.Result,
|
||||
T6.Result
|
||||
),
|
||||
NoError> {
|
||||
return self._subscribe(items: [
|
||||
t0 as! AnyPostboxViewDataItem,
|
||||
t1 as! AnyPostboxViewDataItem,
|
||||
t2 as! AnyPostboxViewDataItem,
|
||||
t3 as! AnyPostboxViewDataItem,
|
||||
t4 as! AnyPostboxViewDataItem,
|
||||
t5 as! AnyPostboxViewDataItem,
|
||||
t6 as! AnyPostboxViewDataItem
|
||||
])
|
||||
|> map { results -> (T0.Result, T1.Result, T2.Result, T3.Result, T4.Result, T5.Result, T6.Result) in
|
||||
return (
|
||||
results[0] as! T0.Result,
|
||||
results[1] as! T1.Result,
|
||||
results[2] as! T2.Result,
|
||||
results[3] as! T3.Result,
|
||||
results[4] as! T4.Result,
|
||||
results[5] as! T5.Result,
|
||||
results[6] as! T6.Result
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
public func get<
|
||||
T0: TelegramEngineDataItem,
|
||||
T1: TelegramEngineDataItem
|
||||
|
Loading…
x
Reference in New Issue
Block a user