Skip to content

Commit

Permalink
Cherry-pick various improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
laktyushin committed Nov 6, 2023
1 parent a7c63e1 commit c8c08d5
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 14 deletions.
18 changes: 18 additions & 0 deletions Telegram/Telegram-iOS/en.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -10433,3 +10433,21 @@ Sorry for the inconvenience.";
"CountriesList.SaveCountries" = "Save Countries";
"CountriesList.SelectUpTo_1" = "select up to %@ country";
"CountriesList.SelectUpTo_any" = "select up to %@ countries";

"Message.GiveawayOngoing" = "Giveaway: %1$@ on %2$@";
"Message.GiveawayOngoing.Winners_1" = "%@ winner to be selected";
"Message.GiveawayOngoing.Winners_any" = "%@ winners to be selected";

"Message.GiveawayFinished" = "Giveaway: %1$@ on %2$@";
"Message.GiveawayFinished.Winners_1" = "%@ winner was selected";
"Message.GiveawayFinished.Winners_any" = "%@ winners were selected";

"Conversation.PinnedGiveaway" = "Giveaway";

"Conversation.PinnedGiveaway.Ongoing" = "%1$@ on %2$@";
"Conversation.PinnedGiveaway.Ongoing.Winners_1" = "%@ winner to be selected";
"Conversation.PinnedGiveaway.Ongoing.Winners_any" = "%@ winners to be selected";

