mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-24 07:05:35 +00:00
bugfixes
This commit is contained in:
@@ -3,22 +3,27 @@ import Postbox
|
||||
import TelegramApi
|
||||
|
||||
internal func _internal_updateIsPremiumRequiredToContact(account: Account, peerIds: [EnginePeer.Id]) -> Signal<[EnginePeer.Id], NoError> {
|
||||
return account.postbox.transaction { transaction -> ([Api.InputUser], [PeerId]) in
|
||||
return account.postbox.transaction { transaction -> ([Api.InputUser], [PeerId], [PeerId]) in
|
||||
var inputUsers: [Api.InputUser] = []
|
||||
var premiumRequired:[EnginePeer.Id] = []
|
||||
var ids:[PeerId] = []
|
||||
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)
|
||||
if peer.isPremium {
|
||||
if let cachedData = transaction.getPeerCachedData(peerId: id) as? CachedUserData {
|
||||
if cachedData.flags.contains(.premiumRequired) {
|
||||
inputUsers.append(inputUser)
|
||||
ids.append(id)
|
||||
}
|
||||
} else if let peer = peer as? TelegramUser, peer.flags.contains(.requirePremium), !peer.flags.contains(.mutualContact) {
|
||||
inputUsers.append(inputUser)
|
||||
ids.append(id)
|
||||
}
|
||||
} else if let peer = peer as? TelegramUser, peer.flags.contains(.requirePremium), !peer.flags.contains(.mutualContact) {
|
||||
inputUsers.append(inputUser)
|
||||
}
|
||||
}
|
||||
}
|
||||
return (inputUsers, premiumRequired)
|
||||
} |> mapToSignal { inputUsers, premiumRequired -> Signal<[EnginePeer.Id], NoError> in
|
||||
return (inputUsers, premiumRequired, ids)
|
||||
} |> mapToSignal { inputUsers, premiumRequired, reqIds -> Signal<[EnginePeer.Id], NoError> in
|
||||
|
||||
if !inputUsers.isEmpty {
|
||||
return account.network.request(Api.functions.users.getIsPremiumRequiredToContact(id: inputUsers))
|
||||
@@ -27,7 +32,7 @@ internal func _internal_updateIsPremiumRequiredToContact(account: Account, peerI
|
||||
return account.postbox.transaction { transaction in
|
||||
var requiredPeerIds: [EnginePeer.Id] = []
|
||||
for (i, req) in result.enumerated() {
|
||||
let peerId = peerIds[i]
|
||||
let peerId = reqIds[i]
|
||||
let required = req == .boolTrue
|
||||
transaction.updatePeerCachedData(peerIds: Set([peerId]), update: { _, cachedData in
|
||||
let data = cachedData as? CachedUserData ?? CachedUserData()
|
||||
|
||||
Reference in New Issue
Block a user