Skip to content

Commit 83a7019

Browse files
committed
Update API
1 parent 37c91f8 commit 83a7019

File tree

8 files changed

+30
-18
lines changed

8 files changed

+30
-18
lines changed

submodules/TelegramCore/Sources/ApiUtils/ChatContextResult.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -549,7 +549,7 @@ extension ChatContextResultMessage {
549549
if let replyMarkup = replyMarkup {
550550
parsedReplyMarkup = ReplyMarkupMessageAttribute(apiMarkup: replyMarkup)
551551
}
552-
self = .invoice(media: TelegramMediaInvoice(title: title, description: description, photo: photo.flatMap(TelegramMediaWebFile.init), receiptMessageId: nil, currency: currency, totalAmount: totalAmount, startParam: "", extendedMedia: nil, flags: parsedFlags, version: TelegramMediaInvoice.lastVersion), replyMarkup: parsedReplyMarkup)
552+
self = .invoice(media: TelegramMediaInvoice(title: title, description: description, photo: photo.flatMap(TelegramMediaWebFile.init), receiptMessageId: nil, currency: currency, totalAmount: totalAmount, startParam: "", extendedMedia: nil, subscriptionPeriod: nil, flags: parsedFlags, version: TelegramMediaInvoice.lastVersion), replyMarkup: parsedReplyMarkup)
553553
case let .botInlineMessageMediaWebPage(flags, message, entities, url, replyMarkup):
554554
var parsedReplyMarkup: ReplyMarkupMessageAttribute?
555555
if let replyMarkup = replyMarkup {

submodules/TelegramCore/Sources/ApiUtils/StoreMessage_Telegram.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -395,7 +395,7 @@ func textMediaAndExpirationTimerFromApiMedia(_ media: Api.MessageMedia?, _ peerI
395395
if (flags & (1 << 1)) != 0 {
396396
parsedFlags.insert(.shippingAddressRequested)
397397
}
398-
return (TelegramMediaInvoice(title: title, description: description, photo: photo.flatMap(TelegramMediaWebFile.init), receiptMessageId: receiptMsgId.flatMap { MessageId(peerId: peerId, namespace: Namespaces.Message.Cloud, id: $0) }, currency: currency, totalAmount: totalAmount, startParam: startParam, extendedMedia: apiExtendedMedia.flatMap({ TelegramExtendedMedia(apiExtendedMedia: $0, peerId: peerId) }), flags: parsedFlags, version: TelegramMediaInvoice.lastVersion), nil, nil, nil, nil)
398+
return (TelegramMediaInvoice(title: title, description: description, photo: photo.flatMap(TelegramMediaWebFile.init), receiptMessageId: receiptMsgId.flatMap { MessageId(peerId: peerId, namespace: Namespaces.Message.Cloud, id: $0) }, currency: currency, totalAmount: totalAmount, startParam: startParam, extendedMedia: apiExtendedMedia.flatMap({ TelegramExtendedMedia(apiExtendedMedia: $0, peerId: peerId) }), subscriptionPeriod: nil, flags: parsedFlags, version: TelegramMediaInvoice.lastVersion), nil, nil, nil, nil)
399399
case let .messageMediaPoll(poll, results):
400400
switch poll {
401401
case let .poll(id, flags, question, answers, closePeriod, _):

submodules/TelegramCore/Sources/SyncCore/SyncCore_TelegramMediaInvoice.swift

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,10 +103,11 @@ public final class TelegramMediaInvoice: Media, Equatable {
103103
public let photo: TelegramMediaWebFile?
104104
public let flags: TelegramMediaInvoiceFlags
105105
public let extendedMedia: TelegramExtendedMedia?
106+
public let subscriptionPeriod: Int32?
106107

107108
public let version: Int32
108109

109-
public init(title: String, description: String, photo: TelegramMediaWebFile?, receiptMessageId: MessageId?, currency: String, totalAmount: Int64, startParam: String, extendedMedia: TelegramExtendedMedia?, flags: TelegramMediaInvoiceFlags, version: Int32) {
110+
public init(title: String, description: String, photo: TelegramMediaWebFile?, receiptMessageId: MessageId?, currency: String, totalAmount: Int64, startParam: String, extendedMedia: TelegramExtendedMedia?, subscriptionPeriod: Int32?, flags: TelegramMediaInvoiceFlags, version: Int32) {
110111
self.title = title
111112
self.description = description
112113
self.photo = photo
@@ -115,6 +116,7 @@ public final class TelegramMediaInvoice: Media, Equatable {
115116
self.totalAmount = totalAmount
116117
self.startParam = startParam
117118
self.extendedMedia = extendedMedia
119+
self.subscriptionPeriod = subscriptionPeriod
118120
self.flags = flags
119121
self.version = version
120122
}
@@ -127,6 +129,7 @@ public final class TelegramMediaInvoice: Media, Equatable {
127129
self.startParam = decoder.decodeStringForKey("sp", orElse: "")
128130
self.photo = decoder.decodeObjectForKey("p") as? TelegramMediaWebFile
129131
self.extendedMedia = decoder.decodeObjectForKey("m", decoder: { TelegramExtendedMedia(decoder: $0) }) as? TelegramExtendedMedia
132+
self.subscriptionPeriod = decoder.decodeOptionalInt32ForKey("sp")
130133
self.flags = TelegramMediaInvoiceFlags(rawValue: decoder.decodeInt32ForKey("f", orElse: 0))
131134

132135
if let receiptMessageIdPeerId = decoder.decodeOptionalInt64ForKey("r.p") as Int64?, let receiptMessageIdNamespace = decoder.decodeOptionalInt32ForKey("r.n") as Int32?, let receiptMessageIdId = decoder.decodeOptionalInt32ForKey("r.i") as Int32? {
@@ -158,6 +161,12 @@ public final class TelegramMediaInvoice: Media, Equatable {
158161
encoder.encodeNil(forKey: "m")
159162
}
160163

164+
if let subscriptionPeriod = self.subscriptionPeriod {
165+
encoder.encodeInt32(subscriptionPeriod, forKey: "sp")
166+
} else {
167+
encoder.encodeNil(forKey: "sp")
168+
}
169+
161170
if let receiptMessageId = self.receiptMessageId {
162171
encoder.encodeInt64(receiptMessageId.peerId.toInt64(), forKey: "r.p")
163172
encoder.encodeInt32(receiptMessageId.namespace, forKey: "r.n")
@@ -212,6 +221,10 @@ public final class TelegramMediaInvoice: Media, Equatable {
212221
return false
213222
}
214223

224+
if self.subscriptionPeriod != other.subscriptionPeriod {
225+
return false
226+
}
227+
215228
if self.version != other.version {
216229
return false
217230
}
@@ -233,6 +246,7 @@ public final class TelegramMediaInvoice: Media, Equatable {
233246
totalAmount: self.totalAmount,
234247
startParam: self.startParam,
235248
extendedMedia: extendedMedia,
249+
subscriptionPeriod: self.subscriptionPeriod,
236250
flags: self.flags,
237251
version: self.version
238252
)

submodules/TelegramCore/Sources/TelegramEngine/Payments/BotPaymentForm.swift

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -402,13 +402,13 @@ func _internal_fetchBotPaymentInvoice(postbox: Postbox, network: Network, source
402402
parsedFlags.insert(.shippingAddressRequested)
403403
}
404404

405-
return TelegramMediaInvoice(title: title, description: description, photo: photo.flatMap(TelegramMediaWebFile.init), receiptMessageId: nil, currency: parsedInvoice.currency, totalAmount: 0, startParam: "", extendedMedia: nil, flags: parsedFlags, version: TelegramMediaInvoice.lastVersion)
405+
return TelegramMediaInvoice(title: title, description: description, photo: photo.flatMap(TelegramMediaWebFile.init), receiptMessageId: nil, currency: parsedInvoice.currency, totalAmount: 0, startParam: "", extendedMedia: nil, subscriptionPeriod: parsedInvoice.subscriptionPeriod, flags: parsedFlags, version: TelegramMediaInvoice.lastVersion)
406406
case let .paymentFormStars(_, _, _, title, description, photo, invoice, _):
407407
let parsedInvoice = BotPaymentInvoice(apiInvoice: invoice)
408-
return TelegramMediaInvoice(title: title, description: description, photo: photo.flatMap(TelegramMediaWebFile.init), receiptMessageId: nil, currency: parsedInvoice.currency, totalAmount: parsedInvoice.prices.reduce(0, { $0 + $1.amount }), startParam: "", extendedMedia: nil, flags: [], version: TelegramMediaInvoice.lastVersion)
408+
return TelegramMediaInvoice(title: title, description: description, photo: photo.flatMap(TelegramMediaWebFile.init), receiptMessageId: nil, currency: parsedInvoice.currency, totalAmount: parsedInvoice.prices.reduce(0, { $0 + $1.amount }), startParam: "", extendedMedia: nil, subscriptionPeriod: parsedInvoice.subscriptionPeriod, flags: [], version: TelegramMediaInvoice.lastVersion)
409409
case let .paymentFormStarGift(_, invoice):
410410
let parsedInvoice = BotPaymentInvoice(apiInvoice: invoice)
411-
return TelegramMediaInvoice(title: "", description: "", photo: nil, receiptMessageId: nil, currency: parsedInvoice.currency, totalAmount: parsedInvoice.prices.reduce(0, { $0 + $1.amount }), startParam: "", extendedMedia: nil, flags: [], version: TelegramMediaInvoice.lastVersion)
411+
return TelegramMediaInvoice(title: "", description: "", photo: nil, receiptMessageId: nil, currency: parsedInvoice.currency, totalAmount: parsedInvoice.prices.reduce(0, { $0 + $1.amount }), startParam: "", extendedMedia: nil, subscriptionPeriod: parsedInvoice.subscriptionPeriod, flags: [], version: TelegramMediaInvoice.lastVersion)
412412
}
413413
}
414414
|> mapError { _ -> BotPaymentFormRequestError in }
@@ -800,6 +800,7 @@ func _internal_requestBotPaymentReceipt(account: Account, messageId: MessageId)
800800
totalAmount: totalAmount,
801801
startParam: "",
802802
extendedMedia: nil,
803+
subscriptionPeriod: parsedInvoice.subscriptionPeriod,
803804
flags: [],
804805
version: TelegramMediaInvoice.lastVersion
805806
)
@@ -822,6 +823,7 @@ func _internal_requestBotPaymentReceipt(account: Account, messageId: MessageId)
822823
totalAmount: totalAmount,
823824
startParam: "",
824825
extendedMedia: nil,
826+
subscriptionPeriod: parsedInvoice.subscriptionPeriod,
825827
flags: [],
826828
version: TelegramMediaInvoice.lastVersion
827829
)

submodules/TelegramUI/Components/Chat/ChatRecentActionsController/Sources/ChatRecentActionsControllerNode.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1283,7 +1283,7 @@ final class ChatRecentActionsControllerNode: ViewControllerTracingNode {
12831283
photo.append(photoRepresentation)
12841284
}
12851285
let channel = TelegramChannel(id: PeerId(namespace: Namespaces.Peer.CloudChannel, id: PeerId.Id._internalFromInt64Value(0)), accessHash: .genericPublic(0), title: invite.title, username: nil, photo: photo, creationDate: 0, version: 0, participationStatus: .left, info: .broadcast(TelegramChannelBroadcastInfo(flags: [])), flags: [], restrictionInfo: nil, adminRights: nil, bannedRights: nil, defaultBannedRights: nil, usernames: [], storiesHidden: nil, nameColor: invite.nameColor, backgroundEmojiId: nil, profileColor: nil, profileBackgroundEmojiId: nil, emojiStatus: nil, approximateBoostLevel: nil, subscriptionUntilDate: nil)
1286-
let invoice = TelegramMediaInvoice(title: "", description: "", photo: nil, receiptMessageId: nil, currency: "XTR", totalAmount: subscriptionPricing.amount, startParam: "", extendedMedia: nil, flags: [], version: 0)
1286+
let invoice = TelegramMediaInvoice(title: "", description: "", photo: nil, receiptMessageId: nil, currency: "XTR", totalAmount: subscriptionPricing.amount, startParam: "", extendedMedia: nil, subscriptionPeriod: nil, flags: [], version: 0)
12871287

12881288
inputData.set(.single(BotCheckoutController.InputData(
12891289
form: BotPaymentForm(

submodules/TelegramUI/Components/Stars/StarsTransferScreen/Sources/StarsTransferScreen.swift

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -300,11 +300,7 @@ private final class SheetContent: CombinedComponent {
300300
if let photo = component.invoice.photo {
301301
subject = .photo(photo)
302302
} else {
303-
if "".isEmpty {
304-
subject = .color(.lightGray)
305-
} else {
306-
subject = .transactionPeer(.peer(peer))
307-
}
303+
subject = .transactionPeer(.peer(peer))
308304
}
309305
} else {
310306
subject = .none
@@ -318,7 +314,7 @@ private final class SheetContent: CombinedComponent {
318314
var isSubscription = false
319315
if case .starsChatSubscription = component.source {
320316
isSubscription = true
321-
} else if "".isEmpty {
317+
} else if let _ = component.invoice.subscriptionPeriod {
322318
isSubscription = true
323319
}
324320
let star = star.update(
@@ -415,8 +411,8 @@ private final class SheetContent: CombinedComponent {
415411
let infoText: String
416412
if case .starsChatSubscription = context.component.source {
417413
infoText = strings.Stars_Transfer_SubscribeInfo(state.botPeer?.compactDisplayTitle ?? "", strings.Stars_Transfer_Info_Stars(Int32(amount))).string
418-
} else if "".isEmpty {
419-
infoText = "Do you want to subscribe to **Subscription Name** in **\(state.botPeer?.compactDisplayTitle ?? "")** for **\(strings.Stars_Transfer_Info_Stars(Int32(amount)))** per month?"
414+
} else if let _ = component.invoice.subscriptionPeriod {
415+
infoText = "Do you want to subscribe to **\(component.invoice.title)** in **\(state.botPeer?.compactDisplayTitle ?? "")** for **\(strings.Stars_Transfer_Info_Stars(Int32(amount)))** per month?"
420416
} else if !component.extendedMedia.isEmpty {
421417
var description: String = ""
422418
var photoCount: Int32 = 0
@@ -541,7 +537,7 @@ private final class SheetContent: CombinedComponent {
541537
//TODO:localize
542538
buttonAttributedString = NSMutableAttributedString(string: "Subscribe for # \(amountString) / month", font: Font.semibold(17.0), textColor: theme.list.itemCheckColors.foregroundColor, paragraphAlignment: .center)
543539
//buttonAttributedString = NSMutableAttributedString(string: strings.Stars_Transfer_Subscribe, font: Font.semibold(17.0), textColor: theme.list.itemCheckColors.foregroundColor, paragraphAlignment: .center)
544-
} else if "".isEmpty {
540+
} else if let _ = component.invoice.subscriptionPeriod {
545541
buttonAttributedString = NSMutableAttributedString(string: "Subscribe for # \(amountString) / month", font: Font.semibold(17.0), textColor: theme.list.itemCheckColors.foregroundColor, paragraphAlignment: .center)
546542
} else {
547543
buttonAttributedString = NSMutableAttributedString(string: "\(strings.Stars_Transfer_Pay) # \(amountString)", font: Font.semibold(17.0), textColor: theme.list.itemCheckColors.foregroundColor, paragraphAlignment: .center)

submodules/TelegramUI/Sources/ChatController.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2880,7 +2880,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G
28802880
if let sourceMessageId = message.forwardInfo?.sourceMessageId {
28812881
messageId = sourceMessageId
28822882
}
2883-
let invoice = TelegramMediaInvoice(title: "", description: "", photo: nil, receiptMessageId: nil, currency: "XTR", totalAmount: paidContent.amount, startParam: "", extendedMedia: .preview(dimensions: dimensions, immediateThumbnailData: immediateThumbnailData, videoDuration: nil), flags: [], version: 0)
2883+
let invoice = TelegramMediaInvoice(title: "", description: "", photo: nil, receiptMessageId: nil, currency: "XTR", totalAmount: paidContent.amount, startParam: "", extendedMedia: .preview(dimensions: dimensions, immediateThumbnailData: immediateThumbnailData, videoDuration: nil), subscriptionPeriod: nil, flags: [], version: 0)
28842884
let controller = strongSelf.context.sharedContext.makeStarsTransferScreen(context: strongSelf.context, starsContext: starsContext, invoice: invoice, source: .message(messageId), extendedMedia: paidContent.extendedMedia, inputData: starsInputData, completion: { _ in })
28852885
strongSelf.push(controller)
28862886

submodules/TelegramUI/Sources/OpenResolvedUrl.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ func openResolvedUrlImpl(
301301
photo.append(photoRepresentation)
302302
}
303303
let channel = TelegramChannel(id: PeerId(namespace: Namespaces.Peer.CloudChannel, id: PeerId.Id._internalFromInt64Value(0)), accessHash: .genericPublic(0), title: invite.title, username: nil, photo: photo, creationDate: 0, version: 0, participationStatus: .left, info: .broadcast(TelegramChannelBroadcastInfo(flags: [])), flags: [], restrictionInfo: nil, adminRights: nil, bannedRights: nil, defaultBannedRights: nil, usernames: [], storiesHidden: nil, nameColor: invite.nameColor, backgroundEmojiId: nil, profileColor: nil, profileBackgroundEmojiId: nil, emojiStatus: nil, approximateBoostLevel: nil, subscriptionUntilDate: nil)
304-
let invoice = TelegramMediaInvoice(title: "", description: "", photo: nil, receiptMessageId: nil, currency: "XTR", totalAmount: subscriptionPricing.amount, startParam: "", extendedMedia: nil, flags: [], version: 0)
304+
let invoice = TelegramMediaInvoice(title: "", description: "", photo: nil, receiptMessageId: nil, currency: "XTR", totalAmount: subscriptionPricing.amount, startParam: "", extendedMedia: nil, subscriptionPeriod: nil, flags: [], version: 0)
305305

306306
inputData.set(.single(BotCheckoutController.InputData(
307307
form: BotPaymentForm(

0 commit comments

Comments
 (0)