Various improvements

This commit is contained in:
Ilya Laktyushin
2025-03-21 18:41:49 +04:00
parent 454b77da4e
commit 5956d5142f
41 changed files with 998 additions and 214 deletions

View File

@@ -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)
})
}
}
})