mirror of
https://github.com/TelegramMessenger/Telegram-iOS.git
synced 2026-06-20 18:24:43 +00:00
Squashed range bf01b4c..a66739c (70 commits) covering 69 waves of the Postbox -> TelegramEngine consumer migration plus a few BUILD-dep followups. Notable additions to TelegramCore in this range: - Engine typealiases: EngineRawPeerPresence, EngineRawValueBoxKey, EngineSimpleDictionary, EngineRawPeerView, EngineRawPostboxViewKey, EngineRawPreferencesView, EngineRawMessageHistoryView (+ entry/attrs/ read-state), EngineMessageIdNamespaces, EngineHistoryViewInputAnchor, EngineRawUnreadMessageCountsItem, EngineRawMessageHistorySavedMessages IndexView, EngineRawChatInterfaceStateView, EngineRawOrderedItemList View, EngineRawMessageHistoryThreadIndexView, EngineRawCombinedRead StateView, EngineRawMessageHistoryThreadInfoView, EngineRawBasicPeer View, EngineRawCachedPeerDataView, EngineMessageHistoryThreadData, EngineViewUpdateType, EngineInitialMessageHistoryData, EnginePeerGroupId, EngineChatLocationInput, EngineHistoryViewInputTag. - Engine data items: Peer.CachedData, ItemCollections.InstalledPackInfos, ItemCollections.InstalledPackIds. - Engine facade: TelegramEngine.ItemCollections.allItems(namespace:). - Free function: engineAreMediaArraysEqual forwarder. Net effect: 65+ consumer modules drop "import Postbox"; 131 files changed (+1386 / -1493). Build green at HEAD.
96 lines
3.0 KiB
Swift
96 lines
3.0 KiB
Swift
import Foundation
|
|
import UIKit
|
|
import SwiftSignalKit
|
|
import TelegramCore
|
|
import AccountContext
|
|
|
|
final class BusinessLinkChatContents: ChatCustomContentsProtocol {
|
|
private final class Impl {
|
|
let queue: Queue
|
|
let context: AccountContext
|
|
|
|
init(queue: Queue, context: AccountContext) {
|
|
self.queue = queue
|
|
self.context = context
|
|
}
|
|
|
|
deinit {
|
|
}
|
|
|
|
func enqueueMessages(messages: [EnqueueMessage]) {
|
|
}
|
|
|
|
func deleteMessages(ids: [EngineMessage.Id]) {
|
|
}
|
|
|
|
func editMessage(id: EngineMessage.Id, text: String, media: RequestEditMessageMedia, entities: TextEntitiesMessageAttribute?, webpagePreviewAttribute: WebpagePreviewMessageAttribute?, disableUrlPreview: Bool) {
|
|
}
|
|
}
|
|
|
|
var kind: ChatCustomContentsKind
|
|
|
|
var historyView: Signal<(EngineRawMessageHistoryView, EngineViewUpdateType), NoError> {
|
|
let view = EngineRawMessageHistoryView(tag: nil, namespaces: .just(Namespaces.Message.allQuickReply), entries: [], holeEarlier: false, holeLater: false, isLoading: false)
|
|
|
|
return .single((view, .Initial))
|
|
}
|
|
|
|
var messageLimit: Int? {
|
|
return 20
|
|
}
|
|
|
|
private let queue: Queue
|
|
private let impl: QueueLocalObject<Impl>
|
|
|
|
init(context: AccountContext, kind: ChatCustomContentsKind) {
|
|
self.kind = kind
|
|
|
|
let queue = Queue()
|
|
self.queue = queue
|
|
self.impl = QueueLocalObject(queue: queue, generate: {
|
|
return Impl(queue: queue, context: context)
|
|
})
|
|
}
|
|
|
|
func enqueueMessages(messages: [EnqueueMessage]) {
|
|
self.impl.with { impl in
|
|
impl.enqueueMessages(messages: messages)
|
|
}
|
|
}
|
|
|
|
func deleteMessages(ids: [EngineMessage.Id]) {
|
|
self.impl.with { impl in
|
|
impl.deleteMessages(ids: ids)
|
|
}
|
|
}
|
|
|
|
func editMessage(id: EngineMessage.Id, text: String, media: RequestEditMessageMedia, entities: TextEntitiesMessageAttribute?, webpagePreviewAttribute: WebpagePreviewMessageAttribute?, disableUrlPreview: Bool) {
|
|
self.impl.with { impl in
|
|
impl.editMessage(id: id, text: text, media: media, entities: entities, webpagePreviewAttribute: webpagePreviewAttribute, disableUrlPreview: disableUrlPreview)
|
|
}
|
|
}
|
|
|
|
func quickReplyUpdateShortcut(value: String) {
|
|
}
|
|
|
|
func businessLinkUpdate(message: String, entities: [MessageTextEntity], title: String?) {
|
|
if case let .businessLinkSetup(link) = self.kind {
|
|
self.kind = .businessLinkSetup(link: TelegramBusinessChatLinks.Link(
|
|
url: link.url,
|
|
message: message,
|
|
entities: entities,
|
|
title: title,
|
|
viewCount: link.viewCount
|
|
))
|
|
}
|
|
}
|
|
|
|
func loadMore() {
|
|
}
|
|
|
|
func hashtagSearchUpdate(query: String) {
|
|
}
|
|
|
|
var hashtagSearchResultsUpdate: ((SearchMessagesResult, SearchMessagesState)) -> Void = { _ in }
|
|
}
|