diff --git a/submodules/TelegramUI/Sources/ChatController.swift b/submodules/TelegramUI/Sources/ChatController.swift index 2c105cf5a9..d1663b6355 100644 --- a/submodules/TelegramUI/Sources/ChatController.swift +++ b/submodules/TelegramUI/Sources/ChatController.swift @@ -7038,7 +7038,22 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G |> deliverOnMainQueue).start(next: { results in if let strongSelf = self { let replyMessageId = strongSelf.presentationInterfaceState.interfaceState.replyMessageId - + + var groupingKey: Int64? + var allItemsAreAudio = true + for item in results { + if let item = item { + let pathExtension = (item.fileName as NSString).pathExtension.lowercased() + if !["mp3", "m4a"].contains(pathExtension) { + allItemsAreAudio = false + } + } + } + + if allItemsAreAudio { + groupingKey = arc4random64() + } + var messages: [EnqueueMessage] = [] for item in results { if let item = item { @@ -7055,7 +7070,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } let file = TelegramMediaFile(fileId: MediaId(namespace: Namespaces.Media.LocalFile, id: fileId), partialReference: nil, resource: ICloudFileResource(urlData: item.urlData, thumbnail: false), previewRepresentations: previewRepresentations, videoThumbnails: [], immediateThumbnailData: nil, mimeType: mimeType, size: item.fileSize, attributes: attributes) - let message: EnqueueMessage = .message(text: "", attributes: [], mediaReference: .standalone(media: file), replyToMessageId: replyMessageId, localGroupingKey: nil) + let message: EnqueueMessage = .message(text: "", attributes: [], mediaReference: .standalone(media: file), replyToMessageId: replyMessageId, localGroupingKey: groupingKey) messages.append(message) } } diff --git a/submodules/TelegramUI/Sources/ChatInterfaceStateContextMenus.swift b/submodules/TelegramUI/Sources/ChatInterfaceStateContextMenus.swift index 85e86eb843..2c57eb9114 100644 --- a/submodules/TelegramUI/Sources/ChatInterfaceStateContextMenus.swift +++ b/submodules/TelegramUI/Sources/ChatInterfaceStateContextMenus.swift @@ -809,6 +809,22 @@ func contextMenuForChatPresentationIntefaceState(chatPresentationInterfaceState: var clearCacheAsDelete = false if message.id.peerId.namespace == Namespaces.Peer.CloudChannel { + var views: Int = 0 + for attribute in message.attributes { + if let attribute = attribute as? ViewCountMessageAttribute { + views = attribute.count + } + } + if views >= 100 { + actions.append(.action(ContextMenuActionItem(text: chatPresentationInterfaceState.strings.Conversation_ContextViewStats, icon: { theme in + return generateTintedImage(image: UIImage(bundleImageName: "Chat/Context Menu/Statistics"), color: theme.actionSheet.primaryTextColor) + }, action: { c, _ in + c.dismiss(completion: { + controllerInteraction.openMessageStats(messages[0].id) + }) + }))) + } + clearCacheAsDelete = true }