Skip to content

Commit 9e0600e

Browse files
committed
Various fixes
1 parent 1ed853e commit 9e0600e

File tree

16 files changed

+949
-880
lines changed

16 files changed

+949
-880
lines changed

Telegram/Telegram-iOS/en.lproj/Localizable.strings

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14290,3 +14290,6 @@ Sorry for the inconvenience.";
1429014290
"MediaPicker.CreateStory_1" = "Create %@ Story";
1429114291
"MediaPicker.CreateStory_any" = "Create %@ Stories";
1429214292
"MediaPicker.CombineIntoCollage" = "Combine into Collage";
14293+
14294+
"Gift.Resale.Unavailable.Title" = "Resell Gift";
14295+
"Gift.Resale.Unavailable.Text" = "Sorry, you can't list this gift yet.\n\Reselling will be available on %@.";

submodules/MediaPickerUI/Sources/MediaPickerScreen.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2004,7 +2004,7 @@ public final class MediaPickerScreenImpl: ViewController, MediaPickerScreen, Att
20042004
var hasSelect = false
20052005
if forCollage {
20062006
hasSelect = true
2007-
} else if case .story = mode {
2007+
} else if case .story = mode, selectionContext.selectionLimit > 1 {
20082008
hasSelect = true
20092009
}
20102010

@@ -3402,7 +3402,7 @@ public func stickerMediaPickerController(
34023402
destinationCornerRadius: 0.0
34033403
)
34043404
},
3405-
completion: { result, _, commit in
3405+
completion: { result, _, _, commit in
34063406
completion(result, nil, .zero, nil, true, { _ in return nil }, {
34073407
returnToCameraImpl?()
34083408
})
@@ -3520,7 +3520,7 @@ public func avatarMediaPickerController(
35203520
destinationCornerRadius: 0.0
35213521
)
35223522
},
3523-
completion: { result, _, commit in
3523+
completion: { result, _, _, commit in
35243524
completion(result, nil, .zero, nil, true, { _ in return nil }, {
35253525
returnToCameraImpl?()
35263526
})

submodules/TelegramUI/Components/CameraScreen/Sources/CameraScreen.swift

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1959,6 +1959,7 @@ public class CameraScreenImpl: ViewController, CameraScreen {
19591959
}
19601960
},
19611961
nil,
1962+
1,
19621963
{}
19631964
)
19641965
} else {
@@ -1995,6 +1996,7 @@ public class CameraScreenImpl: ViewController, CameraScreen {
19951996
}
19961997
},
19971998
nil,
1999+
self.controller?.remainingStoryCount,
19982000
{}
19992001
)
20002002
}
@@ -3374,14 +3376,15 @@ public class CameraScreenImpl: ViewController, CameraScreen {
33743376
self.transitionOut = transitionOut
33753377
}
33763378
}
3377-
fileprivate let completion: (Signal<CameraScreenImpl.Result, NoError>, ResultTransition?, @escaping () -> Void) -> Void
3379+
fileprivate let completion: (Signal<CameraScreenImpl.Result, NoError>, ResultTransition?, Int32?, @escaping () -> Void) -> Void
33783380
public var transitionedIn: () -> Void = {}
33793381
public var transitionedOut: () -> Void = {}
33803382

33813383
private var audioSessionDisposable: Disposable?
33823384

33833385
private let postingAvailabilityPromise = Promise<StoriesUploadAvailability>()
33843386
private var postingAvailabilityDisposable: Disposable?
3387+
private var remainingStoryCount: Int32?
33853388

