@@ -2820,7 +2820,7 @@ public class GiftViewScreen: ViewControllerComponentContainer {
28202820 case upgradePreview( [ StarGift . UniqueGift . Attribute ] , String )
28212821 case wearPreview( StarGift . UniqueGift )
28222822
2823- var arguments : ( peerId: EnginePeer . Id ? , fromPeerId: EnginePeer . Id ? , fromPeerName: String ? , messageId: EngineMessage . Id ? , reference: StarGiftReference ? , incoming: Bool , gift: StarGift , date: Int32 , convertStars: Int64 ? , text: String ? , entities: [ MessageTextEntity ] ? , nameHidden: Bool , savedToProfile: Bool , pinnedToTop: Bool ? , converted: Bool , upgraded: Bool , refunded: Bool , canUpgrade: Bool , upgradeStars: Int64 ? , transferStars: Int64 ? , resellStars: Int64 ? , canExportDate: Int32 ? , upgradeMessageId: Int32 ? ) ? {
2823+ var arguments : ( peerId: EnginePeer . Id ? , fromPeerId: EnginePeer . Id ? , fromPeerName: String ? , messageId: EngineMessage . Id ? , reference: StarGiftReference ? , incoming: Bool , gift: StarGift , date: Int32 , convertStars: Int64 ? , text: String ? , entities: [ MessageTextEntity ] ? , nameHidden: Bool , savedToProfile: Bool , pinnedToTop: Bool ? , converted: Bool , upgraded: Bool , refunded: Bool , canUpgrade: Bool , upgradeStars: Int64 ? , transferStars: Int64 ? , resellStars: Int64 ? , canExportDate: Int32 ? , upgradeMessageId: Int32 ? , canTransferDate : Int32 ? , canResaleDate : Int32 ? ) ? {
28242824 switch self {
28252825 case let . message( message) :
28262826 if let action = message. media. first ( where: { $0 is TelegramMediaAction } ) as? TelegramMediaAction {
@@ -2832,8 +2832,8 @@ public class GiftViewScreen: ViewControllerComponentContainer {
28322832 } else {
28332833 reference = . message( messageId: message. id)
28342834 }
2835- return ( message. id. peerId, senderId ?? message. author? . id, message. author? . compactDisplayTitle, message. id, reference, message. flags. contains ( . Incoming) , gift, message. timestamp, convertStars, text, entities, nameHidden, savedToProfile, nil , converted, upgraded, isRefunded, canUpgrade, upgradeStars, nil , nil , nil , upgradeMessageId)
2836- case let . starGiftUnique( gift, isUpgrade, isTransferred, savedToProfile, canExportDate, transferStars, _, peerId, senderId, savedId, _, _ , _ ) :
2835+ return ( message. id. peerId, senderId ?? message. author? . id, message. author? . compactDisplayTitle, message. id, reference, message. flags. contains ( . Incoming) , gift, message. timestamp, convertStars, text, entities, nameHidden, savedToProfile, nil , converted, upgraded, isRefunded, canUpgrade, upgradeStars, nil , nil , nil , upgradeMessageId, nil , nil )
2836+ case let . starGiftUnique( gift, isUpgrade, isTransferred, savedToProfile, canExportDate, transferStars, _, peerId, senderId, savedId, _, canTransferDate , canResaleDate ) :
28372837 var reference : StarGiftReference
28382838 if let peerId, let savedId {
28392839 reference = . peer( peerId: peerId, id: savedId)
@@ -2857,13 +2857,13 @@ public class GiftViewScreen: ViewControllerComponentContainer {
28572857 if case let . unique( uniqueGift) = gift {
28582858 resellStars = uniqueGift. resellStars
28592859 }
2860- return ( message. id. peerId, senderId ?? message. author? . id, message. author? . compactDisplayTitle, message. id, reference, incoming, gift, message. timestamp, nil , nil , nil , false , savedToProfile, nil , false , false , false , false , nil , transferStars, resellStars, canExportDate, nil )
2860+ return ( message. id. peerId, senderId ?? message. author? . id, message. author? . compactDisplayTitle, message. id, reference, incoming, gift, message. timestamp, nil , nil , nil , false , savedToProfile, nil , false , false , false , false , nil , transferStars, resellStars, canExportDate, nil , canTransferDate , canResaleDate )
28612861 default :
28622862 return nil
28632863 }
28642864 }
28652865 case let . uniqueGift( gift, _) , let . wearPreview( gift) :
2866- return ( nil , nil , nil , nil , nil , false , . unique( gift) , 0 , nil , nil , nil , false , false , nil , false , false , false , false , nil , nil , gift. resellStars, nil , nil )
2866+ return ( nil , nil , nil , nil , nil , false , . unique( gift) , 0 , nil , nil , nil , false , false , nil , false , false , false , false , nil , nil , gift. resellStars, nil , nil , nil , nil )
28672867 case let . profileGift( peerId, gift) :
28682868 var messageId : EngineMessage . Id ?
28692869 if case let . message( messageIdValue) = gift. reference {
@@ -2873,7 +2873,7 @@ public class GiftViewScreen: ViewControllerComponentContainer {
28732873 if case let . unique( uniqueGift) = gift. gift {
28742874 resellStars = uniqueGift. resellStars
28752875 }
2876- return ( peerId, gift. fromPeer? . id, gift. fromPeer? . compactDisplayTitle, messageId, gift. reference, false , gift. gift, gift. date, gift. convertStars, gift. text, gift. entities, gift. nameHidden, gift. savedToProfile, gift. pinnedToTop, false , false , false , gift. canUpgrade, gift. upgradeStars, gift. transferStars, resellStars, gift. canExportDate, nil )
2876+ return ( peerId, gift. fromPeer? . id, gift. fromPeer? . compactDisplayTitle, messageId, gift. reference, false , gift. gift, gift. date, gift. convertStars, gift. text, gift. entities, gift. nameHidden, gift. savedToProfile, gift. pinnedToTop, false , false , false , gift. canUpgrade, gift. upgradeStars, gift. transferStars, resellStars, gift. canExportDate, nil , gift . canTransferDate , gift . canResaleDate )
28772877 case . soldOutGift:
28782878 return nil
28792879 case . upgradePreview:
@@ -3400,6 +3400,22 @@ public class GiftViewScreen: ViewControllerComponentContainer {
34003400
34013401 self . dismissAllTooltips ( )
34023402
3403+ let currentTime = Int32 ( CFAbsoluteTimeGetCurrent ( ) + kCFAbsoluteTimeIntervalSince1970)
3404+ if let canResaleDate = arguments. canResaleDate, currentTime < canResaleDate {
3405+ let dateString = stringForFullDate ( timestamp: canResaleDate, strings: presentationData. strings, dateTimeFormat: presentationData. dateTimeFormat)
3406+ let controller = textAlertController (
3407+ context: self . context,
3408+ title: presentationData. strings. Gift_Resale_Unavailable_Title,
3409+ text: presentationData. strings. Gift_Resale_Unavailable_Text ( dateString) . string,
3410+ actions: [
3411+ TextAlertAction ( type: . defaultAction, title: presentationData. strings. Common_OK, action: { } )
3412+ ] ,
3413+ parseMarkdown: true
3414+ )
3415+ self . present ( controller, in: . window( . root) )
3416+ return
3417+ }
3418+
34033419 let presentationData = context. sharedContext. currentPresentationData. with { $0 }
34043420 let giftTitle = " \( gift. title) # \( presentationStringsFormattedNumber ( gift. number, presentationData. dateTimeFormat. groupingSeparator) ) "
34053421 let reference = arguments. reference ?? . slug( slug: gift. slug)
@@ -3582,7 +3598,7 @@ public class GiftViewScreen: ViewControllerComponentContainer {
35823598
35833599 if case let . unique( gift) = arguments. gift, let resellStars = gift. resellStars, resellStars > 0 {
35843600 items. append ( . action( ContextMenuActionItem ( text: presentationData. strings. Gift_View_Context_ChangePrice, icon: { theme in
3585- return generateTintedImage ( image: UIImage ( bundleImageName: " Media Grid/Paid " ) , color: theme. contextMenu. primaryColor)
3601+ return generateTintedImage ( image: UIImage ( bundleImageName: " Chat/Context Menu/PriceTag " ) , color: theme. contextMenu. primaryColor)
35863602 } , action: { c, _ in
35873603 c? . dismiss ( completion: nil )
35883604
0 commit comments