mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-23 22:55:00 +00:00
Various improvements
This commit is contained in:
@@ -2184,6 +2184,7 @@ public final class SharedAccountContextImpl: SharedAccountContext {
|
||||
}, attemptedNavigationToPrivateQuote: { _ in
|
||||
}, forceUpdateWarpContents: {
|
||||
}, playShakeAnimation: {
|
||||
}, displayQuickShare: { _ ,_ in
|
||||
}, automaticMediaDownloadSettings: MediaAutoDownloadSettings.defaultSettings,
|
||||
pollActionState: ChatInterfacePollActionState(), stickerSettings: ChatInterfaceStickerSettings(), presentationContext: ChatPresentationContext(context: context, backgroundNode: backgroundNode as? WallpaperBackgroundNode))
|
||||
|
||||
@@ -2784,16 +2785,27 @@ public final class SharedAccountContextImpl: SharedAccountContext {
|
||||
))
|
||||
controller.navigationPresentation = .modal
|
||||
|
||||
let _ = combineLatest(queue: Queue.mainQueue(), controller.result, options.get())
|
||||
.startStandalone(next: { [weak controller] result, options in
|
||||
let _ = combineLatest(
|
||||
queue: Queue.mainQueue(),
|
||||
controller.result,
|
||||
options.get()
|
||||
).startStandalone(next: { [weak controller] result, options in
|
||||
if let (peers, _, _, _, _, _) = result, let contactPeer = peers.first, case let .peer(peer, _, _) = contactPeer, let starsContext = context.starsContext {
|
||||
if case .starGiftTransfer = source {
|
||||
presentTransferAlertImpl?(EnginePeer(peer))
|
||||
} else {
|
||||
let premiumOptions = options.filter { $0.users == 1 }.map { CachedPremiumGiftOption(months: $0.months, currency: $0.currency, amount: $0.amount, botUrl: "", storeProductId: $0.storeProductId) }
|
||||
let giftController = GiftOptionsScreen(context: context, starsContext: starsContext, peerId: peer.id, premiumOptions: premiumOptions, hasBirthday: currentBirthdays?[peer.id] != nil)
|
||||
giftController.navigationPresentation = .modal
|
||||
controller?.push(giftController)
|
||||
let _ = (context.engine.data.get(TelegramEngine.EngineData.Item.Peer.DisallowedGifts(id: peer.id))
|
||||
|> deliverOnMainQueue).start(next: { disallowedGifts in
|
||||
if let disallowedGifts, disallowedGifts == TelegramDisallowedGifts.All {
|
||||
let alertController = textAlertController(context: context, title: nil, text: presentationData.strings.Gift_Send_GiftsDisallowed(EnginePeer(peer).compactDisplayTitle).string, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})])
|
||||
controller?.present(alertController, in: .window(.root))
|
||||
return
|
||||
}
|
||||
let premiumOptions = options.filter { $0.users == 1 }.map { CachedPremiumGiftOption(months: $0.months, currency: $0.currency, amount: $0.amount, botUrl: "", storeProductId: $0.storeProductId) }
|
||||
let giftController = GiftOptionsScreen(context: context, starsContext: starsContext, peerId: peer.id, premiumOptions: premiumOptions, hasBirthday: currentBirthdays?[peer.id] != nil)
|
||||
giftController.navigationPresentation = .modal
|
||||
controller?.push(giftController)
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user