33863389
private var codeDisposable: Disposable?
33873390
private var resolveCodeDisposable: Disposable?
@@ -3419,7 +3422,7 @@ public class CameraScreenImpl: ViewController, CameraScreen {
34193422
holder: CameraHolder? = nil,
34203423
transitionIn: TransitionIn?,
34213424
transitionOut: @escaping (Bool) -> TransitionOut?,
3422-
completion: @escaping (Signal<CameraScreenImpl.Result, NoError>, ResultTransition?, @escaping () -> Void) -> Void
3425+
completion: @escaping (Signal<CameraScreenImpl.Result, NoError>, ResultTransition?, Int32?, @escaping () -> Void) -> Void
34233426
) {
34243427
self.context = context
34253428
self.mode = mode
@@ -3473,7 +3476,7 @@ public class CameraScreenImpl: ViewController, CameraScreen {
34733476
return
34743477
}
34753478
if case let .available(remainingCount) = availability {
3476-
let _ = remainingCount
3479+
self.remainingStoryCount = remainingCount
34773480
return
34783481
}
34793482
self.node.postingAvailable = false
@@ -3639,7 +3642,11 @@ public class CameraScreenImpl: ViewController, CameraScreen {
36393642
if self.cameraState.isCollageEnabled {
36403643
selectionLimit = 6
36413644
} else {
3642-
selectionLimit = 10
3645+
if let remainingStoryCount = self.remainingStoryCount {
3646+
selectionLimit = min(Int(remainingStoryCount), 10)
3647+
} else {
3648+
selectionLimit = 10
3649+
}
36433650
}
36443651
}
36453652
controller = self.context.sharedContext.makeStoryMediaPickerScreen(
@@ -3704,10 +3711,10 @@ public class CameraScreenImpl: ViewController, CameraScreen {
37043711
)
37053712
self.present(alertController, in: .window(.root))
37063713
} else {
3707-
self.completion(.single(.asset(asset)), resultTransition, dismissed)
3714+
self.completion(.single(.asset(asset)), resultTransition, self.remainingStoryCount, dismissed)
37083715
}
37093716
} else if let draft = result as? MediaEditorDraft {
3710-
self.completion(.single(.draft(draft)), resultTransition, dismissed)
3717+
self.completion(.single(.draft(draft)), resultTransition, self.remainingStoryCount, dismissed)
37113718
}
37123719
}
37133720
}
@@ -3753,7 +3760,7 @@ public class CameraScreenImpl: ViewController, CameraScreen {
37533760
}
37543761
} else {
37553762
if let assets = results as? [PHAsset] {
3756-
self.completion(.single(.assets(assets)), nil, {
3763+
self.completion(.single(.assets(assets)), nil, self.remainingStoryCount, {
37573764

37583765
})
37593766
}

submodules/TelegramUI/Components/Gifts/GiftStoreScreen/Sources/GiftStoreScreen.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -338,8 +338,6 @@ final class GiftStoreScreenComponent: Component {
338338
)
339339

340340
if let effectiveGifts = self.effectiveGifts, effectiveGifts.isEmpty && self.state?.starGiftsState?.dataState != .loading {
341-
showClearFilters = true
342-
343341
let emptyAnimationHeight = 148.0
344342
let visibleHeight = availableHeight
345343
let emptyAnimationSpacing: CGFloat = 20.0

submodules/TelegramUI/Components/Gifts/GiftViewScreen/Sources/GiftViewScreen.swift

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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

submodules/TelegramUI/Components/MediaEditor/Sources/MediaEditor.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -988,6 +988,8 @@ public final class MediaEditor {
988988
if let trimRange = self.values.videoTrimRange {
989989
player.currentItem?.forwardPlaybackEndTime = CMTime(seconds: trimRange.upperBound, preferredTimescale: CMTimeScale(1000))
990990
// additionalPlayer?.currentItem?.forwardPlaybackEndTime = CMTime(seconds: trimRange.upperBound, preferredTimescale: CMTimeScale(1000))
991+
} else if let duration = player.currentItem?.duration.seconds, duration > self.maxDuration {
992+
player.currentItem?.forwardPlaybackEndTime = CMTime(seconds: self.maxDuration, preferredTimescale: CMTimeScale(1000))
991993
}
992994

993995
if let initialSeekPosition = self.initialSeekPosition {

submodules/TelegramUI/Components/MediaEditorScreen/Sources/EditStories.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ public extension MediaEditorScreenImpl {
9797
var updateProgressImpl: ((Float) -> Void)?
9898
let controller = MediaEditorScreenImpl(
9999
context: context,
100-
mode: .storyEditor,
100+
mode: .storyEditor(remainingCount: 1),
101101
subject: subject,
102102
isEditing: !repost,
103103
isEditingCover: cover,

0 commit comments

Comments
 (0)