diff --git a/submodules/AccountContext/Sources/ChatController.swift b/submodules/AccountContext/Sources/ChatController.swift index c059f09abb..dc088f2ab3 100644 --- a/submodules/AccountContext/Sources/ChatController.swift +++ b/submodules/AccountContext/Sources/ChatController.swift @@ -7,7 +7,6 @@ import Display import SwiftSignalKit import TelegramPresentationData import TelegramUIPreferences -import Postbox public final class ChatMessageItemAssociatedData: Equatable { public enum ChannelDiscussionGroupStatus: Equatable { @@ -197,11 +196,11 @@ public struct ChatControllerInitialBotStart { } public struct ChatControllerInitialAttachBotStart { - public let botId: PeerId + public let botId: EnginePeer.Id public let payload: String? public let justInstalled: Bool - public init(botId: PeerId, payload: String?, justInstalled: Bool) { + public init(botId: EnginePeer.Id, payload: String?, justInstalled: Bool) { self.botId = botId self.payload = payload self.justInstalled = justInstalled @@ -472,7 +471,7 @@ public struct ChatTextInputStateText: Codable, Equatable { public enum ChatControllerSubject: Equatable { public enum MessageSubject: Equatable { - case id(MessageId) + case id(EngineMessage.Id) case timestamp(Int32) } @@ -652,16 +651,16 @@ public enum FileMediaResourcePlaybackStatus: Equatable { public struct FileMediaResourceStatus: Equatable { public var mediaStatus: FileMediaResourceMediaStatus - public var fetchStatus: MediaResourceStatus + public var fetchStatus: EngineMediaResource.FetchStatus - public init(mediaStatus: FileMediaResourceMediaStatus, fetchStatus: MediaResourceStatus) { + public init(mediaStatus: FileMediaResourceMediaStatus, fetchStatus: EngineMediaResource.FetchStatus) { self.mediaStatus = mediaStatus self.fetchStatus = fetchStatus } } public enum FileMediaResourceMediaStatus: Equatable { - case fetchStatus(MediaResourceStatus) + case fetchStatus(EngineMediaResource.FetchStatus) case playbackStatus(FileMediaResourcePlaybackStatus) } diff --git a/submodules/AccountContext/Sources/ChatListController.swift b/submodules/AccountContext/Sources/ChatListController.swift index a94a9f0f08..77f67f3f2a 100644 --- a/submodules/AccountContext/Sources/ChatListController.swift +++ b/submodules/AccountContext/Sources/ChatListController.swift @@ -1,12 +1,11 @@ import Foundation import UIKit -import Postbox import Display import TelegramCore public enum ChatListControllerLocation: Equatable { case chatList(groupId: EngineChatList.Group) - case forum(peerId: PeerId) + case forum(peerId: EnginePeer.Id) } public protocol ChatListController: ViewController { diff --git a/submodules/AccountContext/Sources/ContactMultiselectionController.swift b/submodules/AccountContext/Sources/ContactMultiselectionController.swift index 63e9957c5d..5981d76389 100644 --- a/submodules/AccountContext/Sources/ContactMultiselectionController.swift +++ b/submodules/AccountContext/Sources/ContactMultiselectionController.swift @@ -2,7 +2,6 @@ import Foundation import UIKit import Display import SwiftSignalKit -import Postbox import TelegramCore import TelegramPresentationData @@ -41,7 +40,7 @@ public enum ContactMultiselectionControllerMode { public struct ChatSelection { public var title: String public var searchPlaceholder: String - public var selectedChats: Set + public var selectedChats: Set public var additionalCategories: ContactMultiselectionControllerAdditionalCategories? public var chatListFilters: [ChatListFilter]? public var displayAutoremoveTimeout: Bool @@ -49,7 +48,7 @@ public enum ContactMultiselectionControllerMode { public init( title: String, searchPlaceholder: String, - selectedChats: Set, + selectedChats: Set, additionalCategories: ContactMultiselectionControllerAdditionalCategories?, chatListFilters: [ChatListFilter]?, displayAutoremoveTimeout: Bool = false @@ -71,8 +70,8 @@ public enum ContactMultiselectionControllerMode { public enum ContactListFilter { case excludeSelf - case exclude([PeerId]) - case disable([PeerId]) + case exclude([EnginePeer.Id]) + case disable([EnginePeer.Id]) } public final class ContactMultiselectionControllerParams { diff --git a/submodules/AccountContext/Sources/DeviceContactData.swift b/submodules/AccountContext/Sources/DeviceContactData.swift index ebc1509642..cc223ba802 100644 --- a/submodules/AccountContext/Sources/DeviceContactData.swift +++ b/submodules/AccountContext/Sources/DeviceContactData.swift @@ -1,6 +1,5 @@ import Foundation import Contacts -import Postbox import TelegramCore public final class DeviceContactPhoneNumberData: Equatable { @@ -190,18 +189,18 @@ public let phonebookUsernamePathPrefix = "@id" private let phonebookUsernamePrefix = "https://t.me/" + phonebookUsernamePathPrefix public extension DeviceContactUrlData { - convenience init(appProfile: PeerId) { + convenience init(appProfile: EnginePeer.Id) { self.init(label: "Telegram", value: "\(phonebookUsernamePrefix)\(appProfile.id._internalGetInt64Value())") } } -public func parseAppSpecificContactReference(_ value: String) -> PeerId? { +public func parseAppSpecificContactReference(_ value: String) -> EnginePeer.Id? { if !value.hasPrefix(phonebookUsernamePrefix) { return nil } let idString = String(value[value.index(value.startIndex, offsetBy: phonebookUsernamePrefix.count)...]) if let id = Int64(idString) { - return PeerId(namespace: Namespaces.Peer.CloudUser, id: PeerId.Id._internalFromInt64Value(id)) + return EnginePeer.Id(namespace: Namespaces.Peer.CloudUser, id: EnginePeer.Id.Id._internalFromInt64Value(id)) } return nil } @@ -466,8 +465,8 @@ public extension DeviceContactExtendedData { } public extension DeviceContactExtendedData { - convenience init?(peer: Peer) { - guard let user = peer as? TelegramUser else { + convenience init?(peer: EnginePeer) { + guard case let .user(user) = peer else { return nil } var phoneNumbers: [DeviceContactPhoneNumberData] = [] diff --git a/submodules/AccountContext/Sources/DeviceContactDataManager.swift b/submodules/AccountContext/Sources/DeviceContactDataManager.swift index ed4d87ee3b..9074332109 100644 --- a/submodules/AccountContext/Sources/DeviceContactDataManager.swift +++ b/submodules/AccountContext/Sources/DeviceContactDataManager.swift @@ -1,5 +1,4 @@ import Foundation -import Postbox import TelegramCore import TelegramUIPreferences import SwiftSignalKit @@ -12,10 +11,10 @@ public protocol DeviceContactDataManager: AnyObject { func basicDataForNormalizedPhoneNumber(_ normalizedNumber: DeviceContactNormalizedPhoneNumber) -> Signal<[(DeviceContactStableId, DeviceContactBasicData)], NoError> func extendedData(stableId: DeviceContactStableId) -> Signal func importable() -> Signal<[DeviceContactNormalizedPhoneNumber: ImportableDeviceContactData], NoError> - func appSpecificReferences() -> Signal<[PeerId: DeviceContactBasicDataWithReference], NoError> - func search(query: String) -> Signal<[DeviceContactStableId: (DeviceContactBasicData, PeerId?)], NoError> + func appSpecificReferences() -> Signal<[EnginePeer.Id: DeviceContactBasicDataWithReference], NoError> + func search(query: String) -> Signal<[DeviceContactStableId: (DeviceContactBasicData, EnginePeer.Id?)], NoError> func appendContactData(_ contactData: DeviceContactExtendedData, to stableId: DeviceContactStableId) -> Signal func appendPhoneNumber(_ phoneNumber: DeviceContactPhoneNumberData, to stableId: DeviceContactStableId) -> Signal func createContactWithData(_ contactData: DeviceContactExtendedData) -> Signal<(DeviceContactStableId, DeviceContactExtendedData)?, NoError> - func deleteContactWithAppSpecificReference(peerId: PeerId) -> Signal + func deleteContactWithAppSpecificReference(peerId: EnginePeer.Id) -> Signal } diff --git a/submodules/AccountContext/Sources/DownloadedMediaStoreManager.swift b/submodules/AccountContext/Sources/DownloadedMediaStoreManager.swift index d65d823fa4..ec59b3a5b7 100644 --- a/submodules/AccountContext/Sources/DownloadedMediaStoreManager.swift +++ b/submodules/AccountContext/Sources/DownloadedMediaStoreManager.swift @@ -1,6 +1,5 @@ import Foundation import TelegramCore -import Postbox import TelegramUIPreferences import SwiftSignalKit diff --git a/submodules/AccountContext/Sources/PeerSelectionController.swift b/submodules/AccountContext/Sources/PeerSelectionController.swift index 963dea8a81..976372a6a4 100644 --- a/submodules/AccountContext/Sources/PeerSelectionController.swift +++ b/submodules/AccountContext/Sources/PeerSelectionController.swift @@ -1,7 +1,6 @@ import Foundation import Display import SwiftSignalKit -import Postbox import TelegramCore import TelegramPresentationData @@ -48,7 +47,7 @@ public final class PeerSelectionControllerParams { public let hasContactSelector: Bool public let hasGlobalSearch: Bool public let title: String? - public let attemptSelection: ((Peer, Int64?) -> Void)? + public let attemptSelection: ((EnginePeer, Int64?) -> Void)? public let createNewGroup: (() -> Void)? public let pretendPresentedInModal: Bool public let multipleSelection: Bool @@ -57,7 +56,7 @@ public final class PeerSelectionControllerParams { public let selectForumThreads: Bool public let hasCreation: Bool - public init(context: AccountContext, updatedPresentationData: (initial: PresentationData, signal: Signal)? = nil, filter: ChatListNodePeersFilter = [.onlyWriteable], requestPeerType: [ReplyMarkupButtonRequestPeerType]? = nil, forumPeerId: EnginePeer.Id? = nil, hasFilters: Bool = false, hasChatListSelector: Bool = true, hasContactSelector: Bool = true, hasGlobalSearch: Bool = true, title: String? = nil, attemptSelection: ((Peer, Int64?) -> Void)? = nil, createNewGroup: (() -> Void)? = nil, pretendPresentedInModal: Bool = false, multipleSelection: Bool = false, forwardedMessageIds: [EngineMessage.Id] = [], hasTypeHeaders: Bool = false, selectForumThreads: Bool = false, hasCreation: Bool = false) { + public init(context: AccountContext, updatedPresentationData: (initial: PresentationData, signal: Signal)? = nil, filter: ChatListNodePeersFilter = [.onlyWriteable], requestPeerType: [ReplyMarkupButtonRequestPeerType]? = nil, forumPeerId: EnginePeer.Id? = nil, hasFilters: Bool = false, hasChatListSelector: Bool = true, hasContactSelector: Bool = true, hasGlobalSearch: Bool = true, title: String? = nil, attemptSelection: ((EnginePeer, Int64?) -> Void)? = nil, createNewGroup: (() -> Void)? = nil, pretendPresentedInModal: Bool = false, multipleSelection: Bool = false, forwardedMessageIds: [EngineMessage.Id] = [], hasTypeHeaders: Bool = false, selectForumThreads: Bool = false, hasCreation: Bool = false) { self.context = context self.updatedPresentationData = updatedPresentationData self.filter = filter @@ -87,8 +86,8 @@ public enum AttachmentTextInputPanelSendMode { } public protocol PeerSelectionController: ViewController { - var peerSelected: ((Peer, Int64?) -> Void)? { get set } - var multiplePeersSelected: (([Peer], [PeerId: Peer], NSAttributedString, AttachmentTextInputPanelSendMode, ChatInterfaceForwardOptionsState?) -> Void)? { get set } + var peerSelected: ((EnginePeer, Int64?) -> Void)? { get set } + var multiplePeersSelected: (([EnginePeer], [EnginePeer.Id: EnginePeer], NSAttributedString, AttachmentTextInputPanelSendMode, ChatInterfaceForwardOptionsState?) -> Void)? { get set } var inProgress: Bool { get set } var customDismiss: (() -> Void)? { get set } } diff --git a/submodules/AccountContext/Sources/PresentationCallManager.swift b/submodules/AccountContext/Sources/PresentationCallManager.swift index 451c92824d..b7d1b605de 100644 --- a/submodules/AccountContext/Sources/PresentationCallManager.swift +++ b/submodules/AccountContext/Sources/PresentationCallManager.swift @@ -1,24 +1,23 @@ import Foundation import UIKit import AsyncDisplayKit -import Postbox import TelegramCore import SwiftSignalKit import TelegramAudio public enum RequestCallResult { case requested - case alreadyInProgress(PeerId?) + case alreadyInProgress(EnginePeer.Id?) } public enum JoinGroupCallManagerResult { case joined - case alreadyInProgress(PeerId?) + case alreadyInProgress(EnginePeer.Id?) } public enum RequestScheduleGroupCallResult { case success - case alreadyInProgress(PeerId?) + case alreadyInProgress(EnginePeer.Id?) } public struct CallAuxiliaryServer { @@ -135,11 +134,11 @@ public protocol PresentationCall: AnyObject { var context: AccountContext { get } var isIntegratedWithCallKit: Bool { get } var internalId: CallSessionInternalId { get } - var peerId: PeerId { get } + var peerId: EnginePeer.Id { get } var isOutgoing: Bool { get } var isVideo: Bool { get } var isVideoPossible: Bool { get } - var peer: Peer? { get } + var peer: EnginePeer? { get } var state: Signal { get } var audioLevel: Signal { get } @@ -199,10 +198,10 @@ public struct PresentationGroupCallState: Equatable { case muted } - public var myPeerId: PeerId + public var myPeerId: EnginePeer.Id public var networkState: NetworkState public var canManageCall: Bool - public var adminIds: Set + public var adminIds: Set public var muteState: GroupCallParticipantsContext.Participant.MuteState? public var defaultParticipantMuteState: DefaultParticipantMuteState? public var recordingStartTimestamp: Int32? @@ -214,10 +213,10 @@ public struct PresentationGroupCallState: Equatable { public var isVideoWatchersLimitReached: Bool public init( - myPeerId: PeerId, + myPeerId: EnginePeer.Id, networkState: NetworkState, canManageCall: Bool, - adminIds: Set, + adminIds: Set, muteState: GroupCallParticipantsContext.Participant.MuteState?, defaultParticipantMuteState: DefaultParticipantMuteState?, recordingStartTimestamp: Int32?, @@ -249,14 +248,14 @@ public struct PresentationGroupCallSummaryState: Equatable { public var participantCount: Int public var callState: PresentationGroupCallState public var topParticipants: [GroupCallParticipantsContext.Participant] - public var activeSpeakers: Set + public var activeSpeakers: Set public init( info: GroupCallInfo?, participantCount: Int, callState: PresentationGroupCallState, topParticipants: [GroupCallParticipantsContext.Participant], - activeSpeakers: Set + activeSpeakers: Set ) { self.info = info self.participantCount = participantCount @@ -298,13 +297,13 @@ public enum PresentationGroupCallMuteAction: Equatable { public struct PresentationGroupCallMembers: Equatable { public var participants: [GroupCallParticipantsContext.Participant] - public var speakingParticipants: Set + public var speakingParticipants: Set public var totalCount: Int public var loadMoreToken: String? public init( participants: [GroupCallParticipantsContext.Participant], - speakingParticipants: Set, + speakingParticipants: Set, totalCount: Int, loadMoreToken: String? ) { @@ -316,13 +315,13 @@ public struct PresentationGroupCallMembers: Equatable { } public final class PresentationGroupCallMemberEvent { - public let peer: Peer + public let peer: EnginePeer public let isContact: Bool public let isInChatList: Bool public let canUnmute: Bool public let joined: Bool - public init(peer: Peer, isContact: Bool, isInChatList: Bool, canUnmute: Bool, joined: Bool) { + public init(peer: EnginePeer, isContact: Bool, isInChatList: Bool, canUnmute: Bool, joined: Bool) { self.peer = peer self.isContact = isContact self.isInChatList = isInChatList @@ -395,7 +394,7 @@ public protocol PresentationGroupCall: AnyObject { var account: Account { get } var accountContext: AccountContext { get } var internalId: CallSessionInternalId { get } - var peerId: PeerId { get } + var peerId: EnginePeer.Id { get } var hasVideo: Bool { get } var hasScreencast: Bool { get } @@ -412,20 +411,20 @@ public protocol PresentationGroupCall: AnyObject { var stateVersion: Signal { get } var summaryState: Signal { get } var members: Signal { get } - var audioLevels: Signal<[(PeerId, UInt32, Float, Bool)], NoError> { get } + var audioLevels: Signal<[(EnginePeer.Id, UInt32, Float, Bool)], NoError> { get } var myAudioLevel: Signal { get } var isMuted: Signal { get } var isNoiseSuppressionEnabled: Signal { get } var memberEvents: Signal { get } - var reconnectedAsEvents: Signal { get } + var reconnectedAsEvents: Signal { get } func toggleScheduledSubscription(_ subscribe: Bool) func schedule(timestamp: Int32) func startScheduled() func reconnect(with invite: String) - func reconnect(as peerId: PeerId) + func reconnect(as peerId: EnginePeer.Id) func leave(terminateIfPossible: Bool) -> Signal func toggleIsMuted() @@ -438,20 +437,20 @@ public protocol PresentationGroupCall: AnyObject { func disableScreencast() func switchVideoCamera() func updateDefaultParticipantsAreMuted(isMuted: Bool) - func setVolume(peerId: PeerId, volume: Int32, sync: Bool) + func setVolume(peerId: EnginePeer.Id, volume: Int32, sync: Bool) func setRequestedVideoList(items: [PresentationGroupCallRequestedVideo]) func setCurrentAudioOutput(_ output: AudioSessionOutput) func playTone(_ tone: PresentationGroupCallTone) - func updateMuteState(peerId: PeerId, isMuted: Bool) -> GroupCallParticipantsContext.Participant.MuteState? + func updateMuteState(peerId: EnginePeer.Id, isMuted: Bool) -> GroupCallParticipantsContext.Participant.MuteState? func setShouldBeRecording(_ shouldBeRecording: Bool, title: String?, videoOrientation: Bool?) func updateTitle(_ title: String) - func invitePeer(_ peerId: PeerId) -> Bool - func removedPeer(_ peerId: PeerId) - var invitedPeers: Signal<[PeerId], NoError> { get } + func invitePeer(_ peerId: EnginePeer.Id) -> Bool + func removedPeer(_ peerId: EnginePeer.Id) + var invitedPeers: Signal<[EnginePeer.Id], NoError> { get } var inviteLinks: Signal { get } @@ -465,7 +464,7 @@ public protocol PresentationCallManager: AnyObject { var currentCallSignal: Signal { get } var currentGroupCallSignal: Signal { get } - func requestCall(context: AccountContext, peerId: PeerId, isVideo: Bool, endCurrentIfAny: Bool) -> RequestCallResult - func joinGroupCall(context: AccountContext, peerId: PeerId, invite: String?, requestJoinAsPeerId: ((@escaping (PeerId?) -> Void) -> Void)?, initialCall: EngineGroupCallDescription, endCurrentIfAny: Bool) -> JoinGroupCallManagerResult - func scheduleGroupCall(context: AccountContext, peerId: PeerId, endCurrentIfAny: Bool) -> RequestScheduleGroupCallResult + func requestCall(context: AccountContext, peerId: EnginePeer.Id, isVideo: Bool, endCurrentIfAny: Bool) -> RequestCallResult + func joinGroupCall(context: AccountContext, peerId: EnginePeer.Id, invite: String?, requestJoinAsPeerId: ((@escaping (EnginePeer.Id?) -> Void) -> Void)?, initialCall: EngineGroupCallDescription, endCurrentIfAny: Bool) -> JoinGroupCallManagerResult + func scheduleGroupCall(context: AccountContext, peerId: EnginePeer.Id, endCurrentIfAny: Bool) -> RequestScheduleGroupCallResult } diff --git a/submodules/AccountContext/Sources/SharedMediaPlayer.swift b/submodules/AccountContext/Sources/SharedMediaPlayer.swift index 38db88febe..0beadc3572 100644 --- a/submodules/AccountContext/Sources/SharedMediaPlayer.swift +++ b/submodules/AccountContext/Sources/SharedMediaPlayer.swift @@ -1,6 +1,5 @@ import Foundation import TelegramCore -import Postbox import TelegramUIPreferences import SwiftSignalKit import UniversalMediaPlayer @@ -59,8 +58,8 @@ public struct SharedMediaPlaybackAlbumArt: Equatable { public enum SharedMediaPlaybackDisplayData: Equatable { case music(title: String?, performer: String?, albumArt: SharedMediaPlaybackAlbumArt?, long: Bool, caption: NSAttributedString?) - case voice(author: Peer?, peer: Peer?) - case instantVideo(author: Peer?, peer: Peer?, timestamp: Int32) + case voice(author: EnginePeer?, peer: EnginePeer?) + case instantVideo(author: EnginePeer?, peer: EnginePeer?, timestamp: Int32) public static func ==(lhs: SharedMediaPlaybackDisplayData, rhs: SharedMediaPlaybackDisplayData) -> Bool { switch lhs { @@ -71,13 +70,13 @@ public enum SharedMediaPlaybackDisplayData: Equatable { return false } case let .voice(lhsAuthor, lhsPeer): - if case let .voice(rhsAuthor, rhsPeer) = rhs, arePeersEqual(lhsAuthor, rhsAuthor), arePeersEqual(lhsPeer, rhsPeer) { + if case let .voice(rhsAuthor, rhsPeer) = rhs, lhsAuthor == rhsAuthor, lhsPeer == rhsPeer { return true } else { return false } case let .instantVideo(lhsAuthor, lhsPeer, lhsTimestamp): - if case let .instantVideo(rhsAuthor, rhsPeer, rhsTimestamp) = rhs, arePeersEqual(lhsAuthor, rhsAuthor), arePeersEqual(lhsPeer, rhsPeer), lhsTimestamp == rhsTimestamp { + if case let .instantVideo(rhsAuthor, rhsPeer, rhsTimestamp) = rhs, lhsAuthor == rhsAuthor, lhsPeer == rhsPeer, lhsTimestamp == rhsTimestamp { return true } else { return false @@ -125,10 +124,10 @@ public func areSharedMediaPlaylistItemIdsEqual(_ lhs: SharedMediaPlaylistItemId? } public struct PeerMessagesMediaPlaylistItemId: SharedMediaPlaylistItemId { - public let messageId: MessageId - public let messageIndex: MessageIndex + public let messageId: EngineMessage.Id + public let messageIndex: EngineMessage.Index - public init(messageId: MessageId, messageIndex: MessageIndex) { + public init(messageId: EngineMessage.Id, messageIndex: EngineMessage.Index) { self.messageId = messageId self.messageIndex = messageIndex } diff --git a/submodules/AccountContext/Sources/WatchManager.swift b/submodules/AccountContext/Sources/WatchManager.swift index bf9b931d94..ce2e97c3ef 100644 --- a/submodules/AccountContext/Sources/WatchManager.swift +++ b/submodules/AccountContext/Sources/WatchManager.swift @@ -1,6 +1,6 @@ import Foundation import SwiftSignalKit -import Postbox +import TelegramCore public struct WatchRunningTasks: Equatable { public let running: Bool @@ -18,6 +18,6 @@ public struct WatchRunningTasks: Equatable { public protocol WatchManager: AnyObject { var watchAppInstalled: Signal { get } - var navigateToMessageRequested: Signal { get } + var navigateToMessageRequested: Signal { get } var runningTasks: Signal { get } } diff --git a/submodules/AttachmentTextInputPanelNode/Sources/AttachmentTextInputPanelNode.swift b/submodules/AttachmentTextInputPanelNode/Sources/AttachmentTextInputPanelNode.swift index 77ccdbda2e..05217f486c 100644 --- a/submodules/AttachmentTextInputPanelNode/Sources/AttachmentTextInputPanelNode.swift +++ b/submodules/AttachmentTextInputPanelNode/Sources/AttachmentTextInputPanelNode.swift @@ -3,7 +3,6 @@ import UIKit import Display import AsyncDisplayKit import SwiftSignalKit -import Postbox import TelegramCore import MobileCoreServices import TelegramPresentationData diff --git a/submodules/AvatarVideoNode/Sources/AvatarVideoNode.swift b/submodules/AvatarVideoNode/Sources/AvatarVideoNode.swift index 6fe4d75336..d0570afad1 100644 --- a/submodules/AvatarVideoNode/Sources/AvatarVideoNode.swift +++ b/submodules/AvatarVideoNode/Sources/AvatarVideoNode.swift @@ -5,7 +5,6 @@ import Display import SwiftSignalKit import UniversalMediaPlayer import TelegramUniversalVideoContent -import Postbox import TelegramCore import AccountContext import ComponentFlow @@ -207,7 +206,7 @@ public final class AvatarVideoNode: ASDisplayNode { self.backgroundNode.image = nil let videoId = photo.id?.id ?? peer.id.id._internalGetInt64Value() - let videoFileReference = FileMediaReference.avatarList(peer: peerReference, media: TelegramMediaFile(fileId: MediaId(namespace: Namespaces.Media.LocalFile, id: 0), partialReference: nil, resource: video.resource, previewRepresentations: photo.representations, videoThumbnails: [], immediateThumbnailData: photo.immediateThumbnailData, mimeType: "video/mp4", size: nil, attributes: [.Animated, .Video(duration: 0, size: video.dimensions, flags: [])])) + let videoFileReference = FileMediaReference.avatarList(peer: peerReference, media: TelegramMediaFile(fileId: EngineMedia.Id(namespace: Namespaces.Media.LocalFile, id: 0), partialReference: nil, resource: video.resource, previewRepresentations: photo.representations, videoThumbnails: [], immediateThumbnailData: photo.immediateThumbnailData, mimeType: "video/mp4", size: nil, attributes: [.Animated, .Video(duration: 0, size: video.dimensions, flags: [])])) let videoContent = NativeVideoContent(id: .profileVideo(videoId, nil), userLocation: .other, fileReference: videoFileReference, streamVideo: isMediaStreamable(resource: video.resource) ? .conservative : .none, loopVideo: true, enableSound: false, fetchAutomatically: true, onlyFullSizeThumbnail: false, useLargeThumbnail: true, autoFetchFullSizeThumbnail: true, startTimestamp: video.startTimestamp, continuePlayingWithoutSoundOnLostAudioSession: false, placeholderColor: .clear, captureProtected: false, storeAfterDownload: nil) if videoContent.id != self.videoContent?.id { self.videoNode?.removeFromSupernode() diff --git a/submodules/BotPaymentsUI/Sources/BotCheckoutHeaderItem.swift b/submodules/BotPaymentsUI/Sources/BotCheckoutHeaderItem.swift index 408d932438..afc9979705 100644 --- a/submodules/BotPaymentsUI/Sources/BotCheckoutHeaderItem.swift +++ b/submodules/BotPaymentsUI/Sources/BotCheckoutHeaderItem.swift @@ -8,7 +8,6 @@ import TelegramPresentationData import ItemListUI import PresentationDataUtils import PhotoResources -import Postbox class BotCheckoutHeaderItem: ListViewItem, ItemListItem { let account: Account @@ -168,7 +167,7 @@ class BotCheckoutHeaderItemNode: ListViewItemNode { var imageApply: (() -> Void)? var updatedImageSignal: Signal<(TransformImageArguments) -> DrawingContext?, NoError>? - var updatedFetchSignal: Signal? + var updatedFetchSignal: Signal? if let photo = item.invoice.photo, let dimensions = photo.dimensions { let arguments = TransformImageArguments(corners: ImageCorners(radius: 4.0), imageSize: dimensions.cgSize.aspectFilled(imageSize), boundingSize: imageSize, intrinsicInsets: UIEdgeInsets(), emptyColor: item.theme.list.mediaPlaceholderColor) imageApply = makeImageLayout(arguments) @@ -184,6 +183,10 @@ class BotCheckoutHeaderItemNode: ListViewItemNode { break } updatedFetchSignal = fetchedMediaResource(mediaBox: item.account.postbox.mediaBox, userLocation: userLocation, userContentType: .image, reference: .standalone(resource: photo.resource)) + |> ignoreValues + |> `catch` { _ -> Signal in + return .complete() + } } } @@ -191,7 +194,9 @@ class BotCheckoutHeaderItemNode: ListViewItemNode { let (botNameLayout, botNameApply) = makeBotNameLayout(TextNodeLayoutArguments(attributedString: NSAttributedString(string: item.botName, font: textFont, textColor: item.theme.list.itemSecondaryTextColor), backgroundColor: nil, maximumNumberOfLines: 1, truncationType: .end, constrainedSize: CGSize(width: maxTextWidth, height: CGFloat.greatestFiniteMagnitude), alignment: .natural, cutout: nil, insets: UIEdgeInsets())) - let (textLayout, textApply) = makeTextLayout(TextNodeLayoutArguments(attributedString: NSAttributedString(string: item.invoice.description, font: textFont, textColor: textColor), backgroundColor: nil, maximumNumberOfLines: 0, truncationType: .end, constrainedSize: CGSize(width: maxTextWidth, height: maxTextHeight - titleLayout.size.height - titleTextSpacing - botNameLayout.size.height - textBotNameSpacing), alignment: .natural, cutout: nil, insets: UIEdgeInsets())) + let textLayoutMaxHeight: CGFloat = maxTextHeight - titleLayout.size.height - titleTextSpacing - botNameLayout.size.height - textBotNameSpacing + let textArguments = TextNodeLayoutArguments(attributedString: NSAttributedString(string: item.invoice.description, font: textFont, textColor: textColor), backgroundColor: nil, maximumNumberOfLines: 0, truncationType: .end, constrainedSize: CGSize(width: maxTextWidth, height: textLayoutMaxHeight), alignment: .natural, cutout: nil, insets: UIEdgeInsets()) + let (textLayout, textApply) = makeTextLayout(textArguments) let contentHeight: CGFloat if let _ = imageApply { diff --git a/submodules/BotPaymentsUI/Sources/TipEditController.swift b/submodules/BotPaymentsUI/Sources/TipEditController.swift index e79b2f3405..ceb2581edf 100644 --- a/submodules/BotPaymentsUI/Sources/TipEditController.swift +++ b/submodules/BotPaymentsUI/Sources/TipEditController.swift @@ -3,7 +3,6 @@ import UIKit import SwiftSignalKit import AsyncDisplayKit import Display -import Postbox import TelegramCore import TelegramPresentationData import AccountContext diff --git a/submodules/ChatListSearchRecentPeersNode/Sources/ChatListSearchRecentPeersNode.swift b/submodules/ChatListSearchRecentPeersNode/Sources/ChatListSearchRecentPeersNode.swift index bb86614f2e..59f4f139e0 100644 --- a/submodules/ChatListSearchRecentPeersNode/Sources/ChatListSearchRecentPeersNode.swift +++ b/submodules/ChatListSearchRecentPeersNode/Sources/ChatListSearchRecentPeersNode.swift @@ -10,7 +10,6 @@ import HorizontalPeerItem import ListSectionHeaderNode import ContextUI import AccountContext -import Postbox private func calculateItemCustomWidth(width: CGFloat) -> CGFloat { let itemInsets = UIEdgeInsets(top: 0.0, left: 6.0, bottom: 0.0, right: 6.0) @@ -160,17 +159,19 @@ public final class ChatListSearchRecentPeersNode: ASDisplayNode { return .single(([], [:], [:])) case let .peers(peers): return combineLatest(queue: .mainQueue(), - peers.filter { - !$0.isDeleted - }.map { - context.account.postbox.peerView(id: $0.id) - } + peers.filter { + !$0.isDeleted + }.map { + context.account.postbox.peerView(id: $0.id) + } ) |> mapToSignal { peerViews -> Signal<([EnginePeer], [EnginePeer.Id: (Int32, Bool)], [EnginePeer.Id: EnginePeer.Presence]), NoError> in - return context.account.postbox.unreadMessageCountsView(items: peerViews.map { item -> UnreadMessageCountsItem in - return UnreadMessageCountsItem.peer(id: item.peerId, handleThreads: true) - }) - |> map { values in + return context.engine.data.subscribe( + EngineDataMap(peerViews.map { item in + return TelegramEngine.EngineData.Item.Messages.PeerUnreadCount(id: item.peerId) + }) + ) + |> map { unreadCounts in var peers: [EnginePeer] = [] var unread: [EnginePeer.Id: (Int32, Bool)] = [:] var presences: [EnginePeer.Id: EnginePeer.Presence] = [:] @@ -186,9 +187,9 @@ public final class ChatListSearchRecentPeersNode: ASDisplayNode { } } - let unreadCount = values.count(for: .peer(id: peerView.peerId, handleThreads: true)) - if let unreadCount = unreadCount, unreadCount > 0 { - unread[peerView.peerId] = (unreadCount, isMuted) + let unreadCount = unreadCounts[peerView.peerId] + if let unreadCount, unreadCount > 0 { + unread[peerView.peerId] = (Int32(unreadCount), isMuted) } if let presence = peerView.peerPresences[peer.id] { diff --git a/submodules/ChatListUI/Sources/ChatListSearchContainerNode.swift b/submodules/ChatListUI/Sources/ChatListSearchContainerNode.swift index 0cd645ae5d..797aa02c13 100644 --- a/submodules/ChatListUI/Sources/ChatListSearchContainerNode.swift +++ b/submodules/ChatListUI/Sources/ChatListSearchContainerNode.swift @@ -1364,12 +1364,12 @@ public final class ChatListSearchContainerNode: SearchDisplayControllerContentNo |> deliverOnMainQueue).start()) } }) - if let secretPeer = peer as? TelegramSecretChat { + if case let .secretChat(secretPeer) = peer { if let peer = peerMap[secretPeer.regularPeerId] { - displayPeers.append(EnginePeer(peer)) + displayPeers.append(peer) } } else { - displayPeers.append(EnginePeer(peer)) + displayPeers.append(peer) } } diff --git a/submodules/ChatListUI/Sources/ChatListSelection.swift b/submodules/ChatListUI/Sources/ChatListSelection.swift index b7ed5c2aab..2fa39e60d2 100644 --- a/submodules/ChatListUI/Sources/ChatListSelection.swift +++ b/submodules/ChatListUI/Sources/ChatListSelection.swift @@ -1,7 +1,6 @@ import Foundation import UIKit import SwiftSignalKit -import Postbox import TelegramCore import AccountContext @@ -15,7 +14,7 @@ struct ChatListSelectionOptions: Equatable { let delete: Bool } -func chatListSelectionOptions(context: AccountContext, peerIds: Set, filterId: Int32?) -> Signal { +func chatListSelectionOptions(context: AccountContext, peerIds: Set, filterId: Int32?) -> Signal { if peerIds.isEmpty { if let filterId = filterId { return chatListFilterItems(context: context) @@ -58,7 +57,7 @@ func chatListSelectionOptions(context: AccountContext, peerIds: Set, fil } -func forumSelectionOptions(context: AccountContext, peerId: PeerId, threadIds: Set) -> Signal { +func forumSelectionOptions(context: AccountContext, peerId: EnginePeer.Id, threadIds: Set) -> Signal { return context.engine.data.get( TelegramEngine.EngineData.Item.Peer.Peer(id: peerId), EngineDataList(threadIds.map { TelegramEngine.EngineData.Item.Peer.ThreadData(id: peerId, threadId: $0) }) diff --git a/submodules/ChatListUI/Sources/Node/ChatListArchiveInfoItem.swift b/submodules/ChatListUI/Sources/Node/ChatListArchiveInfoItem.swift index 13e836f1d9..0582c8859b 100644 --- a/submodules/ChatListUI/Sources/Node/ChatListArchiveInfoItem.swift +++ b/submodules/ChatListUI/Sources/Node/ChatListArchiveInfoItem.swift @@ -1,7 +1,6 @@ import Foundation import UIKit import AsyncDisplayKit -import Postbox import Display import SwiftSignalKit import TelegramPresentationData diff --git a/submodules/ChatListUI/Sources/Node/ChatListEmptyHeaderItem.swift b/submodules/ChatListUI/Sources/Node/ChatListEmptyHeaderItem.swift index f8c4dadded..9edf523d4c 100644 --- a/submodules/ChatListUI/Sources/Node/ChatListEmptyHeaderItem.swift +++ b/submodules/ChatListUI/Sources/Node/ChatListEmptyHeaderItem.swift @@ -1,7 +1,6 @@ import Foundation import UIKit import AsyncDisplayKit -import Postbox import Display import SwiftSignalKit import TelegramPresentationData diff --git a/submodules/ChatListUI/Sources/Node/ChatListEmptyInfoItem.swift b/submodules/ChatListUI/Sources/Node/ChatListEmptyInfoItem.swift index e7068be412..d38e931023 100644 --- a/submodules/ChatListUI/Sources/Node/ChatListEmptyInfoItem.swift +++ b/submodules/ChatListUI/Sources/Node/ChatListEmptyInfoItem.swift @@ -1,7 +1,6 @@ import Foundation import UIKit import AsyncDisplayKit -import Postbox import Display import SwiftSignalKit import TelegramPresentationData diff --git a/submodules/ChatListUI/Sources/Node/ChatListHoleItem.swift b/submodules/ChatListUI/Sources/Node/ChatListHoleItem.swift index f69ff4eb35..622e292c90 100644 --- a/submodules/ChatListUI/Sources/Node/ChatListHoleItem.swift +++ b/submodules/ChatListUI/Sources/Node/ChatListHoleItem.swift @@ -1,7 +1,6 @@ import Foundation import UIKit import AsyncDisplayKit -import Postbox import Display import SwiftSignalKit import TelegramPresentationData diff --git a/submodules/ChatListUI/Sources/Node/ChatListStorageInfoItem.swift b/submodules/ChatListUI/Sources/Node/ChatListStorageInfoItem.swift index 7e188fd8ca..e33af5cb73 100644 --- a/submodules/ChatListUI/Sources/Node/ChatListStorageInfoItem.swift +++ b/submodules/ChatListUI/Sources/Node/ChatListStorageInfoItem.swift @@ -1,7 +1,6 @@ import Foundation import UIKit import AsyncDisplayKit -import Postbox import Display import SwiftSignalKit import TelegramPresentationData diff --git a/submodules/ChatMessageBackground/Sources/ChatMessageBackground.swift b/submodules/ChatMessageBackground/Sources/ChatMessageBackground.swift index 317488e118..a26bf20361 100644 --- a/submodules/ChatMessageBackground/Sources/ChatMessageBackground.swift +++ b/submodules/ChatMessageBackground/Sources/ChatMessageBackground.swift @@ -2,7 +2,6 @@ import Foundation import UIKit import AsyncDisplayKit import Display -import Postbox import TelegramPresentationData import WallpaperBackgroundNode @@ -523,7 +522,7 @@ public final class ChatMessageBubbleBackdrop: ASDisplayNode { self.clipsToBounds = true } - public func setMaskMode(_ maskMode: Bool, mediaBox: MediaBox) { + public func setMaskMode(_ maskMode: Bool) { if let currentType = self.currentType, let theme = self.theme, let essentialGraphics = self.essentialGraphics, let backgroundNode = self.backgroundNode { self.setType(type: currentType, theme: theme, essentialGraphics: essentialGraphics, maskMode: maskMode, backgroundNode: backgroundNode) } @@ -685,7 +684,7 @@ public final class ChatMessageBubbleBackdrop: ASDisplayNode { }) } - public func animateFrom(sourceView: UIView, mediaBox: MediaBox, transition: CombinedTransition) { + public func animateFrom(sourceView: UIView, transition: CombinedTransition) { if transition.isAnimated { let previousFrame = self.frame self.updateFrame(CGRect(origin: CGPoint(x: previousFrame.minX, y: sourceView.frame.minY), size: sourceView.frame.size), transition: .immediate) diff --git a/submodules/ChatPresentationInterfaceState/Sources/ChatEditInterfaceMessageState.swift b/submodules/ChatPresentationInterfaceState/Sources/ChatEditInterfaceMessageState.swift index 476eeb5200..48a2f0e44d 100644 --- a/submodules/ChatPresentationInterfaceState/Sources/ChatEditInterfaceMessageState.swift +++ b/submodules/ChatPresentationInterfaceState/Sources/ChatEditInterfaceMessageState.swift @@ -1,6 +1,5 @@ import Foundation import UIKit -import Postbox import TelegramCore public struct MessageMediaEditingOptions: OptionSet { diff --git a/submodules/ChatPresentationInterfaceState/Sources/ChatTextFormat.swift b/submodules/ChatPresentationInterfaceState/Sources/ChatTextFormat.swift index d9e59bd7e2..b4fd3e9b6d 100644 --- a/submodules/ChatPresentationInterfaceState/Sources/ChatTextFormat.swift +++ b/submodules/ChatPresentationInterfaceState/Sources/ChatTextFormat.swift @@ -1,6 +1,5 @@ import Foundation import TextFormat -import Postbox import TelegramCore import AccountContext @@ -78,7 +77,7 @@ public func chatTextInputAddLinkAttribute(_ state: ChatTextInputState, selection } } -public func chatTextInputAddMentionAttribute(_ state: ChatTextInputState, peer: Peer) -> ChatTextInputState { +public func chatTextInputAddMentionAttribute(_ state: ChatTextInputState, peer: EnginePeer) -> ChatTextInputState { let inputText = NSMutableAttributedString(attributedString: state.inputText) let range = NSMakeRange(state.selectionRange.startIndex, state.selectionRange.endIndex - state.selectionRange.startIndex) @@ -91,9 +90,9 @@ public func chatTextInputAddMentionAttribute(_ state: ChatTextInputState, peer: let selectionPosition = range.lowerBound + (replacementText as NSString).length return ChatTextInputState(inputText: inputText, selectionRange: selectionPosition ..< selectionPosition) - } else if !EnginePeer(peer).compactDisplayTitle.isEmpty { + } else if !peer.compactDisplayTitle.isEmpty { let replacementText = NSMutableAttributedString() - replacementText.append(NSAttributedString(string: EnginePeer(peer).compactDisplayTitle, attributes: [ChatTextInputAttributes.textMention: ChatTextInputTextMentionAttribute(peerId: peer.id)])) + replacementText.append(NSAttributedString(string: peer.compactDisplayTitle, attributes: [ChatTextInputAttributes.textMention: ChatTextInputTextMentionAttribute(peerId: peer.id)])) replacementText.append(NSAttributedString(string: " ")) let updatedRange = NSRange(location: range.location , length: range.length) diff --git a/submodules/ChatSendMessageActionUI/Sources/ChatSendMessageActionSheetControllerNode.swift b/submodules/ChatSendMessageActionUI/Sources/ChatSendMessageActionSheetControllerNode.swift index acb23c3c16..bd3b05ce38 100644 --- a/submodules/ChatSendMessageActionUI/Sources/ChatSendMessageActionSheetControllerNode.swift +++ b/submodules/ChatSendMessageActionUI/Sources/ChatSendMessageActionSheetControllerNode.swift @@ -3,7 +3,6 @@ import UIKit import AsyncDisplayKit import SwiftSignalKit import Display -import Postbox import TelegramCore import TelegramPresentationData import AccountContext diff --git a/submodules/ChatTextLinkEditUI/Sources/ChatTextLinkEditController.swift b/submodules/ChatTextLinkEditUI/Sources/ChatTextLinkEditController.swift index 22c422c163..85e4268977 100644 --- a/submodules/ChatTextLinkEditUI/Sources/ChatTextLinkEditController.swift +++ b/submodules/ChatTextLinkEditUI/Sources/ChatTextLinkEditController.swift @@ -3,7 +3,6 @@ import UIKit import SwiftSignalKit import AsyncDisplayKit import Display -import Postbox import TelegramCore import TelegramPresentationData import AccountContext diff --git a/submodules/Components/ReactionButtonListComponent/Sources/ReactionButtonListComponent.swift b/submodules/Components/ReactionButtonListComponent/Sources/ReactionButtonListComponent.swift index 3fdc76cb2a..be84d84abf 100644 --- a/submodules/Components/ReactionButtonListComponent/Sources/ReactionButtonListComponent.swift +++ b/submodules/Components/ReactionButtonListComponent/Sources/ReactionButtonListComponent.swift @@ -3,7 +3,6 @@ import AsyncDisplayKit import Display import ComponentFlow import SwiftSignalKit -import Postbox import TelegramCore import AccountContext import TelegramPresentationData diff --git a/submodules/Components/ReactionImageComponent/BUILD b/submodules/Components/ReactionImageComponent/BUILD index 7b26c280e8..80ef60793d 100644 --- a/submodules/Components/ReactionImageComponent/BUILD +++ b/submodules/Components/ReactionImageComponent/BUILD @@ -13,7 +13,6 @@ swift_library( "//submodules/Display:Display", "//submodules/ComponentFlow:ComponentFlow", "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit", - "//submodules/Postbox:Postbox", "//submodules/TelegramCore:TelegramCore", "//submodules/AccountContext:AccountContext", "//submodules/WebPBinding:WebPBinding", diff --git a/submodules/Components/ReactionImageComponent/Sources/ReactionImageComponent.swift b/submodules/Components/ReactionImageComponent/Sources/ReactionImageComponent.swift index 620c69aaac..e55c7738e7 100644 --- a/submodules/Components/ReactionImageComponent/Sources/ReactionImageComponent.swift +++ b/submodules/Components/ReactionImageComponent/Sources/ReactionImageComponent.swift @@ -3,7 +3,6 @@ import AsyncDisplayKit import Display import ComponentFlow import SwiftSignalKit -import Postbox import TelegramCore import AccountContext import TelegramPresentationData @@ -64,7 +63,7 @@ public func reactionStaticImage(context: AccountContext, animation: TelegramMedi return } - let tempFile = TempBox.shared.tempFile(fileName: "image.png") + let tempFile = EngineTempBox.shared.tempFile(fileName: "image.png") guard let _ = try? pngData.write(to: URL(fileURLWithPath: tempFile.path)) else { return } diff --git a/submodules/Components/ReactionListContextMenuContent/Sources/ReactionListContextMenuContent.swift b/submodules/Components/ReactionListContextMenuContent/Sources/ReactionListContextMenuContent.swift index 59349011a1..754b885bca 100644 --- a/submodules/Components/ReactionListContextMenuContent/Sources/ReactionListContextMenuContent.swift +++ b/submodules/Components/ReactionListContextMenuContent/Sources/ReactionListContextMenuContent.swift @@ -3,7 +3,6 @@ import AsyncDisplayKit import Display import ComponentFlow import SwiftSignalKit -import Postbox import TelegramCore import AccountContext import TelegramPresentationData diff --git a/submodules/DrawingUI/Sources/ColorPickerScreen.swift b/submodules/DrawingUI/Sources/ColorPickerScreen.swift index 4c62083c59..b2763b2533 100644 --- a/submodules/DrawingUI/Sources/ColorPickerScreen.swift +++ b/submodules/DrawingUI/Sources/ColorPickerScreen.swift @@ -5,7 +5,6 @@ import SwiftSignalKit import ComponentFlow import LegacyComponents import TelegramCore -import Postbox import AccountContext import TelegramPresentationData import SheetComponent diff --git a/submodules/DrawingUI/Sources/ModeAndSizeComponent.swift b/submodules/DrawingUI/Sources/ModeAndSizeComponent.swift index af2620f379..15a0e4025d 100644 --- a/submodules/DrawingUI/Sources/ModeAndSizeComponent.swift +++ b/submodules/DrawingUI/Sources/ModeAndSizeComponent.swift @@ -4,7 +4,6 @@ import Display import ComponentFlow import LegacyComponents import TelegramCore -import Postbox import SegmentedControlNode private func generateMaskPath(size: CGSize, leftRadius: CGFloat, rightRadius: CGFloat) -> UIBezierPath { diff --git a/submodules/DrawingUI/Sources/TextSettingsComponent.swift b/submodules/DrawingUI/Sources/TextSettingsComponent.swift index 10d8c0bc62..420eb67cdf 100644 --- a/submodules/DrawingUI/Sources/TextSettingsComponent.swift +++ b/submodules/DrawingUI/Sources/TextSettingsComponent.swift @@ -4,7 +4,6 @@ import Display import ComponentFlow import LegacyComponents import TelegramCore -import Postbox import LottieAnimationComponent enum DrawingTextStyle: Equatable { diff --git a/submodules/DrawingUI/Sources/ToolsComponent.swift b/submodules/DrawingUI/Sources/ToolsComponent.swift index 36cbfdeedf..b3f88ca268 100644 --- a/submodules/DrawingUI/Sources/ToolsComponent.swift +++ b/submodules/DrawingUI/Sources/ToolsComponent.swift @@ -5,7 +5,6 @@ import ComponentFlow import SwiftSignalKit import LegacyComponents import TelegramCore -import Postbox private let toolSize = CGSize(width: 40.0, height: 176.0) diff --git a/submodules/FetchManagerImpl/Sources/FetchManagerImpl.swift b/submodules/FetchManagerImpl/Sources/FetchManagerImpl.swift index ae46cffb13..85181dc3b1 100644 --- a/submodules/FetchManagerImpl/Sources/FetchManagerImpl.swift +++ b/submodules/FetchManagerImpl/Sources/FetchManagerImpl.swift @@ -2,7 +2,6 @@ import Foundation import Postbox import TelegramCore import SwiftSignalKit -import Postbox import TelegramUIPreferences import AccountContext import UniversalMediaPlayer diff --git a/submodules/FileMediaResourceStatus/Sources/FileMediaResourceStatus.swift b/submodules/FileMediaResourceStatus/Sources/FileMediaResourceStatus.swift index 16d997708d..dd9de01a1a 100644 --- a/submodules/FileMediaResourceStatus/Sources/FileMediaResourceStatus.swift +++ b/submodules/FileMediaResourceStatus/Sources/FileMediaResourceStatus.swift @@ -70,9 +70,9 @@ public func messageFileMediaResourceStatus(context: AccountContext, file: Telegr } else if let pendingStatus = pendingStatus { mediaStatus = .fetchStatus(.Fetching(isActive: pendingStatus.isRunning, progress: pendingStatus.progress)) } else { - mediaStatus = .fetchStatus(resourceStatus) + mediaStatus = .fetchStatus(EngineMediaResource.FetchStatus(resourceStatus)) } - return FileMediaResourceStatus(mediaStatus: mediaStatus, fetchStatus: resourceStatus) + return FileMediaResourceStatus(mediaStatus: mediaStatus, fetchStatus: EngineMediaResource.FetchStatus(resourceStatus)) } } else { return combineLatest(messageMediaFileStatus(context: context, messageId: message.id, file: file), playbackStatus) @@ -92,9 +92,9 @@ public func messageFileMediaResourceStatus(context: AccountContext, file: Telegr } } } else { - mediaStatus = .fetchStatus(resourceStatus) + mediaStatus = .fetchStatus(EngineMediaResource.FetchStatus(resourceStatus)) } - return FileMediaResourceStatus(mediaStatus: mediaStatus, fetchStatus: resourceStatus) + return FileMediaResourceStatus(mediaStatus: mediaStatus, fetchStatus: EngineMediaResource.FetchStatus(resourceStatus)) } } } @@ -107,16 +107,16 @@ public func messageImageMediaResourceStatus(context: AccountContext, image: Tele if let pendingStatus = pendingStatus { mediaStatus = .fetchStatus(.Fetching(isActive: pendingStatus.isRunning, progress: pendingStatus.progress)) } else { - mediaStatus = .fetchStatus(resourceStatus) + mediaStatus = .fetchStatus(EngineMediaResource.FetchStatus(resourceStatus)) } - return FileMediaResourceStatus(mediaStatus: mediaStatus, fetchStatus: resourceStatus) + return FileMediaResourceStatus(mediaStatus: mediaStatus, fetchStatus: EngineMediaResource.FetchStatus(resourceStatus)) } } else { return messageMediaImageStatus(context: context, messageId: message.id, image: image) |> map { resourceStatus -> FileMediaResourceStatus in let mediaStatus: FileMediaResourceMediaStatus - mediaStatus = .fetchStatus(resourceStatus) - return FileMediaResourceStatus(mediaStatus: mediaStatus, fetchStatus: resourceStatus) + mediaStatus = .fetchStatus(EngineMediaResource.FetchStatus(resourceStatus)) + return FileMediaResourceStatus(mediaStatus: mediaStatus, fetchStatus: EngineMediaResource.FetchStatus(resourceStatus)) } } } diff --git a/submodules/InAppPurchaseManager/Sources/InAppPurchaseManager.swift b/submodules/InAppPurchaseManager/Sources/InAppPurchaseManager.swift index adc0ba55c4..34ebc100d5 100644 --- a/submodules/InAppPurchaseManager/Sources/InAppPurchaseManager.swift +++ b/submodules/InAppPurchaseManager/Sources/InAppPurchaseManager.swift @@ -2,7 +2,6 @@ import Foundation import CoreLocation import SwiftSignalKit import StoreKit -import Postbox import TelegramCore import TelegramStringFormatting import TelegramUIPreferences @@ -155,10 +154,10 @@ public final class InAppPurchaseManager: NSObject { private final class PaymentTransactionContext { var state: SKPaymentTransactionState? var isUpgrade: Bool - var targetPeerId: PeerId? + var targetPeerId: EnginePeer.Id? let subscriber: (TransactionState) -> Void - init(isUpgrade: Bool, targetPeerId: PeerId?, subscriber: @escaping (TransactionState) -> Void) { + init(isUpgrade: Bool, targetPeerId: EnginePeer.Id?, subscriber: @escaping (TransactionState) -> Void) { self.isUpgrade = isUpgrade self.targetPeerId = targetPeerId self.subscriber = subscriber @@ -238,7 +237,7 @@ public final class InAppPurchaseManager: NSObject { } } - public func buyProduct(_ product: Product, isUpgrade: Bool = false, targetPeerId: PeerId? = nil) -> Signal { + public func buyProduct(_ product: Product, isUpgrade: Bool = false, targetPeerId: EnginePeer.Id? = nil) -> Signal { if !self.canMakePayments { return .fail(.cantMakePayments) } @@ -415,12 +414,12 @@ extension InAppPurchaseManager: SKPaymentTransactionObserver { let purpose: Signal if !isSubscriptionProductId(productIdentifier) { - let peerId: Signal + let peerId: Signal if let targetPeerId = paymentContexts[productIdentifier]?.targetPeerId { peerId = .single(targetPeerId) } else { peerId = pendingInAppPurchaseState(engine: self.engine, productId: productIdentifier) - |> mapToSignal { state -> Signal in + |> mapToSignal { state -> Signal in if let state = state, let peerId = state.targetPeerId { return .single(peerId) } else { @@ -540,9 +539,9 @@ extension InAppPurchaseManager: SKPaymentTransactionObserver { private final class PendingInAppPurchaseState: Codable { public let productId: String public let isUpgrade: Bool - public let targetPeerId: PeerId? + public let targetPeerId: EnginePeer.Id? - public init(productId: String, isUpgrade: Bool, targetPeerId: PeerId?) { + public init(productId: String, isUpgrade: Bool, targetPeerId: EnginePeer.Id?) { self.productId = productId self.isUpgrade = isUpgrade self.targetPeerId = targetPeerId @@ -553,7 +552,7 @@ private final class PendingInAppPurchaseState: Codable { self.productId = try container.decode(String.self, forKey: "productId") self.isUpgrade = try container.decodeIfPresent(Bool.self, forKey: "isUpgrade") ?? false - self.targetPeerId = (try container.decodeIfPresent(Int64.self, forKey: "targetPeerId")).flatMap { PeerId(namespace: Namespaces.Peer.CloudUser, id: PeerId.Id._internalFromInt64Value($0)) } + self.targetPeerId = (try container.decodeIfPresent(Int64.self, forKey: "targetPeerId")).flatMap { EnginePeer.Id(namespace: Namespaces.Peer.CloudUser, id: EnginePeer.Id.Id._internalFromInt64Value($0)) } } public func encode(to encoder: Encoder) throws { @@ -568,7 +567,7 @@ private final class PendingInAppPurchaseState: Codable { } private func pendingInAppPurchaseState(engine: TelegramEngine, productId: String) -> Signal { - let key = ValueBoxKey(length: 8) + let key = EngineDataBuffer(length: 8) key.setInt64(0, value: Int64(bitPattern: productId.persistentHashValue)) return engine.data.get(TelegramEngine.EngineData.Item.ItemCache.Item(collectionId: ApplicationSpecificItemCacheCollectionId.pendingInAppPurchaseState, id: key)) @@ -578,7 +577,7 @@ private func pendingInAppPurchaseState(engine: TelegramEngine, productId: String } private func updatePendingInAppPurchaseState(engine: TelegramEngine, productId: String, content: PendingInAppPurchaseState?) -> Signal { - let key = ValueBoxKey(length: 8) + let key = EngineDataBuffer(length: 8) key.setInt64(0, value: Int64(bitPattern: productId.persistentHashValue)) if let content = content { diff --git a/submodules/ListMessageItem/Sources/ListMessageFileItemNode.swift b/submodules/ListMessageItem/Sources/ListMessageFileItemNode.swift index a2c1817353..45111f5b29 100644 --- a/submodules/ListMessageItem/Sources/ListMessageFileItemNode.swift +++ b/submodules/ListMessageItem/Sources/ListMessageFileItemNode.swift @@ -1231,7 +1231,7 @@ public final class ListMessageFileItemNode: ListMessageNode { strongSelf.statusDisposable.set((updatedStatusSignal |> deliverOnMainQueue).start(next: { [weak strongSelf] fileStatus in if let strongSelf = strongSelf { - strongSelf.fetchStatus = fileStatus.fetchStatus + strongSelf.fetchStatus = fileStatus.fetchStatus._asStatus() strongSelf.resourceStatus = fileStatus.mediaStatus strongSelf.updateStatus(transition: .immediate) } @@ -1436,7 +1436,7 @@ public final class ListMessageFileItemNode: ListMessageNode { case .playbackStatus: break case let .fetchStatus(fetchStatus): - maybeFetchStatus = fetchStatus + maybeFetchStatus = fetchStatus._asStatus() } if item.isDownloadList, let fetchStatus = self.fetchStatus { diff --git a/submodules/PassportUI/Sources/SecureIdAuthControllerNode.swift b/submodules/PassportUI/Sources/SecureIdAuthControllerNode.swift index f6b8151de6..3f14922c1f 100644 --- a/submodules/PassportUI/Sources/SecureIdAuthControllerNode.swift +++ b/submodules/PassportUI/Sources/SecureIdAuthControllerNode.swift @@ -3,7 +3,6 @@ import UIKit import SwiftSignalKit import Display import AsyncDisplayKit -import Postbox import TelegramCore import TelegramPresentationData import TelegramUIPreferences diff --git a/submodules/PeerInfoUI/Sources/UserInfoController.swift b/submodules/PeerInfoUI/Sources/UserInfoController.swift index 659321903d..3ecf99828c 100644 --- a/submodules/PeerInfoUI/Sources/UserInfoController.swift +++ b/submodules/PeerInfoUI/Sources/UserInfoController.swift @@ -51,7 +51,7 @@ private func getUserPeer(engine: TelegramEngine, peerId: EnginePeer.Id) -> Signa public func openAddPersonContactImpl(context: AccountContext, updatedPresentationData: (initial: PresentationData, signal: Signal)? = nil, peerId: EnginePeer.Id, pushController: @escaping (ViewController) -> Void, present: @escaping (ViewController, Any?) -> Void) { let _ = (getUserPeer(engine: context.engine, peerId: peerId) |> deliverOnMainQueue).start(next: { peer, statusSettings in - guard case let .user(user) = peer, let contactData = DeviceContactExtendedData(peer: user) else { + guard let peer, case let .user(user) = peer, let contactData = DeviceContactExtendedData(peer: peer) else { return } diff --git a/submodules/TelegramBaseController/Sources/MediaNavigationAccessoryHeaderNode.swift b/submodules/TelegramBaseController/Sources/MediaNavigationAccessoryHeaderNode.swift index de6f7c7965..542aff1a1d 100644 --- a/submodules/TelegramBaseController/Sources/MediaNavigationAccessoryHeaderNode.swift +++ b/submodules/TelegramBaseController/Sources/MediaNavigationAccessoryHeaderNode.swift @@ -57,13 +57,15 @@ private class MediaHeaderItemNode: ASDisplayNode { subtitleString = NSAttributedString(string: subtitleText, font: subtitleFont, textColor: theme.rootController.navigationBar.secondaryTextColor) case let .voice(author, peer): rateButtonHidden = false - let titleText: String = author.flatMap(EnginePeer.init)?.displayTitle(strings: strings, displayOrder: nameDisplayOrder) ?? "" + let titleText: String = author?.displayTitle(strings: strings, displayOrder: nameDisplayOrder) ?? "" let subtitleText: String if let peer = peer { - if let peer = peer as? TelegramChannel, case .broadcast = peer.info { + if case let .channel(peer) = peer, case .broadcast = peer.info { subtitleText = strings.MusicPlayer_VoiceNote - } else if peer is TelegramGroup || peer is TelegramChannel { - subtitleText = EnginePeer(peer).displayTitle(strings: strings, displayOrder: nameDisplayOrder) + } else if case .legacyGroup = peer { + subtitleText = peer.displayTitle(strings: strings, displayOrder: nameDisplayOrder) + } else if case .channel = peer { + subtitleText = peer.displayTitle(strings: strings, displayOrder: nameDisplayOrder) } else { subtitleText = strings.MusicPlayer_VoiceNote } @@ -75,13 +77,14 @@ private class MediaHeaderItemNode: ASDisplayNode { subtitleString = NSAttributedString(string: subtitleText, font: subtitleFont, textColor: theme.rootController.navigationBar.secondaryTextColor) case let .instantVideo(author, peer, timestamp): rateButtonHidden = false - let titleText: String = author.flatMap(EnginePeer.init)?.displayTitle(strings: strings, displayOrder: nameDisplayOrder) ?? "" + let titleText: String = author?.displayTitle(strings: strings, displayOrder: nameDisplayOrder) ?? "" var subtitleText: String if let peer = peer { - if peer is TelegramGroup || peer is TelegramChannel { - subtitleText = EnginePeer(peer).displayTitle(strings: strings, displayOrder: nameDisplayOrder) - } else { + switch peer { + case .legacyGroup, .channel: + subtitleText = peer.displayTitle(strings: strings, displayOrder: nameDisplayOrder) + default: subtitleText = strings.Message_VideoMessage } } else { diff --git a/submodules/TelegramCallsUI/Sources/PresentationCall.swift b/submodules/TelegramCallsUI/Sources/PresentationCall.swift index 2996e1ac24..73699c77c6 100644 --- a/submodules/TelegramCallsUI/Sources/PresentationCall.swift +++ b/submodules/TelegramCallsUI/Sources/PresentationCall.swift @@ -27,14 +27,14 @@ public final class PresentationCallImpl: PresentationCall { private let getDeviceAccessData: () -> (presentationData: PresentationData, present: (ViewController, Any?) -> Void, openSettings: () -> Void) public let internalId: CallSessionInternalId - public let peerId: PeerId + public let peerId: EnginePeer.Id public let isOutgoing: Bool public var isVideo: Bool public var isVideoPossible: Bool private let enableStunMarking: Bool private let enableTCP: Bool public let preferredVideoCodec: String? - public let peer: Peer? + public let peer: EnginePeer? private let serializedData: String? private let dataSaving: VoiceCallDataSaving @@ -138,9 +138,9 @@ public final class PresentationCallImpl: PresentationCall { getDeviceAccessData: @escaping () -> (presentationData: PresentationData, present: (ViewController, Any?) -> Void, openSettings: () -> Void), initialState: CallSession?, internalId: CallSessionInternalId, - peerId: PeerId, + peerId: EnginePeer.Id, isOutgoing: Bool, - peer: Peer?, + peer: EnginePeer?, proxyServer: ProxyServerSettings?, auxiliaryServers: [CallAuxiliaryServer], currentNetworkType: NetworkType, @@ -453,7 +453,7 @@ public final class PresentationCallImpl: PresentationCall { if !self.reportedIncomingCall, let stableId = sessionState.stableId { self.reportedIncomingCall = true var phoneNumber: String? - if let peer = self.peer as? TelegramUser, let phone = peer.phone { + if case let .user(peer) = self.peer, let phone = peer.phone { phoneNumber = formatPhoneNumber(context: self.context, number: phone) } self.callKitIntegration?.reportIncomingCall( diff --git a/submodules/TelegramCallsUI/Sources/PresentationCallManager.swift b/submodules/TelegramCallsUI/Sources/PresentationCallManager.swift index d04539c652..1855341f7c 100644 --- a/submodules/TelegramCallsUI/Sources/PresentationCallManager.swift +++ b/submodules/TelegramCallsUI/Sources/PresentationCallManager.swift @@ -321,7 +321,7 @@ public final class PresentationCallManagerImpl: PresentationCallManager { internalId: firstState.2.id, peerId: firstState.2.peerId, isOutgoing: false, - peer: firstState.1, + peer: EnginePeer(firstState.1), proxyServer: strongSelf.proxyServer, auxiliaryServers: [], currentNetworkType: firstState.4, diff --git a/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift b/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift index f468a4bada..116472263a 100644 --- a/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift +++ b/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift @@ -518,12 +518,12 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { private struct SummaryParticipantsState: Equatable { public var participantCount: Int public var topParticipants: [GroupCallParticipantsContext.Participant] - public var activeSpeakers: Set + public var activeSpeakers: Set public init( participantCount: Int, topParticipants: [GroupCallParticipantsContext.Participant], - activeSpeakers: Set + activeSpeakers: Set ) { self.participantCount = participantCount self.topParticipants = topParticipants @@ -542,26 +542,26 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { let level: Float } - private var participants: [PeerId: Participant] = [:] + private var participants: [EnginePeer.Id: Participant] = [:] private let speakingParticipantsPromise = ValuePromise<[PeerId: UInt32]>() - private var speakingParticipants = [PeerId: UInt32]() { + private var speakingParticipants = [EnginePeer.Id: UInt32]() { didSet { self.speakingParticipantsPromise.set(self.speakingParticipants) } } - private let audioLevelsPromise = Promise<[(PeerId, UInt32, Float, Bool)]>() + private let audioLevelsPromise = Promise<[(EnginePeer.Id, UInt32, Float, Bool)]>() init() { } - func update(levels: [(PeerId, UInt32, Float, Bool)]) { + func update(levels: [(EnginePeer.Id, UInt32, Float, Bool)]) { let timestamp = Int32(CFAbsoluteTimeGetCurrent()) let currentParticipants: [PeerId: Participant] = self.participants - var validSpeakers: [PeerId: Participant] = [:] - var silentParticipants = Set() - var speakingParticipants = [PeerId: UInt32]() + var validSpeakers: [EnginePeer.Id: Participant] = [:] + var silentParticipants = Set() + var speakingParticipants = [EnginePeer.Id: UInt32]() for (peerId, ssrc, level, hasVoice) in levels { if level > speakingLevelThreshold && hasVoice { validSpeakers[peerId] = Participant(ssrc: ssrc, timestamp: timestamp, level: level) @@ -587,7 +587,7 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { } } - var audioLevels: [(PeerId, UInt32, Float, Bool)] = [] + var audioLevels: [(EnginePeer.Id, UInt32, Float, Bool)] = [] for (peerId, source, level, hasVoice) in levels { if level > 0.001 { audioLevels.append((peerId, source, level, hasVoice)) @@ -599,11 +599,11 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { self.audioLevelsPromise.set(.single(audioLevels)) } - func get() -> Signal<[PeerId: UInt32], NoError> { + func get() -> Signal<[EnginePeer.Id: UInt32], NoError> { return self.speakingParticipantsPromise.get() } - func getAudioLevels() -> Signal<[(PeerId, UInt32, Float, Bool)], NoError> { + func getAudioLevels() -> Signal<[(EnginePeer.Id, UInt32, Float, Bool)], NoError> { return self.audioLevelsPromise.get() } } @@ -620,12 +620,12 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { private(set) var initialCall: EngineGroupCallDescription? public let internalId: CallSessionInternalId - public let peerId: PeerId + public let peerId: EnginePeer.Id private let isChannel: Bool private var invite: String? - private var joinAsPeerId: PeerId + private var joinAsPeerId: EnginePeer.Id private var ignorePreviousJoinAsPeerId: (PeerId, UInt32)? - private var reconnectingAsPeer: Peer? + private var reconnectingAsPeer: EnginePeer? public private(set) var hasVideo: Bool public private(set) var hasScreencast: Bool @@ -653,7 +653,7 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { private var screencastCapturer: OngoingCallVideoCapturer? private struct SsrcMapping { - var peerId: PeerId + var peerId: EnginePeer.Id var isPresentation: Bool } private var ssrcMapping: [UInt32: SsrcMapping] = [:] @@ -708,8 +708,8 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { private var audioLevelsDisposable = MetaDisposable() private let speakingParticipantsContext = SpeakingParticipantsContext() - private var speakingParticipantsReportTimestamp: [PeerId: Double] = [:] - public var audioLevels: Signal<[(PeerId, UInt32, Float, Bool)], NoError> { + private var speakingParticipantsReportTimestamp: [EnginePeer.Id: Double] = [:] + public var audioLevels: Signal<[(EnginePeer.Id, UInt32, Float, Bool)], NoError> { return self.speakingParticipantsContext.getAudioLevels() } @@ -778,15 +778,15 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { return self.membersPromise.get() } - private var invitedPeersValue: [PeerId] = [] { + private var invitedPeersValue: [EnginePeer.Id] = [] { didSet { if self.invitedPeersValue != oldValue { self.inivitedPeersPromise.set(self.invitedPeersValue) } } } - private let inivitedPeersPromise = ValuePromise<[PeerId]>([]) - public var invitedPeers: Signal<[PeerId], NoError> { + private let inivitedPeersPromise = ValuePromise<[EnginePeer.Id]>([]) + public var invitedPeers: Signal<[EnginePeer.Id], NoError> { return self.inivitedPeersPromise.get() } @@ -796,8 +796,8 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { } private let memberEventsPipeDisposable = MetaDisposable() - private let reconnectedAsEventsPipe = ValuePipe() - public var reconnectedAsEvents: Signal { + private let reconnectedAsEventsPipe = ValuePipe() + public var reconnectedAsEvents: Signal { return self.reconnectedAsEventsPipe.signal() } @@ -860,10 +860,10 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { getDeviceAccessData: @escaping () -> (presentationData: PresentationData, present: (ViewController, Any?) -> Void, openSettings: () -> Void), initialCall: EngineGroupCallDescription?, internalId: CallSessionInternalId, - peerId: PeerId, + peerId: EnginePeer.Id, isChannel: Bool, invite: String?, - joinAsPeerId: PeerId?, + joinAsPeerId: EnginePeer.Id?, isStream: Bool ) { self.account = accountContext.account @@ -2354,7 +2354,7 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { |> mapToSignal { peer, isContact, chatListIndex -> Signal in if let peer = peer { let isInChatList = chatListIndex != nil - return .single(PresentationGroupCallMemberEvent(peer: peer._asPeer(), isContact: isContact, isInChatList: isInChatList, canUnmute: event.canUnmute, joined: event.joined)) + return .single(PresentationGroupCallMemberEvent(peer: peer, isContact: isContact, isInChatList: isInChatList, canUnmute: event.canUnmute, joined: event.joined)) } else { return .complete() } @@ -2554,7 +2554,7 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { self.requestCall(movingFromBroadcastToRtc: false) } - public func reconnect(as peerId: PeerId) { + public func reconnect(as peerId: EnginePeer.Id) { if peerId == self.joinAsPeerId { return } @@ -2572,14 +2572,14 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { if strongSelf.stateValue.scheduleTimestamp != nil { strongSelf.stateValue.myPeerId = peerId - strongSelf.reconnectedAsEventsPipe.putNext(myPeer._asPeer()) + strongSelf.reconnectedAsEventsPipe.putNext(myPeer) strongSelf.switchToTemporaryScheduledParticipantsContext() } else { strongSelf.disableVideo() strongSelf.isMutedValue = .muted(isPushToTalkActive: false) strongSelf.isMutedPromise.set(strongSelf.isMutedValue) - strongSelf.reconnectingAsPeer = myPeer._asPeer() + strongSelf.reconnectingAsPeer = myPeer if let participantsContext = strongSelf.participantsContext, let immediateState = participantsContext.immediateState { for participant in immediateState.participants { diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatController.swift b/submodules/TelegramCallsUI/Sources/VoiceChatController.swift index 00655e1e92..61283c8744 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatController.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatController.swift @@ -2262,8 +2262,8 @@ public final class VoiceChatControllerImpl: ViewController, VoiceChatController if let channel = strongSelf.peer as? TelegramChannel, case .broadcast = channel.info { return } - let text = strongSelf.presentationData.strings.VoiceChat_PeerJoinedText(EnginePeer(event.peer).displayTitle(strings: strongSelf.presentationData.strings, displayOrder: strongSelf.presentationData.nameDisplayOrder)).string - strongSelf.presentUndoOverlay(content: .invitedToVoiceChat(context: strongSelf.context, peer: EnginePeer(event.peer), text: text, action: nil, duration: 3), action: { _ in return false }) + let text = strongSelf.presentationData.strings.VoiceChat_PeerJoinedText(event.peer.displayTitle(strings: strongSelf.presentationData.strings, displayOrder: strongSelf.presentationData.nameDisplayOrder)).string + strongSelf.presentUndoOverlay(content: .invitedToVoiceChat(context: strongSelf.context, peer: event.peer, text: text, action: nil, duration: 3), action: { _ in return false }) } })) @@ -2274,11 +2274,11 @@ public final class VoiceChatControllerImpl: ViewController, VoiceChatController } let text: String if let channel = strongSelf.peer as? TelegramChannel, case .broadcast = channel.info { - text = strongSelf.presentationData.strings.LiveStream_DisplayAsSuccess(EnginePeer(peer).displayTitle(strings: strongSelf.presentationData.strings, displayOrder: strongSelf.presentationData.nameDisplayOrder)).string + text = strongSelf.presentationData.strings.LiveStream_DisplayAsSuccess(peer.displayTitle(strings: strongSelf.presentationData.strings, displayOrder: strongSelf.presentationData.nameDisplayOrder)).string } else { - text = strongSelf.presentationData.strings.VoiceChat_DisplayAsSuccess(EnginePeer(peer).displayTitle(strings: strongSelf.presentationData.strings, displayOrder: strongSelf.presentationData.nameDisplayOrder)).string + text = strongSelf.presentationData.strings.VoiceChat_DisplayAsSuccess(peer.displayTitle(strings: strongSelf.presentationData.strings, displayOrder: strongSelf.presentationData.nameDisplayOrder)).string } - strongSelf.presentUndoOverlay(content: .invitedToVoiceChat(context: strongSelf.context, peer: EnginePeer(peer), text: text, action: nil, duration: 3), action: { _ in return false }) + strongSelf.presentUndoOverlay(content: .invitedToVoiceChat(context: strongSelf.context, peer: peer, text: text, action: nil, duration: 3), action: { _ in return false }) })) self.stateVersionDisposable.set((self.call.stateVersion diff --git a/submodules/TelegramCore/Sources/TelegramEngine/ItemCache/TelegramEngineItemCache.swift b/submodules/TelegramCore/Sources/TelegramEngine/ItemCache/TelegramEngineItemCache.swift index 2ea4f81130..8723e0ec22 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/ItemCache/TelegramEngineItemCache.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/ItemCache/TelegramEngineItemCache.swift @@ -2,6 +2,8 @@ import Foundation import SwiftSignalKit import Postbox +public typealias EngineDataBuffer = ValueBoxKey + public extension TelegramEngine { final class ItemCache { private let account: Account @@ -10,7 +12,7 @@ public extension TelegramEngine { self.account = account } - public func put(collectionId: Int8, id: ValueBoxKey, item: T) -> Signal { + public func put(collectionId: Int8, id: EngineDataBuffer, item: T) -> Signal { return self.account.postbox.transaction { transaction -> Void in if let entry = CodableEntry(item) { transaction.putItemCacheEntry(id: ItemCacheEntryId(collectionId: collectionId, key: id), entry: entry) @@ -19,7 +21,7 @@ public extension TelegramEngine { |> ignoreValues } - public func remove(collectionId: Int8, id: ValueBoxKey) -> Signal { + public func remove(collectionId: Int8, id: EngineDataBuffer) -> Signal { return self.account.postbox.transaction { transaction -> Void in transaction.removeItemCacheEntry(id: ItemCacheEntryId(collectionId: collectionId, key: id)) } diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Resources/TelegramEngineResources.swift b/submodules/TelegramCore/Sources/TelegramEngine/Resources/TelegramEngineResources.swift index 7d286c3289..82a3ab83af 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Resources/TelegramEngineResources.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Resources/TelegramEngineResources.swift @@ -3,9 +3,6 @@ import SwiftSignalKit import Postbox import TelegramApi -public typealias EngineTempBox = TempBox -public typealias EngineTempBoxFile = TempBoxFile - public extension MediaResourceUserContentType { init(file: TelegramMediaFile) { if file.isInstantVideo || file.isVoice { diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Utils/TempBox.swift b/submodules/TelegramCore/Sources/TelegramEngine/Utils/TempBox.swift new file mode 100644 index 0000000000..c678eaef24 --- /dev/null +++ b/submodules/TelegramCore/Sources/TelegramEngine/Utils/TempBox.swift @@ -0,0 +1,8 @@ +import Foundation +import Postbox + +public typealias EngineTempBox = TempBox + +public extension EngineTempBox { + typealias File = TempBoxFile +} diff --git a/submodules/TelegramPresentationData/Sources/PresentationThemeCodable.swift b/submodules/TelegramPresentationData/Sources/PresentationThemeCodable.swift index 10ed993ba4..4fbb4d2b63 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationThemeCodable.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationThemeCodable.swift @@ -1,6 +1,5 @@ import Foundation import UIKit -import Postbox import TelegramCore import TelegramUIPreferences @@ -123,7 +122,7 @@ struct TelegramWallpaperStandardizedCodable: Codable { } if let slug = slug { - self.value = .file(TelegramWallpaper.File(id: 0, accessHash: 0, isCreator: false, isDefault: false, isPattern: !colors.isEmpty, isDark: false, slug: slug, file: TelegramMediaFile(fileId: MediaId(namespace: 0, id: 0), partialReference: nil, resource: WallpaperDataResource(slug: slug), previewRepresentations: [], videoThumbnails: [], immediateThumbnailData: nil, mimeType: "", size: nil, attributes: []), settings: WallpaperSettings(blur: blur, motion: motion, colors: colors.map { $0.argb }, intensity: intensity, rotation: rotation))) + self.value = .file(TelegramWallpaper.File(id: 0, accessHash: 0, isCreator: false, isDefault: false, isPattern: !colors.isEmpty, isDark: false, slug: slug, file: TelegramMediaFile(fileId: EngineMedia.Id(namespace: 0, id: 0), partialReference: nil, resource: WallpaperDataResource(slug: slug), previewRepresentations: [], videoThumbnails: [], immediateThumbnailData: nil, mimeType: "", size: nil, attributes: []), settings: WallpaperSettings(blur: blur, motion: motion, colors: colors.map { $0.argb }, intensity: intensity, rotation: rotation))) } else if colors.count > 1 { self.value = .gradient(TelegramWallpaper.Gradient(id: nil, colors: colors.map { $0.argb }, settings: WallpaperSettings(blur: blur, motion: motion, rotation: rotation))) } else { diff --git a/submodules/TelegramUI/Components/ChatControllerInteraction/Sources/ChatControllerInteraction.swift b/submodules/TelegramUI/Components/ChatControllerInteraction/Sources/ChatControllerInteraction.swift index 54c7de9391..3a8d030a31 100644 --- a/submodules/TelegramUI/Components/ChatControllerInteraction/Sources/ChatControllerInteraction.swift +++ b/submodules/TelegramUI/Components/ChatControllerInteraction/Sources/ChatControllerInteraction.swift @@ -4,7 +4,6 @@ import Postbox import SwiftSignalKit import AsyncDisplayKit import TelegramCore -import Postbox import Display import TelegramUIPreferences import AccountContext diff --git a/submodules/TelegramUI/Components/SendInviteLinkScreen/Sources/PeerListItemComponent.swift b/submodules/TelegramUI/Components/SendInviteLinkScreen/Sources/PeerListItemComponent.swift index 84908e9019..53f06c2c24 100644 --- a/submodules/TelegramUI/Components/SendInviteLinkScreen/Sources/PeerListItemComponent.swift +++ b/submodules/TelegramUI/Components/SendInviteLinkScreen/Sources/PeerListItemComponent.swift @@ -7,7 +7,6 @@ import SwiftSignalKit import AccountContext import TelegramCore import MultilineTextComponent -import Postbox import AvatarNode import TelegramPresentationData import CheckNode diff --git a/submodules/TelegramUI/Components/StorageUsageScreen/Sources/DataButtonComponent.swift b/submodules/TelegramUI/Components/StorageUsageScreen/Sources/DataButtonComponent.swift index d29ba7aa1f..f88407b6f4 100644 --- a/submodules/TelegramUI/Components/StorageUsageScreen/Sources/DataButtonComponent.swift +++ b/submodules/TelegramUI/Components/StorageUsageScreen/Sources/DataButtonComponent.swift @@ -11,7 +11,6 @@ import AccountContext import TelegramCore import MultilineTextComponent import EmojiStatusComponent -import Postbox import TelegramStringFormatting import CheckNode diff --git a/submodules/TelegramUI/Sources/ChatController.swift b/submodules/TelegramUI/Sources/ChatController.swift index dc0b4d56cc..78ab33bb6b 100644 --- a/submodules/TelegramUI/Sources/ChatController.swift +++ b/submodules/TelegramUI/Sources/ChatController.swift @@ -3897,7 +3897,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G if inputMode == .none { inputMode = .text } - return (chatTextInputAddMentionAttribute(current, peer: peer._asPeer()), inputMode) + return (chatTextInputAddMentionAttribute(current, peer: peer), inputMode) } }, delay: true) }))) @@ -4425,10 +4425,10 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G controller?.dismiss() } else { var isChannel = false - if let channel = peer as? TelegramChannel, case .broadcast = channel.info { + if case let .channel(channel) = peer, case .broadcast = channel.info { isChannel = true } - let peerName = EnginePeer(peer).displayTitle(strings: strongSelf.presentationData.strings, displayOrder: strongSelf.presentationData.nameDisplayOrder) + let peerName = peer.displayTitle(strings: strongSelf.presentationData.strings, displayOrder: strongSelf.presentationData.nameDisplayOrder) presentConfirmation(peerName, isChannel, { let _ = context.engine.peers.sendBotRequestedPeer(messageId: messageId, buttonId: buttonId, requestedPeerId: peer.id).start() controller?.dismiss() @@ -16489,7 +16489,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } } } - var attemptSelectionImpl: ((Peer) -> Void)? + var attemptSelectionImpl: ((EnginePeer) -> Void)? let controller = self.context.sharedContext.makePeerSelectionController(PeerSelectionControllerParams(context: self.context, updatedPresentationData: self.updatedPresentationData, filter: filter, hasFilters: true, attemptSelection: { peer, _ in attemptSelectionImpl?(peer) }, multipleSelection: true, forwardedMessageIds: messages.map { $0.id }, selectForumThreads: true)) @@ -16500,7 +16500,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } let presentationData = context.sharedContext.currentPresentationData.with { $0 } if hasPublicPolls { - if let channel = peer as? TelegramChannel, case .broadcast = channel.info { + if case let .channel(channel) = peer, case .broadcast = channel.info { controller.present(textAlertController(context: context, title: nil, text: hasPublicQuiz ? presentationData.strings.Forward_ErrorPublicQuizDisabledInChannels : presentationData.strings.Forward_ErrorPublicPollDisabledInChannels, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})]), in: .window(.root)) return } @@ -16538,7 +16538,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G let commit: ([EnqueueMessage]) -> Void = { result in strongSelf.updateChatPresentationInterfaceState(animated: false, interactive: true, { $0.updatedInterfaceState({ $0.withoutSelectionState() }).updatedSearch(nil) }) - var displayPeers: [Peer] = [] + var displayPeers: [EnginePeer] = [] for peer in peers { let _ = (enqueueMessages(account: strongSelf.context.account, peerId: peer.id, messages: result) |> deliverOnMainQueue).start(next: { messageIds in @@ -16565,7 +16565,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } }) - if let secretPeer = peer as? TelegramSecretChat { + if case let .secretChat(secretPeer) = peer { if let peer = peerMap[secretPeer.regularPeerId] { displayPeers.append(peer) } @@ -16582,17 +16582,17 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G savedMessages = true } else { if displayPeers.count == 1, let peer = displayPeers.first { - var peerName = peer.id == strongSelf.context.account.peerId ? presentationData.strings.DialogList_SavedMessages : EnginePeer(peer).displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder) + var peerName = peer.id == strongSelf.context.account.peerId ? presentationData.strings.DialogList_SavedMessages : peer.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder) peerName = peerName.replacingOccurrences(of: "**", with: "") text = messages.count == 1 ? presentationData.strings.Conversation_ForwardTooltip_Chat_One(peerName).string : presentationData.strings.Conversation_ForwardTooltip_Chat_Many(peerName).string } else if displayPeers.count == 2, let firstPeer = displayPeers.first, let secondPeer = displayPeers.last { - var firstPeerName = firstPeer.id == strongSelf.context.account.peerId ? presentationData.strings.DialogList_SavedMessages : EnginePeer(firstPeer).displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder) + var firstPeerName = firstPeer.id == strongSelf.context.account.peerId ? presentationData.strings.DialogList_SavedMessages : firstPeer.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder) firstPeerName = firstPeerName.replacingOccurrences(of: "**", with: "") - var secondPeerName = secondPeer.id == strongSelf.context.account.peerId ? presentationData.strings.DialogList_SavedMessages : EnginePeer(secondPeer).displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder) + var secondPeerName = secondPeer.id == strongSelf.context.account.peerId ? presentationData.strings.DialogList_SavedMessages : secondPeer.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder) secondPeerName = secondPeerName.replacingOccurrences(of: "**", with: "") text = messages.count == 1 ? presentationData.strings.Conversation_ForwardTooltip_TwoChats_One(firstPeerName, secondPeerName).string : presentationData.strings.Conversation_ForwardTooltip_TwoChats_Many(firstPeerName, secondPeerName).string } else if let peer = displayPeers.first { - var peerName = EnginePeer(peer).displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder) + var peerName = peer.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder) peerName = peerName.replacingOccurrences(of: "**", with: "") text = messages.count == 1 ? presentationData.strings.Conversation_ForwardTooltip_ManyChats_One(peerName, "\(displayPeers.count - 1)").string : presentationData.strings.Conversation_ForwardTooltip_ManyChats_Many(peerName, "\(displayPeers.count - 1)").string } else { @@ -17223,7 +17223,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } private func addPeerContact() { - if let peer = self.presentationInterfaceState.renderedPeer?.chatMainPeer as? TelegramUser, let peerStatusSettings = self.presentationInterfaceState.contactStatus?.peerStatusSettings, let contactData = DeviceContactExtendedData(peer: peer) { + if let peer = self.presentationInterfaceState.renderedPeer?.chatMainPeer as? TelegramUser, let peerStatusSettings = self.presentationInterfaceState.contactStatus?.peerStatusSettings, let contactData = DeviceContactExtendedData(peer: EnginePeer(peer)) { self.present(context.sharedContext.makeDeviceContactInfoController(context: context, subject: .create(peer: peer, contactData: contactData, isSharing: true, shareViaException: peerStatusSettings.contains(.addExceptionWhenAddingContact), completion: { [weak self] peer, stableId, contactData in guard let strongSelf = self else { return diff --git a/submodules/TelegramUI/Sources/ChatMessageBubbleItemNode.swift b/submodules/TelegramUI/Sources/ChatMessageBubbleItemNode.swift index 6a1ec04f8a..c771cca291 100644 --- a/submodules/TelegramUI/Sources/ChatMessageBubbleItemNode.swift +++ b/submodules/TelegramUI/Sources/ChatMessageBubbleItemNode.swift @@ -692,10 +692,10 @@ class ChatMessageBubbleItemNode: ChatMessageItemView, ChatMessagePreviewItemNode } } self.mainContextSourceNode.isExtractedToContextPreviewUpdated = { [weak self] isExtractedToContextPreview in - guard let strongSelf = self, let item = strongSelf.item else { + guard let strongSelf = self else { return } - strongSelf.backgroundWallpaperNode.setMaskMode(strongSelf.backgroundMaskMode, mediaBox: item.context.account.postbox.mediaBox) + strongSelf.backgroundWallpaperNode.setMaskMode(strongSelf.backgroundMaskMode) strongSelf.backgroundNode.setMaskMode(strongSelf.backgroundMaskMode) if !isExtractedToContextPreview, let (rect, size) = strongSelf.absoluteRect { strongSelf.updateAbsoluteRect(rect, within: size) @@ -836,9 +836,6 @@ class ChatMessageBubbleItemNode: ChatMessageItemView, ChatMessagePreviewItemNode } func animateContentFromTextInputField(textInput: ChatMessageTransitionNode.Source.TextInput, transition: CombinedTransition) { - guard let item = self.item else { - return - } let widthDifference = self.backgroundNode.frame.width - textInput.backgroundView.frame.width let heightDifference = self.backgroundNode.frame.height - textInput.backgroundView.frame.height @@ -857,7 +854,7 @@ class ChatMessageBubbleItemNode: ChatMessageItemView, ChatMessagePreviewItemNode transition.vertical.animateOffsetAdditive(layer: self.clippingNode.layer, offset: textInput.backgroundView.frame.minY - self.clippingNode.frame.minY) - self.backgroundWallpaperNode.animateFrom(sourceView: textInput.backgroundView, mediaBox: item.context.account.postbox.mediaBox, transition: transition) + self.backgroundWallpaperNode.animateFrom(sourceView: textInput.backgroundView, transition: transition) self.backgroundNode.animateFrom(sourceView: textInput.backgroundView, transition: transition) for contentNode in self.contentNodes { diff --git a/submodules/TelegramUI/Sources/ChatMessageInteractiveFileNode.swift b/submodules/TelegramUI/Sources/ChatMessageInteractiveFileNode.swift index 0f190f7e83..c0a3cd4c3d 100644 --- a/submodules/TelegramUI/Sources/ChatMessageInteractiveFileNode.swift +++ b/submodules/TelegramUI/Sources/ChatMessageInteractiveFileNode.swift @@ -1462,7 +1462,7 @@ final class ChatMessageInteractiveFileNode: ASDisplayNode { if let actualFetchStatus = self.actualFetchStatus, message.forwardInfo != nil { fetchStatus = actualFetchStatus } else if case let .fetchStatus(status) = resourceStatus.mediaStatus { - fetchStatus = status + fetchStatus = status._asStatus() } if let fetchStatus = fetchStatus { diff --git a/submodules/TelegramUI/Sources/DocumentPreviewController.swift b/submodules/TelegramUI/Sources/DocumentPreviewController.swift index 247bc88a67..04c0ed9731 100644 --- a/submodules/TelegramUI/Sources/DocumentPreviewController.swift +++ b/submodules/TelegramUI/Sources/DocumentPreviewController.swift @@ -25,91 +25,6 @@ private final class DocumentPreviewItem: NSObject, QLPreviewItem { } } -final class DocumentPreviewController: UINavigationController, QLPreviewControllerDelegate, QLPreviewControllerDataSource { - private let postbox: Postbox - private let file: TelegramMediaFile - - private var item: DocumentPreviewItem? - - private var tempFile: TempBoxFile? - - init(theme: PresentationTheme, strings: PresentationStrings, postbox: Postbox, file: TelegramMediaFile) { - self.postbox = postbox - self.file = file - - super.init(nibName: nil, bundle: nil) - - self.navigationBar.barTintColor = theme.rootController.navigationBar.opaqueBackgroundColor - self.navigationBar.tintColor = theme.rootController.navigationBar.accentTextColor - self.navigationBar.shadowImage = generateImage(CGSize(width: 1.0, height: 1.0), rotatedContext: { size, context in - context.clear(CGRect(origin: CGPoint(), size: size)) - context.setFillColor(theme.rootController.navigationBar.separatorColor.cgColor) - context.fill(CGRect(origin: CGPoint(), size: CGSize(width: 1.0, height: UIScreenPixel))) - }) - self.navigationBar.isTranslucent = false - self.navigationBar.titleTextAttributes = [NSAttributedString.Key.font: Font.semibold(17.0), NSAttributedString.Key.foregroundColor: theme.rootController.navigationBar.primaryTextColor] - - let controller = QLPreviewController(nibName: nil, bundle: nil) - controller.navigation_setDismiss({ - }, rootController: self) - controller.delegate = self - controller.dataSource = self - if #available(iOS 16.0, *) { - controller.navigationItem.setLeftBarButton(UIBarButtonItem(title: strings.Common_Cancel, style: .plain, target: self, action: #selector(self.cancelPressed)), animated: false) - } - self.setViewControllers([controller], animated: false) - - if let path = self.postbox.mediaBox.completedResourcePath(self.file.resource) { - var updatedPath = path - if let fileName = self.file.fileName { - let tempFile = TempBox.shared.file(path: path, fileName: fileName) - updatedPath = tempFile.path - self.tempFile = tempFile - } - self.item = DocumentPreviewItem(url: URL(fileURLWithPath: updatedPath), title: self.file.fileName ?? strings.Message_File) - } - } - - required init?(coder aDecoder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - deinit { - if let tempFile = self.tempFile { - TempBox.shared.dispose(tempFile) - } - } - - @objc private func cancelPressed() { - self.presentingViewController?.dismiss(animated: true, completion: nil) - } - - func numberOfPreviewItems(in controller: QLPreviewController) -> Int { - if self.item != nil { - return 1 - } else { - return 0 - } - } - - func previewController(_ controller: QLPreviewController, previewItemAt index: Int) -> QLPreviewItem { - if let item = self.item { - return item - } else { - assertionFailure() - return DocumentPreviewItem(url: URL(fileURLWithPath: ""), title: "") - } - } - - func previewControllerWillDismiss(_ controller: QLPreviewController) { - self.cancelPressed() - } - - func previewControllerDidDismiss(_ controller: QLPreviewController) { - //self.cancelPressed() - } -} - final class CompactDocumentPreviewController: QLPreviewController, QLPreviewControllerDelegate, QLPreviewControllerDataSource { private let postbox: Postbox private let file: TelegramMediaFile @@ -271,22 +186,20 @@ final class CompactDocumentPreviewController: QLPreviewController, QLPreviewCont } func presentDocumentPreviewController(rootController: UIViewController, theme: PresentationTheme, strings: PresentationStrings, postbox: Postbox, file: TelegramMediaFile, canShare: Bool) { - if #available(iOSApplicationExtension 9.0, iOS 9.0, *) { - let navigationBar = UINavigationBar.appearance(whenContainedInInstancesOf: [QLPreviewController.self]) - navigationBar.barTintColor = theme.rootController.navigationBar.opaqueBackgroundColor - navigationBar.setBackgroundImage(generateImage(CGSize(width: 1.0, height: 1.0), rotatedContext: { size, context in - context.setFillColor(theme.rootController.navigationBar.opaqueBackgroundColor.cgColor) - context.fill(CGRect(origin: CGPoint(), size: size)) - }), for: .default) - navigationBar.isTranslucent = true - navigationBar.tintColor = theme.rootController.navigationBar.accentTextColor - navigationBar.shadowImage = generateImage(CGSize(width: 1.0, height: 1.0), rotatedContext: { size, context in - context.clear(CGRect(origin: CGPoint(), size: size)) - context.setFillColor(theme.rootController.navigationBar.separatorColor.cgColor) - context.fill(CGRect(origin: CGPoint(), size: CGSize(width: 1.0, height: UIScreenPixel))) - }) - navigationBar.titleTextAttributes = [NSAttributedString.Key.font: Font.semibold(17.0), NSAttributedString.Key.foregroundColor: theme.rootController.navigationBar.primaryTextColor] - } + let navigationBar = UINavigationBar.appearance(whenContainedInInstancesOf: [QLPreviewController.self]) + navigationBar.barTintColor = theme.rootController.navigationBar.opaqueBackgroundColor + navigationBar.setBackgroundImage(generateImage(CGSize(width: 1.0, height: 1.0), rotatedContext: { size, context in + context.setFillColor(theme.rootController.navigationBar.opaqueBackgroundColor.cgColor) + context.fill(CGRect(origin: CGPoint(), size: size)) + }), for: .default) + navigationBar.isTranslucent = true + navigationBar.tintColor = theme.rootController.navigationBar.accentTextColor + navigationBar.shadowImage = generateImage(CGSize(width: 1.0, height: 1.0), rotatedContext: { size, context in + context.clear(CGRect(origin: CGPoint(), size: size)) + context.setFillColor(theme.rootController.navigationBar.separatorColor.cgColor) + context.fill(CGRect(origin: CGPoint(), size: CGSize(width: 1.0, height: UIScreenPixel))) + }) + navigationBar.titleTextAttributes = [NSAttributedString.Key.font: Font.semibold(17.0), NSAttributedString.Key.foregroundColor: theme.rootController.navigationBar.primaryTextColor] rootController.present(CompactDocumentPreviewController(theme: theme, strings: strings, postbox: postbox, file: file, canShare: canShare), animated: true, completion: nil) } diff --git a/submodules/TelegramUI/Sources/OpenResolvedUrl.swift b/submodules/TelegramUI/Sources/OpenResolvedUrl.swift index bf8b2a44f6..52b5f91c33 100644 --- a/submodules/TelegramUI/Sources/OpenResolvedUrl.swift +++ b/submodules/TelegramUI/Sources/OpenResolvedUrl.swift @@ -84,10 +84,10 @@ func openResolvedUrlImpl(_ resolvedUrl: ResolvedUrl, context: AccountContext, ur var isGroup: Bool = false var peerTitle: String = "" - if let peer = peer as? TelegramGroup { + if case let .legacyGroup(peer) = peer { isGroup = true peerTitle = peer.title - } else if let peer = peer as? TelegramChannel { + } else if case let .channel(peer) = peer { if case .group = peer.info { isGroup = true } @@ -141,7 +141,7 @@ func openResolvedUrlImpl(_ resolvedUrl: ResolvedUrl, context: AccountContext, ur present(controller, nil) } - if let peer = peer as? TelegramChannel { + if case let .channel(peer) = peer { if peer.flags.contains(.isCreator) || peer.adminRights?.rights.contains(.canAddAdmins) == true { let controller = channelAdminController(context: context, peerId: peerId, adminId: botPeerId, initialParticipant: nil, invite: true, initialAdminRights: adminRights?.chatAdminRights, updated: { _ in controller?.dismiss() @@ -150,7 +150,7 @@ func openResolvedUrlImpl(_ resolvedUrl: ResolvedUrl, context: AccountContext, ur } else { addMemberImpl() } - } else if let peer = peer as? TelegramGroup { + } else if case let .legacyGroup(peer) = peer { if case .member = peer.role { addMemberImpl() } else { @@ -171,10 +171,10 @@ func openResolvedUrlImpl(_ resolvedUrl: ResolvedUrl, context: AccountContext, ur let _ = game let presentationData = context.sharedContext.currentPresentationData.with { $0 } let text: String - if let peer = peer as? TelegramUser { - text = presentationData.strings.Target_ShareGameConfirmationPrivate(EnginePeer(peer).displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder)).string + if case .user = peer { + text = presentationData.strings.Target_ShareGameConfirmationPrivate(peer.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder)).string } else { - text = presentationData.strings.Target_ShareGameConfirmationGroup(EnginePeer(peer).displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder)).string + text = presentationData.strings.Target_ShareGameConfirmationGroup(peer.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder)).string } let alertController = textAlertController(context: context, title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.RequestPeer_SelectionConfirmationSend, action: { @@ -652,7 +652,7 @@ func openResolvedUrlImpl(_ resolvedUrl: ResolvedUrl, context: AccountContext, ur guard let navigationController else { return } - let _ = context.sharedContext.navigateToChatController(NavigateToChatControllerParams(navigationController: navigationController, context: context, chatLocation: .peer(EnginePeer(peer)), attachBotStart: ChatControllerInitialAttachBotStart(botId: bot.peer.id, payload: payload, justInstalled: false), keepStack: .never, useExisting: true)) + let _ = context.sharedContext.navigateToChatController(NavigateToChatControllerParams(navigationController: navigationController, context: context, chatLocation: .peer(peer), attachBotStart: ChatControllerInitialAttachBotStart(botId: bot.peer.id, payload: payload, justInstalled: false), keepStack: .never, useExisting: true)) } navigationController.pushViewController(controller) } @@ -704,7 +704,7 @@ func openResolvedUrlImpl(_ resolvedUrl: ResolvedUrl, context: AccountContext, ur guard let navigationController else { return } - let _ = context.sharedContext.navigateToChatController(NavigateToChatControllerParams(navigationController: navigationController, context: context, chatLocation: .peer(EnginePeer(peer)), attachBotStart: ChatControllerInitialAttachBotStart(botId: botPeer.id, payload: payload, justInstalled: true), useExisting: true)) + let _ = context.sharedContext.navigateToChatController(NavigateToChatControllerParams(navigationController: navigationController, context: context, chatLocation: .peer(peer), attachBotStart: ChatControllerInitialAttachBotStart(botId: botPeer.id, payload: payload, justInstalled: true), useExisting: true)) } navigationController.pushViewController(controller) } diff --git a/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift b/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift index f5c09d23b4..e3822e0f57 100644 --- a/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift +++ b/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift @@ -8222,7 +8222,7 @@ final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewDelegate return .forward(source: messageId, threadId: nil, grouping: .auto, attributes: attributes, correlationId: nil) }) - var displayPeers: [Peer] = [] + var displayPeers: [EnginePeer] = [] for peer in peers { let _ = (enqueueMessages(account: strongSelf.context.account, peerId: peer.id, messages: result) |> deliverOnMainQueue).start(next: { messageIds in @@ -8249,7 +8249,7 @@ final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewDelegate } }) - if let secretPeer = peer as? TelegramSecretChat { + if case let .secretChat(secretPeer) = peer { if let peer = peerMap[secretPeer.regularPeerId] { displayPeers.append(peer) } @@ -8266,17 +8266,17 @@ final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewDelegate savedMessages = true } else { if displayPeers.count == 1, let peer = displayPeers.first { - var peerName = peer.id == strongSelf.context.account.peerId ? presentationData.strings.DialogList_SavedMessages : EnginePeer(peer).displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder) + var peerName = peer.id == strongSelf.context.account.peerId ? presentationData.strings.DialogList_SavedMessages : peer.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder) peerName = peerName.replacingOccurrences(of: "**", with: "") text = messageIds.count == 1 ? presentationData.strings.Conversation_ForwardTooltip_Chat_One(peerName).string : presentationData.strings.Conversation_ForwardTooltip_Chat_Many(peerName).string } else if displayPeers.count == 2, let firstPeer = displayPeers.first, let secondPeer = displayPeers.last { - var firstPeerName = firstPeer.id == strongSelf.context.account.peerId ? presentationData.strings.DialogList_SavedMessages : EnginePeer(firstPeer).displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder) + var firstPeerName = firstPeer.id == strongSelf.context.account.peerId ? presentationData.strings.DialogList_SavedMessages : firstPeer.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder) firstPeerName = firstPeerName.replacingOccurrences(of: "**", with: "") - var secondPeerName = secondPeer.id == strongSelf.context.account.peerId ? presentationData.strings.DialogList_SavedMessages : EnginePeer(secondPeer).displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder) + var secondPeerName = secondPeer.id == strongSelf.context.account.peerId ? presentationData.strings.DialogList_SavedMessages : secondPeer.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder) secondPeerName = secondPeerName.replacingOccurrences(of: "**", with: "") text = messageIds.count == 1 ? presentationData.strings.Conversation_ForwardTooltip_TwoChats_One(firstPeerName, secondPeerName).string : presentationData.strings.Conversation_ForwardTooltip_TwoChats_Many(firstPeerName, secondPeerName).string } else if let peer = displayPeers.first { - var peerName = EnginePeer(peer).displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder) + var peerName = peer.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder) peerName = peerName.replacingOccurrences(of: "**", with: "") text = messageIds.count == 1 ? presentationData.strings.Conversation_ForwardTooltip_ManyChats_One(peerName, "\(displayPeers.count - 1)").string : presentationData.strings.Conversation_ForwardTooltip_ManyChats_Many(peerName, "\(displayPeers.count - 1)").string } else { diff --git a/submodules/TelegramUI/Sources/PeerMessagesMediaPlaylist.swift b/submodules/TelegramUI/Sources/PeerMessagesMediaPlaylist.swift index ae8af31130..5166e2061e 100644 --- a/submodules/TelegramUI/Sources/PeerMessagesMediaPlaylist.swift +++ b/submodules/TelegramUI/Sources/PeerMessagesMediaPlaylist.swift @@ -111,7 +111,7 @@ final class MessageMediaPlaylistItem: SharedMediaPlaylistItem { case let .Audio(isVoice, duration, title, performer, _): let displayData: SharedMediaPlaybackDisplayData if isVoice { - displayData = SharedMediaPlaybackDisplayData.voice(author: self.message.effectiveAuthor, peer: self.message.peers[self.message.id.peerId]) + displayData = SharedMediaPlaybackDisplayData.voice(author: self.message.effectiveAuthor.flatMap(EnginePeer.init), peer: self.message.peers[self.message.id.peerId].flatMap(EnginePeer.init)) } else { var updatedTitle = title let updatedPerformer = performer @@ -131,7 +131,7 @@ final class MessageMediaPlaylistItem: SharedMediaPlaylistItem { return displayData case let .Video(_, _, flags): if flags.contains(.instantRoundVideo) { - return SharedMediaPlaybackDisplayData.instantVideo(author: self.message.effectiveAuthor, peer: self.message.peers[self.message.id.peerId], timestamp: self.message.timestamp) + return SharedMediaPlaybackDisplayData.instantVideo(author: self.message.effectiveAuthor.flatMap(EnginePeer.init), peer: self.message.peers[self.message.id.peerId].flatMap(EnginePeer.init), timestamp: self.message.timestamp) } else { return nil } diff --git a/submodules/TelegramUI/Sources/PeerSelectionController.swift b/submodules/TelegramUI/Sources/PeerSelectionController.swift index 013acd41f3..5d796e49ea 100644 --- a/submodules/TelegramUI/Sources/PeerSelectionController.swift +++ b/submodules/TelegramUI/Sources/PeerSelectionController.swift @@ -18,13 +18,13 @@ public final class PeerSelectionControllerImpl: ViewController, PeerSelectionCon private var customTitle: String? - public var peerSelected: ((Peer, Int64?) -> Void)? - public var multiplePeersSelected: (([Peer], [PeerId: Peer], NSAttributedString, AttachmentTextInputPanelSendMode, ChatInterfaceForwardOptionsState?) -> Void)? + public var peerSelected: ((EnginePeer, Int64?) -> Void)? + public var multiplePeersSelected: (([EnginePeer], [EnginePeer.Id: EnginePeer], NSAttributedString, AttachmentTextInputPanelSendMode, ChatInterfaceForwardOptionsState?) -> Void)? private let filter: ChatListNodePeersFilter private let forumPeerId: EnginePeer.Id? private let selectForumThreads: Bool - private let attemptSelection: ((Peer, Int64?) -> Void)? + private let attemptSelection: ((EnginePeer, Int64?) -> Void)? private let createNewGroup: (() -> Void)? public var inProgress: Bool = false { @@ -259,7 +259,7 @@ public final class PeerSelectionControllerImpl: ViewController, PeerSelectionCon self.peerSelectionNode.requestOpenPeer = { [weak self] peer, threadId in if let strongSelf = self, let peerSelected = strongSelf.peerSelected { - if let peer = peer as? TelegramChannel, peer.flags.contains(.isForum), threadId == nil, strongSelf.selectForumThreads { + if case let .channel(peer) = peer, peer.flags.contains(.isForum), threadId == nil, strongSelf.selectForumThreads { let controller = PeerSelectionControllerImpl( PeerSelectionControllerParams( context: strongSelf.context, @@ -296,10 +296,10 @@ public final class PeerSelectionControllerImpl: ViewController, PeerSelectionCon self.peerSelectionNode.requestOpenPeerFromSearch = { [weak self] peer, threadId in if let strongSelf = self { - strongSelf.openMessageFromSearchDisposable.set((strongSelf.context.engine.peers.ensurePeerIsLocallyAvailable(peer: EnginePeer(peer)) + strongSelf.openMessageFromSearchDisposable.set((strongSelf.context.engine.peers.ensurePeerIsLocallyAvailable(peer: peer) |> deliverOnMainQueue).start(completed: { [weak strongSelf] in if let strongSelf = strongSelf, let peerSelected = strongSelf.peerSelected { - if let peer = peer as? TelegramChannel, peer.flags.contains(.isForum), threadId == nil, strongSelf.selectForumThreads { + if case let .channel(peer) = peer, peer.flags.contains(.isForum), threadId == nil, strongSelf.selectForumThreads { let controller = PeerSelectionControllerImpl( PeerSelectionControllerParams( context: strongSelf.context, diff --git a/submodules/TelegramUI/Sources/PeerSelectionControllerNode.swift b/submodules/TelegramUI/Sources/PeerSelectionControllerNode.swift index 9f19f80371..b79df3c602 100644 --- a/submodules/TelegramUI/Sources/PeerSelectionControllerNode.swift +++ b/submodules/TelegramUI/Sources/PeerSelectionControllerNode.swift @@ -78,11 +78,11 @@ final class PeerSelectionControllerNode: ASDisplayNode { var requestActivateSearch: (() -> Void)? var requestDeactivateSearch: (() -> Void)? - var requestOpenPeer: ((Peer, Int64?) -> Void)? - var requestOpenDisabledPeer: ((Peer, Int64?) -> Void)? - var requestOpenPeerFromSearch: ((Peer, Int64?) -> Void)? - var requestOpenMessageFromSearch: ((Peer, Int64?, MessageId) -> Void)? - var requestSend: (([Peer], [PeerId: Peer], NSAttributedString, AttachmentTextInputPanelSendMode, ChatInterfaceForwardOptionsState?) -> Void)? + var requestOpenPeer: ((EnginePeer, Int64?) -> Void)? + var requestOpenDisabledPeer: ((EnginePeer, Int64?) -> Void)? + var requestOpenPeerFromSearch: ((EnginePeer, Int64?) -> Void)? + var requestOpenMessageFromSearch: ((EnginePeer, Int64?, EngineMessage.Id) -> Void)? + var requestSend: (([EnginePeer], [EnginePeer.Id: EnginePeer], NSAttributedString, AttachmentTextInputPanelSendMode, ChatInterfaceForwardOptionsState?) -> Void)? private var presentationData: PresentationData { didSet { @@ -241,15 +241,15 @@ final class PeerSelectionControllerNode: ASDisplayNode { self.chatListNode?.peerSelected = { [weak self] peer, threadId, _, _, _ in self?.chatListNode?.clearHighlightAnimated(true) - self?.requestOpenPeer?(peer._asPeer(), threadId) + self?.requestOpenPeer?(peer, threadId) } self.mainContainerNode?.peerSelected = { [weak self] peer, threadId, _, _, _ in self?.chatListNode?.clearHighlightAnimated(true) - self?.requestOpenPeer?(peer._asPeer(), threadId) + self?.requestOpenPeer?(peer, threadId) } self.chatListNode?.disabledPeerSelected = { [weak self] peer, threadId in - self?.requestOpenDisabledPeer?(peer._asPeer(), threadId) + self?.requestOpenDisabledPeer?(peer, threadId) } self.chatListNode?.contentOffsetChanged = { [weak self] offset in @@ -748,37 +748,37 @@ final class PeerSelectionControllerNode: ASDisplayNode { } } - private var selectedPeers: ([Peer], [PeerId: Peer]) { + private var selectedPeers: ([EnginePeer], [EnginePeer.Id: EnginePeer]) { if self.contactListActive { let selectedContactPeers = self.contactListNode?.selectedPeers ?? [] - var selectedPeers: [Peer] = [] - var selectedPeerMap: [PeerId: Peer] = [:] + var selectedPeers: [EnginePeer] = [] + var selectedPeerMap: [EnginePeer.Id: EnginePeer] = [:] for contactPeer in selectedContactPeers { if case let .peer(peer, _, _) = contactPeer { - selectedPeers.append(peer) - selectedPeerMap[peer.id] = peer + selectedPeers.append(EnginePeer(peer)) + selectedPeerMap[peer.id] = EnginePeer(peer) } } return (selectedPeers, selectedPeerMap) } else { - var selectedPeerIds: [PeerId] = [] - var selectedPeerMap: [PeerId: Peer] = [:] + var selectedPeerIds: [EnginePeer.Id] = [] + var selectedPeerMap: [EnginePeer.Id: EnginePeer] = [:] if let mainContainerNode = self.mainContainerNode { mainContainerNode.currentItemNode.updateState { state in selectedPeerIds = Array(state.selectedPeerIds) - selectedPeerMap = state.selectedPeerMap.mapValues({ $0._asPeer() }) + selectedPeerMap = state.selectedPeerMap return state } } if let chatListNode = self.chatListNode { chatListNode.updateState { state in selectedPeerIds = Array(state.selectedPeerIds) - selectedPeerMap = state.selectedPeerMap.mapValues({ $0._asPeer() }) + selectedPeerMap = state.selectedPeerMap return state } } - var selectedPeers: [Peer] = [] + var selectedPeers: [EnginePeer] = [] for peerId in selectedPeerIds { if let peer = selectedPeerMap[peerId] { selectedPeers.append(peer) @@ -1158,17 +1158,17 @@ final class PeerSelectionControllerNode: ASDisplayNode { strongSelf.textInputPanelNode?.updateSendButtonEnabled(count > 0, animated: true) strongSelf.requestDeactivateSearch?() } else if let requestOpenPeerFromSearch = strongSelf.requestOpenPeerFromSearch { - requestOpenPeerFromSearch(peer._asPeer(), threadId) + requestOpenPeerFromSearch(peer, threadId) } }, openDisabledPeer: { [weak self] peer, threadId in - self?.requestOpenDisabledPeer?(peer._asPeer(), threadId) + self?.requestOpenDisabledPeer?(peer, threadId) }, openRecentPeerOptions: { _ in }, openMessage: { [weak self] peer, threadId, messageId, _ in if let requestOpenMessageFromSearch = self?.requestOpenMessageFromSearch { - requestOpenMessageFromSearch(peer._asPeer(), threadId, messageId) + requestOpenMessageFromSearch(peer, threadId, messageId) } }, addContact: nil, @@ -1241,7 +1241,7 @@ final class PeerSelectionControllerNode: ASDisplayNode { let _ = (strongSelf.context.engine.data.get(TelegramEngine.EngineData.Item.Peer.Peer(id: peer.id)) |> deliverOnMainQueue).start(next: { peer in if let strongSelf = self, let peer = peer { - strongSelf.requestOpenPeerFromSearch?(peer._asPeer(), nil) + strongSelf.requestOpenPeerFromSearch?(peer, nil) } }) case .deviceContact: @@ -1334,7 +1334,7 @@ final class PeerSelectionControllerNode: ASDisplayNode { contactListNode.openPeer = { [weak self] peer, _ in if case let .peer(peer, _, _) = peer { self?.contactListNode?.listNode.clearHighlightAnimated(true) - self?.requestOpenPeer?(peer, nil) + self?.requestOpenPeer?(EnginePeer(peer), nil) } } contactListNode.suppressPermissionWarning = { [weak self] in diff --git a/submodules/TelegramUI/Sources/ShareExtensionContext.swift b/submodules/TelegramUI/Sources/ShareExtensionContext.swift index 8888465a23..788c6e1018 100644 --- a/submodules/TelegramUI/Sources/ShareExtensionContext.swift +++ b/submodules/TelegramUI/Sources/ShareExtensionContext.swift @@ -661,7 +661,7 @@ public class ShareRootControllerImpl { |> deliverOnMainQueue).start(next: { parseInfo in switch parseInfo { case let .group(groupTitle): - var attemptSelectionImpl: ((Peer) -> Void)? + var attemptSelectionImpl: ((EnginePeer) -> Void)? var createNewGroupImpl: (() -> Void)? let controller = context.sharedContext.makePeerSelectionController(PeerSelectionControllerParams(context: context, filter: [.onlyGroups, .onlyManageable, .excludeDisabled, .doNotSearchMessages], hasContactSelector: false, hasGlobalSearch: false, title: presentationData.strings.ChatImport_Title, attemptSelection: { peer, _ in attemptSelectionImpl?(peer) @@ -688,12 +688,12 @@ public class ShareRootControllerImpl { attemptSelectionImpl = { peer in var errorText: String? - if let channel = peer as? TelegramChannel { + if case let .channel(channel) = peer { if channel.hasPermission(.changeInfo), (channel.flags.contains(.isCreator) || channel.adminRights != nil) { } else { errorText = presentationData.strings.ChatImport_SelectionErrorNotAdmin } - } else if let group = peer as? TelegramGroup { + } else if case let .legacyGroup(group) = peer { switch group.role { case .creator: break @@ -718,19 +718,19 @@ public class ShareRootControllerImpl { let presentationData = internalContext.sharedContext.currentPresentationData.with { $0 } var errorText: String? - if let channel = peer as? TelegramChannel { + if case let .channel(channel) = peer { if channel.hasPermission(.changeInfo), (channel.flags.contains(.isCreator) || channel.adminRights != nil) { } else { errorText = presentationData.strings.ChatImport_SelectionErrorNotAdmin } - } else if let group = peer as? TelegramGroup { + } else if case let .legacyGroup(group) = peer { switch group.role { case .creator: break default: errorText = presentationData.strings.ChatImport_SelectionErrorNotAdmin } - } else if let _ = peer as? TelegramUser { + } else if case .user = peer { } else { errorText = presentationData.strings.ChatImport_SelectionErrorGroupGeneric } @@ -838,7 +838,7 @@ public class ShareRootControllerImpl { case let .privateChat(title): let presentationData = internalContext.sharedContext.currentPresentationData.with { $0 } - var attemptSelectionImpl: ((Peer) -> Void)? + var attemptSelectionImpl: ((EnginePeer) -> Void)? let controller = context.sharedContext.makePeerSelectionController(PeerSelectionControllerParams(context: context, filter: [.onlyPrivateChats, .excludeDisabled, .doNotSearchMessages, .excludeSecretChats], hasChatListSelector: false, hasContactSelector: true, hasGlobalSearch: false, title: presentationData.strings.ChatImport_Title, attemptSelection: { peer, _ in attemptSelectionImpl?(peer) }, pretendPresentedInModal: true, selectForumThreads: true)) @@ -871,9 +871,9 @@ public class ShareRootControllerImpl { switch result { case .allowed: if let title = title { - text = presentationData.strings.ChatImport_SelectionConfirmationUserWithTitle(title, EnginePeer(peer).displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder)).string + text = presentationData.strings.ChatImport_SelectionConfirmationUserWithTitle(title, peer.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder)).string } else { - text = presentationData.strings.ChatImport_SelectionConfirmationUserWithoutTitle(EnginePeer(peer).displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder)).string + text = presentationData.strings.ChatImport_SelectionConfirmationUserWithoutTitle(peer.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder)).string } case let .alert(textValue): text = textValue @@ -910,7 +910,7 @@ public class ShareRootControllerImpl { navigationController.viewControllers = [controller] case let .unknown(peerTitle): - var attemptSelectionImpl: ((Peer) -> Void)? + var attemptSelectionImpl: ((EnginePeer) -> Void)? var createNewGroupImpl: (() -> Void)? let controller = context.sharedContext.makePeerSelectionController(PeerSelectionControllerParams(context: context, filter: [.excludeDisabled, .doNotSearchMessages], hasContactSelector: true, hasGlobalSearch: false, title: presentationData.strings.ChatImport_Title, attemptSelection: { peer, _ in attemptSelectionImpl?(peer) @@ -928,7 +928,7 @@ public class ShareRootControllerImpl { controller.navigationPresentation = .default - let beginWithPeer: (PeerId) -> Void = { peerId in + let beginWithPeer: (EnginePeer.Id) -> Void = { peerId in navigationController.view.endEditing(true) navigationController.pushViewController(ChatImportActivityScreen(context: context, cancel: { self?.getExtensionContext()?.completeRequest(returningItems: nil, completionHandler: nil) @@ -944,19 +944,19 @@ public class ShareRootControllerImpl { let presentationData = internalContext.sharedContext.currentPresentationData.with { $0 } var errorText: String? - if let channel = peer as? TelegramChannel { + if case let .channel(channel) = peer { if channel.hasPermission(.changeInfo), (channel.flags.contains(.isCreator) || channel.adminRights != nil) { } else { errorText = presentationData.strings.ChatImport_SelectionErrorNotAdmin } - } else if let group = peer as? TelegramGroup { + } else if case let .legacyGroup(group) = peer { switch group.role { case .creator: break default: errorText = presentationData.strings.ChatImport_SelectionErrorNotAdmin } - } else if let _ = peer as? TelegramUser { + } else if case .user = peer { } else { errorText = presentationData.strings.ChatImport_SelectionErrorGroupGeneric } @@ -968,14 +968,14 @@ public class ShareRootControllerImpl { strongSelf.mainWindow?.present(controller, on: .root) } else { let presentationData = internalContext.sharedContext.currentPresentationData.with { $0 } - if let _ = peer as? TelegramUser { + if case .user = peer { let text: String switch result { case .allowed: if let title = peerTitle { - text = presentationData.strings.ChatImport_SelectionConfirmationUserWithTitle(title, EnginePeer(peer).displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder)).string + text = presentationData.strings.ChatImport_SelectionConfirmationUserWithTitle(title, peer.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder)).string } else { - text = presentationData.strings.ChatImport_SelectionConfirmationUserWithoutTitle(EnginePeer(peer).displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder)).string + text = presentationData.strings.ChatImport_SelectionConfirmationUserWithoutTitle(peer.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder)).string } case let .alert(textValue): text = textValue diff --git a/submodules/TelegramUI/Sources/SharedNotificationManager.swift b/submodules/TelegramUI/Sources/SharedNotificationManager.swift index 8b89f18eb0..8c884da025 100644 --- a/submodules/TelegramUI/Sources/SharedNotificationManager.swift +++ b/submodules/TelegramUI/Sources/SharedNotificationManager.swift @@ -412,8 +412,8 @@ public final class SharedNotificationManager { } } - private var currentNotificationCall: (peer: Peer?, internalId: CallSessionInternalId)? - private func updateNotificationCall(call: (peer: Peer?, internalId: CallSessionInternalId)?, strings: PresentationStrings, nameOrder: PresentationPersonNameOrder) { + private var currentNotificationCall: (peer: EnginePeer?, internalId: CallSessionInternalId)? + private func updateNotificationCall(call: (peer: EnginePeer?, internalId: CallSessionInternalId)?, strings: PresentationStrings, nameOrder: PresentationPersonNameOrder) { if let previousCall = currentNotificationCall { if #available(iOS 10.0, *) { let center = UNUserNotificationCenter.current() @@ -431,7 +431,7 @@ public final class SharedNotificationManager { self.currentNotificationCall = call if let notificationCall = call { - let rawText = strings.PUSH_PHONE_CALL_REQUEST(notificationCall.peer.flatMap(EnginePeer.init)?.displayTitle(strings: strings, displayOrder: nameOrder) ?? "").string + let rawText = strings.PUSH_PHONE_CALL_REQUEST(notificationCall.peer?.displayTitle(strings: strings, displayOrder: nameOrder) ?? "").string let title: String? let body: String if let index = rawText.firstIndex(of: "|") { @@ -487,7 +487,7 @@ public final class SharedNotificationManager { let internalId = notificationCall.internalId let isIntegratedWithCallKit = notificationCall.isIntegratedWithCallKit self.notificationCallStateDisposable.set((notificationCall.state - |> map { state -> (Peer?, CallSessionInternalId)? in + |> map { state -> (EnginePeer?, CallSessionInternalId)? in if isIntegratedWithCallKit { return nil } diff --git a/submodules/TelegramUI/Sources/SpotlightContacts.swift b/submodules/TelegramUI/Sources/SpotlightContacts.swift index 54be6ceca6..037bab4510 100644 --- a/submodules/TelegramUI/Sources/SpotlightContacts.swift +++ b/submodules/TelegramUI/Sources/SpotlightContacts.swift @@ -1,10 +1,8 @@ import Foundation import UIKit import SwiftSignalKit -import Postbox import TelegramCore import Display - import CoreSpotlight import MobileCoreServices @@ -31,7 +29,7 @@ private struct SpotlightIndexStorageItem: Codable, Equatable { private final class SpotlightIndexStorage { private let appBasePath: String private let basePath: String - private var items: [PeerId: SpotlightIndexStorageItem] = [:] + private var items: [EnginePeer.Id: SpotlightIndexStorageItem] = [:] init(appBasePath: String, basePath: String) { self.appBasePath = appBasePath @@ -46,7 +44,7 @@ private final class SpotlightIndexStorage { } } - private func path(peerId: PeerId) -> String { + private func path(peerId: EnginePeer.Id) -> String { return self.basePath + "/p:\(UInt64(bitPattern: peerId.toInt64()))" } @@ -70,7 +68,7 @@ private final class SpotlightIndexStorage { if let path = url.path, let directoryName = url.lastPathComponent, directoryName.hasPrefix("p:") { let peerIdString = directoryName[directoryName.index(directoryName.startIndex, offsetBy: 2)...] if let peerIdValue = UInt64(peerIdString) { - let peerId = PeerId(Int64(bitPattern: peerIdValue)) + let peerId = EnginePeer.Id(Int64(bitPattern: peerIdValue)) let item: SpotlightIndexStorageItem if let itemData = try? Data(contentsOf: URL(fileURLWithPath: path + "/data.json")), let decodedItem = try? JSONDecoder().decode(SpotlightIndexStorageItem.self, from: itemData) { @@ -87,9 +85,9 @@ private final class SpotlightIndexStorage { } } - func update(items: [PeerId: SpotlightIndexStorageItem]) { + func update(items: [EnginePeer.Id: SpotlightIndexStorageItem]) { let validPeerIds = Set(items.keys) - var removePeerIds: [PeerId] = [] + var removePeerIds: [EnginePeer.Id] = [] for (peerId, _) in self.items { if !validPeerIds.contains(peerId) { removePeerIds.append(peerId) @@ -112,7 +110,7 @@ private final class SpotlightIndexStorage { let previousItem = self.items[peerId] if previousItem != item { var updatedAvatarSourcePath: String? - if let avatarSourcePath = item.avatarSourcePath, let _ = fileSize(self.appBasePath + "/" + avatarSourcePath) { + if let avatarSourcePath = item.avatarSourcePath, FileManager.default.fileExists(atPath: self.appBasePath + "/" + avatarSourcePath) { updatedAvatarSourcePath = avatarSourcePath } @@ -183,11 +181,11 @@ private final class SpotlightIndexStorage { } } -private func manageableSpotlightContacts(appBasePath: String, accounts: Signal<[Account], NoError>) -> Signal<[PeerId: SpotlightIndexStorageItem], NoError> { +private func manageableSpotlightContacts(appBasePath: String, accounts: Signal<[Account], NoError>) -> Signal<[EnginePeer.Id: SpotlightIndexStorageItem], NoError> { let queue = Queue() return accounts - |> mapToSignal { accounts -> Signal<[[PeerId: SpotlightIndexStorageItem]], NoError> in - return combineLatest(queue: queue, accounts.map { account -> Signal<[PeerId: SpotlightIndexStorageItem], NoError> in + |> mapToSignal { accounts -> Signal<[[EnginePeer.Id: SpotlightIndexStorageItem]], NoError> in + return combineLatest(queue: queue, accounts.map { account -> Signal<[EnginePeer.Id: SpotlightIndexStorageItem], NoError> in return TelegramEngine(account: account).data.subscribe( TelegramEngine.EngineData.Item.Contacts.List(includePresences: false) ) @@ -261,7 +259,7 @@ private final class SpotlightDataContextImpl { }) } - private func updateContacts(items: [PeerId: SpotlightIndexStorageItem]) { + private func updateContacts(items: [EnginePeer.Id: SpotlightIndexStorageItem]) { self.indexStorage.update(items: items) } } diff --git a/submodules/TelegramUI/Sources/TextLinkHandling.swift b/submodules/TelegramUI/Sources/TextLinkHandling.swift index 07f44d6f04..15fee27ab2 100644 --- a/submodules/TelegramUI/Sources/TextLinkHandling.swift +++ b/submodules/TelegramUI/Sources/TextLinkHandling.swift @@ -1,7 +1,6 @@ import Foundation import UIKit import TelegramCore -import Postbox import Display import SwiftSignalKit import TelegramUIPreferences @@ -17,7 +16,7 @@ import PresentationDataUtils import UrlWhitelist import UndoUI -func handleTextLinkActionImpl(context: AccountContext, peerId: PeerId?, navigateDisposable: MetaDisposable, controller: ViewController, action: TextLinkItemActionType, itemLink: TextLinkItem) { +func handleTextLinkActionImpl(context: AccountContext, peerId: EnginePeer.Id?, navigateDisposable: MetaDisposable, controller: ViewController, action: TextLinkItemActionType, itemLink: TextLinkItem) { let presentImpl: (ViewController, Any?) -> Void = { controllerToPresent, _ in controller.present(controllerToPresent, in: .window(.root)) } @@ -33,11 +32,13 @@ func handleTextLinkActionImpl(context: AccountContext, peerId: PeerId?, navigate context.sharedContext.navigateToChatController(NavigateToChatControllerParams(navigationController: navigationController, context: context, chatLocation: .peer(peer), subject: subject, keepStack: .always, peekData: peekData)) } case .info: - let peerSignal: Signal - peerSignal = context.account.postbox.loadedPeerWithId(peer.id) |> map(Optional.init) + let peerSignal: Signal + peerSignal = context.engine.data.get( + TelegramEngine.EngineData.Item.Peer.Peer(id: peer.id) + ) navigateDisposable.set((peerSignal |> take(1) |> deliverOnMainQueue).start(next: { peer in if let controller = controller, let peer = peer { - if let infoController = context.sharedContext.makePeerInfoController(context: context, updatedPresentationData: nil, peer: peer, mode: .generic, avatarInitiallyExpanded: false, fromChat: false, requestsContext: nil) { + if let infoController = context.sharedContext.makePeerInfoController(context: context, updatedPresentationData: nil, peer: peer._asPeer(), mode: .generic, avatarInitiallyExpanded: false, fromChat: false, requestsContext: nil) { (controller.navigationController as? NavigationController)?.pushViewController(infoController) } } diff --git a/submodules/TelegramUI/Sources/VerticalListContextResultsChatInputContextPanelNode.swift b/submodules/TelegramUI/Sources/VerticalListContextResultsChatInputContextPanelNode.swift index d8e3543e63..2a88a34827 100644 --- a/submodules/TelegramUI/Sources/VerticalListContextResultsChatInputContextPanelNode.swift +++ b/submodules/TelegramUI/Sources/VerticalListContextResultsChatInputContextPanelNode.swift @@ -1,7 +1,6 @@ import Foundation import UIKit import AsyncDisplayKit -import Postbox import TelegramCore import Display import TelegramPresentationData diff --git a/submodules/TelegramUI/Sources/VerticalListContextResultsChatInputPanelButtonItem.swift b/submodules/TelegramUI/Sources/VerticalListContextResultsChatInputPanelButtonItem.swift index 4180031e25..89b9d2cb20 100644 --- a/submodules/TelegramUI/Sources/VerticalListContextResultsChatInputPanelButtonItem.swift +++ b/submodules/TelegramUI/Sources/VerticalListContextResultsChatInputPanelButtonItem.swift @@ -4,7 +4,6 @@ import AsyncDisplayKit import Display import TelegramCore import SwiftSignalKit -import Postbox import TelegramPresentationData final class VerticalListContextResultsChatInputPanelButtonItem: ListViewItem { diff --git a/submodules/TelegramUI/Sources/VerticalListContextResultsChatInputPanelItem.swift b/submodules/TelegramUI/Sources/VerticalListContextResultsChatInputPanelItem.swift index 5b21e49273..1521267f3d 100644 --- a/submodules/TelegramUI/Sources/VerticalListContextResultsChatInputPanelItem.swift +++ b/submodules/TelegramUI/Sources/VerticalListContextResultsChatInputPanelItem.swift @@ -4,7 +4,6 @@ import AsyncDisplayKit import Display import TelegramCore import SwiftSignalKit -import Postbox import TelegramPresentationData import RadialStatusNode import PhotoResources @@ -91,7 +90,7 @@ final class VerticalListContextResultsChatInputPanelItemNode: ListViewItemNode { private let highlightedBackgroundNode: ASDisplayNode private var statusDisposable = MetaDisposable() private let statusNode: RadialStatusNode = RadialStatusNode(backgroundNodeColor: UIColor(white: 0.0, alpha: 0.5)) - private var resourceStatus: MediaResourceStatus? + private var resourceStatus: EngineMediaResource.FetchStatus? private var currentIconImageResource: TelegramMediaResource? @@ -167,7 +166,7 @@ final class VerticalListContextResultsChatInputPanelItemNode: ListViewItemNode { var iconText: NSAttributedString? var updateIconImageSignal: Signal<(TransformImageArguments) -> DrawingContext?, NoError>? - var updatedStatusSignal: Signal? + var updatedStatusSignal: Signal? if let title = item.result.title { titleString = NSAttributedString(string: title, font: titleFont, textColor: item.theme.list.itemPrimaryTextColor) @@ -233,7 +232,7 @@ final class VerticalListContextResultsChatInputPanelItemNode: ListViewItemNode { iconImageApply = iconImageLayout(arguments) updatedStatusSignal = item.account.postbox.mediaBox.resourceStatus(imageResource) - + |> map(EngineMediaResource.FetchStatus.init) } var updatedIconImageResource = false @@ -251,7 +250,7 @@ final class VerticalListContextResultsChatInputPanelItemNode: ListViewItemNode { updateIconImageSignal = chatMessageSticker(account: item.account, userLocation: .other, file: stickerFile, small: false, fetched: true) } else { let tmpRepresentation = TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: 55, height: 55), resource: imageResource, progressiveSizes: [], immediateThumbnailData: nil, hasVideo: false, isPersonal: false) - let tmpImage = TelegramMediaImage(imageId: MediaId(namespace: 0, id: 0), representations: [tmpRepresentation], immediateThumbnailData: nil, reference: nil, partialReference: nil, flags: []) + let tmpImage = TelegramMediaImage(imageId: EngineMedia.Id(namespace: 0, id: 0), representations: [tmpRepresentation], immediateThumbnailData: nil, reference: nil, partialReference: nil, flags: []) updateIconImageSignal = chatWebpageSnippetPhoto(account: item.account, userLocation: .other, photoReference: .standalone(media: tmpImage)) } } else { diff --git a/submodules/TelegramUI/Sources/WatchManager.swift b/submodules/TelegramUI/Sources/WatchManager.swift index a1ddbcdd11..daebf13070 100644 --- a/submodules/TelegramUI/Sources/WatchManager.swift +++ b/submodules/TelegramUI/Sources/WatchManager.swift @@ -1,6 +1,5 @@ import Foundation import SwiftSignalKit -import Postbox import TelegramCore import AccountContext import WatchBridge @@ -16,7 +15,7 @@ public final class WatchManagerImpl: WatchManager { return self.arguments?.appInstalled ?? .single(false) } - public var navigateToMessageRequested: Signal { + public var navigateToMessageRequested: Signal { return self.arguments?.navigateToMessageRequested ?? .never() } diff --git a/submodules/TelegramUI/Sources/WebpagePreviewAccessoryPanelNode.swift b/submodules/TelegramUI/Sources/WebpagePreviewAccessoryPanelNode.swift index f588bb8561..758aa60e85 100644 --- a/submodules/TelegramUI/Sources/WebpagePreviewAccessoryPanelNode.swift +++ b/submodules/TelegramUI/Sources/WebpagePreviewAccessoryPanelNode.swift @@ -2,7 +2,6 @@ import Foundation import UIKit import AsyncDisplayKit import TelegramCore -import Postbox import SwiftSignalKit import Display import TelegramPresentationData diff --git a/submodules/TelegramUIPreferences/Sources/CallListSettings.swift b/submodules/TelegramUIPreferences/Sources/CallListSettings.swift index aa7b6ce9cb..ad593f2f24 100644 --- a/submodules/TelegramUIPreferences/Sources/CallListSettings.swift +++ b/submodules/TelegramUIPreferences/Sources/CallListSettings.swift @@ -1,7 +1,7 @@ import Foundation -import Postbox import TelegramCore import SwiftSignalKit +import Postbox public struct CallListSettings: Codable, Equatable { public var _showTab: Bool? diff --git a/submodules/TelegramUIPreferences/Sources/ChatArchiveSettings.swift b/submodules/TelegramUIPreferences/Sources/ChatArchiveSettings.swift index 605ed6bcf8..26d3646c42 100644 --- a/submodules/TelegramUIPreferences/Sources/ChatArchiveSettings.swift +++ b/submodules/TelegramUIPreferences/Sources/ChatArchiveSettings.swift @@ -1,17 +1,17 @@ import Foundation -import Postbox import SwiftSignalKit import TelegramCore +import Postbox public struct ChatArchiveSettings: Equatable, Codable { public var isHiddenByDefault: Bool - public var hiddenPsaPeerId: PeerId? + public var hiddenPsaPeerId: EnginePeer.Id? public static var `default`: ChatArchiveSettings { return ChatArchiveSettings(isHiddenByDefault: false, hiddenPsaPeerId: nil) } - public init(isHiddenByDefault: Bool, hiddenPsaPeerId: PeerId?) { + public init(isHiddenByDefault: Bool, hiddenPsaPeerId: EnginePeer.Id?) { self.isHiddenByDefault = isHiddenByDefault self.hiddenPsaPeerId = hiddenPsaPeerId } @@ -20,7 +20,7 @@ public struct ChatArchiveSettings: Equatable, Codable { let container = try decoder.container(keyedBy: StringCodingKey.self) self.isHiddenByDefault = (try container.decode(Int32.self, forKey: "isHiddenByDefault")) != 0 - self.hiddenPsaPeerId = (try container.decodeIfPresent(Int64.self, forKey: "hiddenPsaPeerId")).flatMap(PeerId.init) + self.hiddenPsaPeerId = (try container.decodeIfPresent(Int64.self, forKey: "hiddenPsaPeerId")).flatMap(EnginePeer.Id.init) } public func encode(to encoder: Encoder) throws { diff --git a/submodules/TelegramVoip/Sources/GroupCallContext.swift b/submodules/TelegramVoip/Sources/GroupCallContext.swift index 6b39e18cae..3a43be9c1b 100644 --- a/submodules/TelegramVoip/Sources/GroupCallContext.swift +++ b/submodules/TelegramVoip/Sources/GroupCallContext.swift @@ -2,7 +2,6 @@ import Foundation import SwiftSignalKit import TgVoipWebrtc import TelegramCore -import Postbox final class ContextQueueImpl: NSObject, OngoingCallThreadLocalContextQueueWebrtc { private let queue: Queue @@ -47,7 +46,7 @@ final class NetworkBroadcastPartSource: BroadcastPartSource { private var dataSource: AudioBroadcastDataSource? #if DEBUG - private let debugDumpDirectory = TempBox.shared.tempDirectory() + private let debugDumpDirectory = EngineTempBox.shared.tempDirectory() #endif init(queue: Queue, engine: TelegramEngine, callId: Int64, accessHash: Int64, isExternalStream: Bool) { diff --git a/submodules/TelegramVoip/Sources/OngoingCallContext.swift b/submodules/TelegramVoip/Sources/OngoingCallContext.swift index bb60b75c2b..2bc04aad92 100644 --- a/submodules/TelegramVoip/Sources/OngoingCallContext.swift +++ b/submodules/TelegramVoip/Sources/OngoingCallContext.swift @@ -791,7 +791,7 @@ public final class OngoingCallContext { return OngoingCallThreadLocalContext.maxLayer() } - private let tempStatsLogFile: EngineTempBoxFile + private let tempStatsLogFile: EngineTempBox.File private var signalingConnectionManager: QueueLocalObject? diff --git a/submodules/TextFormat/Sources/TelegramAttributes.swift b/submodules/TextFormat/Sources/TelegramAttributes.swift index fb93ec60a2..ffa8508e85 100644 --- a/submodules/TextFormat/Sources/TelegramAttributes.swift +++ b/submodules/TextFormat/Sources/TelegramAttributes.swift @@ -1,5 +1,5 @@ import Foundation -import Postbox +import TelegramCore public final class TelegramHashtag { public let peerName: String? @@ -12,10 +12,10 @@ public final class TelegramHashtag { } public final class TelegramPeerMention { - public let peerId: PeerId + public let peerId: EnginePeer.Id public let mention: String - public init(peerId: PeerId, mention: String) { + public init(peerId: EnginePeer.Id, mention: String) { self.peerId = peerId self.mention = mention } diff --git a/submodules/TooltipUI/Sources/TooltipScreen.swift b/submodules/TooltipUI/Sources/TooltipScreen.swift index 36e6eaacc7..ac3ec92410 100644 --- a/submodules/TooltipUI/Sources/TooltipScreen.swift +++ b/submodules/TooltipUI/Sources/TooltipScreen.swift @@ -9,7 +9,6 @@ import TelegramAnimatedStickerNode import AppBundle import TelegramCore import TextFormat -import Postbox import UrlEscaping import AccountContext @@ -20,7 +19,7 @@ public protocol TooltipCustomContentNode: ASDisplayNode { public enum TooltipActiveTextItem { case url(String, Bool) - case mention(PeerId, String) + case mention(EnginePeer.Id, String) case textMention(String) case botCommand(String) case hashtag(String) diff --git a/submodules/TranslateUI/Sources/ChatTranslation.swift b/submodules/TranslateUI/Sources/ChatTranslation.swift index 6fd7639622..65c4c240bd 100644 --- a/submodules/TranslateUI/Sources/ChatTranslation.swift +++ b/submodules/TranslateUI/Sources/ChatTranslation.swift @@ -2,7 +2,6 @@ import Foundation import NaturalLanguage import SwiftSignalKit import TelegramCore -import Postbox import AccountContext import TelegramUIPreferences @@ -69,7 +68,7 @@ public struct ChatTranslationState: Codable { } private func cachedChatTranslationState(engine: TelegramEngine, peerId: EnginePeer.Id) -> Signal { - let key = ValueBoxKey(length: 8) + let key = EngineDataBuffer(length: 8) key.setInt64(0, value: peerId.id._internalGetInt64Value()) return engine.data.subscribe(TelegramEngine.EngineData.Item.ItemCache.Item(collectionId: ApplicationSpecificItemCacheCollectionId.translationState, id: key)) @@ -79,7 +78,7 @@ private func cachedChatTranslationState(engine: TelegramEngine, peerId: EnginePe } private func updateChatTranslationState(engine: TelegramEngine, peerId: EnginePeer.Id, state: ChatTranslationState?) -> Signal { - let key = ValueBoxKey(length: 8) + let key = EngineDataBuffer(length: 8) key.setInt64(0, value: peerId.id._internalGetInt64Value()) if let state { @@ -90,7 +89,7 @@ private func updateChatTranslationState(engine: TelegramEngine, peerId: EnginePe } public func updateChatTranslationStateInteractively(engine: TelegramEngine, peerId: EnginePeer.Id, _ f: @escaping (ChatTranslationState?) -> ChatTranslationState?) -> Signal { - let key = ValueBoxKey(length: 8) + let key = EngineDataBuffer(length: 8) key.setInt64(0, value: peerId.id._internalGetInt64Value()) return engine.data.get(TelegramEngine.EngineData.Item.ItemCache.Item(collectionId: ApplicationSpecificItemCacheCollectionId.translationState, id: key)) @@ -151,7 +150,7 @@ public func translateMessageIds(context: AccountContext, messageIds: [EngineMess } public func chatTranslationState(context: AccountContext, peerId: EnginePeer.Id) -> Signal { - if peerId.id == PeerId.Id._internalFromInt64Value(777000) { + if peerId.id == EnginePeer.Id.Id._internalFromInt64Value(777000) { return .single(nil) } diff --git a/submodules/TranslateUI/Sources/LanguageSelectionController.swift b/submodules/TranslateUI/Sources/LanguageSelectionController.swift index 2bf089e528..0f00678760 100644 --- a/submodules/TranslateUI/Sources/LanguageSelectionController.swift +++ b/submodules/TranslateUI/Sources/LanguageSelectionController.swift @@ -2,7 +2,6 @@ import Foundation import UIKit import Display import SwiftSignalKit -import Postbox import TelegramCore import TelegramPresentationData import TelegramUIPreferences diff --git a/submodules/TranslateUI/Sources/TranslateScreen.swift b/submodules/TranslateUI/Sources/TranslateScreen.swift index b684599637..a42435f60e 100644 --- a/submodules/TranslateUI/Sources/TranslateScreen.swift +++ b/submodules/TranslateUI/Sources/TranslateScreen.swift @@ -2,7 +2,6 @@ import Foundation import UIKit import Display import AsyncDisplayKit -import Postbox import TelegramCore import SwiftSignalKit import AccountContext diff --git a/submodules/UndoUI/Sources/UndoOverlayControllerNode.swift b/submodules/UndoUI/Sources/UndoOverlayControllerNode.swift index 0d79b33c52..d1c2f5c7fd 100644 --- a/submodules/UndoUI/Sources/UndoOverlayControllerNode.swift +++ b/submodules/UndoUI/Sources/UndoOverlayControllerNode.swift @@ -4,7 +4,6 @@ import AsyncDisplayKit import Display import SwiftSignalKit import TelegramCore -import Postbox import TelegramPresentationData import TextFormat import Markdown