"Conversation.PinnedGiveaway.Finished" = "%1$@ on %2$@";
"Conversation.PinnedGiveaway.Finished.Winners_1" = "%@ winner was selected";
"Conversation.PinnedGiveaway.Finished.Winners_any" = "%@ winners were selected";
15 changes: 12 additions & 3 deletions submodules/ChatListUI/Sources/Node/ChatListItemStrings.swift
Original file line number Diff line number Diff line change
Expand Up @@ -305,9 +305,18 @@ public func chatListItemStrings(strings: PresentationStrings, nameDisplayOrder:
} else {
messageText = strings.Notification_Story
}
case _ as TelegramMediaGiveaway:
messageText = strings.Message_Giveaway
case let webpage as TelegramMediaWebpage:
case let giveaway as TelegramMediaGiveaway:
let dateString = stringForDateWithoutYear(date: Date(timeIntervalSince1970: TimeInterval(giveaway.untilDate)), timeZone: .current, strings: strings)
let currentTime = Int32(CFAbsoluteTimeGetCurrent() + kCFAbsoluteTimeIntervalSince1970)
let isFinished = currentTime >= giveaway.untilDate
if isFinished {
let winnersString = strings.Message_GiveawayFinished_Winners(giveaway.quantity)
messageText = strings.Message_GiveawayFinished(winnersString, dateString).string
} else {
let winnersString = strings.Message_GiveawayOngoing_Winners(giveaway.quantity)
messageText = strings.Message_GiveawayOngoing(winnersString, dateString).string
}
case let webpage as TelegramMediaWebpage:
if messageText.isEmpty, case let .Loaded(content) = webpage.content {
messageText = content.displayUrl
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,6 @@ swift_library(
"//submodules/TelegramUI/Components/Chat/ChatMessageWallpaperBubbleContentNode",
"//submodules/TelegramUI/Components/Chat/ChatMessageGiftBubbleContentNode",
"//submodules/TelegramUI/Components/Chat/ChatMessageGiveawayBubbleContentNode",
"//submodules/TelegramUI/Components/Chat/ChatMessageJoinedChannelBubbleContentNode",
],
visibility = [
"//visibility:public",
Expand Down
39 changes: 29 additions & 10 deletions submodules/TelegramUI/Sources/ChatPinnedMessageTitlePanelNode.swift
Original file line number Diff line number Diff line change
Expand Up @@ -583,19 +583,25 @@ final class ChatPinnedMessageTitlePanelNode: ChatTitleAccessoryPanelNode {
var updatedMediaReference: AnyMediaReference?
var imageDimensions: CGSize?

let giveaway = pinnedMessage.message.media.first(where: { $0 is TelegramMediaGiveaway }) as? TelegramMediaGiveaway

var titleStrings: [AnimatedCountLabelNode.Segment] = []
if pinnedMessage.totalCount == 2 {
if pinnedMessage.index == 0 {
titleStrings.append(.text(0, NSAttributedString(string: "\(strings.Conversation_PinnedPreviousMessage) ", font: Font.medium(15.0), textColor: theme.chat.inputPanel.panelControlAccentColor)))
if let _ = giveaway {
titleStrings.append(.text(0, NSAttributedString(string: "\(strings.Conversation_PinnedGiveaway) ", font: Font.medium(15.0), textColor: theme.chat.inputPanel.panelControlAccentColor)))
} else {
if pinnedMessage.totalCount == 2 {
if pinnedMessage.index == 0 {
titleStrings.append(.text(0, NSAttributedString(string: "\(strings.Conversation_PinnedPreviousMessage) ", font: Font.medium(15.0), textColor: theme.chat.inputPanel.panelControlAccentColor)))
} else {
titleStrings.append(.text(0, NSAttributedString(string: "\(strings.Conversation_PinnedMessage) ", font: Font.medium(15.0), textColor: theme.chat.inputPanel.panelControlAccentColor)))
}
} else if pinnedMessage.totalCount > 1 && pinnedMessage.index != pinnedMessage.totalCount - 1 {
titleStrings.append(.text(0, NSAttributedString(string: "\(strings.Conversation_PinnedMessage)", font: Font.medium(15.0), textColor: theme.chat.inputPanel.panelControlAccentColor)))
titleStrings.append(.text(1, NSAttributedString(string: " #", font: Font.medium(15.0), textColor: theme.chat.inputPanel.panelControlAccentColor)))
titleStrings.append(.number(pinnedMessage.index + 1, NSAttributedString(string: "\(pinnedMessage.index + 1)", font: Font.medium(15.0), textColor: theme.chat.inputPanel.panelControlAccentColor)))
} else {
titleStrings.append(.text(0, NSAttributedString(string: "\(strings.Conversation_PinnedMessage) ", font: Font.medium(15.0), textColor: theme.chat.inputPanel.panelControlAccentColor)))
}
} else if pinnedMessage.totalCount > 1 && pinnedMessage.index != pinnedMessage.totalCount - 1 {
titleStrings.append(.text(0, NSAttributedString(string: "\(strings.Conversation_PinnedMessage)", font: Font.medium(15.0), textColor: theme.chat.inputPanel.panelControlAccentColor)))
titleStrings.append(.text(1, NSAttributedString(string: " #", font: Font.medium(15.0), textColor: theme.chat.inputPanel.panelControlAccentColor)))
titleStrings.append(.number(pinnedMessage.index + 1, NSAttributedString(string: "\(pinnedMessage.index + 1)", font: Font.medium(15.0), textColor: theme.chat.inputPanel.panelControlAccentColor)))
} else {
titleStrings.append(.text(0, NSAttributedString(string: "\(strings.Conversation_PinnedMessage) ", font: Font.medium(15.0), textColor: theme.chat.inputPanel.panelControlAccentColor)))
}

if !message.containsSecretMedia {
Expand Down Expand Up @@ -679,7 +685,20 @@ final class ChatPinnedMessageTitlePanelNode: ChatTitleAccessoryPanelNode {

let messageText: NSAttributedString
let textFont = Font.regular(15.0)
if isText {
if let giveaway {
let dateString = stringForDateWithoutYear(date: Date(timeIntervalSince1970: TimeInterval(giveaway.untilDate)), timeZone: .current, strings: strings)
let currentTime = Int32(CFAbsoluteTimeGetCurrent() + kCFAbsoluteTimeIntervalSince1970)
let isFinished = currentTime >= giveaway.untilDate
let text: String
if isFinished {
let winnersString = strings.Conversation_PinnedGiveaway_Finished_Winners(giveaway.quantity)
text = strings.Conversation_PinnedGiveaway_Finished(winnersString, dateString).string
} else {
let winnersString = strings.Conversation_PinnedGiveaway_Ongoing_Winners(giveaway.quantity)
text = strings.Conversation_PinnedGiveaway_Ongoing(winnersString, dateString).string
}
messageText = NSAttributedString(string: text, font: textFont, textColor: theme.chat.inputPanel.primaryTextColor)
} else if isText {
var text = message.text
var messageEntities = message.textEntitiesAttribute?.entities ?? []

Expand Down

0 comments on commit c8c08d5

Please sign in to comment.