mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-23 14:45:21 +00:00
Various improvements
This commit is contained in:
@@ -513,7 +513,7 @@ extension ChatControllerImpl {
|
||||
title = self.presentationData.strings.Chat_ToastStarsSent_Title(Int32(self.currentSendStarsUndoCount))
|
||||
}
|
||||
|
||||
let textItems = extractAnimatedTextString(string: self.presentationData.strings.Chat_ToastStarsSent_Text("", ""), id: "text", mapping: [
|
||||
let textItems = AnimatedTextComponent.extractAnimatedTextString(string: self.presentationData.strings.Chat_ToastStarsSent_Text("", ""), id: "text", mapping: [
|
||||
0: .number(self.currentSendStarsUndoCount, minDigits: 1),
|
||||
1: .text(self.presentationData.strings.Chat_ToastStarsSent_TextStarAmount(Int32(self.currentSendStarsUndoCount)))
|
||||
])
|
||||
@@ -536,31 +536,3 @@ extension ChatControllerImpl {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private func extractAnimatedTextString(string: PresentationStrings.FormattedString, id: String, mapping: [Int: AnimatedTextComponent.Item.Content]) -> [AnimatedTextComponent.Item] {
|
||||
var textItems: [AnimatedTextComponent.Item] = []
|
||||
|
||||
var previousIndex = 0
|
||||
let nsString = string.string as NSString
|
||||
for range in string.ranges.sorted(by: { $0.range.lowerBound < $1.range.lowerBound }) {
|
||||
if range.range.lowerBound > previousIndex {
|
||||
textItems.append(AnimatedTextComponent.Item(id: AnyHashable("\(id)_text_before_\(range.index)"), isUnbreakable: true, content: .text(nsString.substring(with: NSRange(location: previousIndex, length: range.range.lowerBound - previousIndex)))))
|
||||
}
|
||||
if let value = mapping[range.index] {
|
||||
let isUnbreakable: Bool
|
||||
switch value {
|
||||
case .text:
|
||||
isUnbreakable = true
|
||||
case .number:
|
||||
isUnbreakable = false
|
||||
}
|
||||
textItems.append(AnimatedTextComponent.Item(id: AnyHashable("\(id)_item_\(range.index)"), isUnbreakable: isUnbreakable, content: value))
|
||||
}
|
||||
previousIndex = range.range.upperBound
|
||||
}
|
||||
if nsString.length > previousIndex {
|
||||
textItems.append(AnimatedTextComponent.Item(id: AnyHashable("\(id)_text_end"), isUnbreakable: true, content: .text(nsString.substring(with: NSRange(location: previousIndex, length: nsString.length - previousIndex)))))
|
||||
}
|
||||
|
||||
return textItems
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user