diff --git a/TelegramUI/ChatControllerBackgroundNode.swift b/TelegramUI/ChatControllerBackgroundNode.swift index bf817c0091..d73d441103 100644 --- a/TelegramUI/ChatControllerBackgroundNode.swift +++ b/TelegramUI/ChatControllerBackgroundNode.swift @@ -71,7 +71,7 @@ final class ChatBackgroundNode: ASDisplayNode { private var backgroundImageForWallpaper: (TelegramWallpaper, Bool, UIImage)? private var serviceBackgroundColorForWallpaper: (TelegramWallpaper, UIColor)? -func chatControllerBackgroundImage(wallpaper: TelegramWallpaper, mediaBox: MediaBox) -> UIImage? { +func chatControllerBackgroundImage(wallpaper: TelegramWallpaper, mediaBox: MediaBox, composed: Bool = false) -> UIImage? { var backgroundImage: UIImage? if wallpaper == backgroundImageForWallpaper?.0, (wallpaper.settings?.blur ?? false) == backgroundImageForWallpaper?.1 { backgroundImage = backgroundImageForWallpaper?.2 @@ -88,7 +88,7 @@ func chatControllerBackgroundImage(wallpaper: TelegramWallpaper, mediaBox: Media }) case let .image(representations, settings): if let largest = largestImageRepresentation(representations) { - if settings.blur { + if settings.blur && composed { var image: UIImage? let _ = mediaBox.cachedResourceRepresentation(largest.resource, representation: CachedBlurredWallpaperRepresentation(), complete: true, fetch: true, attemptSynchronously: true).start(next: { data in if data.complete { @@ -111,7 +111,7 @@ func chatControllerBackgroundImage(wallpaper: TelegramWallpaper, mediaBox: Media }) backgroundImage = image } else { - if file.settings.blur { + if file.settings.blur && composed { var image: UIImage? let _ = mediaBox.cachedResourceRepresentation(file.file.resource, representation: CachedBlurredWallpaperRepresentation(), complete: true, fetch: true, attemptSynchronously: true).start(next: { data in if data.complete { diff --git a/TelegramUI/ChatListController.swift b/TelegramUI/ChatListController.swift index af7d3a7833..e773ec7d82 100644 --- a/TelegramUI/ChatListController.swift +++ b/TelegramUI/ChatListController.swift @@ -830,7 +830,6 @@ public class ChatListController: TelegramController, KeyShortcutResponder, UIVie }) #endif - if let lockViewFrame = self.titleView.lockViewFrame, !self.didShowPasscodeLockTooltipController { self.passcodeLockTooltipDisposable.set(combineLatest(queue: .mainQueue(), ApplicationSpecificNotice.getPasscodeLockTips(accountManager: self.context.sharedContext.accountManager), self.context.sharedContext.accountManager.accessChallengeData() |> take(1)).start(next: { [weak self] tooltipValue, passcodeView in if let strongSelf = self { @@ -1069,16 +1068,6 @@ public class ChatListController: TelegramController, KeyShortcutResponder, UIVie return nil } - var isEditing = false - self.chatListDisplayNode.chatListNode.updateState { state in - isEditing = state.editing - return state - } - - if isEditing { - return nil - } - let listLocation = self.view.convert(location, to: self.chatListDisplayNode.chatListNode.view) var selectedNode: ChatListItemNode? diff --git a/TelegramUI/ChatListItem.swift b/TelegramUI/ChatListItem.swift index 5a9f33b8ab..e2b85c608a 100644 --- a/TelegramUI/ChatListItem.swift +++ b/TelegramUI/ChatListItem.swift @@ -837,9 +837,9 @@ class ChatListItemNode: ItemListRevealOptionsItemNode { } if !mentionBadgeLayout.width.isZero { if !badgeSize.isZero { - badgeSize += badgeLayout.width + 4.0 + badgeSize += mentionBadgeLayout.width + 4.0 } else { - badgeSize += badgeLayout.width + 5.0 + badgeSize += mentionBadgeLayout.width + 5.0 } } if let currentPinnedIconImage = currentPinnedIconImage { diff --git a/TelegramUI/ChatListSearchRecentPeersNode.swift b/TelegramUI/ChatListSearchRecentPeersNode.swift index 75fef5caba..136f570de8 100644 --- a/TelegramUI/ChatListSearchRecentPeersNode.swift +++ b/TelegramUI/ChatListSearchRecentPeersNode.swift @@ -159,14 +159,15 @@ final class ChatListSearchRecentPeersNode: ASDisplayNode { let peersDisposable = DisposableSet() let recent: Signal<([Peer], [PeerId: UnreadSearchBadge], [PeerId : PeerPresence]), NoError> = recentPeers(account: account) - |> filter { value -> Bool in - switch value { - case .disabled: - return false - default: - return true - } - } |> mapToSignal { recent in + |> filter { value -> Bool in + switch value { + case .disabled: + return false + default: + return true + } + } + |> mapToSignal { recent in switch recent { case .disabled: return .single(([], [:], [:])) diff --git a/TelegramUI/ChatListStatusNode.swift b/TelegramUI/ChatListStatusNode.swift index a5d6699bad..9e19ee10cd 100644 --- a/TelegramUI/ChatListStatusNode.swift +++ b/TelegramUI/ChatListStatusNode.swift @@ -317,10 +317,12 @@ private class ChatListStatusChecksNode: ChatListStatusContentNode { default: break } + var animating = false if let previousState = self.state, case .delivered = previousState, case .read = state, animated { + animating = true self.animateProgress(from: 1.0, to: 2.0) } - if !animated { + if !animating { if case .delivered = state { self.effectiveProgress = 1.0 } else if case .read = state { diff --git a/TelegramUI/ChatListTitleLockView.swift b/TelegramUI/ChatListTitleLockView.swift index bb06f2be35..cadc9aa3f3 100644 --- a/TelegramUI/ChatListTitleLockView.swift +++ b/TelegramUI/ChatListTitleLockView.swift @@ -5,8 +5,6 @@ final class ChatListTitleLockView: UIView { private let topView: UIImageView private let bottomView: UIImageView - private var isLocked: Bool = false - override init(frame: CGRect) { self.topView = UIImageView() self.bottomView = UIImageView() @@ -21,58 +19,15 @@ final class ChatListTitleLockView: UIView { fatalError("init(coder:) has not been implemented") } - func setIsLocked( _ isLocked: Bool, theme: PresentationTheme, animated: Bool) { - self.isLocked = isLocked - if animated { - let topViewCopy = UIImageView(image: self.topView.image) - topViewCopy.frame = self.topView.frame - self.addSubview(topViewCopy) - - let bottomViewCopy = UIImageView(image: self.bottomView.image) - bottomViewCopy.frame = self.bottomView.frame - self.addSubview(bottomViewCopy) - - self.topView.image = self.isLocked ? PresentationResourcesChatList.lockTopLockedImage(theme) : PresentationResourcesChatList.lockTopUnlockedImage(theme) - self.bottomView.image = self.isLocked ? PresentationResourcesChatList.lockBottomLockedImage(theme) : PresentationResourcesChatList.lockBottomUnlockedImage(theme) - - self.topView.alpha = 0.5 - self.bottomView.alpha = 0.5 - - let block: () -> Void = { - self.layoutItems() - topViewCopy.frame = self.topView.frame - bottomViewCopy.frame = self.bottomView.frame - } - - UIView.animate(withDuration: 0.1, animations: { - topViewCopy.alpha = 0.0 - bottomViewCopy.alpha = 0.0 - - self.topView.alpha = 1.0 - self.bottomView.alpha = 1.0 - }) - - UIView.animate(withDuration: 0.3, delay: 0.0, usingSpringWithDamping: 0.39, initialSpringVelocity: 0.0, options: [], animations: { - block() - }, completion: { _ in - topViewCopy.removeFromSuperview() - bottomViewCopy.removeFromSuperview() - }) - } else { - self.topView.image = self.isLocked ? PresentationResourcesChatList.lockTopLockedImage(theme) : PresentationResourcesChatList.lockTopUnlockedImage(theme) - self.bottomView.image = self.isLocked ? PresentationResourcesChatList.lockBottomLockedImage(theme) : PresentationResourcesChatList.lockBottomUnlockedImage(theme) - self.layoutItems() - } + func updateTheme(_ theme: PresentationTheme) { + self.topView.image = PresentationResourcesChatList.lockTopUnlockedImage(theme) + self.bottomView.image = PresentationResourcesChatList.lockBottomUnlockedImage(theme) + self.layoutItems() } private func layoutItems() { - if self.isLocked { - self.topView.frame = CGRect(x: floorToScreenPixels((10.0 - 7.0) / 2.0), y: 0.0, width: 7.0, height: 6.0) - self.bottomView.frame = CGRect(x: 0.0, y: 6.0, width: 10.0, height: 7.0) - } else { - self.topView.frame = CGRect(x: 6.0, y: 0.0, width: 7.0, height: 6.0) - self.bottomView.frame = CGRect(x: 0.0, y: 6.0, width: 10.0, height: 7.0) - } + self.topView.frame = CGRect(x: 6.0, y: 0.0, width: 7.0, height: 6.0) + self.bottomView.frame = CGRect(x: 0.0, y: 6.0, width: 10.0, height: 8.0) } override func layoutSubviews() { diff --git a/TelegramUI/ChatListTitleView.swift b/TelegramUI/ChatListTitleView.swift index 75920cb14c..546306aa5d 100644 --- a/TelegramUI/ChatListTitleView.swift +++ b/TelegramUI/ChatListTitleView.swift @@ -39,11 +39,10 @@ final class ChatListTitleView: UIView, NavigationBarTitleView, NavigationBarTitl self.buttonView.isHidden = !self.title.isPasscodeSet if self.title.isPasscodeSet && !self.title.activity { self.lockView.isHidden = false - self.lockView.setIsLocked(self.title.isManuallyLocked, theme: self.theme, animated: !self.bounds.size.width.isZero) } else { self.lockView.isHidden = true - self.lockView.setIsLocked(false, theme: self.theme, animated: false) } + self.lockView.updateTheme(self.theme) self.setNeedsLayout() } @@ -60,11 +59,7 @@ final class ChatListTitleView: UIView, NavigationBarTitleView, NavigationBarTitl didSet { self.titleNode.attributedText = NSAttributedString(string: self.title.text, font: Font.bold(17.0), textColor: self.theme.rootController.navigationBar.primaryTextColor) - if self.isPasscodeSet { - self.lockView.setIsLocked(self.isManuallyLocked, theme: self.theme, animated: false) - } else { - self.lockView.setIsLocked(false, theme: self.theme, animated: false) - } + self.lockView.updateTheme(self.theme) self.activityIndicator.type = .custom(self.theme.rootController.navigationBar.primaryTextColor, 22.0, 1.5, false) self.proxyNode.theme = self.theme @@ -202,7 +197,7 @@ final class ChatListTitleView: UIView, NavigationBarTitleView, NavigationBarTitl let buttonX = max(0.0, titleFrame.minX - 10.0) self.buttonView.frame = CGRect(origin: CGPoint(x: buttonX, y: 0.0), size: CGSize(width: min(titleFrame.maxX + 28.0, size.width) - buttonX, height: size.height)) - self.lockView.frame = CGRect(x: titleFrame.maxX + 6.0, y: titleFrame.minY + 3.0, width: 2.0, height: 2.0) + self.lockView.frame = CGRect(x: titleFrame.maxX + 6.0, y: titleFrame.minY + 2.0, width: 2.0, height: 2.0) self.activityIndicator.frame = CGRect(origin: CGPoint(x: titleFrame.minX - indicatorSize.width - 4.0, y: titleFrame.minY - 1.0), size: indicatorSize) } diff --git a/TelegramUI/ChatMessageAnimatedStickerItemNode.swift b/TelegramUI/ChatMessageAnimatedStickerItemNode.swift index bdc43b20dc..f6f3c948c4 100644 --- a/TelegramUI/ChatMessageAnimatedStickerItemNode.swift +++ b/TelegramUI/ChatMessageAnimatedStickerItemNode.swift @@ -429,6 +429,13 @@ class ChatMessageAnimatedStickerItemNode: ChatMessageItemView { if item.effectiveAuthorId?.namespace == Namespaces.Peer.Empty { item.controllerInteraction.displayMessageTooltip(item.content.firstMessage.id, item.presentationData.strings.Conversation_ForwardAuthorHiddenTooltip, self, avatarNode.frame) } else { + if let channel = item.content.firstMessage.forwardInfo?.author as? TelegramChannel, channel.username == nil { + if case .member = channel.participationStatus { + } else { + item.controllerInteraction.displayMessageTooltip(item.message.id, item.presentationData.strings.Conversation_PrivateChannelTooltip, self, avatarNode.frame) + return + } + } item.controllerInteraction.openPeer(item.effectiveAuthorId ?? author.id, navigate, item.message) } } diff --git a/TelegramUI/ChatMessageBubbleItemNode.swift b/TelegramUI/ChatMessageBubbleItemNode.swift index 477c827aad..31e45e4ed5 100644 --- a/TelegramUI/ChatMessageBubbleItemNode.swift +++ b/TelegramUI/ChatMessageBubbleItemNode.swift @@ -1654,6 +1654,13 @@ class ChatMessageBubbleItemNode: ChatMessageItemView { if item.effectiveAuthorId?.namespace == Namespaces.Peer.Empty { item.controllerInteraction.displayMessageTooltip(item.content.firstMessage.id, item.presentationData.strings.Conversation_ForwardAuthorHiddenTooltip, self, avatarNode.frame) } else { + if let channel = item.content.firstMessage.forwardInfo?.author as? TelegramChannel, channel.username == nil { + if case .member = channel.participationStatus { + } else { + item.controllerInteraction.displayMessageTooltip(item.message.id, item.presentationData.strings.Conversation_PrivateChannelTooltip, self, avatarNode.frame) + return + } + } item.controllerInteraction.openPeer(item.effectiveAuthorId ?? author.id, navigate, item.message) } } @@ -1696,6 +1703,13 @@ class ChatMessageBubbleItemNode: ChatMessageItemView { if let forwardInfoNode = self.forwardInfoNode, forwardInfoNode.frame.contains(location) { if let item = self.item, let forwardInfo = item.message.forwardInfo { if let sourceMessageId = forwardInfo.sourceMessageId { + if let channel = forwardInfo.author as? TelegramChannel, channel.username == nil { + if case .member = channel.participationStatus { + } else { + item.controllerInteraction.displayMessageTooltip(item.message.id, item.presentationData.strings.Conversation_PrivateChannelTooltip, forwardInfoNode, nil) + return + } + } item.controllerInteraction.navigateToMessage(item.message.id, sourceMessageId) } else if let id = forwardInfo.source?.id ?? forwardInfo.author?.id { item.controllerInteraction.openPeer(id, .info, nil) diff --git a/TelegramUI/ChatMessageForwardInfoNode.swift b/TelegramUI/ChatMessageForwardInfoNode.swift index 1c39ee4976..1047fbc8de 100644 --- a/TelegramUI/ChatMessageForwardInfoNode.swift +++ b/TelegramUI/ChatMessageForwardInfoNode.swift @@ -2,6 +2,7 @@ import Foundation import AsyncDisplayKit import Display import Postbox +import TelegramCore private let prefixFont = Font.regular(13.0) private let peerFont = Font.medium(13.0) @@ -48,9 +49,21 @@ class ChatMessageForwardInfoNode: ASDisplayNode { completeSourceString = strings.Message_ForwardedMessageShort(peerString) } + var highlight = true + if let peer = peer { + if let channel = peer as? TelegramChannel, channel.username == nil { + if case .member = channel.participationStatus { + } else { + highlight = false + } + } + } else { + highlight = false + } + let completeString: NSString = completeSourceString.0 as NSString let string = NSMutableAttributedString(string: completeString as String, attributes: [NSAttributedStringKey.foregroundColor: titleColor, NSAttributedStringKey.font: prefixFont]) - if peer != nil, let range = completeSourceString.1.first?.1 { + if highlight, let range = completeSourceString.1.first?.1 { string.addAttributes([NSAttributedStringKey.font: peerFont], range: range) } let (textLayout, textApply) = textNodeLayout(TextNodeLayoutArguments(attributedString: string, backgroundColor: nil, maximumNumberOfLines: 2, truncationType: .end, constrainedSize: constrainedSize, alignment: .natural, cutout: nil, insets: UIEdgeInsets())) diff --git a/TelegramUI/ChatMessageInstantVideoItemNode.swift b/TelegramUI/ChatMessageInstantVideoItemNode.swift index 6b91fe8021..ae751a50fb 100644 --- a/TelegramUI/ChatMessageInstantVideoItemNode.swift +++ b/TelegramUI/ChatMessageInstantVideoItemNode.swift @@ -534,6 +534,13 @@ class ChatMessageInstantVideoItemNode: ChatMessageItemView { if item.effectiveAuthorId?.namespace == Namespaces.Peer.Empty { item.controllerInteraction.displayMessageTooltip(item.content.firstMessage.id, item.presentationData.strings.Conversation_ForwardAuthorHiddenTooltip, self, avatarNode.frame) } else { + if let channel = item.content.firstMessage.forwardInfo?.author as? TelegramChannel, channel.username == nil { + if case .member = channel.participationStatus { + } else { + item.controllerInteraction.displayMessageTooltip(item.message.id, item.presentationData.strings.Conversation_PrivateChannelTooltip, forwardInfoNode, nil) + return + } + } item.controllerInteraction.openPeer(item.effectiveAuthorId ?? author.id, navigate, item.message) } } @@ -554,6 +561,13 @@ class ChatMessageInstantVideoItemNode: ChatMessageItemView { if let forwardInfoNode = self.forwardInfoNode, forwardInfoNode.frame.contains(location) { if let item = self.item, let forwardInfo = item.message.forwardInfo { if let sourceMessageId = forwardInfo.sourceMessageId { + if let channel = forwardInfo.author as? TelegramChannel, channel.username == nil { + if case .member = channel.participationStatus { + } else { + item.controllerInteraction.displayMessageTooltip(item.message.id, item.presentationData.strings.Conversation_PrivateChannelTooltip, forwardInfoNode, nil) + return + } + } item.controllerInteraction.navigateToMessage(item.message.id, sourceMessageId) } else if let id = forwardInfo.source?.id ?? forwardInfo.author?.id { item.controllerInteraction.openPeer(id, .chat(textInputState: nil, messageId: nil), nil) diff --git a/TelegramUI/ChatMessageStickerItemNode.swift b/TelegramUI/ChatMessageStickerItemNode.swift index 6e22be4fea..c9a6ac1f82 100644 --- a/TelegramUI/ChatMessageStickerItemNode.swift +++ b/TelegramUI/ChatMessageStickerItemNode.swift @@ -563,6 +563,13 @@ class ChatMessageStickerItemNode: ChatMessageItemView { if item.effectiveAuthorId?.namespace == Namespaces.Peer.Empty { item.controllerInteraction.displayMessageTooltip(item.content.firstMessage.id, item.presentationData.strings.Conversation_ForwardAuthorHiddenTooltip, self, avatarNode.frame) } else { + if let channel = item.content.firstMessage.forwardInfo?.author as? TelegramChannel, channel.username == nil { + if case .member = channel.participationStatus { + } else { + item.controllerInteraction.displayMessageTooltip(item.message.id, item.presentationData.strings.Conversation_PrivateChannelTooltip, self, avatarNode.frame) + return + } + } item.controllerInteraction.openPeer(item.effectiveAuthorId ?? author.id, navigate, item.message) } } diff --git a/TelegramUI/HorizontalPeerItem.swift b/TelegramUI/HorizontalPeerItem.swift index ee2e87d938..2267dcb53d 100644 --- a/TelegramUI/HorizontalPeerItem.swift +++ b/TelegramUI/HorizontalPeerItem.swift @@ -120,6 +120,8 @@ final class HorizontalPeerItemNode: ListViewItemNode { func asyncLayout() -> (HorizontalPeerItem, ListViewItemLayoutParams) -> (ListViewItemNodeLayout, (Bool) -> Void) { let badgeTextLayout = TextNode.asyncLayout(self.badgeTextNode) let onlineLayout = self.onlineNode.asyncLayout() + + let currentItem = self.item return { [weak self] item, params in let itemLayout = ListViewItemNodeLayout(contentSize: CGSize(width: 92.0, height: item.customWidth ?? 80.0), insets: UIEdgeInsets()) @@ -177,6 +179,10 @@ final class HorizontalPeerItemNode: ListViewItemNode { } let (onlineLayout, onlineApply) = onlineLayout(online) + var animateContent = false + if let currentItem = currentItem, currentItem.peer.id == item.peer.id { + animateContent = true + } return (itemLayout, { animated in if let strongSelf = self { @@ -207,7 +213,7 @@ final class HorizontalPeerItemNode: ListViewItemNode { strongSelf.onlineNode.frame = CGRect(x: itemLayout.size.width - onlineLayout.width - 18.0, y: itemLayout.size.height - onlineLayout.height - 18.0, width: onlineLayout.width, height: onlineLayout.height) let _ = badgeApply() - let _ = onlineApply(true) + let _ = onlineApply(animateContent) } }) } diff --git a/TelegramUI/OpenChatMessage.swift b/TelegramUI/OpenChatMessage.swift index d6a08b51fd..be4e7fe777 100644 --- a/TelegramUI/OpenChatMessage.swift +++ b/TelegramUI/OpenChatMessage.swift @@ -43,13 +43,13 @@ private func chatMessageGalleryControllerData(context: AccountContext, message: } else if let image = media as? TelegramMediaImage { galleryMedia = image } else if let webpage = media as? TelegramMediaWebpage, case let .Loaded(content) = webpage.content { - if let file = content.file { - galleryMedia = file - } else if let image = content.image { - if ["photo", "document", "video", "gif"].contains(content.type) { - galleryMedia = image - } + if let file = content.file { + galleryMedia = file + } else if let image = content.image { + if ["photo", "document", "video", "gif", "telegram_album"].contains(content.type) { + galleryMedia = image } + } if let instantPage = content.instantPage, let galleryMedia = galleryMedia { switch instantPageType(of: content) { diff --git a/TelegramUI/PasscodeEntryController.swift b/TelegramUI/PasscodeEntryController.swift index e8cc4990b9..09e00813a1 100644 --- a/TelegramUI/PasscodeEntryController.swift +++ b/TelegramUI/PasscodeEntryController.swift @@ -4,6 +4,16 @@ import AsyncDisplayKit import SwiftSignalKit import Postbox +final public class PasscodeEntryControllerPresentationArguments { + let animated: Bool + let lockIconInitialFrame: () -> CGRect + + public init(animated: Bool = true, lockIconInitialFrame: @escaping () -> CGRect) { + self.animated = animated + self.lockIconInitialFrame = lockIconInitialFrame + } +} + final public class PasscodeEntryController: ViewController { private var controllerNode: PasscodeEntryControllerNode { return self.displayNode as! PasscodeEntryControllerNode @@ -15,18 +25,18 @@ final public class PasscodeEntryController: ViewController { private let challengeData: PostboxAccessChallengeData private let enableBiometrics: Bool - private let animated: Bool + private let arguments: PasscodeEntryControllerPresentationArguments public var presentationCompleted: (() -> Void)? private let biometricsDisposable = MetaDisposable() - public init(context: AccountContext, challengeData: PostboxAccessChallengeData, enableBiometrics: Bool, animated: Bool = false) { + public init(context: AccountContext, challengeData: PostboxAccessChallengeData, enableBiometrics: Bool, arguments: PasscodeEntryControllerPresentationArguments) { self.context = context self.presentationData = context.sharedContext.currentPresentationData.with { $0 } self.challengeData = challengeData self.enableBiometrics = enableBiometrics - self.animated = animated + self.arguments = arguments super.init(navigationBarPresentationData: nil) @@ -123,7 +133,7 @@ final public class PasscodeEntryController: ViewController { super.viewDidAppear(animated) self.controllerNode.activateInput() - if self.animated { + if self.arguments.animated { Queue.mainQueue().after(0.5) { serviceSoundManager.playLockSound() } diff --git a/TelegramUI/PasscodeEntryControllerNode.swift b/TelegramUI/PasscodeEntryControllerNode.swift index 2005ebecc2..f5becd4f68 100644 --- a/TelegramUI/PasscodeEntryControllerNode.swift +++ b/TelegramUI/PasscodeEntryControllerNode.swift @@ -116,7 +116,7 @@ final class PasscodeEntryControllerNode: ASDisplayNode { switch self.wallpaper { case .image, .file: - if let image = chatControllerBackgroundImage(wallpaper: self.wallpaper, mediaBox: self.context.sharedContext.accountManager.mediaBox) { + if let image = chatControllerBackgroundImage(wallpaper: self.wallpaper, mediaBox: self.context.sharedContext.accountManager.mediaBox, composed: false) { self.background = ImageBasedPasscodeBackground(image: image, size: validLayout.size) } else { self.background = DefaultPasscodeBackground(size: validLayout.size) @@ -210,7 +210,7 @@ final class PasscodeEntryControllerNode: ASDisplayNode { transition.updateFrame(view: self.effectView, frame: bounds) let iconSize = CGSize(width: 35.0, height: 37.0) - transition.updateFrame(node: self.iconNode, frame: CGRect(origin: CGPoint(x: floor((layout.size.width - iconSize.width) / 2.0) + 11.0, y: layout.insets(options: .statusBar).top + 15.0), size: iconSize)) + transition.updateFrame(node: self.iconNode, frame: CGRect(origin: CGPoint(x: floor((layout.size.width - iconSize.width) / 2.0) + 6.0, y: layout.insets(options: .statusBar).top + 15.0), size: iconSize)) let titleSize = self.titleNode.updateLayout(layout: layout, transition: transition) transition.updateFrame(node: self.titleNode, frame: CGRect(origin: CGPoint(x: 0.0, y: 123.0), size: titleSize)) diff --git a/TelegramUI/PasscodeEntryKeyboardNode.swift b/TelegramUI/PasscodeEntryKeyboardNode.swift index 8a0593c4a6..2948035c8d 100644 --- a/TelegramUI/PasscodeEntryKeyboardNode.swift +++ b/TelegramUI/PasscodeEntryKeyboardNode.swift @@ -3,8 +3,17 @@ import Display import AsyncDisplayKit import SwiftSignalKit -private let titleFont = Font.regular(40.0) -private let subtitleFont: UIFont = { +private let regularTitleFont = Font.regular(36.0) +private let regularSubtitleFont: UIFont = { + if #available(iOS 8.2, *) { + return UIFont.systemFont(ofSize: 10.0, weight: UIFont.Weight.bold) + } else { + return CTFontCreateWithName("HelveticaNeue-Bold" as CFString, 10.0, nil) + } +}() + +private let largeTitleFont = Font.regular(40.0) +private let largeSubtitleFont: UIFont = { if #available(iOS 8.2, *) { return UIFont.systemFont(ofSize: 12.0, weight: UIFont.Weight.bold) } else { @@ -35,13 +44,32 @@ private func generateButtonImage(background: PasscodeBackground, frame: CGRect, context.setAlpha(1.0) context.textMatrix = .identity - var offset: CGFloat = -11.0 - if subtitle.isEmpty { - offset -= 7.0 + let titleFont: UIFont + let subtitleFont: UIFont + let titleOffset: CGFloat + let subtitleOffset: CGFloat + if size.width > 80.0 { + titleFont = largeTitleFont + subtitleFont = largeSubtitleFont + if subtitle.isEmpty { + titleOffset = -18.0 + } else { + titleOffset = -11.0 + } + subtitleOffset = -54.0 + } else { + titleFont = regularTitleFont + subtitleFont = regularSubtitleFont + if subtitle.isEmpty { + titleOffset = -17.0 + } else { + titleOffset = -10.0 + } + subtitleOffset = -48.0 } let titlePath = CGMutablePath() - titlePath.addRect(bounds.offsetBy(dx: 0.0, dy: offset)) + titlePath.addRect(bounds.offsetBy(dx: 0.0, dy: titleOffset)) let titleString = NSAttributedString(string: title, font: titleFont, textColor: .white, paragraphAlignment: .center) let titleFramesetter = CTFramesetterCreateWithAttributedString(titleString as CFAttributedString) let titleFrame = CTFramesetterCreateFrame(titleFramesetter, CFRangeMake(0, titleString.length), titlePath, nil) @@ -49,7 +77,7 @@ private func generateButtonImage(background: PasscodeBackground, frame: CGRect, if !subtitle.isEmpty { let subtitlePath = CGMutablePath() - subtitlePath.addRect(bounds.offsetBy(dx: 0.0, dy: -54.0)) + subtitlePath.addRect(bounds.offsetBy(dx: 0.0, dy: subtitleOffset)) let subtitleString = NSAttributedString(string: subtitle, font: subtitleFont, textColor: .white, paragraphAlignment: .center) let subtitleFramesetter = CTFramesetterCreateWithAttributedString(subtitleString as CFAttributedString) let subtitleFrame = CTFramesetterCreateFrame(subtitleFramesetter, CFRangeMake(0, subtitleString.length), subtitlePath, nil) @@ -205,75 +233,85 @@ final class PasscodeEntryKeyboardNode: ASDisplayNode { let size: CGSize let offset: CGFloat - let height = Int(max(layout.size.width, layout.size.height)) - switch height { - case 1024, 1194, 1366: - buttonSize = 81.0 - horizontalSecond = 106.0 - horizontalThird = 212.0 - verticalSecond = 100.0 + UIScreenPixel - verticalThird = 202.0 - verticalFourth = 303.0 - size = CGSize(width: 293.0, height: 384.0) - offset = 0.0 - case 896: - buttonSize = 85.0 - horizontalSecond = 115.0 - horizontalThird = 230.0 - verticalSecond = 100.0 - verticalThird = 200.0 - verticalFourth = 300.0 - size = CGSize(width: 315.0, height: 385.0) - offset = 240.0 - case 812: - buttonSize = 85.0 - horizontalSecond = 115.0 - horizontalThird = 230.0 - verticalSecond = 100.0 - verticalThird = 200.0 - verticalFourth = 300.0 - size = CGSize(width: 315.0, height: 385.0) - offset = 240.0 - case 736: - buttonSize = 75.0 - horizontalSecond = 103.5 - horizontalThird = 206.0 - verticalSecond = 90.0 - verticalThird = 180.0 - verticalFourth = 270.0 - size = CGSize(width: 281.0, height: 345.0) - offset = 0.0 - case 667: - buttonSize = 75.0 - horizontalSecond = 103.5 - horizontalThird = 206.0 - verticalSecond = 90.0 - verticalThird = 180.0 - verticalFourth = 270.0 - size = CGSize(width: 281.0, height: 345.0) - offset = 0.0 - case 568: - buttonSize = 75.0 - horizontalSecond = 95.0 - horizontalThird = 190.0 - verticalSecond = 88.0 - verticalThird = 176.0 - verticalFourth = 264.0 - size = CGSize(width: 265.0, height: 339.0) - offset = 0.0 - default: - buttonSize = 75.0 - horizontalSecond = 95.0 - horizontalThird = 190.0 - verticalSecond = 88.0 - verticalThird = 176.0 - verticalFourth = 264.0 - size = CGSize(width: 265.0, height: 339.0) - offset = 0.0 + let metrics = DeviceMetrics.forScreenSize(layout.size) + if let metrics = metrics { + switch metrics { + case .iPhone4: + buttonSize = 75.0 + horizontalSecond = 95.0 + horizontalThird = 190.0 + verticalSecond = 88.0 + verticalThird = 176.0 + verticalFourth = 264.0 + size = CGSize(width: 265.0, height: 339.0) + offset = 0.0 + case .iPhone5: + buttonSize = 75.0 + horizontalSecond = 95.0 + horizontalThird = 190.0 + verticalSecond = 88.0 + verticalThird = 176.0 + verticalFourth = 264.0 + size = CGSize(width: 265.0, height: 339.0) + offset = 0.0 + case .iPhone6: + buttonSize = 75.0 + horizontalSecond = 103.0 + horizontalThird = 206.0 + verticalSecond = 90.0 + verticalThird = 180.0 + verticalFourth = 270.0 + size = CGSize(width: 281.0, height: 345.0) + offset = 0.0 + case .iPhone6Plus: + buttonSize = 75.0 + horizontalSecond = 103.0 + horizontalThird = 206.0 + verticalSecond = 90.0 + verticalThird = 180.0 + verticalFourth = 270.0 + size = CGSize(width: 281.0, height: 345.0) + offset = 0.0 + case .iPhoneX: + buttonSize = 75.0 + horizontalSecond = 103.0 + horizontalThird = 206.0 + verticalSecond = 91.0 + verticalThird = 182.0 + verticalFourth = 273.0 + size = CGSize(width: 281.0, height: 345.0) + offset = 294.0 + case .iPhoneXSMax: + buttonSize = 85.0 + horizontalSecond = 115.0 + horizontalThird = 230.0 + verticalSecond = 100.0 + verticalThird = 200.0 + verticalFourth = 300.0 + size = CGSize(width: 315.0, height: 385.0) + offset = 240.0 + case .iPad, .iPadPro10Inch, .iPadPro11Inch, .iPadPro, .iPadPro3rdGen: + buttonSize = 81.0 + horizontalSecond = 106.0 + horizontalThird = 212.0 + verticalSecond = 101.0 + verticalThird = 202.0 + verticalFourth = 303.0 + size = CGSize(width: 293.0, height: 384.0) + offset = 0.0 + } + } else { + buttonSize = 75.0 + horizontalSecond = 95.0 + horizontalThird = 190.0 + verticalSecond = 88.0 + verticalThird = 176.0 + verticalFourth = 264.0 + size = CGSize(width: 265.0, height: 339.0) + offset = 0.0 } let origin = CGPoint(x: floor((layout.size.width - size.width) / 2.0), y: offset) - if let subnodes = self.subnodes { for i in 0 ..< subnodes.count { var origin = origin diff --git a/TelegramUI/PasscodeOptionsController.swift b/TelegramUI/PasscodeOptionsController.swift index 9e58be08f2..707e9f9dab 100644 --- a/TelegramUI/PasscodeOptionsController.swift +++ b/TelegramUI/PasscodeOptionsController.swift @@ -209,11 +209,6 @@ private func passcodeOptionsControllerEntries(presentationData: PresentationData entries.append(.touchId(presentationData.theme, presentationData.strings.PasscodeSettings_UnlockWithFaceId, passcodeOptionsData.presentationSettings.enableBiometrics)) } } - var simplePasscode = false - if case .numericalPassword = passcodeOptionsData.accessChallenge { - simplePasscode = true - } - entries.append(.simplePasscode(presentationData.theme, presentationData.strings.PasscodeSettings_SimplePasscode, simplePasscode)) } return entries diff --git a/TelegramUI/PresentationResourceKey.swift b/TelegramUI/PresentationResourceKey.swift index 4e8badc591..f4d1a97444 100644 --- a/TelegramUI/PresentationResourceKey.swift +++ b/TelegramUI/PresentationResourceKey.swift @@ -54,8 +54,6 @@ enum PresentationResourceKey: Int32 { case itemListCloseIconImage - case chatListLockTopLockedImage - case chatListLockBottomLockedImage case chatListLockTopUnlockedImage case chatListLockBottomUnlockedImage case chatListPending diff --git a/TelegramUI/PresentationResourcesChatList.swift b/TelegramUI/PresentationResourcesChatList.swift index e5b9707ceb..c9af803012 100644 --- a/TelegramUI/PresentationResourcesChatList.swift +++ b/TelegramUI/PresentationResourcesChatList.swift @@ -99,30 +99,6 @@ struct PresentationResourcesChatList { }) } - static func lockTopLockedImage(_ theme: PresentationTheme) -> UIImage? { - return theme.image(PresentationResourceKey.chatListLockTopLockedImage.rawValue, { theme in - return generateImage(CGSize(width: 7.0, height: 6.0), rotatedContext: { size, context in - context.clear(CGRect(origin: CGPoint(), size: size)) - context.setFillColor(theme.rootController.navigationBar.accentTextColor.cgColor) - context.setStrokeColor(theme.rootController.navigationBar.accentTextColor.cgColor) - context.setLineWidth(1.5) - context.addPath(UIBezierPath(roundedRect: CGRect(x: 0.75, y: 0.75, width: 5.5, height: 12.0), cornerRadius: 2.5).cgPath) - context.strokePath() - }) - }) - } - - static func lockBottomLockedImage(_ theme: PresentationTheme) -> UIImage? { - return theme.image(PresentationResourceKey.chatListLockBottomLockedImage.rawValue, { theme in - return generateImage(CGSize(width: 10.0, height: 7.0), rotatedContext: { size, context in - context.clear(CGRect(origin: CGPoint(), size: size)) - context.setFillColor(theme.rootController.navigationBar.accentTextColor.cgColor) - context.addPath(UIBezierPath(roundedRect: CGRect(x: 0.0, y: 0.0, width: 10.0, height: 7.0), cornerRadius: 1.33).cgPath) - context.fillPath() - }) - }) - } - static func lockTopUnlockedImage(_ theme: PresentationTheme) -> UIImage? { return theme.image(PresentationResourceKey.chatListLockTopUnlockedImage.rawValue, { theme in return generateImage(CGSize(width: 7.0, height: 6.0), rotatedContext: { size, context in @@ -141,17 +117,15 @@ struct PresentationResourcesChatList { static func lockBottomUnlockedImage(_ theme: PresentationTheme) -> UIImage? { return theme.image(PresentationResourceKey.chatListLockBottomUnlockedImage.rawValue, { theme in - return generateImage(CGSize(width: 10.0, height: 7.0), rotatedContext: { size, context in + return generateImage(CGSize(width: 10.0, height: 8.0), rotatedContext: { size, context in context.clear(CGRect(origin: CGPoint(), size: size)) context.setFillColor(theme.rootController.navigationBar.primaryTextColor.cgColor) - context.addPath(UIBezierPath(roundedRect: CGRect(x: 0.0, y: 0.0, width: 10.0, height: 7.0), cornerRadius: 1.33).cgPath) + context.addPath(UIBezierPath(roundedRect: CGRect(x: 0.0, y: 0.0, width: 10.0, height: 8.0), cornerRadius: 1.5).cgPath) context.fillPath() }) }) } - - static func recentStatusOnlineIcon(_ theme: PresentationTheme, state: RecentStatusOnlineIconState) -> UIImage? { let key: PresentationResourceKey switch state { diff --git a/TelegramUI/PresentationStrings.swift b/TelegramUI/PresentationStrings.swift index b8a09bef3c..969092b50a 100644 --- a/TelegramUI/PresentationStrings.swift +++ b/TelegramUI/PresentationStrings.swift @@ -3474,229 +3474,230 @@ public final class PresentationStrings { } public var Group_AdminLog_EmptyText: String { return self._s[3123]! } public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[3124]! } - public var AccessDenied_VideoMicrophone: String { return self._s[3126]! } - public var Conversation_ContextMenuStickerPackAdd: String { return self._s[3127]! } - public var Cache_ClearNone: String { return self._s[3128]! } - public var SocksProxySetup_FailedToConnect: String { return self._s[3129]! } - public var Permissions_NotificationsTitle_v0: String { return self._s[3130]! } + public var Conversation_PrivateChannelTooltip: String { return self._s[3126]! } + public var AccessDenied_VideoMicrophone: String { return self._s[3127]! } + public var Conversation_ContextMenuStickerPackAdd: String { return self._s[3128]! } + public var Cache_ClearNone: String { return self._s[3129]! } + public var SocksProxySetup_FailedToConnect: String { return self._s[3130]! } + public var Permissions_NotificationsTitle_v0: String { return self._s[3131]! } public func Channel_AdminLog_MessageEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3131]!, self._r[3131]!, [_0]) + return formatWithArgumentRanges(self._s[3132]!, self._r[3132]!, [_0]) } - public var Passport_Identity_Country: String { return self._s[3132]! } + public var Passport_Identity_Country: String { return self._s[3133]! } public func ChatSettings_AutoDownloadSettings_TypeFile(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3133]!, self._r[3133]!, [_0]) - } - public func Notification_CreatedChat(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3134]!, self._r[3134]!, [_0]) } - public var AccessDenied_Settings: String { return self._s[3135]! } - public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[3136]! } - public var Month_ShortMay: String { return self._s[3137]! } - public var Compose_NewGroup: String { return self._s[3138]! } - public var Group_Setup_TypePrivate: String { return self._s[3140]! } - public var Login_PadPhoneHelpTitle: String { return self._s[3142]! } - public var Appearance_ThemeDayClassic: String { return self._s[3143]! } - public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[3144]! } - public var AutoDownloadSettings_OffForAll: String { return self._s[3145]! } - public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3146]! } - public var Conversation_typing: String { return self._s[3148]! } - public var Paint_Masks: String { return self._s[3149]! } - public var Username_InvalidTaken: String { return self._s[3150]! } - public var Call_StatusNoAnswer: String { return self._s[3151]! } - public var TwoStepAuth_EmailAddSuccess: String { return self._s[3152]! } - public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[3153]! } - public var Passport_Identity_Selfie: String { return self._s[3154]! } - public var Login_InfoLastNamePlaceholder: String { return self._s[3155]! } - public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[3156]! } - public var Conversation_ClearSecretHistory: String { return self._s[3157]! } - public var NetworkUsageSettings_Title: String { return self._s[3159]! } - public var Your_cards_security_code_is_invalid: String { return self._s[3161]! } + public func Notification_CreatedChat(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3135]!, self._r[3135]!, [_0]) + } + public var AccessDenied_Settings: String { return self._s[3136]! } + public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[3137]! } + public var Month_ShortMay: String { return self._s[3138]! } + public var Compose_NewGroup: String { return self._s[3139]! } + public var Group_Setup_TypePrivate: String { return self._s[3141]! } + public var Login_PadPhoneHelpTitle: String { return self._s[3143]! } + public var Appearance_ThemeDayClassic: String { return self._s[3144]! } + public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[3145]! } + public var AutoDownloadSettings_OffForAll: String { return self._s[3146]! } + public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3147]! } + public var Conversation_typing: String { return self._s[3149]! } + public var Paint_Masks: String { return self._s[3150]! } + public var Username_InvalidTaken: String { return self._s[3151]! } + public var Call_StatusNoAnswer: String { return self._s[3152]! } + public var TwoStepAuth_EmailAddSuccess: String { return self._s[3153]! } + public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[3154]! } + public var Passport_Identity_Selfie: String { return self._s[3155]! } + public var Login_InfoLastNamePlaceholder: String { return self._s[3156]! } + public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[3157]! } + public var Conversation_ClearSecretHistory: String { return self._s[3158]! } + public var NetworkUsageSettings_Title: String { return self._s[3160]! } + public var Your_cards_security_code_is_invalid: String { return self._s[3162]! } public func Notification_LeftChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3163]!, self._r[3163]!, [_0]) + return formatWithArgumentRanges(self._s[3164]!, self._r[3164]!, [_0]) } public func Call_CallInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3164]!, self._r[3164]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3165]!, self._r[3165]!, [_1, _2]) } - public var SaveIncomingPhotosSettings_From: String { return self._s[3166]! } - public var Map_LiveLocationTitle: String { return self._s[3167]! } - public var Login_InfoAvatarAdd: String { return self._s[3168]! } - public var Passport_Identity_FilesView: String { return self._s[3169]! } - public var UserInfo_GenericPhoneLabel: String { return self._s[3170]! } - public var Privacy_Calls_NeverAllow: String { return self._s[3171]! } + public var SaveIncomingPhotosSettings_From: String { return self._s[3167]! } + public var Map_LiveLocationTitle: String { return self._s[3168]! } + public var Login_InfoAvatarAdd: String { return self._s[3169]! } + public var Passport_Identity_FilesView: String { return self._s[3170]! } + public var UserInfo_GenericPhoneLabel: String { return self._s[3171]! } + public var Privacy_Calls_NeverAllow: String { return self._s[3172]! } public func Contacts_AddPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3172]!, self._r[3172]!, [_0]) + return formatWithArgumentRanges(self._s[3173]!, self._r[3173]!, [_0]) } - public var TwoStepAuth_ConfirmationText: String { return self._s[3173]! } - public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[3174]! } + public var TwoStepAuth_ConfirmationText: String { return self._s[3174]! } + public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[3175]! } public func PUSH_CHAT_MESSAGE_VIDEOS(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3175]!, self._r[3175]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3176]!, self._r[3176]!, [_1, _2, _3]) } - public var Channel_AdminLogFilter_AdminsAll: String { return self._s[3176]! } - public var Tour_Title2: String { return self._s[3177]! } - public var Conversation_FileOpenIn: String { return self._s[3178]! } - public var Checkout_ErrorPrecheckoutFailed: String { return self._s[3179]! } - public var Wallpaper_Set: String { return self._s[3180]! } - public var Passport_Identity_Translations: String { return self._s[3182]! } + public var Channel_AdminLogFilter_AdminsAll: String { return self._s[3177]! } + public var Tour_Title2: String { return self._s[3178]! } + public var Conversation_FileOpenIn: String { return self._s[3179]! } + public var Checkout_ErrorPrecheckoutFailed: String { return self._s[3180]! } + public var Wallpaper_Set: String { return self._s[3181]! } + public var Passport_Identity_Translations: String { return self._s[3183]! } public func Channel_AdminLog_MessageChangedChannelAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3183]!, self._r[3183]!, [_0]) + return formatWithArgumentRanges(self._s[3184]!, self._r[3184]!, [_0]) } - public var Channel_LeaveChannel: String { return self._s[3184]! } + public var Channel_LeaveChannel: String { return self._s[3185]! } public func PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3185]!, self._r[3185]!, [_1]) + return formatWithArgumentRanges(self._s[3186]!, self._r[3186]!, [_1]) } - public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[3186]! } - public var PhotoEditor_HighlightsTint: String { return self._s[3187]! } - public var Passport_Email_Delete: String { return self._s[3188]! } - public var Conversation_Mute: String { return self._s[3190]! } - public var Channel_AdminLog_CanSendMessages: String { return self._s[3192]! } + public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[3187]! } + public var PhotoEditor_HighlightsTint: String { return self._s[3188]! } + public var Passport_Email_Delete: String { return self._s[3189]! } + public var Conversation_Mute: String { return self._s[3191]! } + public var Channel_AdminLog_CanSendMessages: String { return self._s[3193]! } public func Notification_PassportValuesSentMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3194]!, self._r[3194]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3195]!, self._r[3195]!, [_1, _2]) } - public var Calls_CallTabDescription: String { return self._s[3195]! } - public var Passport_Identity_NativeNameHelp: String { return self._s[3196]! } - public var Common_No: String { return self._s[3197]! } - public var Weekday_Sunday: String { return self._s[3198]! } - public var Notification_Reply: String { return self._s[3199]! } - public var Conversation_ViewMessage: String { return self._s[3200]! } + public var Calls_CallTabDescription: String { return self._s[3196]! } + public var Passport_Identity_NativeNameHelp: String { return self._s[3197]! } + public var Common_No: String { return self._s[3198]! } + public var Weekday_Sunday: String { return self._s[3199]! } + public var Notification_Reply: String { return self._s[3200]! } + public var Conversation_ViewMessage: String { return self._s[3201]! } public func Checkout_SavePasswordTimeoutAndFaceId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3201]!, self._r[3201]!, [_0]) - } - public func Map_LiveLocationPrivateDescription(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3202]!, self._r[3202]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[3203]! } - public var Message_PinnedDocumentMessage: String { return self._s[3204]! } - public var DialogList_TabTitle: String { return self._s[3206]! } - public var ChatSettings_AutoPlayTitle: String { return self._s[3207]! } - public var Passport_FieldEmail: String { return self._s[3208]! } - public var Conversation_UnpinMessageAlert: String { return self._s[3209]! } - public var Passport_Address_TypeBankStatement: String { return self._s[3210]! } - public var Passport_Identity_ExpiryDate: String { return self._s[3211]! } - public var Privacy_Calls_P2P: String { return self._s[3212]! } + public func Map_LiveLocationPrivateDescription(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3203]!, self._r[3203]!, [_0]) + } + public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[3204]! } + public var Message_PinnedDocumentMessage: String { return self._s[3205]! } + public var DialogList_TabTitle: String { return self._s[3207]! } + public var ChatSettings_AutoPlayTitle: String { return self._s[3208]! } + public var Passport_FieldEmail: String { return self._s[3209]! } + public var Conversation_UnpinMessageAlert: String { return self._s[3210]! } + public var Passport_Address_TypeBankStatement: String { return self._s[3211]! } + public var Passport_Identity_ExpiryDate: String { return self._s[3212]! } + public var Privacy_Calls_P2P: String { return self._s[3213]! } public func CancelResetAccount_Success(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3214]!, self._r[3214]!, [_0]) + return formatWithArgumentRanges(self._s[3215]!, self._r[3215]!, [_0]) } - public var SocksProxySetup_UseForCallsHelp: String { return self._s[3215]! } + public var SocksProxySetup_UseForCallsHelp: String { return self._s[3216]! } public func PUSH_CHAT_ALBUM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3216]!, self._r[3216]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3217]!, self._r[3217]!, [_1, _2]) } - public var Stickers_ClearRecent: String { return self._s[3217]! } - public var EnterPasscode_ChangeTitle: String { return self._s[3218]! } - public var Passport_InfoText: String { return self._s[3219]! } - public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[3220]! } + public var Stickers_ClearRecent: String { return self._s[3218]! } + public var EnterPasscode_ChangeTitle: String { return self._s[3219]! } + public var Passport_InfoText: String { return self._s[3220]! } + public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[3221]! } public func Login_InvalidPhoneEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3221]!, self._r[3221]!, [_0]) + return formatWithArgumentRanges(self._s[3222]!, self._r[3222]!, [_0]) } public func Time_PreciseDate_m3(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3222]!, self._r[3222]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3223]!, self._r[3223]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[3223]! } - public var Passport_Identity_EditDriversLicense: String { return self._s[3224]! } - public var Conversation_TapAndHoldToRecord: String { return self._s[3226]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[3227]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[3224]! } + public var Passport_Identity_EditDriversLicense: String { return self._s[3225]! } + public var Conversation_TapAndHoldToRecord: String { return self._s[3227]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[3228]! } public func Notification_CallTimeFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3228]!, self._r[3228]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3229]!, self._r[3229]!, [_1, _2]) } - public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[3230]! } + public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[3231]! } public func Generic_OpenHiddenLinkAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3232]!, self._r[3232]!, [_0]) + return formatWithArgumentRanges(self._s[3233]!, self._r[3233]!, [_0]) } - public var DialogList_Unread: String { return self._s[3233]! } + public var DialogList_Unread: String { return self._s[3234]! } public func PUSH_CHAT_MESSAGE_GIF(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3234]!, self._r[3234]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3235]!, self._r[3235]!, [_1, _2]) } - public var User_DeletedAccount: String { return self._s[3235]! } + public var User_DeletedAccount: String { return self._s[3236]! } public func Watch_Time_ShortYesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3236]!, self._r[3236]!, [_0]) + return formatWithArgumentRanges(self._s[3237]!, self._r[3237]!, [_0]) } - public var UserInfo_NotificationsDefault: String { return self._s[3237]! } - public var SharedMedia_CategoryMedia: String { return self._s[3238]! } - public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[3239]! } - public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[3240]! } - public var Watch_ChatList_Compose: String { return self._s[3241]! } - public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[3242]! } - public var AutoDownloadSettings_Delimeter: String { return self._s[3243]! } - public var Watch_Microphone_Access: String { return self._s[3244]! } - public var Group_Setup_HistoryHeader: String { return self._s[3245]! } - public var Activity_UploadingPhoto: String { return self._s[3246]! } - public var Conversation_Edit: String { return self._s[3248]! } - public var Group_ErrorSendRestrictedMedia: String { return self._s[3249]! } - public var Login_TermsOfServiceDecline: String { return self._s[3250]! } - public var Message_PinnedContactMessage: String { return self._s[3251]! } + public var UserInfo_NotificationsDefault: String { return self._s[3238]! } + public var SharedMedia_CategoryMedia: String { return self._s[3239]! } + public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[3240]! } + public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[3241]! } + public var Watch_ChatList_Compose: String { return self._s[3242]! } + public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[3243]! } + public var AutoDownloadSettings_Delimeter: String { return self._s[3244]! } + public var Watch_Microphone_Access: String { return self._s[3245]! } + public var Group_Setup_HistoryHeader: String { return self._s[3246]! } + public var Activity_UploadingPhoto: String { return self._s[3247]! } + public var Conversation_Edit: String { return self._s[3249]! } + public var Group_ErrorSendRestrictedMedia: String { return self._s[3250]! } + public var Login_TermsOfServiceDecline: String { return self._s[3251]! } + public var Message_PinnedContactMessage: String { return self._s[3252]! } public func Channel_AdminLog_MessageRestrictedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3252]!, self._r[3252]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3253]!, self._r[3253]!, [_1, _2]) } public func Login_PhoneBannedEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3253]!, self._r[3253]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[3254]!, self._r[3254]!, [_1, _2, _3, _4, _5]) } - public var Appearance_LargeEmoji: String { return self._s[3254]! } - public var TwoStepAuth_AdditionalPassword: String { return self._s[3256]! } + public var Appearance_LargeEmoji: String { return self._s[3255]! } + public var TwoStepAuth_AdditionalPassword: String { return self._s[3257]! } public func PUSH_CHAT_DELETE_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3257]!, self._r[3257]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3258]!, self._r[3258]!, [_1, _2]) } - public var Passport_Phone_EnterOtherNumber: String { return self._s[3258]! } - public var Message_PinnedPhotoMessage: String { return self._s[3259]! } - public var Passport_FieldPhone: String { return self._s[3260]! } - public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[3261]! } - public var ChatSettings_AutoPlayGifs: String { return self._s[3262]! } - public var InfoPlist_NSCameraUsageDescription: String { return self._s[3264]! } - public var Conversation_Call: String { return self._s[3265]! } - public var Common_TakePhoto: String { return self._s[3267]! } - public var Channel_NotificationLoading: String { return self._s[3268]! } + public var Passport_Phone_EnterOtherNumber: String { return self._s[3259]! } + public var Message_PinnedPhotoMessage: String { return self._s[3260]! } + public var Passport_FieldPhone: String { return self._s[3261]! } + public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[3262]! } + public var ChatSettings_AutoPlayGifs: String { return self._s[3263]! } + public var InfoPlist_NSCameraUsageDescription: String { return self._s[3265]! } + public var Conversation_Call: String { return self._s[3266]! } + public var Common_TakePhoto: String { return self._s[3268]! } + public var Channel_NotificationLoading: String { return self._s[3269]! } public func Notification_Exceptions_Sound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3269]!, self._r[3269]!, [_0]) + return formatWithArgumentRanges(self._s[3270]!, self._r[3270]!, [_0]) } public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3270]!, self._r[3270]!, [_1]) + return formatWithArgumentRanges(self._s[3271]!, self._r[3271]!, [_1]) } - public var Permissions_SiriTitle_v0: String { return self._s[3271]! } + public var Permissions_SiriTitle_v0: String { return self._s[3272]! } public func Login_ResetAccountProtected_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3272]!, self._r[3272]!, [_0]) + return formatWithArgumentRanges(self._s[3273]!, self._r[3273]!, [_0]) } - public var Channel_MessagePhotoRemoved: String { return self._s[3273]! } - public var Common_edit: String { return self._s[3274]! } - public var PrivacySettings_AuthSessions: String { return self._s[3275]! } - public var Month_ShortJune: String { return self._s[3276]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[3277]! } - public var Call_ReportSend: String { return self._s[3278]! } - public var Watch_LastSeen_JustNow: String { return self._s[3279]! } - public var Notifications_MessageNotifications: String { return self._s[3280]! } - public var WallpaperSearch_ColorGreen: String { return self._s[3281]! } - public var BroadcastListInfo_AddRecipient: String { return self._s[3283]! } - public var Group_Status: String { return self._s[3284]! } + public var Channel_MessagePhotoRemoved: String { return self._s[3274]! } + public var Common_edit: String { return self._s[3275]! } + public var PrivacySettings_AuthSessions: String { return self._s[3276]! } + public var Month_ShortJune: String { return self._s[3277]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[3278]! } + public var Call_ReportSend: String { return self._s[3279]! } + public var Watch_LastSeen_JustNow: String { return self._s[3280]! } + public var Notifications_MessageNotifications: String { return self._s[3281]! } + public var WallpaperSearch_ColorGreen: String { return self._s[3282]! } + public var BroadcastListInfo_AddRecipient: String { return self._s[3284]! } + public var Group_Status: String { return self._s[3285]! } public func AutoNightTheme_LocationHelp(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3285]!, self._r[3285]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3286]!, self._r[3286]!, [_0, _1]) } - public var ShareMenu_ShareTo: String { return self._s[3286]! } - public var Conversation_Moderate_Ban: String { return self._s[3287]! } + public var ShareMenu_ShareTo: String { return self._s[3287]! } + public var Conversation_Moderate_Ban: String { return self._s[3288]! } public func Conversation_DeleteMessagesFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3288]!, self._r[3288]!, [_0]) + return formatWithArgumentRanges(self._s[3289]!, self._r[3289]!, [_0]) } - public var SharedMedia_ViewInChat: String { return self._s[3289]! } - public var Map_LiveLocationFor8Hours: String { return self._s[3290]! } + public var SharedMedia_ViewInChat: String { return self._s[3290]! } + public var Map_LiveLocationFor8Hours: String { return self._s[3291]! } public func PUSH_PINNED_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3291]!, self._r[3291]!, [_1]) + return formatWithArgumentRanges(self._s[3292]!, self._r[3292]!, [_1]) } public func PUSH_PINNED_POLL(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3292]!, self._r[3292]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3293]!, self._r[3293]!, [_1, _2]) } public func Map_AccurateTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3294]!, self._r[3294]!, [_0]) + return formatWithArgumentRanges(self._s[3295]!, self._r[3295]!, [_0]) } - public var Map_OpenInHereMaps: String { return self._s[3295]! } - public var Appearance_ReduceMotion: String { return self._s[3296]! } + public var Map_OpenInHereMaps: String { return self._s[3296]! } + public var Appearance_ReduceMotion: String { return self._s[3297]! } public func PUSH_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3297]!, self._r[3297]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3298]!, self._r[3298]!, [_1, _2]) } - public var Channel_Setup_TypePublicHelp: String { return self._s[3298]! } - public var Passport_Identity_EditInternalPassport: String { return self._s[3299]! } - public var PhotoEditor_Skip: String { return self._s[3300]! } - public func Conversation_LiveLocationMembersCount(_ value: Int32) -> String { + public var Channel_Setup_TypePublicHelp: String { return self._s[3299]! } + public var Passport_Identity_EditInternalPassport: String { return self._s[3300]! } + public var PhotoEditor_Skip: String { return self._s[3301]! } + public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[0 * 6 + Int(form.rawValue)]!, stringValue) } - public func UserCount(_ value: Int32) -> String { + public func ChatList_SelectedChats(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[1 * 6 + Int(form.rawValue)]!, stringValue) @@ -3706,511 +3707,511 @@ public final class PresentationStrings { let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[2 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notification_GameScoreSelfExtended(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[3 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Weeks(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[4 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[5 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Map_ETAHours(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[6 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_Video(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedGifs(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, stringValue) + public func PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[3 * 6 + Int(form.rawValue)]!, _2, _1, _3) } public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[9 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func DialogList_LiveLocationChatsCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[10 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortDays(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[11 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notification_GameScoreExtended(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedFiles(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[13 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_Photo(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[15 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func ForwardedMessages(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[16 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedStickers(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[17 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[18 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteExpires_Days(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[19 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Seconds(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[21 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[22 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedVideoMessages(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[23 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[24 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[25 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MessageTimer_Hours(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[26 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[27 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Media_ShareVideo(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[28 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_ExceptionMuteExpires_Days(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[29 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[4 * 6 + Int(form.rawValue)]!, _1, _2) } public func MessageTimer_ShortWeeks(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[30 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[5 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_ShortHours(_ value: Int32) -> String { + public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[31 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_AddMaskCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[32 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteExpires_Minutes(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[33 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Watch_LastSeen_HoursAgo(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[34 * 6 + Int(form.rawValue)]!, stringValue) - } - public func AttachmentMenu_SendVideo(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[35 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[36 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func ServiceMessage_GameScoreSimple(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[37 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[38 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[39 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Media_SharePhoto(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[41 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Wallpaper_DeleteConfirmation(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[42 * 6 + Int(form.rawValue)]!, stringValue) - } - public func AttachmentMenu_SendPhoto(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[43 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Map_ETAMinutes(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[44 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[46 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func MessageTimer_Years(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[47 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteFor_Hours(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_Seconds(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, stringValue) - } - public func CreatePoll_AddMoreOptions(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[50 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[51 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Media_ShareItem(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[52 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Passport_Scans(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[53 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[54 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LastSeen_HoursAgo(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[55 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedAudios(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[56 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Notification_GameScoreSimple(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[58 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_Minutes(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[59 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedLocations(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[60 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_File(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[61 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortMinutes(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[62 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_Generic(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_DeleteConfirmation(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteExpires_Hours(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[65 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PasscodeSettings_FailedAttempts(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LastSeen_MinutesAgo(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessagePoll_VotedCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[68 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[69 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Watch_UserInfo_Mute(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[70 * 6 + Int(form.rawValue)]!, stringValue) - } - public func AttachmentMenu_SendGif(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[72 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteFor_Days(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[73 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedContacts(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[74 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_StickerCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[75 * 6 + Int(form.rawValue)]!, stringValue) - } - public func QuickSend_Photos(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[76 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_StatusSubscribers(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[77 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[78 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedVideos(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[79 * 6 + Int(form.rawValue)]!, stringValue) - } - public func GroupInfo_ParticipantCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[80 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Minutes(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[82 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_Exceptions(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortSeconds(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[84 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func ForwardedPolls(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[86 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Months(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_AddStickerCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[88 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[89 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func Conversation_StatusMembers(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[90 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedPhotos(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[91 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_ShortSeconds(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[92 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, _0, _1) - } - public func InviteText_ContactsCountText(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[94 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Contacts_ImportersCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[6 * 6 + Int(form.rawValue)]!, stringValue) } public func Chat_DeleteMessagesConfirmation(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[96 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, stringValue) } - public func ChatList_SelectedChats(_ value: Int32) -> String { + public func ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, _0, _1) + } + public func DialogList_LiveLocationChatsCount(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[97 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[9 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + public func ForwardedPhotos(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[10 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortMinutes(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[11 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[98 * 6 + Int(form.rawValue)]!, _2, _1, _3) + return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[13 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, stringValue) + } + public func AttachmentMenu_SendGif(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[15 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortSeconds(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[16 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[17 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedVideos(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[18 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_ShortSeconds(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[19 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PasscodeSettings_FailedAttempts(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_ExceptionMuteExpires_Days(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[21 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_StickerCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[22 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteFor_Hours(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[23 * 6 + Int(form.rawValue)]!, stringValue) + } + public func InviteText_ContactsCountText(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[24 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Watch_UserInfo_Mute(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[25 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[26 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func MuteExpires_Days(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[27 * 6 + Int(form.rawValue)]!, stringValue) } public func AttachmentMenu_SendItem(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[99 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_Link(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[100 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[28 * 6 + Int(form.rawValue)]!, stringValue) } public func Invitation_Members(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[101 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[29 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteExpires_Hours(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[30 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Media_ShareVideo(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[31 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Media_SharePhoto(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[32 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notification_GameScoreExtended(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[33 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[34 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Map_ETAMinutes(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[35 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Years(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[36 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_StatusSubscribers(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[37 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedMessages(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[38 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreSimple(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[39 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_DeleteConfirmation(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[41 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[42 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_File(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[43 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessagePoll_VotedCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[44 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedAudios(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedContacts(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[46 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Hours(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[47 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func ForwardedStickers(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Photo(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[50 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[51 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func MessageTimer_Minutes(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[52 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LastSeen_MinutesAgo(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[53 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Media_ShareItem(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[54 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortDays(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[55 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteExpires_Minutes(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[56 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Contacts_ImportersCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[58 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LastSeen_HoursAgo(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[59 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[60 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func UserCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[61 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteFor_Days(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[62 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, _1, _2) } public func MessageTimer_Days(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[102 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[103 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { + public func MessageTimer_Weeks(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[104 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[65 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedPolls(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notification_GameScoreSelfExtended(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[68 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func Wallpaper_DeleteConfirmation(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[69 * 6 + Int(form.rawValue)]!, stringValue) + } + public func AttachmentMenu_SendVideo(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[70 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Watch_LastSeen_HoursAgo(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[72 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedFiles(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[73 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Video(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[74 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedVideoMessages(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[75 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[76 * 6 + Int(form.rawValue)]!, stringValue) + } + public func AttachmentMenu_SendPhoto(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[77 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Seconds(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[78 * 6 + Int(form.rawValue)]!, stringValue) + } + public func GroupInfo_ParticipantCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[79 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[80 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Call_Minutes(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_ShortMinutes(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[82 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Generic(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, stringValue) } public func Conversation_StatusOnline(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[84 * 6 + Int(form.rawValue)]!, stringValue) + } + public func QuickSend_Photos(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Map_ETAHours(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[86 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_AddStickerCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_LiveLocationMembersCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[88 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedGifs(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[89 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Link(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[90 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_Seconds(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[91 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Passport_Scans(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[92 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_AddMaskCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[94 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func Notification_GameScoreSimple(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[96 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[97 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[98 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func CreatePoll_AddMoreOptions(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[99 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortHours(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[100 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[101 * 6 + Int(form.rawValue)]!, stringValue) } public func Forward_ConfirmMultipleFiles(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[102 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Months(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[103 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedLocations(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[104 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_StatusMembers(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_Exceptions(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, stringValue) } - public func Call_ShortMinutes(_ value: Int32) -> String { + public func ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[107 * 6 + Int(form.rawValue)]!, stringValue) diff --git a/TelegramUI/Resources/PresentationStrings.mapping b/TelegramUI/Resources/PresentationStrings.mapping index af78dd004b..f0cb072387 100644 Binary files a/TelegramUI/Resources/PresentationStrings.mapping and b/TelegramUI/Resources/PresentationStrings.mapping differ