mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-22 14:20:20 +00:00
Various improvements
This commit is contained in:
@@ -68,6 +68,9 @@ public final class ChatMessageNotificationItem: NotificationItem {
|
||||
private let compactAvatarFont = avatarPlaceholderFont(size: 20.0)
|
||||
private let avatarFont = avatarPlaceholderFont(size: 24.0)
|
||||
|
||||
private let telegramCodeRegex = try? NSRegularExpression(pattern: "(?<=: )\\b\\d{5,8}\\b(?=\\.)", options: [])
|
||||
private let loginCodeRegex = try? NSRegularExpression(pattern: "\\b\\d{5,8}\\b", options: [])
|
||||
|
||||
final class ChatMessageNotificationItemNode: NotificationItemNode {
|
||||
private var item: ChatMessageNotificationItem?
|
||||
|
||||
@@ -330,6 +333,31 @@ final class ChatMessageNotificationItemNode: NotificationItemNode {
|
||||
let textFont = compact ? Font.regular(15.0) : Font.regular(16.0)
|
||||
let textColor = presentationData.theme.inAppNotification.primaryTextColor
|
||||
var attributedMessageText: NSAttributedString
|
||||
|
||||
var customEntities: [MessageTextEntity] = []
|
||||
if item.messages[0].id.peerId.isTelegramNotifications || item.messages[0].id.peerId.isVerificationCodes {
|
||||
let regex: NSRegularExpression?
|
||||
if item.messages[0].id.peerId.isTelegramNotifications {
|
||||
regex = telegramCodeRegex
|
||||
} else {
|
||||
regex = loginCodeRegex
|
||||
}
|
||||
if let matches = regex?.matches(in: item.messages[0].text, options: [], range: NSMakeRange(0, (item.messages[0].text as NSString).length)) {
|
||||
if let first = matches.first {
|
||||
customEntities.append(MessageTextEntity(range: first.range.location ..< first.range.location + first.range.length, type: .Spoiler))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if !customEntities.isEmpty {
|
||||
if messageEntities == nil {
|
||||
messageEntities = customEntities
|
||||
} else if var currentEntities = messageEntities {
|
||||
currentEntities.append(contentsOf: customEntities)
|
||||
messageEntities = customEntities
|
||||
}
|
||||
}
|
||||
|
||||
if let messageEntities = messageEntities {
|
||||
attributedMessageText = stringWithAppliedEntities(messageText, entities: messageEntities, baseColor: textColor, linkColor: textColor, baseFont: textFont, linkFont: textFont, boldFont: textFont, italicFont: textFont, boldItalicFont: textFont, fixedFont: textFont, blockQuoteFont: textFont, underlineLinks: false, message: item.messages.first)
|
||||
} else {
|
||||
@@ -406,7 +434,7 @@ final class ChatMessageNotificationItemNode: NotificationItemNode {
|
||||
let _ = titleApply()
|
||||
|
||||
let makeTextLayout = TextNodeWithEntities.asyncLayout(self.textNode)
|
||||
let (textLayout, textApply) = makeTextLayout(TextNodeLayoutArguments(attributedString: self.textAttributedText, backgroundColor: nil, maximumNumberOfLines: 2, truncationType: .end, constrainedSize: CGSize(width: width - leftInset - rightInset, height: CGFloat.greatestFiniteMagnitude), alignment: .left, lineSpacing: 0.0, cutout: nil, insets: UIEdgeInsets()))
|
||||
let (textLayout, textApply) = makeTextLayout(TextNodeLayoutArguments(attributedString: self.textAttributedText, backgroundColor: nil, maximumNumberOfLines: 2, truncationType: .end, constrainedSize: CGSize(width: width - leftInset - rightInset, height: CGFloat.greatestFiniteMagnitude), alignment: .left, lineSpacing: 0.0, cutout: nil, insets: UIEdgeInsets(), displaySpoilers: false))
|
||||
let _ = titleApply()
|
||||
|
||||
if let item = self.item {
|
||||
|
||||
Reference in New Issue
Block a user