diff --git a/Telegram-iOS.xcworkspace/contents.xcworkspacedata b/Telegram-iOS.xcworkspace/contents.xcworkspacedata index da095b9f65..d2c3c61b5a 100644 --- a/Telegram-iOS.xcworkspace/contents.xcworkspacedata +++ b/Telegram-iOS.xcworkspace/contents.xcworkspacedata @@ -35,9 +35,6 @@ - - @@ -47,6 +44,9 @@ + + @@ -65,9 +65,6 @@ - - @@ -92,6 +89,19 @@ + + + + + + + + @@ -110,6 +120,9 @@ + + + + + + + + + + @@ -442,6 +467,15 @@ + + + + + + diff --git a/submodules/AccountContext/AccountContext_Xcode.xcodeproj/project.pbxproj b/submodules/AccountContext/AccountContext_Xcode.xcodeproj/project.pbxproj index b265aed4b3..f26b508c18 100644 --- a/submodules/AccountContext/AccountContext_Xcode.xcodeproj/project.pbxproj +++ b/submodules/AccountContext/AccountContext_Xcode.xcodeproj/project.pbxproj @@ -7,6 +7,8 @@ objects = { /* Begin PBXBuildFile section */ + D03E4228230565790049C28B /* ChatListController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E4227230565790049C28B /* ChatListController.swift */; }; + D03E422A230567900049C28B /* ContactMultiselectionController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E4229230567900049C28B /* ContactMultiselectionController.swift */; }; D06018E722F36A3F00796784 /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D06018E622F36A3F00796784 /* TelegramPresentationData.framework */; }; D0879A4622F651D400C4D6B3 /* LiveLocationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879A4522F651D400C4D6B3 /* LiveLocationManager.swift */; }; D0879A4A22F6584B00C4D6B3 /* SharedMediaPlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879A4922F6584B00C4D6B3 /* SharedMediaPlayer.swift */; }; @@ -46,6 +48,8 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + D03E4227230565790049C28B /* ChatListController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatListController.swift; sourceTree = ""; }; + D03E4229230567900049C28B /* ContactMultiselectionController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactMultiselectionController.swift; sourceTree = ""; }; D06018E422F36A3900796784 /* DeviceAccess.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DeviceAccess.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D06018E622F36A3F00796784 /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0879A4522F651D400C4D6B3 /* LiveLocationManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveLocationManager.swift; sourceTree = ""; }; @@ -154,7 +158,9 @@ D0C9C3D62300CC2400FAB518 /* FetchMediaUtils.swift */, D0C9C3D82300CC6000FAB518 /* IsMediaStreamable.swift */, D0C9CA892302314400FAB518 /* ContactSelectionController.swift */, + D03E4229230567900049C28B /* ContactMultiselectionController.swift */, D0C9CB832302B4B900FAB518 /* StoredMessageFromSearchPeer.swift */, + D03E4227230565790049C28B /* ChatListController.swift */, ); path = Sources; sourceTree = ""; @@ -263,6 +269,7 @@ D0879A4E22F65B2A00C4D6B3 /* MediaManager.swift in Sources */, D0879A4A22F6584B00C4D6B3 /* SharedMediaPlayer.swift in Sources */, D0879B7122F8425B00C4D6B3 /* WallpaperUploadManager.swift in Sources */, + D03E422A230567900049C28B /* ContactMultiselectionController.swift in Sources */, D0879B6722F7AE6400C4D6B3 /* PresentationCallManager.swift in Sources */, D0879B2922F77C8300C4D6B3 /* FetchManager.swift in Sources */, D0C9CA8A2302314400FAB518 /* ContactSelectionController.swift in Sources */, @@ -272,6 +279,7 @@ D0879B6F22F83F6600C4D6B3 /* DownloadedMediaStoreManager.swift in Sources */, D0879B6922F7AF2A00C4D6B3 /* DeviceContactDataManager.swift in Sources */, D0879B6322F7A97F00C4D6B3 /* OverlayMediaItemNode.swift in Sources */, + D03E4228230565790049C28B /* ChatListController.swift in Sources */, D0879B6B22F7B04400C4D6B3 /* DeviceContactData.swift in Sources */, D0879B1922F70C7400C4D6B3 /* OpenChatMessage.swift in Sources */, D0C9C3D72300CC2500FAB518 /* FetchMediaUtils.swift in Sources */, diff --git a/submodules/AccountContext/Sources/AccountContext.swift b/submodules/AccountContext/Sources/AccountContext.swift index 73b63799a8..d85b8eaa9b 100644 --- a/submodules/AccountContext/Sources/AccountContext.swift +++ b/submodules/AccountContext/Sources/AccountContext.swift @@ -414,11 +414,15 @@ public protocol SharedAccountContext: class { func makeDeviceContactInfoController(context: AccountContext, subject: DeviceContactInfoSubject, completed: (() -> Void)?, cancelled: (() -> Void)?) -> ViewController func makePeersNearbyController(context: AccountContext) -> ViewController func makeComposeController(context: AccountContext) -> ViewController + func makeChatListController(context: AccountContext, groupId: PeerGroupId, controlsHistoryPreload: Bool, hideNetworkActivityStatus: Bool, enableDebugActions: Bool) -> ChatListController func makeChatController(context: AccountContext, chatLocation: ChatLocation, subject: ChatControllerSubject?, botStart: ChatControllerInitialBotStart?, mode: ChatControllerPresentationMode) -> ChatController + func makePeerSharedMediaController(context: AccountContext, peerId: PeerId) -> ViewController? func makeContactSelectionController(_ params: ContactSelectionControllerParams) -> ContactSelectionController + func makeContactMultiselectionController(_ params: ContactMultiselectionControllerParams) -> ContactMultiselectionController func makeProxySettingsController(context: AccountContext) -> ViewController func makeLocalizationListController(context: AccountContext) -> ViewController func makeCreateGroupController(context: AccountContext, peerIds: [PeerId], initialTitle: String?, mode: CreateGroupMode, completion: ((PeerId, @escaping () -> Void) -> Void)?) -> ViewController + func makeChatRecentActionsController(context: AccountContext, peer: Peer) -> ViewController func navigateToChatController(_ params: NavigateToChatControllerParams) func openExternalUrl(context: AccountContext, urlContext: OpenURLContext, url: String, forceExternal: Bool, presentationData: PresentationData, navigationController: NavigationController?, dismissInput: @escaping () -> Void) func chatAvailableMessageActions(postbox: Postbox, accountPeerId: PeerId, messageIds: Set) -> Signal diff --git a/submodules/AccountContext/Sources/ChatListController.swift b/submodules/AccountContext/Sources/ChatListController.swift new file mode 100644 index 0000000000..f0e4304440 --- /dev/null +++ b/submodules/AccountContext/Sources/ChatListController.swift @@ -0,0 +1,13 @@ +import Foundation +import Postbox +import Display + +public protocol ChatListController: ViewController { + var context: AccountContext { get } + var lockViewFrame: CGRect? { get } + + func activateSearch() + func deactivateSearch(animated: Bool) + func activateCompose() + func maybeAskForPeerChatRemoval(peer: RenderedPeer, deleteGloballyIfPossible: Bool, completion: @escaping (Bool) -> Void, removed: @escaping () -> Void) +} diff --git a/submodules/AccountContext/Sources/ContactMultiselectionController.swift b/submodules/AccountContext/Sources/ContactMultiselectionController.swift new file mode 100644 index 0000000000..23ff45ff11 --- /dev/null +++ b/submodules/AccountContext/Sources/ContactMultiselectionController.swift @@ -0,0 +1,36 @@ +import Foundation +import Display +import SwiftSignalKit +import Postbox + +public enum ContactMultiselectionControllerMode { + case groupCreation + case peerSelection(searchChatList: Bool, searchGroups: Bool) + case channelCreation +} + +public enum ContactListFilter { + case excludeSelf + case exclude([PeerId]) + case disable([PeerId]) +} + +public final class ContactMultiselectionControllerParams { + public let context: AccountContext + public let mode: ContactMultiselectionControllerMode + public let options: [ContactListAdditionalOption] + public let filters: [ContactListFilter] + + public init(context: AccountContext, mode: ContactMultiselectionControllerMode, options: [ContactListAdditionalOption], filters: [ContactListFilter] = [.excludeSelf]) { + self.context = context + self.mode = mode + self.options = options + self.filters = filters + } +} + +public protocol ContactMultiselectionController: ViewController { + var result: Signal<[ContactListPeerId], NoError> { get } + var displayProgress: Bool { get set } + var dismissed: (() -> Void)? { get set } +} diff --git a/submodules/AccountContext/Sources/ContactSelectionController.swift b/submodules/AccountContext/Sources/ContactSelectionController.swift index 381fb0e974..f480206f36 100644 --- a/submodules/AccountContext/Sources/ContactSelectionController.swift +++ b/submodules/AccountContext/Sources/ContactSelectionController.swift @@ -4,6 +4,8 @@ import SwiftSignalKit public protocol ContactSelectionController: ViewController { var result: Signal { get } + var displayProgress: Bool { get set } + var dismissed: (() -> Void)? { get set } func dismissSearch() } diff --git a/submodules/ChatListUI/Sources/ChatListController.swift b/submodules/ChatListUI/Sources/ChatListController.swift index d7d29afae8..9a62d8c8ff 100644 --- a/submodules/ChatListUI/Sources/ChatListController.swift +++ b/submodules/ChatListUI/Sources/ChatListController.swift @@ -64,7 +64,7 @@ private func fixListNodeScrolling(_ listNode: ListView, searchNode: NavigationBa return false } -public class ChatListController: TelegramBaseController, UIViewControllerPreviewingDelegate { +public class ChatListControllerImpl: TelegramBaseController, ChatListController, UIViewControllerPreviewingDelegate { private var validLayout: ContainerViewLayout? public let context: AccountContext @@ -711,7 +711,7 @@ public class ChatListController: TelegramBaseController, UIViewControllerPreview self.chatListDisplayNode.chatListNode.groupSelected = { [weak self] groupId in if let strongSelf = self { if let navigationController = strongSelf.navigationController as? NavigationController { - let chatListController = ChatListController(context: strongSelf.context, groupId: groupId, controlsHistoryPreload: false, enableDebugActions: false) + let chatListController = ChatListControllerImpl(context: strongSelf.context, groupId: groupId, controlsHistoryPreload: false, enableDebugActions: false) navigationController.pushViewController(chatListController) strongSelf.chatListDisplayNode.chatListNode.clearHighlightAnimated(true) } @@ -1183,7 +1183,11 @@ public class ChatListController: TelegramBaseController, UIViewControllerPreview } } - @objc public func composePressed() { + public func activateCompose() { + self.composePressed() + } + + @objc private func composePressed() { (self.navigationController as? NavigationController)?.replaceAllButRootController(self.context.sharedContext.makeComposeController(context: self.context), animated: true) } @@ -1260,7 +1264,7 @@ public class ChatListController: TelegramBaseController, UIViewControllerPreview return nil } case let .groupReference(groupId, _, _, _, _): - let chatListController = ChatListController(context: self.context, groupId: groupId, controlsHistoryPreload: false, enableDebugActions: false) + let chatListController = ChatListControllerImpl(context: self.context, groupId: groupId, controlsHistoryPreload: false, enableDebugActions: false) chatListController.containerLayoutUpdated(ContainerViewLayout(size: contentSize, metrics: LayoutMetrics(), intrinsicInsets: UIEdgeInsets(), safeInsets: UIEdgeInsets(), statusBarHeight: nil, inputHeight: nil, standardInputHeight: 216.0, inputHeightIsInteractivellyChanging: false, inVoiceOver: false), transition: .immediate) return (chatListController, sourceRect) } diff --git a/submodules/ChatListUI/Sources/ChatListControllerNode.swift b/submodules/ChatListUI/Sources/ChatListControllerNode.swift index 8e433149cd..348cbd8b6b 100644 --- a/submodules/ChatListUI/Sources/ChatListControllerNode.swift +++ b/submodules/ChatListUI/Sources/ChatListControllerNode.swift @@ -21,7 +21,7 @@ private final class ChatListControllerNodeView: UITracingLayerView, PreviewingHo }) } - weak var controller: ChatListController? + weak var controller: ChatListControllerImpl? } private struct TestItem: Comparable, Identifiable { @@ -49,7 +49,7 @@ final class ChatListControllerNode: ASDisplayNode { private var chatListEmptyIndicator: ActivityIndicator? let chatListNode: ChatListNode var navigationBar: NavigationBar? - weak var controller: ChatListController? + weak var controller: ChatListControllerImpl? var toolbar: Toolbar? private var toolbarNode: ToolbarNode? @@ -69,7 +69,7 @@ final class ChatListControllerNode: ASDisplayNode { let debugListView = ListView() - init(context: AccountContext, groupId: PeerGroupId, controlsHistoryPreload: Bool, presentationData: PresentationData, controller: ChatListController) { + init(context: AccountContext, groupId: PeerGroupId, controlsHistoryPreload: Bool, presentationData: PresentationData, controller: ChatListControllerImpl) { self.context = context self.groupId = groupId self.presentationData = presentationData diff --git a/submodules/ContactListUI/Sources/ContactListNode.swift b/submodules/ContactListUI/Sources/ContactListNode.swift index 4184cf192e..0cd7dbcb7f 100644 --- a/submodules/ContactListUI/Sources/ContactListNode.swift +++ b/submodules/ContactListUI/Sources/ContactListNode.swift @@ -686,12 +686,6 @@ public struct ContactListNodeGroupSelectionState: Equatable { } } -public enum ContactListFilter { - case excludeSelf - case exclude([PeerId]) - case disable([PeerId]) -} - public final class ContactListNode: ASDisplayNode { private let context: AccountContext private var presentation: ContactListPresentation? diff --git a/submodules/Emoji/Emoji_Xcode.xcodeproj/project.pbxproj b/submodules/Emoji/Emoji_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..45c3992f31 --- /dev/null +++ b/submodules/Emoji/Emoji_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,547 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E41822304D6F00049C28B /* Emoji.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E41802304D6F00049C28B /* Emoji.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E418D2304D7610049C28B /* EmojiUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E418C2304D7610049C28B /* EmojiUtils.swift */; }; + D03E41902304D76E0049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E418F2304D76E0049C28B /* Foundation.framework */; }; + D03E41922304D7710049C28B /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41912304D7710049C28B /* CoreText.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E417D2304D6F00049C28B /* Emoji.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Emoji.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41802304D6F00049C28B /* Emoji.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Emoji.h; sourceTree = ""; }; + D03E41812304D6F00049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E418C2304D7610049C28B /* EmojiUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EmojiUtils.swift; sourceTree = ""; }; + D03E418F2304D76E0049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E41912304D7710049C28B /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E417A2304D6F00049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E41922304D7710049C28B /* CoreText.framework in Frameworks */, + D03E41902304D76E0049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E41732304D6F00049C28B = { + isa = PBXGroup; + children = ( + D03E41812304D6F00049C28B /* Info.plist */, + D03E417F2304D6F00049C28B /* Sources */, + D03E417E2304D6F00049C28B /* Products */, + D03E418E2304D76D0049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E417E2304D6F00049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E417D2304D6F00049C28B /* Emoji.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E417F2304D6F00049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E418C2304D7610049C28B /* EmojiUtils.swift */, + D03E41802304D6F00049C28B /* Emoji.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E418E2304D76D0049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E41912304D7710049C28B /* CoreText.framework */, + D03E418F2304D76E0049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E41782304D6F00049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E41822304D6F00049C28B /* Emoji.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E417C2304D6F00049C28B /* Emoji */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E41852304D6F00049C28B /* Build configuration list for PBXNativeTarget "Emoji" */; + buildPhases = ( + D03E41782304D6F00049C28B /* Headers */, + D03E41792304D6F00049C28B /* Sources */, + D03E417A2304D6F00049C28B /* Frameworks */, + D03E417B2304D6F00049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Emoji; + productName = Emoji; + productReference = D03E417D2304D6F00049C28B /* Emoji.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E41742304D6F00049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E417C2304D6F00049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E41772304D6F00049C28B /* Build configuration list for PBXProject "Emoji_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E41732304D6F00049C28B; + productRefGroup = D03E417E2304D6F00049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E417C2304D6F00049C28B /* Emoji */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E417B2304D6F00049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E41792304D6F00049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E418D2304D7610049C28B /* EmojiUtils.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E41832304D6F00049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStoreLLC; + }; + D03E41842304D6F00049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStoreLLC; + }; + D03E41862304D6F00049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Emoji; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugAppStoreLLC; + }; + D03E41872304D6F00049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Emoji; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E41882304D7300049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + D03E41892304D7300049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Emoji; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugHockeyapp; + }; + D03E418A2304D7390049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyappInternal; + }; + D03E418B2304D7390049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Emoji; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseHockeyappInternal; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D03E41772304D6F00049C28B /* Build configuration list for PBXProject "Emoji_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E41832304D6F00049C28B /* DebugAppStoreLLC */, + D03E41882304D7300049C28B /* DebugHockeyapp */, + D03E41842304D6F00049C28B /* ReleaseAppStoreLLC */, + D03E418A2304D7390049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E41852304D6F00049C28B /* Build configuration list for PBXNativeTarget "Emoji" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E41862304D6F00049C28B /* DebugAppStoreLLC */, + D03E41892304D7300049C28B /* DebugHockeyapp */, + D03E41872304D6F00049C28B /* ReleaseAppStoreLLC */, + D03E418B2304D7390049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E41742304D6F00049C28B /* Project object */; +} diff --git a/submodules/Emoji/Info.plist b/submodules/Emoji/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/Emoji/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/submodules/Emoji/Sources/Emoji.h b/submodules/Emoji/Sources/Emoji.h new file mode 100644 index 0000000000..5e70ebcc00 --- /dev/null +++ b/submodules/Emoji/Sources/Emoji.h @@ -0,0 +1,19 @@ +// +// Emoji.h +// Emoji +// +// Created by Peter on 8/15/19. +// Copyright © 2019 Telegram Messenger LLP. All rights reserved. +// + +#import + +//! Project version number for Emoji. +FOUNDATION_EXPORT double EmojiVersionNumber; + +//! Project version string for Emoji. +FOUNDATION_EXPORT const unsigned char EmojiVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/submodules/TelegramUI/TelegramUI/EmojiUtils.swift b/submodules/Emoji/Sources/EmojiUtils.swift similarity index 98% rename from submodules/TelegramUI/TelegramUI/EmojiUtils.swift rename to submodules/Emoji/Sources/EmojiUtils.swift index 42cc09e558..9d3c799fcd 100644 --- a/submodules/TelegramUI/TelegramUI/EmojiUtils.swift +++ b/submodules/Emoji/Sources/EmojiUtils.swift @@ -1,7 +1,7 @@ import Foundation import CoreText -extension UnicodeScalar { +public extension UnicodeScalar { var isEmoji: Bool { switch self.value { case 0x1F600...0x1F64F, // Emoticons @@ -42,7 +42,7 @@ extension UnicodeScalar { } } -extension String { +public extension String { func trimmingTrailingSpaces() -> String { var t = self while t.hasSuffix(" ") { diff --git a/submodules/EncryptionKeyVisualization/EncryptionKeyVisualization_Xcode.xcodeproj/project.pbxproj b/submodules/EncryptionKeyVisualization/EncryptionKeyVisualization_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..1630c63342 --- /dev/null +++ b/submodules/EncryptionKeyVisualization/EncryptionKeyVisualization_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,555 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E429C23056BC20049C28B /* EncryptionKeyVisualization.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E429A23056BC20049C28B /* EncryptionKeyVisualization.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E42A923056C350049C28B /* SecretChatKeyVisualization.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E42A623056C340049C28B /* SecretChatKeyVisualization.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E42AA23056C350049C28B /* SecretChatKeyVisualization.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E42A723056C340049C28B /* SecretChatKeyVisualization.m */; }; + D03E42AB23056C350049C28B /* SecretChatKeyVisualization.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E42A823056C340049C28B /* SecretChatKeyVisualization.swift */; }; + D03E42AE23056C5A0049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42AD23056C5A0049C28B /* Foundation.framework */; }; + D03E42B023056C5C0049C28B /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42AF23056C5C0049C28B /* TelegramCore.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E429723056BC20049C28B /* EncryptionKeyVisualization.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = EncryptionKeyVisualization.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E429A23056BC20049C28B /* EncryptionKeyVisualization.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EncryptionKeyVisualization.h; sourceTree = ""; }; + D03E429B23056BC20049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E42A623056C340049C28B /* SecretChatKeyVisualization.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SecretChatKeyVisualization.h; sourceTree = ""; }; + D03E42A723056C340049C28B /* SecretChatKeyVisualization.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SecretChatKeyVisualization.m; sourceTree = ""; }; + D03E42A823056C340049C28B /* SecretChatKeyVisualization.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatKeyVisualization.swift; sourceTree = ""; }; + D03E42AD23056C5A0049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E42AF23056C5C0049C28B /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E429423056BC20049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E42B023056C5C0049C28B /* TelegramCore.framework in Frameworks */, + D03E42AE23056C5A0049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E428D23056BC20049C28B = { + isa = PBXGroup; + children = ( + D03E429B23056BC20049C28B /* Info.plist */, + D03E429923056BC20049C28B /* Sources */, + D03E429823056BC20049C28B /* Products */, + D03E42AC23056C590049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E429823056BC20049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E429723056BC20049C28B /* EncryptionKeyVisualization.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E429923056BC20049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E42A623056C340049C28B /* SecretChatKeyVisualization.h */, + D03E42A723056C340049C28B /* SecretChatKeyVisualization.m */, + D03E42A823056C340049C28B /* SecretChatKeyVisualization.swift */, + D03E429A23056BC20049C28B /* EncryptionKeyVisualization.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E42AC23056C590049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E42AF23056C5C0049C28B /* TelegramCore.framework */, + D03E42AD23056C5A0049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E429223056BC20049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E429C23056BC20049C28B /* EncryptionKeyVisualization.h in Headers */, + D03E42A923056C350049C28B /* SecretChatKeyVisualization.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E429623056BC20049C28B /* EncryptionKeyVisualization */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E429F23056BC20049C28B /* Build configuration list for PBXNativeTarget "EncryptionKeyVisualization" */; + buildPhases = ( + D03E429223056BC20049C28B /* Headers */, + D03E429323056BC20049C28B /* Sources */, + D03E429423056BC20049C28B /* Frameworks */, + D03E429523056BC20049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = EncryptionKeyVisualization; + productName = EncryptionKeyVisualization; + productReference = D03E429723056BC20049C28B /* EncryptionKeyVisualization.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E428E23056BC20049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E429623056BC20049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E429123056BC20049C28B /* Build configuration list for PBXProject "EncryptionKeyVisualization_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E428D23056BC20049C28B; + productRefGroup = D03E429823056BC20049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E429623056BC20049C28B /* EncryptionKeyVisualization */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E429523056BC20049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E429323056BC20049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E42AB23056C350049C28B /* SecretChatKeyVisualization.swift in Sources */, + D03E42AA23056C350049C28B /* SecretChatKeyVisualization.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E429D23056BC20049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStoreLLC; + }; + D03E429E23056BC20049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStoreLLC; + }; + D03E42A023056BC20049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.EncryptionKeyVisualization; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugAppStoreLLC; + }; + D03E42A123056BC20049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.EncryptionKeyVisualization; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E42A223056BEA0049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + D03E42A323056BEA0049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.EncryptionKeyVisualization; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugHockeyapp; + }; + D03E42A423056BF40049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyappInternal; + }; + D03E42A523056BF40049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.EncryptionKeyVisualization; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseHockeyappInternal; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D03E429123056BC20049C28B /* Build configuration list for PBXProject "EncryptionKeyVisualization_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E429D23056BC20049C28B /* DebugAppStoreLLC */, + D03E42A223056BEA0049C28B /* DebugHockeyapp */, + D03E429E23056BC20049C28B /* ReleaseAppStoreLLC */, + D03E42A423056BF40049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E429F23056BC20049C28B /* Build configuration list for PBXNativeTarget "EncryptionKeyVisualization" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E42A023056BC20049C28B /* DebugAppStoreLLC */, + D03E42A323056BEA0049C28B /* DebugHockeyapp */, + D03E42A123056BC20049C28B /* ReleaseAppStoreLLC */, + D03E42A523056BF40049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E428E23056BC20049C28B /* Project object */; +} diff --git a/submodules/EncryptionKeyVisualization/Info.plist b/submodules/EncryptionKeyVisualization/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/EncryptionKeyVisualization/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/submodules/EncryptionKeyVisualization/Sources/EncryptionKeyVisualization.h b/submodules/EncryptionKeyVisualization/Sources/EncryptionKeyVisualization.h new file mode 100644 index 0000000000..f4cfd58533 --- /dev/null +++ b/submodules/EncryptionKeyVisualization/Sources/EncryptionKeyVisualization.h @@ -0,0 +1,11 @@ +#import + +//! Project version number for EncryptionKeyVisualization. +FOUNDATION_EXPORT double EncryptionKeyVisualizationVersionNumber; + +//! Project version string for EncryptionKeyVisualization. +FOUNDATION_EXPORT const unsigned char EncryptionKeyVisualizationVersionString[]; + +#import + + diff --git a/submodules/TelegramUI/TelegramUI/SecretChatKeyVisualization.h b/submodules/EncryptionKeyVisualization/Sources/SecretChatKeyVisualization.h similarity index 100% rename from submodules/TelegramUI/TelegramUI/SecretChatKeyVisualization.h rename to submodules/EncryptionKeyVisualization/Sources/SecretChatKeyVisualization.h diff --git a/submodules/TelegramUI/TelegramUI/SecretChatKeyVisualization.m b/submodules/EncryptionKeyVisualization/Sources/SecretChatKeyVisualization.m similarity index 100% rename from submodules/TelegramUI/TelegramUI/SecretChatKeyVisualization.m rename to submodules/EncryptionKeyVisualization/Sources/SecretChatKeyVisualization.m diff --git a/submodules/TelegramUI/TelegramUI/SecretChatKeyVisualization.swift b/submodules/EncryptionKeyVisualization/Sources/SecretChatKeyVisualization.swift similarity index 65% rename from submodules/TelegramUI/TelegramUI/SecretChatKeyVisualization.swift rename to submodules/EncryptionKeyVisualization/Sources/SecretChatKeyVisualization.swift index 3c59f84d8d..8252f0f1cf 100644 --- a/submodules/TelegramUI/TelegramUI/SecretChatKeyVisualization.swift +++ b/submodules/EncryptionKeyVisualization/Sources/SecretChatKeyVisualization.swift @@ -1,8 +1,7 @@ import Foundation import TelegramCore -import TelegramUIPrivateModule -func secretChatKeyImage(_ fingerprint: SecretChatKeyFingerprint, size: CGSize) -> UIImage? { +public func secretChatKeyImage(_ fingerprint: SecretChatKeyFingerprint, size: CGSize) -> UIImage? { let keySignatureData = fingerprint.sha1.data() let additionalSignature = fingerprint.sha256.data() return SecretChatKeyVisualization(keySignatureData, additionalSignature, size) diff --git a/submodules/ItemListAddressItem/Info.plist b/submodules/ItemListAddressItem/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/ItemListAddressItem/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/submodules/ItemListAddressItem/ItemListAddressItem_Xcode.xcodeproj/project.pbxproj b/submodules/ItemListAddressItem/ItemListAddressItem_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..01adfaf460 --- /dev/null +++ b/submodules/ItemListAddressItem/ItemListAddressItem_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,579 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E42C4230571620049C28B /* ItemListAddressItem.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E42C2230571620049C28B /* ItemListAddressItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E42CB230571710049C28B /* ItemListAddressItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E42CA230571700049C28B /* ItemListAddressItem.swift */; }; + D03E42D2230571C30049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42D1230571C30049C28B /* Foundation.framework */; }; + D03E42D4230571C60049C28B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42D3230571C60049C28B /* UIKit.framework */; }; + D03E42D6230571C80049C28B /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42D5230571C80049C28B /* Display.framework */; }; + D03E42D8230571CC0049C28B /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42D7230571CC0049C28B /* AsyncDisplayKit.framework */; }; + D03E42DA230571D00049C28B /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42D9230571D00049C28B /* SwiftSignalKit.framework */; }; + D03E42DC230571D70049C28B /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42DB230571D70049C28B /* TelegramPresentationData.framework */; }; + D03E42DE230571DD0049C28B /* ItemListUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42DD230571DD0049C28B /* ItemListUI.framework */; }; + D03E42E0230571E20049C28B /* AccountContext.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42DF230571E20049C28B /* AccountContext.framework */; }; + D03E42E2230571E60049C28B /* TextFormat.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42E1230571E60049C28B /* TextFormat.framework */; }; + D03E42E8230572780049C28B /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E42E7230572780049C28B /* FrameworkBundle.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E42BF230571620049C28B /* ItemListAddressItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ItemListAddressItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E42C2230571620049C28B /* ItemListAddressItem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ItemListAddressItem.h; sourceTree = ""; }; + D03E42C3230571620049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E42CA230571700049C28B /* ItemListAddressItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemListAddressItem.swift; sourceTree = ""; }; + D03E42D1230571C30049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E42D3230571C60049C28B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D03E42D5230571C80049C28B /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E42D7230571CC0049C28B /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E42D9230571D00049C28B /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E42DB230571D70049C28B /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E42DD230571DD0049C28B /* ItemListUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E42DF230571E20049C28B /* AccountContext.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AccountContext.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E42E1230571E60049C28B /* TextFormat.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TextFormat.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E42E7230572780049C28B /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E42BC230571620049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E42E2230571E60049C28B /* TextFormat.framework in Frameworks */, + D03E42E0230571E20049C28B /* AccountContext.framework in Frameworks */, + D03E42DE230571DD0049C28B /* ItemListUI.framework in Frameworks */, + D03E42DC230571D70049C28B /* TelegramPresentationData.framework in Frameworks */, + D03E42DA230571D00049C28B /* SwiftSignalKit.framework in Frameworks */, + D03E42D8230571CC0049C28B /* AsyncDisplayKit.framework in Frameworks */, + D03E42D6230571C80049C28B /* Display.framework in Frameworks */, + D03E42D4230571C60049C28B /* UIKit.framework in Frameworks */, + D03E42D2230571C30049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E42B5230571620049C28B = { + isa = PBXGroup; + children = ( + D03E42C3230571620049C28B /* Info.plist */, + D03E42C1230571620049C28B /* Sources */, + D03E42C0230571620049C28B /* Products */, + D03E42D0230571C20049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E42C0230571620049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E42BF230571620049C28B /* ItemListAddressItem.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E42C1230571620049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E42CA230571700049C28B /* ItemListAddressItem.swift */, + D03E42E7230572780049C28B /* FrameworkBundle.swift */, + D03E42C2230571620049C28B /* ItemListAddressItem.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E42D0230571C20049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E42E1230571E60049C28B /* TextFormat.framework */, + D03E42DF230571E20049C28B /* AccountContext.framework */, + D03E42DD230571DD0049C28B /* ItemListUI.framework */, + D03E42DB230571D70049C28B /* TelegramPresentationData.framework */, + D03E42D9230571D00049C28B /* SwiftSignalKit.framework */, + D03E42D7230571CC0049C28B /* AsyncDisplayKit.framework */, + D03E42D5230571C80049C28B /* Display.framework */, + D03E42D3230571C60049C28B /* UIKit.framework */, + D03E42D1230571C30049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E42BA230571620049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E42C4230571620049C28B /* ItemListAddressItem.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E42BE230571620049C28B /* ItemListAddressItem */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E42C7230571620049C28B /* Build configuration list for PBXNativeTarget "ItemListAddressItem" */; + buildPhases = ( + D03E42BA230571620049C28B /* Headers */, + D03E42BB230571620049C28B /* Sources */, + D03E42BC230571620049C28B /* Frameworks */, + D03E42BD230571620049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = ItemListAddressItem; + productName = ItemListAddressItem; + productReference = D03E42BF230571620049C28B /* ItemListAddressItem.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E42B6230571620049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E42BE230571620049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E42B9230571620049C28B /* Build configuration list for PBXProject "ItemListAddressItem_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E42B5230571620049C28B; + productRefGroup = D03E42C0230571620049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E42BE230571620049C28B /* ItemListAddressItem */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E42BD230571620049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E42BB230571620049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E42E8230572780049C28B /* FrameworkBundle.swift in Sources */, + D03E42CB230571710049C28B /* ItemListAddressItem.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E42C5230571620049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStoreLLC; + }; + D03E42C6230571620049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStoreLLC; + }; + D03E42C8230571620049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.ItemListAddressItem; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugAppStoreLLC; + }; + D03E42C9230571620049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.ItemListAddressItem; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E42CC2305718E0049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + D03E42CD2305718E0049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.ItemListAddressItem; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugHockeyapp; + }; + D03E42CE230571960049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyappInternal; + }; + D03E42CF230571960049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.ItemListAddressItem; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseHockeyappInternal; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D03E42B9230571620049C28B /* Build configuration list for PBXProject "ItemListAddressItem_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E42C5230571620049C28B /* DebugAppStoreLLC */, + D03E42CC2305718E0049C28B /* DebugHockeyapp */, + D03E42C6230571620049C28B /* ReleaseAppStoreLLC */, + D03E42CE230571960049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E42C7230571620049C28B /* Build configuration list for PBXNativeTarget "ItemListAddressItem" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E42C8230571620049C28B /* DebugAppStoreLLC */, + D03E42CD2305718E0049C28B /* DebugHockeyapp */, + D03E42C9230571620049C28B /* ReleaseAppStoreLLC */, + D03E42CF230571960049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E42B6230571620049C28B /* Project object */; +} diff --git a/submodules/ItemListAddressItem/Sources/FrameworkBundle.swift b/submodules/ItemListAddressItem/Sources/FrameworkBundle.swift new file mode 100644 index 0000000000..8ca13d7d92 --- /dev/null +++ b/submodules/ItemListAddressItem/Sources/FrameworkBundle.swift @@ -0,0 +1,13 @@ +import Foundation +import UIKit + +private class FrameworkBundleClass: NSObject { +} + +let frameworkBundle: Bundle = Bundle(for: FrameworkBundleClass.self) + +extension UIImage { + convenience init?(bundleImageName: String) { + self.init(named: bundleImageName, in: frameworkBundle, compatibleWith: nil) + } +} diff --git a/submodules/ItemListAddressItem/Sources/ItemListAddressItem.h b/submodules/ItemListAddressItem/Sources/ItemListAddressItem.h new file mode 100644 index 0000000000..154d3fd620 --- /dev/null +++ b/submodules/ItemListAddressItem/Sources/ItemListAddressItem.h @@ -0,0 +1,19 @@ +// +// ItemListAddressItem.h +// ItemListAddressItem +// +// Created by Peter on 8/15/19. +// Copyright © 2019 Telegram Messenger LLP. All rights reserved. +// + +#import + +//! Project version number for ItemListAddressItem. +FOUNDATION_EXPORT double ItemListAddressItemVersionNumber; + +//! Project version string for ItemListAddressItem. +FOUNDATION_EXPORT const unsigned char ItemListAddressItemVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/submodules/TelegramUI/TelegramUI/ItemListAddressItem.swift b/submodules/ItemListAddressItem/Sources/ItemListAddressItem.swift similarity index 90% rename from submodules/TelegramUI/TelegramUI/ItemListAddressItem.swift rename to submodules/ItemListAddressItem/Sources/ItemListAddressItem.swift index f6dc8c6087..60893ed4a7 100644 --- a/submodules/TelegramUI/TelegramUI/ItemListAddressItem.swift +++ b/submodules/ItemListAddressItem/Sources/ItemListAddressItem.swift @@ -8,21 +8,21 @@ import ItemListUI import AccountContext import TextFormat -final class ItemListAddressItem: ListViewItem, ItemListItem { +public final class ItemListAddressItem: ListViewItem, ItemListItem { let theme: PresentationTheme let label: String let text: String let imageSignal: Signal<(TransformImageArguments) -> DrawingContext?, NoError>? let selected: Bool? - let sectionId: ItemListSectionId + public let sectionId: ItemListSectionId let style: ItemListStyle let action: (() -> Void)? let longTapAction: (() -> Void)? let linkItemAction: ((TextLinkItemActionType, TextLinkItem) -> Void)? - let tag: Any? + public let tag: Any? - init(theme: PresentationTheme, label: String, text: String, imageSignal: Signal<(TransformImageArguments) -> DrawingContext?, NoError>?, selected: Bool? = nil, sectionId: ItemListSectionId, style: ItemListStyle, action: (() -> Void)?, longTapAction: (() -> Void)? = nil, linkItemAction: ((TextLinkItemActionType, TextLinkItem) -> Void)? = nil, tag: Any? = nil) { + public init(theme: PresentationTheme, label: String, text: String, imageSignal: Signal<(TransformImageArguments) -> DrawingContext?, NoError>?, selected: Bool? = nil, sectionId: ItemListSectionId, style: ItemListStyle, action: (() -> Void)?, longTapAction: (() -> Void)? = nil, linkItemAction: ((TextLinkItemActionType, TextLinkItem) -> Void)? = nil, tag: Any? = nil) { self.theme = theme self.label = label self.text = text @@ -36,7 +36,7 @@ final class ItemListAddressItem: ListViewItem, ItemListItem { self.tag = tag } - func nodeConfiguredForParams(async: @escaping (@escaping () -> Void) -> Void, params: ListViewItemLayoutParams, synchronousLoads: Bool, previousItem: ListViewItem?, nextItem: ListViewItem?, completion: @escaping (ListViewItemNode, @escaping () -> (Signal?, (ListViewItemApply) -> Void)) -> Void) { + public func nodeConfiguredForParams(async: @escaping (@escaping () -> Void) -> Void, params: ListViewItemLayoutParams, synchronousLoads: Bool, previousItem: ListViewItem?, nextItem: ListViewItem?, completion: @escaping (ListViewItemNode, @escaping () -> (Signal?, (ListViewItemApply) -> Void)) -> Void) { async { let node = ItemListAddressItemNode() let (layout, apply) = node.asyncLayout()(self, params, itemListNeighbors(item: self, topItem: previousItem as? ItemListItem, bottomItem: nextItem as? ItemListItem)) @@ -52,7 +52,7 @@ final class ItemListAddressItem: ListViewItem, ItemListItem { } } - func updateNode(async: @escaping (@escaping () -> Void) -> Void, node: @escaping () -> ListViewItemNode, params: ListViewItemLayoutParams, previousItem: ListViewItem?, nextItem: ListViewItem?, animation: ListViewItemUpdateAnimation, completion: @escaping (ListViewItemNodeLayout, @escaping (ListViewItemApply) -> Void) -> Void) { + public func updateNode(async: @escaping (@escaping () -> Void) -> Void, node: @escaping () -> ListViewItemNode, params: ListViewItemLayoutParams, previousItem: ListViewItem?, nextItem: ListViewItem?, animation: ListViewItemUpdateAnimation, completion: @escaping (ListViewItemNodeLayout, @escaping (ListViewItemApply) -> Void) -> Void) { Queue.mainQueue().async { if let nodeValue = node() as? ItemListAddressItemNode { let makeLayout = nodeValue.asyncLayout() @@ -69,11 +69,11 @@ final class ItemListAddressItem: ListViewItem, ItemListItem { } } - var selectable: Bool { + public var selectable: Bool { return self.action != nil } - func selected(listView: ListView) { + public func selected(listView: ListView) { listView.clearHighlightAnimated(true) self.action?() } @@ -86,7 +86,7 @@ private let textItalicFont = Font.italic(17.0) private let textBoldItalicFont = Font.semiboldItalic(17.0) private let textFixedFont = Font.regular(17.0) -class ItemListAddressItemNode: ListViewItemNode { +public class ItemListAddressItemNode: ListViewItemNode { let labelNode: TextNode let textNode: TextNode @@ -98,13 +98,13 @@ class ItemListAddressItemNode: ListViewItemNode { private let iconNode: ASImageNode private var selectionNode: ItemListSelectableControlNode? - var item: ItemListAddressItem? + public var item: ItemListAddressItem? - override var canBeLongTapped: Bool { + override public var canBeLongTapped: Bool { return true } - init() { + public init() { self.backgroundNode = ASDisplayNode() self.backgroundNode.isLayerBacked = true @@ -140,7 +140,7 @@ class ItemListAddressItemNode: ListViewItemNode { self.addSubnode(self.iconNode) } - func asyncLayout() -> (_ item: ItemListAddressItem, _ params: ListViewItemLayoutParams, _ insets: ItemListNeighbors) -> (ListViewItemNodeLayout, (ListViewItemUpdateAnimation) -> Void) { + public func asyncLayout() -> (_ item: ItemListAddressItem, _ params: ListViewItemLayoutParams, _ insets: ItemListNeighbors) -> (ListViewItemNodeLayout, (ListViewItemUpdateAnimation) -> Void) { let makeLabelLayout = TextNode.asyncLayout(self.labelNode) let makeTextLayout = TextNode.asyncLayout(self.textNode) let makeImageLayout = self.imageNode.asyncLayout() @@ -314,7 +314,7 @@ class ItemListAddressItemNode: ListViewItemNode { } } - override func setHighlighted(_ highlighted: Bool, at point: CGPoint, animated: Bool) { + override public func setHighlighted(_ highlighted: Bool, at point: CGPoint, animated: Bool) { super.setHighlighted(highlighted, at: point, animated: animated) if highlighted && self.selectionNode == nil { @@ -352,19 +352,19 @@ class ItemListAddressItemNode: ListViewItemNode { } } - override func animateInsertion(_ currentTimestamp: Double, duration: Double, short: Bool) { + override public func animateInsertion(_ currentTimestamp: Double, duration: Double, short: Bool) { self.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.4) } - override func animateRemoved(_ currentTimestamp: Double, duration: Double) { + override public func animateRemoved(_ currentTimestamp: Double, duration: Double) { self.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.15, removeOnCompletion: false) } - override func longTapped() { + override public func longTapped() { self.item?.longTapAction?() } - var tag: Any? { + public var tag: Any? { return self.item?.tag } } diff --git a/submodules/ItemListStickerPackItem/Info.plist b/submodules/ItemListStickerPackItem/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/ItemListStickerPackItem/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/submodules/ItemListStickerPackItem/ItemListStickerPackItem_Xcode.xcodeproj/project.pbxproj b/submodules/ItemListStickerPackItem/ItemListStickerPackItem_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..7853e41a3b --- /dev/null +++ b/submodules/ItemListStickerPackItem/ItemListStickerPackItem_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,583 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E41A82304D8770049C28B /* ItemListStickerPackItem.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E41A62304D8770049C28B /* ItemListStickerPackItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E41B32304D8E00049C28B /* ItemListStickerPackItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E41B22304D8E00049C28B /* ItemListStickerPackItem.swift */; }; + D03E41B62304D8EE0049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41B52304D8EE0049C28B /* Foundation.framework */; }; + D03E41B82304D8F10049C28B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41B72304D8F10049C28B /* UIKit.framework */; }; + D03E41BA2304D8F50049C28B /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41B92304D8F50049C28B /* Display.framework */; }; + D03E41BC2304D8F90049C28B /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41BB2304D8F90049C28B /* AsyncDisplayKit.framework */; }; + D03E41BE2304D8FD0049C28B /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41BD2304D8FD0049C28B /* SwiftSignalKit.framework */; }; + D03E41C02304D9020049C28B /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41BF2304D9020049C28B /* Postbox.framework */; }; + D03E41C22304D9080049C28B /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41C12304D9080049C28B /* TelegramCore.framework */; }; + D03E41C42304D90E0049C28B /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41C32304D90E0049C28B /* TelegramPresentationData.framework */; }; + D03E41C62304D9130049C28B /* ItemListUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41C52304D9130049C28B /* ItemListUI.framework */; }; + D03E41C82304D9170049C28B /* StickerResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41C72304D9170049C28B /* StickerResources.framework */; }; + D03E41CA2304D91C0049C28B /* AnimationUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41C92304D91C0049C28B /* AnimationUI.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E41A32304D8770049C28B /* ItemListStickerPackItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ItemListStickerPackItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41A62304D8770049C28B /* ItemListStickerPackItem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ItemListStickerPackItem.h; sourceTree = ""; }; + D03E41A72304D8770049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E41B22304D8E00049C28B /* ItemListStickerPackItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemListStickerPackItem.swift; sourceTree = ""; }; + D03E41B52304D8EE0049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E41B72304D8F10049C28B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D03E41B92304D8F50049C28B /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41BB2304D8F90049C28B /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41BD2304D8FD0049C28B /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41BF2304D9020049C28B /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41C12304D9080049C28B /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41C32304D90E0049C28B /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41C52304D9130049C28B /* ItemListUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41C72304D9170049C28B /* StickerResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = StickerResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41C92304D91C0049C28B /* AnimationUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AnimationUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E41A02304D8770049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E41CA2304D91C0049C28B /* AnimationUI.framework in Frameworks */, + D03E41C82304D9170049C28B /* StickerResources.framework in Frameworks */, + D03E41C62304D9130049C28B /* ItemListUI.framework in Frameworks */, + D03E41C42304D90E0049C28B /* TelegramPresentationData.framework in Frameworks */, + D03E41C22304D9080049C28B /* TelegramCore.framework in Frameworks */, + D03E41C02304D9020049C28B /* Postbox.framework in Frameworks */, + D03E41BE2304D8FD0049C28B /* SwiftSignalKit.framework in Frameworks */, + D03E41BC2304D8F90049C28B /* AsyncDisplayKit.framework in Frameworks */, + D03E41BA2304D8F50049C28B /* Display.framework in Frameworks */, + D03E41B82304D8F10049C28B /* UIKit.framework in Frameworks */, + D03E41B62304D8EE0049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E41992304D8770049C28B = { + isa = PBXGroup; + children = ( + D03E41A72304D8770049C28B /* Info.plist */, + D03E41A52304D8770049C28B /* Sources */, + D03E41A42304D8770049C28B /* Products */, + D03E41B42304D8ED0049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E41A42304D8770049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E41A32304D8770049C28B /* ItemListStickerPackItem.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E41A52304D8770049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E41B22304D8E00049C28B /* ItemListStickerPackItem.swift */, + D03E41A62304D8770049C28B /* ItemListStickerPackItem.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E41B42304D8ED0049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E41C92304D91C0049C28B /* AnimationUI.framework */, + D03E41C72304D9170049C28B /* StickerResources.framework */, + D03E41C52304D9130049C28B /* ItemListUI.framework */, + D03E41C32304D90E0049C28B /* TelegramPresentationData.framework */, + D03E41C12304D9080049C28B /* TelegramCore.framework */, + D03E41BF2304D9020049C28B /* Postbox.framework */, + D03E41BD2304D8FD0049C28B /* SwiftSignalKit.framework */, + D03E41BB2304D8F90049C28B /* AsyncDisplayKit.framework */, + D03E41B92304D8F50049C28B /* Display.framework */, + D03E41B72304D8F10049C28B /* UIKit.framework */, + D03E41B52304D8EE0049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E419E2304D8770049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E41A82304D8770049C28B /* ItemListStickerPackItem.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E41A22304D8770049C28B /* ItemListStickerPackItem */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E41AB2304D8770049C28B /* Build configuration list for PBXNativeTarget "ItemListStickerPackItem" */; + buildPhases = ( + D03E419E2304D8770049C28B /* Headers */, + D03E419F2304D8770049C28B /* Sources */, + D03E41A02304D8770049C28B /* Frameworks */, + D03E41A12304D8770049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = ItemListStickerPackItem; + productName = ItemListStickerPackItem; + productReference = D03E41A32304D8770049C28B /* ItemListStickerPackItem.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E419A2304D8770049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E41A22304D8770049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E419D2304D8770049C28B /* Build configuration list for PBXProject "ItemListStickerPackItem_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E41992304D8770049C28B; + productRefGroup = D03E41A42304D8770049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E41A22304D8770049C28B /* ItemListStickerPackItem */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E41A12304D8770049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E419F2304D8770049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E41B32304D8E00049C28B /* ItemListStickerPackItem.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E41A92304D8770049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStoreLLC; + }; + D03E41AA2304D8770049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStoreLLC; + }; + D03E41AC2304D8770049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.ItemListStickerPackItem; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugAppStoreLLC; + }; + D03E41AD2304D8770049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.ItemListStickerPackItem; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E41AE2304D8A10049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + D03E41AF2304D8A10049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.ItemListStickerPackItem; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugHockeyapp; + }; + D03E41B02304D8AA0049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyappInternal; + }; + D03E41B12304D8AA0049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.ItemListStickerPackItem; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseHockeyappInternal; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D03E419D2304D8770049C28B /* Build configuration list for PBXProject "ItemListStickerPackItem_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E41A92304D8770049C28B /* DebugAppStoreLLC */, + D03E41AE2304D8A10049C28B /* DebugHockeyapp */, + D03E41AA2304D8770049C28B /* ReleaseAppStoreLLC */, + D03E41B02304D8AA0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E41AB2304D8770049C28B /* Build configuration list for PBXNativeTarget "ItemListStickerPackItem" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E41AC2304D8770049C28B /* DebugAppStoreLLC */, + D03E41AF2304D8A10049C28B /* DebugHockeyapp */, + D03E41AD2304D8770049C28B /* ReleaseAppStoreLLC */, + D03E41B12304D8AA0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E419A2304D8770049C28B /* Project object */; +} diff --git a/submodules/ItemListStickerPackItem/Sources/ItemListStickerPackItem.h b/submodules/ItemListStickerPackItem/Sources/ItemListStickerPackItem.h new file mode 100644 index 0000000000..706ef2a41d --- /dev/null +++ b/submodules/ItemListStickerPackItem/Sources/ItemListStickerPackItem.h @@ -0,0 +1,19 @@ +// +// ItemListStickerPackItem.h +// ItemListStickerPackItem +// +// Created by Peter on 8/15/19. +// Copyright © 2019 Telegram Messenger LLP. All rights reserved. +// + +#import + +//! Project version number for ItemListStickerPackItem. +FOUNDATION_EXPORT double ItemListStickerPackItemVersionNumber; + +//! Project version string for ItemListStickerPackItem. +FOUNDATION_EXPORT const unsigned char ItemListStickerPackItemVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/submodules/TelegramUI/TelegramUI/ItemListStickerPackItem.swift b/submodules/ItemListStickerPackItem/Sources/ItemListStickerPackItem.swift similarity index 93% rename from submodules/TelegramUI/TelegramUI/ItemListStickerPackItem.swift rename to submodules/ItemListStickerPackItem/Sources/ItemListStickerPackItem.swift index ebcb752b22..91b50ea909 100644 --- a/submodules/TelegramUI/TelegramUI/ItemListStickerPackItem.swift +++ b/submodules/ItemListStickerPackItem/Sources/ItemListStickerPackItem.swift @@ -10,36 +10,27 @@ import ItemListUI import StickerResources import AnimationUI -struct ItemListStickerPackItemEditing: Equatable { - let editable: Bool - let editing: Bool - let revealed: Bool - let reorderable: Bool +public struct ItemListStickerPackItemEditing: Equatable { + public var editable: Bool + public var editing: Bool + public var revealed: Bool + public var reorderable: Bool - static func ==(lhs: ItemListStickerPackItemEditing, rhs: ItemListStickerPackItemEditing) -> Bool { - if lhs.editable != rhs.editable { - return false - } - if lhs.editing != rhs.editing { - return false - } - if lhs.revealed != rhs.revealed { - return false - } - if lhs.reorderable != rhs.reorderable { - return false - } - return true + public init(editable: Bool, editing: Bool, revealed: Bool, reorderable: Bool) { + self.editable = editable + self.editing = editing + self.revealed = revealed + self.reorderable = reorderable } } -enum ItemListStickerPackItemControl: Equatable { +public enum ItemListStickerPackItemControl: Equatable { case none case installation(installed: Bool) case selection } -final class ItemListStickerPackItem: ListViewItem, ItemListItem { +public final class ItemListStickerPackItem: ListViewItem, ItemListItem { let theme: PresentationTheme let strings: PresentationStrings let account: Account @@ -51,13 +42,13 @@ final class ItemListStickerPackItem: ListViewItem, ItemListItem { let editing: ItemListStickerPackItemEditing let enabled: Bool let playAnimatedStickers: Bool - let sectionId: ItemListSectionId + public let sectionId: ItemListSectionId let action: (() -> Void)? let setPackIdWithRevealedOptions: (ItemCollectionId?, ItemCollectionId?) -> Void let addPack: () -> Void let removePack: () -> Void - init(theme: PresentationTheme, strings: PresentationStrings, account: Account, packInfo: StickerPackCollectionInfo, itemCount: String, topItem: StickerPackItem?, unread: Bool, control: ItemListStickerPackItemControl, editing: ItemListStickerPackItemEditing, enabled: Bool, playAnimatedStickers: Bool, sectionId: ItemListSectionId, action: (() -> Void)?, setPackIdWithRevealedOptions: @escaping (ItemCollectionId?, ItemCollectionId?) -> Void, addPack: @escaping () -> Void, removePack: @escaping () -> Void) { + public init(theme: PresentationTheme, strings: PresentationStrings, account: Account, packInfo: StickerPackCollectionInfo, itemCount: String, topItem: StickerPackItem?, unread: Bool, control: ItemListStickerPackItemControl, editing: ItemListStickerPackItemEditing, enabled: Bool, playAnimatedStickers: Bool, sectionId: ItemListSectionId, action: (() -> Void)?, setPackIdWithRevealedOptions: @escaping (ItemCollectionId?, ItemCollectionId?) -> Void, addPack: @escaping () -> Void, removePack: @escaping () -> Void) { self.theme = theme self.strings = strings self.account = account @@ -76,7 +67,7 @@ final class ItemListStickerPackItem: ListViewItem, ItemListItem { self.removePack = removePack } - func nodeConfiguredForParams(async: @escaping (@escaping () -> Void) -> Void, params: ListViewItemLayoutParams, synchronousLoads: Bool, previousItem: ListViewItem?, nextItem: ListViewItem?, completion: @escaping (ListViewItemNode, @escaping () -> (Signal?, (ListViewItemApply) -> Void)) -> Void) { + public func nodeConfiguredForParams(async: @escaping (@escaping () -> Void) -> Void, params: ListViewItemLayoutParams, synchronousLoads: Bool, previousItem: ListViewItem?, nextItem: ListViewItem?, completion: @escaping (ListViewItemNode, @escaping () -> (Signal?, (ListViewItemApply) -> Void)) -> Void) { async { let node = ItemListStickerPackItemNode() let (layout, apply) = node.asyncLayout()(self, params, itemListNeighbors(item: self, topItem: previousItem as? ItemListItem, bottomItem: nextItem as? ItemListItem)) @@ -92,7 +83,7 @@ final class ItemListStickerPackItem: ListViewItem, ItemListItem { } } - func updateNode(async: @escaping (@escaping () -> Void) -> Void, node: @escaping () -> ListViewItemNode, params: ListViewItemLayoutParams, previousItem: ListViewItem?, nextItem: ListViewItem?, animation: ListViewItemUpdateAnimation, completion: @escaping (ListViewItemNodeLayout, @escaping (ListViewItemApply) -> Void) -> Void) { + public func updateNode(async: @escaping (@escaping () -> Void) -> Void, node: @escaping () -> ListViewItemNode, params: ListViewItemLayoutParams, previousItem: ListViewItem?, nextItem: ListViewItem?, animation: ListViewItemUpdateAnimation, completion: @escaping (ListViewItemNodeLayout, @escaping (ListViewItemApply) -> Void) -> Void) { Queue.mainQueue().async { if let nodeValue = node() as? ItemListStickerPackItemNode { let makeLayout = nodeValue.asyncLayout() @@ -114,9 +105,9 @@ final class ItemListStickerPackItem: ListViewItem, ItemListItem { } } - var selectable: Bool = true + public var selectable: Bool = true - func selected(listView: ListView){ + public func selected(listView: ListView){ listView.clearHighlightAnimated(true) self.action?() } @@ -125,6 +116,28 @@ final class ItemListStickerPackItem: ListViewItem, ItemListItem { private let titleFont = Font.bold(15.0) private let statusFont = Font.regular(14.0) +public enum StickerPackThumbnailItem: Equatable { + case still(TelegramMediaImageRepresentation) + case animated(MediaResource) + + public static func ==(lhs: StickerPackThumbnailItem, rhs: StickerPackThumbnailItem) -> Bool { + switch lhs { + case let .still(representation): + if case .still(representation) = rhs { + return true + } else { + return false + } + case let .animated(lhsResource): + if case let .animated(rhsResource) = rhs, lhsResource.isEqual(to: rhsResource) { + return true + } else { + return false + } + } + } +} + class ItemListStickerPackItemNode: ItemListRevealOptionsItemNode { private var currentThumbnailItem: StickerPackThumbnailItem? diff --git a/submodules/MapResourceToAvatarSizes/Info.plist b/submodules/MapResourceToAvatarSizes/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/MapResourceToAvatarSizes/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/submodules/MapResourceToAvatarSizes/MapResourceToAvatarSizes_Xcode.xcodeproj/project.pbxproj b/submodules/MapResourceToAvatarSizes/MapResourceToAvatarSizes_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..5d0d0b2649 --- /dev/null +++ b/submodules/MapResourceToAvatarSizes/MapResourceToAvatarSizes_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,563 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E423A230569A20049C28B /* MapResourceToAvatarSizes.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E4238230569A20049C28B /* MapResourceToAvatarSizes.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E424523056A080049C28B /* MapResourceToAvatarSizes.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E424423056A080049C28B /* MapResourceToAvatarSizes.swift */; }; + D03E424823056A170049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E424723056A170049C28B /* Foundation.framework */; }; + D03E424A23056A1A0049C28B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E424923056A1A0049C28B /* UIKit.framework */; }; + D03E424C23056A1D0049C28B /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E424B23056A1D0049C28B /* SwiftSignalKit.framework */; }; + D03E424E23056A210049C28B /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E424D23056A210049C28B /* Postbox.framework */; }; + D03E425023056A250049C28B /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E424F23056A250049C28B /* TelegramCore.framework */; }; + D03E425223056A2B0049C28B /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E425123056A2B0049C28B /* Display.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E4235230569A20049C28B /* MapResourceToAvatarSizes.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MapResourceToAvatarSizes.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E4238230569A20049C28B /* MapResourceToAvatarSizes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MapResourceToAvatarSizes.h; sourceTree = ""; }; + D03E4239230569A20049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E424423056A080049C28B /* MapResourceToAvatarSizes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MapResourceToAvatarSizes.swift; sourceTree = ""; }; + D03E424723056A170049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E424923056A1A0049C28B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D03E424B23056A1D0049C28B /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E424D23056A210049C28B /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E424F23056A250049C28B /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E425123056A2B0049C28B /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E4232230569A20049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E425223056A2B0049C28B /* Display.framework in Frameworks */, + D03E425023056A250049C28B /* TelegramCore.framework in Frameworks */, + D03E424E23056A210049C28B /* Postbox.framework in Frameworks */, + D03E424C23056A1D0049C28B /* SwiftSignalKit.framework in Frameworks */, + D03E424A23056A1A0049C28B /* UIKit.framework in Frameworks */, + D03E424823056A170049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E422B230569A20049C28B = { + isa = PBXGroup; + children = ( + D03E4239230569A20049C28B /* Info.plist */, + D03E4237230569A20049C28B /* Sources */, + D03E4236230569A20049C28B /* Products */, + D03E424623056A160049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E4236230569A20049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E4235230569A20049C28B /* MapResourceToAvatarSizes.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E4237230569A20049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E424423056A080049C28B /* MapResourceToAvatarSizes.swift */, + D03E4238230569A20049C28B /* MapResourceToAvatarSizes.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E424623056A160049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E425123056A2B0049C28B /* Display.framework */, + D03E424F23056A250049C28B /* TelegramCore.framework */, + D03E424D23056A210049C28B /* Postbox.framework */, + D03E424B23056A1D0049C28B /* SwiftSignalKit.framework */, + D03E424923056A1A0049C28B /* UIKit.framework */, + D03E424723056A170049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E4230230569A20049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E423A230569A20049C28B /* MapResourceToAvatarSizes.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E4234230569A20049C28B /* MapResourceToAvatarSizes */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E423D230569A20049C28B /* Build configuration list for PBXNativeTarget "MapResourceToAvatarSizes" */; + buildPhases = ( + D03E4230230569A20049C28B /* Headers */, + D03E4231230569A20049C28B /* Sources */, + D03E4232230569A20049C28B /* Frameworks */, + D03E4233230569A20049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = MapResourceToAvatarSizes; + productName = MapResourceToAvatarSizes; + productReference = D03E4235230569A20049C28B /* MapResourceToAvatarSizes.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E422C230569A20049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E4234230569A20049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E422F230569A20049C28B /* Build configuration list for PBXProject "MapResourceToAvatarSizes_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E422B230569A20049C28B; + productRefGroup = D03E4236230569A20049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E4234230569A20049C28B /* MapResourceToAvatarSizes */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E4233230569A20049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E4231230569A20049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E424523056A080049C28B /* MapResourceToAvatarSizes.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E423B230569A20049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStoreLLC; + }; + D03E423C230569A20049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStoreLLC; + }; + D03E423E230569A20049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.MapResourceToAvatarSizes; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugAppStoreLLC; + }; + D03E423F230569A20049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.MapResourceToAvatarSizes; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E4240230569D30049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + D03E4241230569D30049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.MapResourceToAvatarSizes; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugHockeyapp; + }; + D03E4242230569DC0049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyappInternal; + }; + D03E4243230569DC0049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.MapResourceToAvatarSizes; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseHockeyappInternal; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D03E422F230569A20049C28B /* Build configuration list for PBXProject "MapResourceToAvatarSizes_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E423B230569A20049C28B /* DebugAppStoreLLC */, + D03E4240230569D30049C28B /* DebugHockeyapp */, + D03E423C230569A20049C28B /* ReleaseAppStoreLLC */, + D03E4242230569DC0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E423D230569A20049C28B /* Build configuration list for PBXNativeTarget "MapResourceToAvatarSizes" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E423E230569A20049C28B /* DebugAppStoreLLC */, + D03E4241230569D30049C28B /* DebugHockeyapp */, + D03E423F230569A20049C28B /* ReleaseAppStoreLLC */, + D03E4243230569DC0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E422C230569A20049C28B /* Project object */; +} diff --git a/submodules/MapResourceToAvatarSizes/Sources/MapResourceToAvatarSizes.h b/submodules/MapResourceToAvatarSizes/Sources/MapResourceToAvatarSizes.h new file mode 100644 index 0000000000..ac6e4a60e5 --- /dev/null +++ b/submodules/MapResourceToAvatarSizes/Sources/MapResourceToAvatarSizes.h @@ -0,0 +1,19 @@ +// +// MapResourceToAvatarSizes.h +// MapResourceToAvatarSizes +// +// Created by Peter on 8/15/19. +// Copyright © 2019 Telegram Messenger LLP. All rights reserved. +// + +#import + +//! Project version number for MapResourceToAvatarSizes. +FOUNDATION_EXPORT double MapResourceToAvatarSizesVersionNumber; + +//! Project version string for MapResourceToAvatarSizes. +FOUNDATION_EXPORT const unsigned char MapResourceToAvatarSizesVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/submodules/TelegramUI/TelegramUI/MapResourceToAvatarSizes.swift b/submodules/MapResourceToAvatarSizes/Sources/MapResourceToAvatarSizes.swift similarity index 80% rename from submodules/TelegramUI/TelegramUI/MapResourceToAvatarSizes.swift rename to submodules/MapResourceToAvatarSizes/Sources/MapResourceToAvatarSizes.swift index d949c565d9..460bb3b3c4 100644 --- a/submodules/TelegramUI/TelegramUI/MapResourceToAvatarSizes.swift +++ b/submodules/MapResourceToAvatarSizes/Sources/MapResourceToAvatarSizes.swift @@ -5,7 +5,7 @@ import Postbox import TelegramCore import Display -func mapResourceToAvatarSizes(postbox: Postbox, resource: MediaResource, representations: [TelegramMediaImageRepresentation]) -> Signal<[Int: Data], NoError> { +public func mapResourceToAvatarSizes(postbox: Postbox, resource: MediaResource, representations: [TelegramMediaImageRepresentation]) -> Signal<[Int: Data], NoError> { return postbox.mediaBox.resourceData(resource) |> take(1) |> map { data -> [Int: Data] in diff --git a/submodules/NotificationMuteSettingsUI/Info.plist b/submodules/NotificationMuteSettingsUI/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/NotificationMuteSettingsUI/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/submodules/NotificationMuteSettingsUI/NotificationMuteSettingsUI_Xcode.xcodeproj/project.pbxproj b/submodules/NotificationMuteSettingsUI/NotificationMuteSettingsUI_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..44f0fa662e --- /dev/null +++ b/submodules/NotificationMuteSettingsUI/NotificationMuteSettingsUI_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,567 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E41DE2304DA600049C28B /* NotificationMuteSettingsUI.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E41DC2304DA600049C28B /* NotificationMuteSettingsUI.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E41E9230563080049C28B /* NotificationMuteSettingsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E41E8230563080049C28B /* NotificationMuteSettingsController.swift */; }; + D03E41EC230563140049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41EB230563140049C28B /* Foundation.framework */; }; + D03E41EE230563170049C28B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41ED230563170049C28B /* UIKit.framework */; }; + D03E41F0230563190049C28B /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41EF230563190049C28B /* Display.framework */; }; + D03E41F22305631D0049C28B /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41F12305631D0049C28B /* TelegramCore.framework */; }; + D03E41F4230563210049C28B /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41F3230563210049C28B /* Postbox.framework */; }; + D03E41F6230563250049C28B /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41F5230563250049C28B /* TelegramPresentationData.framework */; }; + D03E41FC230563750049C28B /* TelegramStringFormatting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41FB230563750049C28B /* TelegramStringFormatting.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E41D92304DA600049C28B /* NotificationMuteSettingsUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = NotificationMuteSettingsUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41DC2304DA600049C28B /* NotificationMuteSettingsUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NotificationMuteSettingsUI.h; sourceTree = ""; }; + D03E41DD2304DA600049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E41E8230563080049C28B /* NotificationMuteSettingsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationMuteSettingsController.swift; sourceTree = ""; }; + D03E41EB230563140049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E41ED230563170049C28B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D03E41EF230563190049C28B /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41F12305631D0049C28B /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41F3230563210049C28B /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41F5230563250049C28B /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41FB230563750049C28B /* TelegramStringFormatting.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramStringFormatting.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E41D62304DA600049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E41FC230563750049C28B /* TelegramStringFormatting.framework in Frameworks */, + D03E41F6230563250049C28B /* TelegramPresentationData.framework in Frameworks */, + D03E41F4230563210049C28B /* Postbox.framework in Frameworks */, + D03E41F22305631D0049C28B /* TelegramCore.framework in Frameworks */, + D03E41F0230563190049C28B /* Display.framework in Frameworks */, + D03E41EE230563170049C28B /* UIKit.framework in Frameworks */, + D03E41EC230563140049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E41CF2304DA600049C28B = { + isa = PBXGroup; + children = ( + D03E41DD2304DA600049C28B /* Info.plist */, + D03E41DB2304DA600049C28B /* Sources */, + D03E41DA2304DA600049C28B /* Products */, + D03E41EA230563130049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E41DA2304DA600049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E41D92304DA600049C28B /* NotificationMuteSettingsUI.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E41DB2304DA600049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E41E8230563080049C28B /* NotificationMuteSettingsController.swift */, + D03E41DC2304DA600049C28B /* NotificationMuteSettingsUI.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E41EA230563130049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E41FB230563750049C28B /* TelegramStringFormatting.framework */, + D03E41F5230563250049C28B /* TelegramPresentationData.framework */, + D03E41F3230563210049C28B /* Postbox.framework */, + D03E41F12305631D0049C28B /* TelegramCore.framework */, + D03E41EF230563190049C28B /* Display.framework */, + D03E41ED230563170049C28B /* UIKit.framework */, + D03E41EB230563140049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E41D42304DA600049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E41DE2304DA600049C28B /* NotificationMuteSettingsUI.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E41D82304DA600049C28B /* NotificationMuteSettingsUI */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E41E12304DA600049C28B /* Build configuration list for PBXNativeTarget "NotificationMuteSettingsUI" */; + buildPhases = ( + D03E41D42304DA600049C28B /* Headers */, + D03E41D52304DA600049C28B /* Sources */, + D03E41D62304DA600049C28B /* Frameworks */, + D03E41D72304DA600049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = NotificationMuteSettingsUI; + productName = NotificationMuteSettingsUI; + productReference = D03E41D92304DA600049C28B /* NotificationMuteSettingsUI.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E41D02304DA600049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E41D82304DA600049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E41D32304DA600049C28B /* Build configuration list for PBXProject "NotificationMuteSettingsUI_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E41CF2304DA600049C28B; + productRefGroup = D03E41DA2304DA600049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E41D82304DA600049C28B /* NotificationMuteSettingsUI */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E41D72304DA600049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E41D52304DA600049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E41E9230563080049C28B /* NotificationMuteSettingsController.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E41DF2304DA600049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStoreLLC; + }; + D03E41E02304DA600049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStoreLLC; + }; + D03E41E22304DA600049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.NotificationMuteSettingsUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugAppStoreLLC; + }; + D03E41E32304DA600049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.NotificationMuteSettingsUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E41E4230562B60049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + D03E41E5230562B60049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.NotificationMuteSettingsUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugHockeyapp; + }; + D03E41E6230562BF0049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyappInternal; + }; + D03E41E7230562BF0049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.NotificationMuteSettingsUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseHockeyappInternal; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D03E41D32304DA600049C28B /* Build configuration list for PBXProject "NotificationMuteSettingsUI_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E41DF2304DA600049C28B /* DebugAppStoreLLC */, + D03E41E4230562B60049C28B /* DebugHockeyapp */, + D03E41E02304DA600049C28B /* ReleaseAppStoreLLC */, + D03E41E6230562BF0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E41E12304DA600049C28B /* Build configuration list for PBXNativeTarget "NotificationMuteSettingsUI" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E41E22304DA600049C28B /* DebugAppStoreLLC */, + D03E41E5230562B60049C28B /* DebugHockeyapp */, + D03E41E32304DA600049C28B /* ReleaseAppStoreLLC */, + D03E41E7230562BF0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E41D02304DA600049C28B /* Project object */; +} diff --git a/submodules/TelegramUI/TelegramUI/NotificationMuteSettingsController.swift b/submodules/NotificationMuteSettingsUI/Sources/NotificationMuteSettingsController.swift similarity index 86% rename from submodules/TelegramUI/TelegramUI/NotificationMuteSettingsController.swift rename to submodules/NotificationMuteSettingsUI/Sources/NotificationMuteSettingsController.swift index a0279cb2fa..e3a06112e3 100644 --- a/submodules/TelegramUI/TelegramUI/NotificationMuteSettingsController.swift +++ b/submodules/NotificationMuteSettingsUI/Sources/NotificationMuteSettingsController.swift @@ -4,6 +4,7 @@ import Display import TelegramCore import Postbox import TelegramPresentationData +import TelegramStringFormatting private enum NotificationMuteOption { case `default` @@ -12,11 +13,15 @@ private enum NotificationMuteOption { case disable } -struct NotificationSoundSettings { - var value: PeerMessageSound? +public struct NotificationSoundSettings { + public var value: PeerMessageSound? + + public init(value: PeerMessageSound? = nil) { + self.value = value + } } -func notificationMuteSettingsController(presentationData: PresentationData, notificationSettings: MessageNotificationSettings, soundSettings: NotificationSoundSettings?, openSoundSettings: @escaping () -> Void, updateSettings: @escaping (Int32?) -> Void) -> ViewController { +public func notificationMuteSettingsController(presentationData: PresentationData, notificationSettings: MessageNotificationSettings, soundSettings: NotificationSoundSettings?, openSoundSettings: @escaping () -> Void, updateSettings: @escaping (Int32?) -> Void) -> ViewController { let controller = ActionSheetController(presentationTheme: presentationData.theme) let dismissAction: () -> Void = { [weak controller] in controller?.dismissAnimated() diff --git a/submodules/NotificationMuteSettingsUI/Sources/NotificationMuteSettingsUI.h b/submodules/NotificationMuteSettingsUI/Sources/NotificationMuteSettingsUI.h new file mode 100644 index 0000000000..e690a96e31 --- /dev/null +++ b/submodules/NotificationMuteSettingsUI/Sources/NotificationMuteSettingsUI.h @@ -0,0 +1,19 @@ +// +// NotificationMuteSettingsUI.h +// NotificationMuteSettingsUI +// +// Created by Peter on 8/15/19. +// Copyright © 2019 Telegram Messenger LLP. All rights reserved. +// + +#import + +//! Project version number for NotificationMuteSettingsUI. +FOUNDATION_EXPORT double NotificationMuteSettingsUIVersionNumber; + +//! Project version string for NotificationMuteSettingsUI. +FOUNDATION_EXPORT const unsigned char NotificationMuteSettingsUIVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/submodules/NotificationSoundSelectionUI/Info.plist b/submodules/NotificationSoundSelectionUI/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/NotificationSoundSelectionUI/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/submodules/NotificationSoundSelectionUI/NotificationSoundSelectionUI_Xcode.xcodeproj/project.pbxproj b/submodules/NotificationSoundSelectionUI/NotificationSoundSelectionUI_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..4a9a12e7db --- /dev/null +++ b/submodules/NotificationSoundSelectionUI/NotificationSoundSelectionUI_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,583 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E426623056AA40049C28B /* NotificationSoundSelectionUI.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E426423056AA40049C28B /* NotificationSoundSelectionUI.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E427123056AFB0049C28B /* NotificationSoundSelection.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E427023056AFB0049C28B /* NotificationSoundSelection.swift */; }; + D03E427423056B060049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E427323056B060049C28B /* Foundation.framework */; }; + D03E427623056B080049C28B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E427523056B080049C28B /* UIKit.framework */; }; + D03E427823056B0B0049C28B /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E427723056B0B0049C28B /* Display.framework */; }; + D03E427A23056B0E0049C28B /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E427923056B0E0049C28B /* SwiftSignalKit.framework */; }; + D03E427C23056B120049C28B /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E427B23056B120049C28B /* Postbox.framework */; }; + D03E427E23056B160049C28B /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E427D23056B160049C28B /* TelegramCore.framework */; }; + D03E428023056B190049C28B /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E427F23056B190049C28B /* AVFoundation.framework */; }; + D03E428223056B1E0049C28B /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E428123056B1E0049C28B /* TelegramPresentationData.framework */; }; + D03E428423056B240049C28B /* ItemListUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E428323056B240049C28B /* ItemListUI.framework */; }; + D03E428623056B280049C28B /* AccountContext.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E428523056B280049C28B /* AccountContext.framework */; }; + D03E428C23056B900049C28B /* TelegramStringFormatting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E428B23056B900049C28B /* TelegramStringFormatting.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E426123056AA40049C28B /* NotificationSoundSelectionUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = NotificationSoundSelectionUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E426423056AA40049C28B /* NotificationSoundSelectionUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NotificationSoundSelectionUI.h; sourceTree = ""; }; + D03E426523056AA40049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E427023056AFB0049C28B /* NotificationSoundSelection.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationSoundSelection.swift; sourceTree = ""; }; + D03E427323056B060049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E427523056B080049C28B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D03E427723056B0B0049C28B /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E427923056B0E0049C28B /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E427B23056B120049C28B /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E427D23056B160049C28B /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E427F23056B190049C28B /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + D03E428123056B1E0049C28B /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E428323056B240049C28B /* ItemListUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E428523056B280049C28B /* AccountContext.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AccountContext.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E428B23056B900049C28B /* TelegramStringFormatting.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramStringFormatting.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E425E23056AA40049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E428C23056B900049C28B /* TelegramStringFormatting.framework in Frameworks */, + D03E428623056B280049C28B /* AccountContext.framework in Frameworks */, + D03E428423056B240049C28B /* ItemListUI.framework in Frameworks */, + D03E428223056B1E0049C28B /* TelegramPresentationData.framework in Frameworks */, + D03E428023056B190049C28B /* AVFoundation.framework in Frameworks */, + D03E427E23056B160049C28B /* TelegramCore.framework in Frameworks */, + D03E427C23056B120049C28B /* Postbox.framework in Frameworks */, + D03E427A23056B0E0049C28B /* SwiftSignalKit.framework in Frameworks */, + D03E427823056B0B0049C28B /* Display.framework in Frameworks */, + D03E427623056B080049C28B /* UIKit.framework in Frameworks */, + D03E427423056B060049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E425723056AA40049C28B = { + isa = PBXGroup; + children = ( + D03E426523056AA40049C28B /* Info.plist */, + D03E426323056AA40049C28B /* Sources */, + D03E426223056AA40049C28B /* Products */, + D03E427223056B050049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E426223056AA40049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E426123056AA40049C28B /* NotificationSoundSelectionUI.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E426323056AA40049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E427023056AFB0049C28B /* NotificationSoundSelection.swift */, + D03E426423056AA40049C28B /* NotificationSoundSelectionUI.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E427223056B050049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E428B23056B900049C28B /* TelegramStringFormatting.framework */, + D03E428523056B280049C28B /* AccountContext.framework */, + D03E428323056B240049C28B /* ItemListUI.framework */, + D03E428123056B1E0049C28B /* TelegramPresentationData.framework */, + D03E427F23056B190049C28B /* AVFoundation.framework */, + D03E427D23056B160049C28B /* TelegramCore.framework */, + D03E427B23056B120049C28B /* Postbox.framework */, + D03E427923056B0E0049C28B /* SwiftSignalKit.framework */, + D03E427723056B0B0049C28B /* Display.framework */, + D03E427523056B080049C28B /* UIKit.framework */, + D03E427323056B060049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E425C23056AA40049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E426623056AA40049C28B /* NotificationSoundSelectionUI.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E426023056AA40049C28B /* NotificationSoundSelectionUI */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E426923056AA40049C28B /* Build configuration list for PBXNativeTarget "NotificationSoundSelectionUI" */; + buildPhases = ( + D03E425C23056AA40049C28B /* Headers */, + D03E425D23056AA40049C28B /* Sources */, + D03E425E23056AA40049C28B /* Frameworks */, + D03E425F23056AA40049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = NotificationSoundSelectionUI; + productName = NotificationSoundSelectionUI; + productReference = D03E426123056AA40049C28B /* NotificationSoundSelectionUI.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E425823056AA40049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E426023056AA40049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E425B23056AA40049C28B /* Build configuration list for PBXProject "NotificationSoundSelectionUI_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E425723056AA40049C28B; + productRefGroup = D03E426223056AA40049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E426023056AA40049C28B /* NotificationSoundSelectionUI */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E425F23056AA40049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E425D23056AA40049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E427123056AFB0049C28B /* NotificationSoundSelection.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E426723056AA40049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStoreLLC; + }; + D03E426823056AA40049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStoreLLC; + }; + D03E426A23056AA40049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.NotificationSoundSelectionUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugAppStoreLLC; + }; + D03E426B23056AA40049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.NotificationSoundSelectionUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E426C23056AC00049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + D03E426D23056AC00049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.NotificationSoundSelectionUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugHockeyapp; + }; + D03E426E23056AC80049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyappInternal; + }; + D03E426F23056AC80049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.NotificationSoundSelectionUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseHockeyappInternal; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D03E425B23056AA40049C28B /* Build configuration list for PBXProject "NotificationSoundSelectionUI_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E426723056AA40049C28B /* DebugAppStoreLLC */, + D03E426C23056AC00049C28B /* DebugHockeyapp */, + D03E426823056AA40049C28B /* ReleaseAppStoreLLC */, + D03E426E23056AC80049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E426923056AA40049C28B /* Build configuration list for PBXNativeTarget "NotificationSoundSelectionUI" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E426A23056AA40049C28B /* DebugAppStoreLLC */, + D03E426D23056AC00049C28B /* DebugHockeyapp */, + D03E426B23056AA40049C28B /* ReleaseAppStoreLLC */, + D03E426F23056AC80049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E425823056AA40049C28B /* Project object */; +} diff --git a/submodules/TelegramUI/TelegramUI/NotificationSoundSelection.swift b/submodules/NotificationSoundSelectionUI/Sources/NotificationSoundSelection.swift similarity index 98% rename from submodules/TelegramUI/TelegramUI/NotificationSoundSelection.swift rename to submodules/NotificationSoundSelectionUI/Sources/NotificationSoundSelection.swift index 45a4cbfed1..4bf28ff8ca 100644 --- a/submodules/TelegramUI/TelegramUI/NotificationSoundSelection.swift +++ b/submodules/NotificationSoundSelectionUI/Sources/NotificationSoundSelection.swift @@ -8,6 +8,7 @@ import AVFoundation import TelegramPresentationData import ItemListUI import AccountContext +import TelegramStringFormatting private struct NotificationSoundSelectionArguments { let account: Account @@ -213,7 +214,7 @@ public func fileNameForNotificationSound(_ sound: PeerMessageSound, defaultSound } } -func playSound(context: AccountContext, sound: PeerMessageSound, defaultSound: PeerMessageSound?) -> Signal { +public func playSound(context: AccountContext, sound: PeerMessageSound, defaultSound: PeerMessageSound?) -> Signal { if case .none = sound { return .complete() } else { diff --git a/submodules/NotificationSoundSelectionUI/Sources/NotificationSoundSelectionUI.h b/submodules/NotificationSoundSelectionUI/Sources/NotificationSoundSelectionUI.h new file mode 100644 index 0000000000..42b5c59b45 --- /dev/null +++ b/submodules/NotificationSoundSelectionUI/Sources/NotificationSoundSelectionUI.h @@ -0,0 +1,19 @@ +// +// NotificationSoundSelectionUI.h +// NotificationSoundSelectionUI +// +// Created by Peter on 8/15/19. +// Copyright © 2019 Telegram Messenger LLP. All rights reserved. +// + +#import + +//! Project version number for NotificationSoundSelectionUI. +FOUNDATION_EXPORT double NotificationSoundSelectionUIVersionNumber; + +//! Project version string for NotificationSoundSelectionUI. +FOUNDATION_EXPORT const unsigned char NotificationSoundSelectionUIVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/submodules/PeerAvatarGalleryUI/Info.plist b/submodules/PeerAvatarGalleryUI/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/PeerAvatarGalleryUI/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI_Xcode.xcodeproj/project.pbxproj b/submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..310d6cd141 --- /dev/null +++ b/submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,619 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E41322304D37B0049C28B /* PeerAvatarGalleryUI.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E41302304D37B0049C28B /* PeerAvatarGalleryUI.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E413F2304D3F60049C28B /* AvatarGalleryController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E413C2304D3F50049C28B /* AvatarGalleryController.swift */; }; + D03E41402304D3F60049C28B /* AvatarGalleryItemFooterContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E413D2304D3F60049C28B /* AvatarGalleryItemFooterContentNode.swift */; }; + D03E41412304D3F60049C28B /* PeerAvatarImageGalleryItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E413E2304D3F60049C28B /* PeerAvatarImageGalleryItem.swift */; }; + D03E41462304D40E0049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41452304D40E0049C28B /* Foundation.framework */; }; + D03E41482304D4100049C28B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41472304D4100049C28B /* UIKit.framework */; }; + D03E414A2304D4140049C28B /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41492304D4140049C28B /* Display.framework */; }; + D03E414C2304D4170049C28B /* QuickLook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E414B2304D4170049C28B /* QuickLook.framework */; }; + D03E414E2304D41B0049C28B /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E414D2304D41B0049C28B /* Postbox.framework */; }; + D03E41502304D41E0049C28B /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E414F2304D41E0049C28B /* SwiftSignalKit.framework */; }; + D03E41522304D4220049C28B /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41512304D4220049C28B /* AsyncDisplayKit.framework */; }; + D03E41542304D4280049C28B /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41532304D4280049C28B /* TelegramCore.framework */; }; + D03E41562304D42D0049C28B /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41552304D42D0049C28B /* TelegramPresentationData.framework */; }; + D03E41582304D4340049C28B /* AccountContext.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41572304D4340049C28B /* AccountContext.framework */; }; + D03E415A2304D4390049C28B /* GalleryUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41592304D4390049C28B /* GalleryUI.framework */; }; + D03E415C2304D4440049C28B /* Photos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E415B2304D4440049C28B /* Photos.framework */; }; + D03E415E2304D4520049C28B /* TelegramUIPreferences.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E415D2304D4520049C28B /* TelegramUIPreferences.framework */; }; + D03E41602304D4580049C28B /* TelegramStringFormatting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E415F2304D4580049C28B /* TelegramStringFormatting.framework */; }; + D03E41622304D4650049C28B /* PhotoResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41612304D4650049C28B /* PhotoResources.framework */; }; + D03E41642304D4690049C28B /* RadialStatusNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41632304D4690049C28B /* RadialStatusNode.framework */; }; + D03E41662304D46E0049C28B /* ShareController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41652304D46E0049C28B /* ShareController.framework */; }; + D03E416A2304D4F50049C28B /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E41692304D4F50049C28B /* FrameworkBundle.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E412D2304D37B0049C28B /* PeerAvatarGalleryUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PeerAvatarGalleryUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41302304D37B0049C28B /* PeerAvatarGalleryUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PeerAvatarGalleryUI.h; sourceTree = ""; }; + D03E41312304D37B0049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E413C2304D3F50049C28B /* AvatarGalleryController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarGalleryController.swift; sourceTree = ""; }; + D03E413D2304D3F60049C28B /* AvatarGalleryItemFooterContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarGalleryItemFooterContentNode.swift; sourceTree = ""; }; + D03E413E2304D3F60049C28B /* PeerAvatarImageGalleryItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerAvatarImageGalleryItem.swift; sourceTree = ""; }; + D03E41452304D40E0049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E41472304D4100049C28B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D03E41492304D4140049C28B /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E414B2304D4170049C28B /* QuickLook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickLook.framework; path = System/Library/Frameworks/QuickLook.framework; sourceTree = SDKROOT; }; + D03E414D2304D41B0049C28B /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E414F2304D41E0049C28B /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41512304D4220049C28B /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41532304D4280049C28B /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41552304D42D0049C28B /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41572304D4340049C28B /* AccountContext.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AccountContext.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41592304D4390049C28B /* GalleryUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = GalleryUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E415B2304D4440049C28B /* Photos.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Photos.framework; path = System/Library/Frameworks/Photos.framework; sourceTree = SDKROOT; }; + D03E415D2304D4520049C28B /* TelegramUIPreferences.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramUIPreferences.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E415F2304D4580049C28B /* TelegramStringFormatting.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramStringFormatting.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41612304D4650049C28B /* PhotoResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PhotoResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41632304D4690049C28B /* RadialStatusNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = RadialStatusNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41652304D46E0049C28B /* ShareController.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ShareController.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41692304D4F50049C28B /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E412A2304D37B0049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E41662304D46E0049C28B /* ShareController.framework in Frameworks */, + D03E41642304D4690049C28B /* RadialStatusNode.framework in Frameworks */, + D03E41622304D4650049C28B /* PhotoResources.framework in Frameworks */, + D03E41602304D4580049C28B /* TelegramStringFormatting.framework in Frameworks */, + D03E415E2304D4520049C28B /* TelegramUIPreferences.framework in Frameworks */, + D03E415C2304D4440049C28B /* Photos.framework in Frameworks */, + D03E415A2304D4390049C28B /* GalleryUI.framework in Frameworks */, + D03E41582304D4340049C28B /* AccountContext.framework in Frameworks */, + D03E41562304D42D0049C28B /* TelegramPresentationData.framework in Frameworks */, + D03E41542304D4280049C28B /* TelegramCore.framework in Frameworks */, + D03E41522304D4220049C28B /* AsyncDisplayKit.framework in Frameworks */, + D03E41502304D41E0049C28B /* SwiftSignalKit.framework in Frameworks */, + D03E414E2304D41B0049C28B /* Postbox.framework in Frameworks */, + D03E414C2304D4170049C28B /* QuickLook.framework in Frameworks */, + D03E414A2304D4140049C28B /* Display.framework in Frameworks */, + D03E41482304D4100049C28B /* UIKit.framework in Frameworks */, + D03E41462304D40E0049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E41232304D37B0049C28B = { + isa = PBXGroup; + children = ( + D03E41312304D37B0049C28B /* Info.plist */, + D03E412F2304D37B0049C28B /* Sources */, + D03E412E2304D37B0049C28B /* Products */, + D03E41442304D40D0049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E412E2304D37B0049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E412D2304D37B0049C28B /* PeerAvatarGalleryUI.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E412F2304D37B0049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E413C2304D3F50049C28B /* AvatarGalleryController.swift */, + D03E413D2304D3F60049C28B /* AvatarGalleryItemFooterContentNode.swift */, + D03E413E2304D3F60049C28B /* PeerAvatarImageGalleryItem.swift */, + D03E41692304D4F50049C28B /* FrameworkBundle.swift */, + D03E41302304D37B0049C28B /* PeerAvatarGalleryUI.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E41442304D40D0049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E41652304D46E0049C28B /* ShareController.framework */, + D03E41632304D4690049C28B /* RadialStatusNode.framework */, + D03E41612304D4650049C28B /* PhotoResources.framework */, + D03E415F2304D4580049C28B /* TelegramStringFormatting.framework */, + D03E415D2304D4520049C28B /* TelegramUIPreferences.framework */, + D03E415B2304D4440049C28B /* Photos.framework */, + D03E41592304D4390049C28B /* GalleryUI.framework */, + D03E41572304D4340049C28B /* AccountContext.framework */, + D03E41552304D42D0049C28B /* TelegramPresentationData.framework */, + D03E41532304D4280049C28B /* TelegramCore.framework */, + D03E41512304D4220049C28B /* AsyncDisplayKit.framework */, + D03E414F2304D41E0049C28B /* SwiftSignalKit.framework */, + D03E414D2304D41B0049C28B /* Postbox.framework */, + D03E414B2304D4170049C28B /* QuickLook.framework */, + D03E41492304D4140049C28B /* Display.framework */, + D03E41472304D4100049C28B /* UIKit.framework */, + D03E41452304D40E0049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E41282304D37B0049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E41322304D37B0049C28B /* PeerAvatarGalleryUI.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E412C2304D37B0049C28B /* PeerAvatarGalleryUI */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E41352304D37B0049C28B /* Build configuration list for PBXNativeTarget "PeerAvatarGalleryUI" */; + buildPhases = ( + D03E41282304D37B0049C28B /* Headers */, + D03E41292304D37B0049C28B /* Sources */, + D03E412A2304D37B0049C28B /* Frameworks */, + D03E412B2304D37B0049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = PeerAvatarGalleryUI; + productName = PeerAvatarGalleryUI; + productReference = D03E412D2304D37B0049C28B /* PeerAvatarGalleryUI.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E41242304D37B0049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E412C2304D37B0049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E41272304D37B0049C28B /* Build configuration list for PBXProject "PeerAvatarGalleryUI_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E41232304D37B0049C28B; + productRefGroup = D03E412E2304D37B0049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E412C2304D37B0049C28B /* PeerAvatarGalleryUI */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E412B2304D37B0049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E41292304D37B0049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E416A2304D4F50049C28B /* FrameworkBundle.swift in Sources */, + D03E413F2304D3F60049C28B /* AvatarGalleryController.swift in Sources */, + D03E41402304D3F60049C28B /* AvatarGalleryItemFooterContentNode.swift in Sources */, + D03E41412304D3F60049C28B /* PeerAvatarImageGalleryItem.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E41332304D37B0049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStoreLLC; + }; + D03E41342304D37B0049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStoreLLC; + }; + D03E41362304D37B0049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.PeerAvatarGalleryUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugAppStoreLLC; + }; + D03E41372304D37B0049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.PeerAvatarGalleryUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E41382304D3AB0049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + D03E41392304D3AB0049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.PeerAvatarGalleryUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugHockeyapp; + }; + D03E413A2304D3B50049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyappInternal; + }; + D03E413B2304D3B50049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.PeerAvatarGalleryUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseHockeyappInternal; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D03E41272304D37B0049C28B /* Build configuration list for PBXProject "PeerAvatarGalleryUI_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E41332304D37B0049C28B /* DebugAppStoreLLC */, + D03E41382304D3AB0049C28B /* DebugHockeyapp */, + D03E41342304D37B0049C28B /* ReleaseAppStoreLLC */, + D03E413A2304D3B50049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E41352304D37B0049C28B /* Build configuration list for PBXNativeTarget "PeerAvatarGalleryUI" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E41362304D37B0049C28B /* DebugAppStoreLLC */, + D03E41392304D3AB0049C28B /* DebugHockeyapp */, + D03E41372304D37B0049C28B /* ReleaseAppStoreLLC */, + D03E413B2304D3B50049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E41242304D37B0049C28B /* Project object */; +} diff --git a/submodules/TelegramUI/TelegramUI/AvatarGalleryController.swift b/submodules/PeerAvatarGalleryUI/Sources/AvatarGalleryController.swift similarity index 93% rename from submodules/TelegramUI/TelegramUI/AvatarGalleryController.swift rename to submodules/PeerAvatarGalleryUI/Sources/AvatarGalleryController.swift index 1b8e8275fb..c6fafcb1f3 100644 --- a/submodules/TelegramUI/TelegramUI/AvatarGalleryController.swift +++ b/submodules/PeerAvatarGalleryUI/Sources/AvatarGalleryController.swift @@ -10,11 +10,11 @@ import TelegramPresentationData import AccountContext import GalleryUI -enum AvatarGalleryEntry: Equatable { +public enum AvatarGalleryEntry: Equatable { case topImage([ImageRepresentationWithReference], GalleryItemIndexData?) case image(TelegramMediaImageReference?, [ImageRepresentationWithReference], Peer, Int32, GalleryItemIndexData?, MessageId?) - var representations: [ImageRepresentationWithReference] { + public var representations: [ImageRepresentationWithReference] { switch self { case let .topImage(representations, _): return representations @@ -23,7 +23,7 @@ enum AvatarGalleryEntry: Equatable { } } - var indexData: GalleryItemIndexData? { + public var indexData: GalleryItemIndexData? { switch self { case let .topImage(_, indexData): return indexData @@ -32,7 +32,7 @@ enum AvatarGalleryEntry: Equatable { } } - static func ==(lhs: AvatarGalleryEntry, rhs: AvatarGalleryEntry) -> Bool { + public static func ==(lhs: AvatarGalleryEntry, rhs: AvatarGalleryEntry) -> Bool { switch lhs { case let .topImage(lhsRepresentations, lhsIndexData): if case let .topImage(rhsRepresentations, rhsIndexData) = rhs, lhsRepresentations == rhsRepresentations, lhsIndexData == rhsIndexData { @@ -50,11 +50,11 @@ enum AvatarGalleryEntry: Equatable { } } -final class AvatarGalleryControllerPresentationArguments { +public final class AvatarGalleryControllerPresentationArguments { let animated: Bool let transitionArguments: (AvatarGalleryEntry) -> GalleryTransitionArguments? - init(animated: Bool = true, transitionArguments: @escaping (AvatarGalleryEntry) -> GalleryTransitionArguments?) { + public init(animated: Bool = true, transitionArguments: @escaping (AvatarGalleryEntry) -> GalleryTransitionArguments?) { self.animated = animated self.transitionArguments = transitionArguments } @@ -68,7 +68,7 @@ private func initialAvatarGalleryEntries(peer: Peer) -> [AvatarGalleryEntry]{ return initialEntries } -func fetchedAvatarGalleryEntries(account: Account, peer: Peer) -> Signal<[AvatarGalleryEntry], NoError> { +public func fetchedAvatarGalleryEntries(account: Account, peer: Peer) -> Signal<[AvatarGalleryEntry], NoError> { return requestPeerPhotos(account: account, peerId: peer.id) |> map { photos -> [AvatarGalleryEntry] in var result: [AvatarGalleryEntry] = [] @@ -91,7 +91,7 @@ func fetchedAvatarGalleryEntries(account: Account, peer: Peer) -> Signal<[Avatar } } -class AvatarGalleryController: ViewController { +public class AvatarGalleryController: ViewController { private var galleryNode: GalleryControllerNode { return self.displayNode as! GalleryControllerNode } @@ -102,7 +102,7 @@ class AvatarGalleryController: ViewController { private var presentationData: PresentationData private let _ready = Promise() - override var ready: Promise { + override public var ready: Promise { return self._ready } private var didSetReady = false @@ -121,13 +121,13 @@ class AvatarGalleryController: ViewController { private let centralItemAttributesDisposable = DisposableSet(); private let _hiddenMedia = Promise(nil) - var hiddenMedia: Signal { + public var hiddenMedia: Signal { return self._hiddenMedia.get() } private let replaceRootController: (ViewController, ValuePromise?) -> Void - init(context: AccountContext, peer: Peer, remoteEntries: Promise<[AvatarGalleryEntry]>? = nil, replaceRootController: @escaping (ViewController, ValuePromise?) -> Void, synchronousLoad: Bool = false) { + public init(context: AccountContext, peer: Peer, remoteEntries: Promise<[AvatarGalleryEntry]>? = nil, replaceRootController: @escaping (ViewController, ValuePromise?) -> Void, synchronousLoad: Bool = false) { self.context = context self.peer = peer self.presentationData = context.sharedContext.currentPresentationData.with { $0 } @@ -280,7 +280,7 @@ class AvatarGalleryController: ViewController { }) } - override func loadDisplayNode() { + override public func loadDisplayNode() { let controllerInteraction = GalleryControllerInteraction(presentController: { [weak self] controller, arguments in if let strongSelf = self { strongSelf.present(controller, in: .window(.root), with: arguments, blockInteraction: true) @@ -362,11 +362,11 @@ class AvatarGalleryController: ViewController { self._ready.set(ready |> map { true }) } - override func viewWillAppear(_ animated: Bool) { + override public func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) } - override func viewDidAppear(_ animated: Bool) { + override public func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) var nodeAnimatesItself = false @@ -397,7 +397,7 @@ class AvatarGalleryController: ViewController { } } - override func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) { + override public func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) { super.containerLayoutUpdated(layout, transition: transition) self.galleryNode.frame = CGRect(origin: CGPoint(), size: layout.size) @@ -423,7 +423,7 @@ class AvatarGalleryController: ViewController { let _ = updatePeerPhoto(postbox: self.context.account.postbox, network: self.context.account.network, stateManager: self.context.account.stateManager, accountPeerId: self.context.account.peerId, peerId: self.peer.id, photo: nil, mapResourceToAvatarSizes: { _, _ in .single([:]) }).start() self.dismiss(forceAway: true) } else { - if let index = self.entries.index(of: entry) { + if let index = self.entries.firstIndex(of: entry) { self.entries.remove(at: index) self.galleryNode.pager.transaction(GalleryPagerTransaction(deleteItems: [index], insertItems: [], updateItems: [], focusOnItem: index - 1)) } @@ -437,7 +437,7 @@ class AvatarGalleryController: ViewController { if entry == self.entries.first { self.dismiss(forceAway: true) } else { - if let index = self.entries.index(of: entry) { + if let index = self.entries.firstIndex(of: entry) { self.entries.remove(at: index) self.galleryNode.pager.transaction(GalleryPagerTransaction(deleteItems: [index], insertItems: [], updateItems: [], focusOnItem: index - 1)) } @@ -451,7 +451,7 @@ class AvatarGalleryController: ViewController { let _ = updatePeerPhoto(postbox: self.context.account.postbox, network: self.context.account.network, stateManager: self.context.account.stateManager, accountPeerId: self.context.account.peerId, peerId: self.peer.id, photo: nil, mapResourceToAvatarSizes: { _, _ in .single([:]) }).start() self.dismiss(forceAway: true) } else { - if let index = self.entries.index(of: entry) { + if let index = self.entries.firstIndex(of: entry) { self.entries.remove(at: index) self.galleryNode.pager.transaction(GalleryPagerTransaction(deleteItems: [index], insertItems: [], updateItems: [], focusOnItem: index - 1)) } diff --git a/submodules/TelegramUI/TelegramUI/AvatarGalleryItemFooterContentNode.swift b/submodules/PeerAvatarGalleryUI/Sources/AvatarGalleryItemFooterContentNode.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/AvatarGalleryItemFooterContentNode.swift rename to submodules/PeerAvatarGalleryUI/Sources/AvatarGalleryItemFooterContentNode.swift diff --git a/submodules/PeerAvatarGalleryUI/Sources/FrameworkBundle.swift b/submodules/PeerAvatarGalleryUI/Sources/FrameworkBundle.swift new file mode 100644 index 0000000000..8ca13d7d92 --- /dev/null +++ b/submodules/PeerAvatarGalleryUI/Sources/FrameworkBundle.swift @@ -0,0 +1,13 @@ +import Foundation +import UIKit + +private class FrameworkBundleClass: NSObject { +} + +let frameworkBundle: Bundle = Bundle(for: FrameworkBundleClass.self) + +extension UIImage { + convenience init?(bundleImageName: String) { + self.init(named: bundleImageName, in: frameworkBundle, compatibleWith: nil) + } +} diff --git a/submodules/PeerAvatarGalleryUI/Sources/PeerAvatarGalleryUI.h b/submodules/PeerAvatarGalleryUI/Sources/PeerAvatarGalleryUI.h new file mode 100644 index 0000000000..5a1ba4332b --- /dev/null +++ b/submodules/PeerAvatarGalleryUI/Sources/PeerAvatarGalleryUI.h @@ -0,0 +1,19 @@ +// +// PeerAvatarGalleryUI.h +// PeerAvatarGalleryUI +// +// Created by Peter on 8/15/19. +// Copyright © 2019 Telegram Messenger LLP. All rights reserved. +// + +#import + +//! Project version number for PeerAvatarGalleryUI. +FOUNDATION_EXPORT double PeerAvatarGalleryUIVersionNumber; + +//! Project version string for PeerAvatarGalleryUI. +FOUNDATION_EXPORT const unsigned char PeerAvatarGalleryUIVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/submodules/TelegramUI/TelegramUI/PeerAvatarImageGalleryItem.swift b/submodules/PeerAvatarGalleryUI/Sources/PeerAvatarImageGalleryItem.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/PeerAvatarImageGalleryItem.swift rename to submodules/PeerAvatarGalleryUI/Sources/PeerAvatarImageGalleryItem.swift diff --git a/submodules/PeerInfoUI/Info.plist b/submodules/PeerInfoUI/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/PeerInfoUI/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/submodules/PeerInfoUI/PeerInfoUI_Xcode.xcodeproj/project.pbxproj b/submodules/PeerInfoUI/PeerInfoUI_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..3b58668939 --- /dev/null +++ b/submodules/PeerInfoUI/PeerInfoUI_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,903 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E406E2304D0B30049C28B /* PeerInfoUI.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E406C2304D0B30049C28B /* PeerInfoUI.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E409F2304D1240049C28B /* ChannelAdminsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40782304D1180049C28B /* ChannelAdminsController.swift */; }; + D03E40A02304D1240049C28B /* ChannelDiscussionGroupSearchContainerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40792304D1180049C28B /* ChannelDiscussionGroupSearchContainerNode.swift */; }; + D03E40A12304D1240049C28B /* ChannelInfoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E407A2304D1180049C28B /* ChannelInfoController.swift */; }; + D03E40A22304D1240049C28B /* SecretChatKeyController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E407B2304D1190049C28B /* SecretChatKeyController.swift */; }; + D03E40A32304D1240049C28B /* ChannelMembersController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E407C2304D1190049C28B /* ChannelMembersController.swift */; }; + D03E40A42304D1240049C28B /* SecretChatKeyControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E407D2304D1190049C28B /* SecretChatKeyControllerNode.swift */; }; + D03E40A52304D1240049C28B /* ChannelMembersSearchContainerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E407E2304D1190049C28B /* ChannelMembersSearchContainerNode.swift */; }; + D03E40A62304D1240049C28B /* ChannelDiscussionGroupSetupController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E407F2304D1190049C28B /* ChannelDiscussionGroupSetupController.swift */; }; + D03E40A72304D1240049C28B /* ItemListSecretChatKeyItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40802304D1190049C28B /* ItemListSecretChatKeyItem.swift */; }; + D03E40A82304D1240049C28B /* GroupInfoSearchNavigationContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40812304D11A0049C28B /* GroupInfoSearchNavigationContentNode.swift */; }; + D03E40A92304D1240049C28B /* ChannelVisibilityController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40822304D11A0049C28B /* ChannelVisibilityController.swift */; }; + D03E40AA2304D1240049C28B /* ChannelBlacklistController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40832304D11A0049C28B /* ChannelBlacklistController.swift */; }; + D03E40AB2304D1240049C28B /* GroupInfoSearchItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40842304D11A0049C28B /* GroupInfoSearchItem.swift */; }; + D03E40AC2304D1240049C28B /* ChannelDiscussionGroupActionSheetItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40852304D11A0049C28B /* ChannelDiscussionGroupActionSheetItem.swift */; }; + D03E40AD2304D1240049C28B /* ItemListCallListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40862304D11B0049C28B /* ItemListCallListItem.swift */; }; + D03E40AE2304D1240049C28B /* ChannelMembersSearchController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40872304D11B0049C28B /* ChannelMembersSearchController.swift */; }; + D03E40AF2304D1240049C28B /* PeerBanTimeoutController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40882304D11B0049C28B /* PeerBanTimeoutController.swift */; }; + D03E40B02304D1240049C28B /* ChannelDiscussionGroupSetupHeaderItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40892304D11C0049C28B /* ChannelDiscussionGroupSetupHeaderItem.swift */; }; + D03E40B12304D1240049C28B /* ConvertToSupergroupController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E408A2304D11C0049C28B /* ConvertToSupergroupController.swift */; }; + D03E40B22304D1240049C28B /* ChannelMembersSearchControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E408B2304D11C0049C28B /* ChannelMembersSearchControllerNode.swift */; }; + D03E40B32304D1240049C28B /* ChannelDiscussionGroupSetupSearchItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E408C2304D11C0049C28B /* ChannelDiscussionGroupSetupSearchItem.swift */; }; + D03E40B42304D1240049C28B /* PeerInfoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E408D2304D11D0049C28B /* PeerInfoController.swift */; }; + D03E40B52304D1240049C28B /* UserInfoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E408E2304D11D0049C28B /* UserInfoController.swift */; }; + D03E40B62304D1240049C28B /* DeviceContactInfoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E408F2304D11D0049C28B /* DeviceContactInfoController.swift */; }; + D03E40B72304D1240049C28B /* GroupStickerPackCurrentItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40902304D11E0049C28B /* GroupStickerPackCurrentItem.swift */; }; + D03E40B92304D1240049C28B /* ChatSlowmodeItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40922304D11F0049C28B /* ChatSlowmodeItem.swift */; }; + D03E40BA2304D1240049C28B /* ChannelOwnershipTransferController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40932304D11F0049C28B /* ChannelOwnershipTransferController.swift */; }; + D03E40BB2304D1240049C28B /* GroupPreHistorySetupController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40942304D11F0049C28B /* GroupPreHistorySetupController.swift */; }; + D03E40BC2304D1240049C28B /* ChannelStatsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40952304D1200049C28B /* ChannelStatsController.swift */; }; + D03E40BD2304D1240049C28B /* ChannelStatsControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40962304D1200049C28B /* ChannelStatsControllerNode.swift */; }; + D03E40BE2304D1240049C28B /* ChannelPermissionsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40972304D1200049C28B /* ChannelPermissionsController.swift */; }; + D03E40BF2304D1240049C28B /* PeerReportController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40982304D1210049C28B /* PeerReportController.swift */; }; + D03E40C02304D1240049C28B /* ChannelBannedMemberController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40992304D1210049C28B /* ChannelBannedMemberController.swift */; }; + D03E40C12304D1240049C28B /* GroupStickerPackSetupController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E409A2304D1220049C28B /* GroupStickerPackSetupController.swift */; }; + D03E40C22304D1240049C28B /* GroupInfoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E409B2304D1220049C28B /* GroupInfoController.swift */; }; + D03E40C32304D1240049C28B /* ChannelAdminController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E409C2304D1230049C28B /* ChannelAdminController.swift */; }; + D03E40C42304D1240049C28B /* GroupsInCommonController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E409D2304D1230049C28B /* GroupsInCommonController.swift */; }; + D03E40C52304D1240049C28B /* PhoneLabelController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E409E2304D1240049C28B /* PhoneLabelController.swift */; }; + D03E40CA2304D13E0049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40C92304D13E0049C28B /* Foundation.framework */; }; + D03E40CC2304D13F0049C28B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40CB2304D13F0049C28B /* UIKit.framework */; }; + D03E40CE2304D1420049C28B /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40CD2304D1420049C28B /* Display.framework */; }; + D03E40D02304D1460049C28B /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40CF2304D1460049C28B /* SwiftSignalKit.framework */; }; + D03E40D22304D14A0049C28B /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40D12304D14A0049C28B /* Postbox.framework */; }; + D03E40D42304D14E0049C28B /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40D32304D14E0049C28B /* TelegramCore.framework */; }; + D03E40D62304D1520049C28B /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40D52304D1520049C28B /* TelegramPresentationData.framework */; }; + D03E40D82304D1570049C28B /* ItemListUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40D72304D1570049C28B /* ItemListUI.framework */; }; + D03E40DA2304D15B0049C28B /* AccountContext.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40D92304D15B0049C28B /* AccountContext.framework */; }; + D03E40DC2304D15F0049C28B /* AlertUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40DB2304D15F0049C28B /* AlertUI.framework */; }; + D03E40DE2304D1630049C28B /* ItemListAvatarAndNameInfoItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40DD2304D1630049C28B /* ItemListAvatarAndNameInfoItem.framework */; }; + D03E40E02304D16B0049C28B /* UndoUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40DF2304D16B0049C28B /* UndoUI.framework */; }; + D03E40E22304D1760049C28B /* TelegramUIPreferences.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40E12304D1760049C28B /* TelegramUIPreferences.framework */; }; + D03E40E42304D1810049C28B /* TemporaryCachedPeerDataManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40E32304D1810049C28B /* TemporaryCachedPeerDataManager.framework */; }; + D03E40E62304D18A0049C28B /* ItemListPeerActionItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40E52304D18A0049C28B /* ItemListPeerActionItem.framework */; }; + D03E40E82304D18A0049C28B /* ItemListPeerItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40E72304D18A0049C28B /* ItemListPeerItem.framework */; }; + D03E40EA2304D1940049C28B /* OverlayStatusController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40E92304D1940049C28B /* OverlayStatusController.framework */; }; + D03E40EC2304D19A0049C28B /* TelegramStringFormatting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40EB2304D19A0049C28B /* TelegramStringFormatting.framework */; }; + D03E40EE2304D1A90049C28B /* SearchUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40ED2304D1A90049C28B /* SearchUI.framework */; }; + D03E40F02304D1AD0049C28B /* MergeLists.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40EF2304D1AD0049C28B /* MergeLists.framework */; }; + D03E40F22304D1BA0049C28B /* TextFormat.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40F12304D1BA0049C28B /* TextFormat.framework */; }; + D03E40F42304D1C30049C28B /* LegacyUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40F32304D1C30049C28B /* LegacyUI.framework */; }; + D03E40F62304D1C70049C28B /* GalleryUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40F52304D1C70049C28B /* GalleryUI.framework */; }; + D03E40F82304D1CD0049C28B /* ShareController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40F72304D1CD0049C28B /* ShareController.framework */; }; + D03E40FA2304D1D70049C28B /* WebSearchUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40F92304D1D70049C28B /* WebSearchUI.framework */; }; + D03E40FC2304D1EF0049C28B /* SearchBarNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40FB2304D1EF0049C28B /* SearchBarNode.framework */; }; + D03E40FE2304D1F30049C28B /* ContactsPeerItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40FD2304D1F30049C28B /* ContactsPeerItem.framework */; }; + D03E41002304D1FB0049C28B /* PasswordSetupUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40FF2304D1FB0049C28B /* PasswordSetupUI.framework */; }; + D03E41022304D1FF0049C28B /* ActivityIndicator.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41012304D1FF0049C28B /* ActivityIndicator.framework */; }; + D03E41042304D20A0049C28B /* TelegramPermissionsUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41032304D20A0049C28B /* TelegramPermissionsUI.framework */; }; + D03E41062304D2140049C28B /* ProgressNavigationButtonNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41052304D2140049C28B /* ProgressNavigationButtonNode.framework */; }; + D03E41082304D21D0049C28B /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41072304D21D0049C28B /* WebKit.framework */; }; + D03E410A2304D22A0049C28B /* TelegramNotices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41092304D22A0049C28B /* TelegramNotices.framework */; }; + D03E410C2304D2380049C28B /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E410B2304D2380049C28B /* MessageUI.framework */; }; + D03E410E2304D2410049C28B /* PhotoResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E410D2304D2410049C28B /* PhotoResources.framework */; }; + D03E41102304D2460049C28B /* MediaResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E410F2304D2460049C28B /* MediaResources.framework */; }; + D03E41122304D24B0049C28B /* Geocoding.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41112304D24B0049C28B /* Geocoding.framework */; }; + D03E41142304D25B0049C28B /* SafariServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41132304D25A0049C28B /* SafariServices.framework */; }; + D03E41162304D2600049C28B /* LegacyComponents.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41152304D2600049C28B /* LegacyComponents.framework */; }; + D03E41182304D2690049C28B /* LocationUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41172304D2690049C28B /* LocationUI.framework */; }; + D03E411A2304D27E0049C28B /* StickerResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41192304D27E0049C28B /* StickerResources.framework */; }; + D03E411C2304D2870049C28B /* StickerPackPreviewUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E411B2304D2870049C28B /* StickerPackPreviewUI.framework */; }; + D03E411E2304D2C20049C28B /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E411D2304D2C20049C28B /* FrameworkBundle.swift */; }; + D03E41212304D3040049C28B /* UserInfoEditingPhoneItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E411F2304D3030049C28B /* UserInfoEditingPhoneItem.swift */; }; + D03E41222304D3040049C28B /* UserInfoEditingPhoneActionItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E41202304D3040049C28B /* UserInfoEditingPhoneActionItem.swift */; }; + D03E41432304D4010049C28B /* PeerAvatarGalleryUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41422304D4010049C28B /* PeerAvatarGalleryUI.framework */; }; + D03E41942304D78E0049C28B /* Emoji.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41932304D78E0049C28B /* Emoji.framework */; }; + D03E41CC2304D9790049C28B /* ItemListStickerPackItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41CB2304D9790049C28B /* ItemListStickerPackItem.framework */; }; + D03E41F8230563480049C28B /* NotificationMuteSettingsUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41F7230563480049C28B /* NotificationMuteSettingsUI.framework */; }; + D03E4224230564AA0049C28B /* SinglePhoneInputNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E4223230564AA0049C28B /* SinglePhoneInputNode.framework */; }; + D03E425423056A410049C28B /* MapResourceToAvatarSizes.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E425323056A410049C28B /* MapResourceToAvatarSizes.framework */; }; + D03E428823056B590049C28B /* NotificationSoundSelectionUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E428723056B590049C28B /* NotificationSoundSelectionUI.framework */; }; + D03E42B223056C6E0049C28B /* EncryptionKeyVisualization.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42B123056C6D0049C28B /* EncryptionKeyVisualization.framework */; }; + D03E42E42305724A0049C28B /* ItemListAddressItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42E32305724A0049C28B /* ItemListAddressItem.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E40692304D0B30049C28B /* PeerInfoUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PeerInfoUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E406C2304D0B30049C28B /* PeerInfoUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PeerInfoUI.h; sourceTree = ""; }; + D03E406D2304D0B30049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E40782304D1180049C28B /* ChannelAdminsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelAdminsController.swift; sourceTree = ""; }; + D03E40792304D1180049C28B /* ChannelDiscussionGroupSearchContainerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelDiscussionGroupSearchContainerNode.swift; sourceTree = ""; }; + D03E407A2304D1180049C28B /* ChannelInfoController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelInfoController.swift; sourceTree = ""; }; + D03E407B2304D1190049C28B /* SecretChatKeyController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatKeyController.swift; sourceTree = ""; }; + D03E407C2304D1190049C28B /* ChannelMembersController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelMembersController.swift; sourceTree = ""; }; + D03E407D2304D1190049C28B /* SecretChatKeyControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatKeyControllerNode.swift; sourceTree = ""; }; + D03E407E2304D1190049C28B /* ChannelMembersSearchContainerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelMembersSearchContainerNode.swift; sourceTree = ""; }; + D03E407F2304D1190049C28B /* ChannelDiscussionGroupSetupController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelDiscussionGroupSetupController.swift; sourceTree = ""; }; + D03E40802304D1190049C28B /* ItemListSecretChatKeyItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemListSecretChatKeyItem.swift; sourceTree = ""; }; + D03E40812304D11A0049C28B /* GroupInfoSearchNavigationContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupInfoSearchNavigationContentNode.swift; sourceTree = ""; }; + D03E40822304D11A0049C28B /* ChannelVisibilityController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelVisibilityController.swift; sourceTree = ""; }; + D03E40832304D11A0049C28B /* ChannelBlacklistController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelBlacklistController.swift; sourceTree = ""; }; + D03E40842304D11A0049C28B /* GroupInfoSearchItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupInfoSearchItem.swift; sourceTree = ""; }; + D03E40852304D11A0049C28B /* ChannelDiscussionGroupActionSheetItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelDiscussionGroupActionSheetItem.swift; sourceTree = ""; }; + D03E40862304D11B0049C28B /* ItemListCallListItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemListCallListItem.swift; sourceTree = ""; }; + D03E40872304D11B0049C28B /* ChannelMembersSearchController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelMembersSearchController.swift; sourceTree = ""; }; + D03E40882304D11B0049C28B /* PeerBanTimeoutController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerBanTimeoutController.swift; sourceTree = ""; }; + D03E40892304D11C0049C28B /* ChannelDiscussionGroupSetupHeaderItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelDiscussionGroupSetupHeaderItem.swift; sourceTree = ""; }; + D03E408A2304D11C0049C28B /* ConvertToSupergroupController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConvertToSupergroupController.swift; sourceTree = ""; }; + D03E408B2304D11C0049C28B /* ChannelMembersSearchControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelMembersSearchControllerNode.swift; sourceTree = ""; }; + D03E408C2304D11C0049C28B /* ChannelDiscussionGroupSetupSearchItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelDiscussionGroupSetupSearchItem.swift; sourceTree = ""; }; + D03E408D2304D11D0049C28B /* PeerInfoController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerInfoController.swift; sourceTree = ""; }; + D03E408E2304D11D0049C28B /* UserInfoController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserInfoController.swift; sourceTree = ""; }; + D03E408F2304D11D0049C28B /* DeviceContactInfoController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeviceContactInfoController.swift; sourceTree = ""; }; + D03E40902304D11E0049C28B /* GroupStickerPackCurrentItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupStickerPackCurrentItem.swift; sourceTree = ""; }; + D03E40922304D11F0049C28B /* ChatSlowmodeItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatSlowmodeItem.swift; sourceTree = ""; }; + D03E40932304D11F0049C28B /* ChannelOwnershipTransferController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelOwnershipTransferController.swift; sourceTree = ""; }; + D03E40942304D11F0049C28B /* GroupPreHistorySetupController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupPreHistorySetupController.swift; sourceTree = ""; }; + D03E40952304D1200049C28B /* ChannelStatsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelStatsController.swift; sourceTree = ""; }; + D03E40962304D1200049C28B /* ChannelStatsControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelStatsControllerNode.swift; sourceTree = ""; }; + D03E40972304D1200049C28B /* ChannelPermissionsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelPermissionsController.swift; sourceTree = ""; }; + D03E40982304D1210049C28B /* PeerReportController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerReportController.swift; sourceTree = ""; }; + D03E40992304D1210049C28B /* ChannelBannedMemberController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelBannedMemberController.swift; sourceTree = ""; }; + D03E409A2304D1220049C28B /* GroupStickerPackSetupController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupStickerPackSetupController.swift; sourceTree = ""; }; + D03E409B2304D1220049C28B /* GroupInfoController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupInfoController.swift; sourceTree = ""; }; + D03E409C2304D1230049C28B /* ChannelAdminController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelAdminController.swift; sourceTree = ""; }; + D03E409D2304D1230049C28B /* GroupsInCommonController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupsInCommonController.swift; sourceTree = ""; }; + D03E409E2304D1240049C28B /* PhoneLabelController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PhoneLabelController.swift; sourceTree = ""; }; + D03E40C92304D13E0049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E40CB2304D13F0049C28B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D03E40CD2304D1420049C28B /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40CF2304D1460049C28B /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40D12304D14A0049C28B /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40D32304D14E0049C28B /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40D52304D1520049C28B /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40D72304D1570049C28B /* ItemListUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40D92304D15B0049C28B /* AccountContext.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AccountContext.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40DB2304D15F0049C28B /* AlertUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AlertUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40DD2304D1630049C28B /* ItemListAvatarAndNameInfoItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListAvatarAndNameInfoItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40DF2304D16B0049C28B /* UndoUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = UndoUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40E12304D1760049C28B /* TelegramUIPreferences.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramUIPreferences.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40E32304D1810049C28B /* TemporaryCachedPeerDataManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TemporaryCachedPeerDataManager.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40E52304D18A0049C28B /* ItemListPeerActionItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListPeerActionItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40E72304D18A0049C28B /* ItemListPeerItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListPeerItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40E92304D1940049C28B /* OverlayStatusController.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = OverlayStatusController.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40EB2304D19A0049C28B /* TelegramStringFormatting.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramStringFormatting.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40ED2304D1A90049C28B /* SearchUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SearchUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40EF2304D1AD0049C28B /* MergeLists.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MergeLists.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40F12304D1BA0049C28B /* TextFormat.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TextFormat.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40F32304D1C30049C28B /* LegacyUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LegacyUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40F52304D1C70049C28B /* GalleryUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = GalleryUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40F72304D1CD0049C28B /* ShareController.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ShareController.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40F92304D1D70049C28B /* WebSearchUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WebSearchUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40FB2304D1EF0049C28B /* SearchBarNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SearchBarNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40FD2304D1F30049C28B /* ContactsPeerItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ContactsPeerItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40FF2304D1FB0049C28B /* PasswordSetupUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PasswordSetupUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41012304D1FF0049C28B /* ActivityIndicator.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ActivityIndicator.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41032304D20A0049C28B /* TelegramPermissionsUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPermissionsUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41052304D2140049C28B /* ProgressNavigationButtonNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ProgressNavigationButtonNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41072304D21D0049C28B /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; + D03E41092304D22A0049C28B /* TelegramNotices.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramNotices.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E410B2304D2380049C28B /* MessageUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MessageUI.framework; path = System/Library/Frameworks/MessageUI.framework; sourceTree = SDKROOT; }; + D03E410D2304D2410049C28B /* PhotoResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PhotoResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E410F2304D2460049C28B /* MediaResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MediaResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41112304D24B0049C28B /* Geocoding.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Geocoding.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41132304D25A0049C28B /* SafariServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SafariServices.framework; path = System/Library/Frameworks/SafariServices.framework; sourceTree = SDKROOT; }; + D03E41152304D2600049C28B /* LegacyComponents.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LegacyComponents.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41172304D2690049C28B /* LocationUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LocationUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41192304D27E0049C28B /* StickerResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = StickerResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E411B2304D2870049C28B /* StickerPackPreviewUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = StickerPackPreviewUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E411D2304D2C20049C28B /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; + D03E411F2304D3030049C28B /* UserInfoEditingPhoneItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserInfoEditingPhoneItem.swift; sourceTree = ""; }; + D03E41202304D3040049C28B /* UserInfoEditingPhoneActionItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserInfoEditingPhoneActionItem.swift; sourceTree = ""; }; + D03E41422304D4010049C28B /* PeerAvatarGalleryUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PeerAvatarGalleryUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41932304D78E0049C28B /* Emoji.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Emoji.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41CB2304D9790049C28B /* ItemListStickerPackItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListStickerPackItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41F7230563480049C28B /* NotificationMuteSettingsUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = NotificationMuteSettingsUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E4223230564AA0049C28B /* SinglePhoneInputNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SinglePhoneInputNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E425323056A410049C28B /* MapResourceToAvatarSizes.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MapResourceToAvatarSizes.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E428723056B590049C28B /* NotificationSoundSelectionUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = NotificationSoundSelectionUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E42B123056C6D0049C28B /* EncryptionKeyVisualization.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = EncryptionKeyVisualization.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E42E32305724A0049C28B /* ItemListAddressItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListAddressItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E40662304D0B30049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E42E42305724A0049C28B /* ItemListAddressItem.framework in Frameworks */, + D03E42B223056C6E0049C28B /* EncryptionKeyVisualization.framework in Frameworks */, + D03E428823056B590049C28B /* NotificationSoundSelectionUI.framework in Frameworks */, + D03E425423056A410049C28B /* MapResourceToAvatarSizes.framework in Frameworks */, + D03E4224230564AA0049C28B /* SinglePhoneInputNode.framework in Frameworks */, + D03E41F8230563480049C28B /* NotificationMuteSettingsUI.framework in Frameworks */, + D03E41CC2304D9790049C28B /* ItemListStickerPackItem.framework in Frameworks */, + D03E41942304D78E0049C28B /* Emoji.framework in Frameworks */, + D03E41432304D4010049C28B /* PeerAvatarGalleryUI.framework in Frameworks */, + D03E411C2304D2870049C28B /* StickerPackPreviewUI.framework in Frameworks */, + D03E411A2304D27E0049C28B /* StickerResources.framework in Frameworks */, + D03E41182304D2690049C28B /* LocationUI.framework in Frameworks */, + D03E41162304D2600049C28B /* LegacyComponents.framework in Frameworks */, + D03E41142304D25B0049C28B /* SafariServices.framework in Frameworks */, + D03E41122304D24B0049C28B /* Geocoding.framework in Frameworks */, + D03E41102304D2460049C28B /* MediaResources.framework in Frameworks */, + D03E410E2304D2410049C28B /* PhotoResources.framework in Frameworks */, + D03E410C2304D2380049C28B /* MessageUI.framework in Frameworks */, + D03E410A2304D22A0049C28B /* TelegramNotices.framework in Frameworks */, + D03E41082304D21D0049C28B /* WebKit.framework in Frameworks */, + D03E41062304D2140049C28B /* ProgressNavigationButtonNode.framework in Frameworks */, + D03E41042304D20A0049C28B /* TelegramPermissionsUI.framework in Frameworks */, + D03E41022304D1FF0049C28B /* ActivityIndicator.framework in Frameworks */, + D03E41002304D1FB0049C28B /* PasswordSetupUI.framework in Frameworks */, + D03E40FE2304D1F30049C28B /* ContactsPeerItem.framework in Frameworks */, + D03E40FC2304D1EF0049C28B /* SearchBarNode.framework in Frameworks */, + D03E40FA2304D1D70049C28B /* WebSearchUI.framework in Frameworks */, + D03E40F82304D1CD0049C28B /* ShareController.framework in Frameworks */, + D03E40F62304D1C70049C28B /* GalleryUI.framework in Frameworks */, + D03E40F42304D1C30049C28B /* LegacyUI.framework in Frameworks */, + D03E40F22304D1BA0049C28B /* TextFormat.framework in Frameworks */, + D03E40F02304D1AD0049C28B /* MergeLists.framework in Frameworks */, + D03E40EE2304D1A90049C28B /* SearchUI.framework in Frameworks */, + D03E40EC2304D19A0049C28B /* TelegramStringFormatting.framework in Frameworks */, + D03E40EA2304D1940049C28B /* OverlayStatusController.framework in Frameworks */, + D03E40E62304D18A0049C28B /* ItemListPeerActionItem.framework in Frameworks */, + D03E40E82304D18A0049C28B /* ItemListPeerItem.framework in Frameworks */, + D03E40E42304D1810049C28B /* TemporaryCachedPeerDataManager.framework in Frameworks */, + D03E40E22304D1760049C28B /* TelegramUIPreferences.framework in Frameworks */, + D03E40E02304D16B0049C28B /* UndoUI.framework in Frameworks */, + D03E40DE2304D1630049C28B /* ItemListAvatarAndNameInfoItem.framework in Frameworks */, + D03E40DC2304D15F0049C28B /* AlertUI.framework in Frameworks */, + D03E40DA2304D15B0049C28B /* AccountContext.framework in Frameworks */, + D03E40D82304D1570049C28B /* ItemListUI.framework in Frameworks */, + D03E40D62304D1520049C28B /* TelegramPresentationData.framework in Frameworks */, + D03E40D42304D14E0049C28B /* TelegramCore.framework in Frameworks */, + D03E40D22304D14A0049C28B /* Postbox.framework in Frameworks */, + D03E40D02304D1460049C28B /* SwiftSignalKit.framework in Frameworks */, + D03E40CE2304D1420049C28B /* Display.framework in Frameworks */, + D03E40CC2304D13F0049C28B /* UIKit.framework in Frameworks */, + D03E40CA2304D13E0049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E405F2304D0B30049C28B = { + isa = PBXGroup; + children = ( + D03E406D2304D0B30049C28B /* Info.plist */, + D03E406B2304D0B30049C28B /* Sources */, + D03E406A2304D0B30049C28B /* Products */, + D03E40C82304D13C0049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E406A2304D0B30049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E40692304D0B30049C28B /* PeerInfoUI.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E406B2304D0B30049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E41202304D3040049C28B /* UserInfoEditingPhoneActionItem.swift */, + D03E411F2304D3030049C28B /* UserInfoEditingPhoneItem.swift */, + D03E409C2304D1230049C28B /* ChannelAdminController.swift */, + D03E40782304D1180049C28B /* ChannelAdminsController.swift */, + D03E40992304D1210049C28B /* ChannelBannedMemberController.swift */, + D03E40832304D11A0049C28B /* ChannelBlacklistController.swift */, + D03E40852304D11A0049C28B /* ChannelDiscussionGroupActionSheetItem.swift */, + D03E40792304D1180049C28B /* ChannelDiscussionGroupSearchContainerNode.swift */, + D03E407F2304D1190049C28B /* ChannelDiscussionGroupSetupController.swift */, + D03E40892304D11C0049C28B /* ChannelDiscussionGroupSetupHeaderItem.swift */, + D03E408C2304D11C0049C28B /* ChannelDiscussionGroupSetupSearchItem.swift */, + D03E407A2304D1180049C28B /* ChannelInfoController.swift */, + D03E407C2304D1190049C28B /* ChannelMembersController.swift */, + D03E407E2304D1190049C28B /* ChannelMembersSearchContainerNode.swift */, + D03E40872304D11B0049C28B /* ChannelMembersSearchController.swift */, + D03E408B2304D11C0049C28B /* ChannelMembersSearchControllerNode.swift */, + D03E40932304D11F0049C28B /* ChannelOwnershipTransferController.swift */, + D03E40972304D1200049C28B /* ChannelPermissionsController.swift */, + D03E40952304D1200049C28B /* ChannelStatsController.swift */, + D03E40962304D1200049C28B /* ChannelStatsControllerNode.swift */, + D03E40822304D11A0049C28B /* ChannelVisibilityController.swift */, + D03E40922304D11F0049C28B /* ChatSlowmodeItem.swift */, + D03E408A2304D11C0049C28B /* ConvertToSupergroupController.swift */, + D03E408F2304D11D0049C28B /* DeviceContactInfoController.swift */, + D03E409B2304D1220049C28B /* GroupInfoController.swift */, + D03E40842304D11A0049C28B /* GroupInfoSearchItem.swift */, + D03E40812304D11A0049C28B /* GroupInfoSearchNavigationContentNode.swift */, + D03E40942304D11F0049C28B /* GroupPreHistorySetupController.swift */, + D03E409D2304D1230049C28B /* GroupsInCommonController.swift */, + D03E40902304D11E0049C28B /* GroupStickerPackCurrentItem.swift */, + D03E409A2304D1220049C28B /* GroupStickerPackSetupController.swift */, + D03E40862304D11B0049C28B /* ItemListCallListItem.swift */, + D03E40802304D1190049C28B /* ItemListSecretChatKeyItem.swift */, + D03E40882304D11B0049C28B /* PeerBanTimeoutController.swift */, + D03E408D2304D11D0049C28B /* PeerInfoController.swift */, + D03E40982304D1210049C28B /* PeerReportController.swift */, + D03E409E2304D1240049C28B /* PhoneLabelController.swift */, + D03E407B2304D1190049C28B /* SecretChatKeyController.swift */, + D03E407D2304D1190049C28B /* SecretChatKeyControllerNode.swift */, + D03E408E2304D11D0049C28B /* UserInfoController.swift */, + D03E411D2304D2C20049C28B /* FrameworkBundle.swift */, + D03E406C2304D0B30049C28B /* PeerInfoUI.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E40C82304D13C0049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E42E32305724A0049C28B /* ItemListAddressItem.framework */, + D03E42B123056C6D0049C28B /* EncryptionKeyVisualization.framework */, + D03E428723056B590049C28B /* NotificationSoundSelectionUI.framework */, + D03E425323056A410049C28B /* MapResourceToAvatarSizes.framework */, + D03E4223230564AA0049C28B /* SinglePhoneInputNode.framework */, + D03E41F7230563480049C28B /* NotificationMuteSettingsUI.framework */, + D03E41CB2304D9790049C28B /* ItemListStickerPackItem.framework */, + D03E41932304D78E0049C28B /* Emoji.framework */, + D03E41422304D4010049C28B /* PeerAvatarGalleryUI.framework */, + D03E411B2304D2870049C28B /* StickerPackPreviewUI.framework */, + D03E41192304D27E0049C28B /* StickerResources.framework */, + D03E41172304D2690049C28B /* LocationUI.framework */, + D03E41152304D2600049C28B /* LegacyComponents.framework */, + D03E41132304D25A0049C28B /* SafariServices.framework */, + D03E41112304D24B0049C28B /* Geocoding.framework */, + D03E410F2304D2460049C28B /* MediaResources.framework */, + D03E410D2304D2410049C28B /* PhotoResources.framework */, + D03E410B2304D2380049C28B /* MessageUI.framework */, + D03E41092304D22A0049C28B /* TelegramNotices.framework */, + D03E41072304D21D0049C28B /* WebKit.framework */, + D03E41052304D2140049C28B /* ProgressNavigationButtonNode.framework */, + D03E41032304D20A0049C28B /* TelegramPermissionsUI.framework */, + D03E41012304D1FF0049C28B /* ActivityIndicator.framework */, + D03E40FF2304D1FB0049C28B /* PasswordSetupUI.framework */, + D03E40FD2304D1F30049C28B /* ContactsPeerItem.framework */, + D03E40FB2304D1EF0049C28B /* SearchBarNode.framework */, + D03E40F92304D1D70049C28B /* WebSearchUI.framework */, + D03E40F72304D1CD0049C28B /* ShareController.framework */, + D03E40F52304D1C70049C28B /* GalleryUI.framework */, + D03E40F32304D1C30049C28B /* LegacyUI.framework */, + D03E40F12304D1BA0049C28B /* TextFormat.framework */, + D03E40EF2304D1AD0049C28B /* MergeLists.framework */, + D03E40ED2304D1A90049C28B /* SearchUI.framework */, + D03E40EB2304D19A0049C28B /* TelegramStringFormatting.framework */, + D03E40E92304D1940049C28B /* OverlayStatusController.framework */, + D03E40E52304D18A0049C28B /* ItemListPeerActionItem.framework */, + D03E40E72304D18A0049C28B /* ItemListPeerItem.framework */, + D03E40E32304D1810049C28B /* TemporaryCachedPeerDataManager.framework */, + D03E40E12304D1760049C28B /* TelegramUIPreferences.framework */, + D03E40DF2304D16B0049C28B /* UndoUI.framework */, + D03E40DD2304D1630049C28B /* ItemListAvatarAndNameInfoItem.framework */, + D03E40DB2304D15F0049C28B /* AlertUI.framework */, + D03E40D92304D15B0049C28B /* AccountContext.framework */, + D03E40D72304D1570049C28B /* ItemListUI.framework */, + D03E40D52304D1520049C28B /* TelegramPresentationData.framework */, + D03E40D32304D14E0049C28B /* TelegramCore.framework */, + D03E40D12304D14A0049C28B /* Postbox.framework */, + D03E40CF2304D1460049C28B /* SwiftSignalKit.framework */, + D03E40CD2304D1420049C28B /* Display.framework */, + D03E40CB2304D13F0049C28B /* UIKit.framework */, + D03E40C92304D13E0049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E40642304D0B30049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E406E2304D0B30049C28B /* PeerInfoUI.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E40682304D0B30049C28B /* PeerInfoUI */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E40712304D0B30049C28B /* Build configuration list for PBXNativeTarget "PeerInfoUI" */; + buildPhases = ( + D03E40642304D0B30049C28B /* Headers */, + D03E40652304D0B30049C28B /* Sources */, + D03E40662304D0B30049C28B /* Frameworks */, + D03E40672304D0B30049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = PeerInfoUI; + productName = PeerInfoUI; + productReference = D03E40692304D0B30049C28B /* PeerInfoUI.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E40602304D0B30049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E40682304D0B30049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E40632304D0B30049C28B /* Build configuration list for PBXProject "PeerInfoUI_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E405F2304D0B30049C28B; + productRefGroup = D03E406A2304D0B30049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E40682304D0B30049C28B /* PeerInfoUI */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E40672304D0B30049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E40652304D0B30049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E409F2304D1240049C28B /* ChannelAdminsController.swift in Sources */, + D03E40A82304D1240049C28B /* GroupInfoSearchNavigationContentNode.swift in Sources */, + D03E40BB2304D1240049C28B /* GroupPreHistorySetupController.swift in Sources */, + D03E40A52304D1240049C28B /* ChannelMembersSearchContainerNode.swift in Sources */, + D03E40B92304D1240049C28B /* ChatSlowmodeItem.swift in Sources */, + D03E40B42304D1240049C28B /* PeerInfoController.swift in Sources */, + D03E40A32304D1240049C28B /* ChannelMembersController.swift in Sources */, + D03E40C02304D1240049C28B /* ChannelBannedMemberController.swift in Sources */, + D03E40A12304D1240049C28B /* ChannelInfoController.swift in Sources */, + D03E40C22304D1240049C28B /* GroupInfoController.swift in Sources */, + D03E40AB2304D1240049C28B /* GroupInfoSearchItem.swift in Sources */, + D03E40A42304D1240049C28B /* SecretChatKeyControllerNode.swift in Sources */, + D03E40BC2304D1240049C28B /* ChannelStatsController.swift in Sources */, + D03E40BF2304D1240049C28B /* PeerReportController.swift in Sources */, + D03E40B62304D1240049C28B /* DeviceContactInfoController.swift in Sources */, + D03E40AD2304D1240049C28B /* ItemListCallListItem.swift in Sources */, + D03E40BE2304D1240049C28B /* ChannelPermissionsController.swift in Sources */, + D03E40B52304D1240049C28B /* UserInfoController.swift in Sources */, + D03E40C42304D1240049C28B /* GroupsInCommonController.swift in Sources */, + D03E40C12304D1240049C28B /* GroupStickerPackSetupController.swift in Sources */, + D03E40B72304D1240049C28B /* GroupStickerPackCurrentItem.swift in Sources */, + D03E40B12304D1240049C28B /* ConvertToSupergroupController.swift in Sources */, + D03E41222304D3040049C28B /* UserInfoEditingPhoneActionItem.swift in Sources */, + D03E40A72304D1240049C28B /* ItemListSecretChatKeyItem.swift in Sources */, + D03E411E2304D2C20049C28B /* FrameworkBundle.swift in Sources */, + D03E40BD2304D1240049C28B /* ChannelStatsControllerNode.swift in Sources */, + D03E40AC2304D1240049C28B /* ChannelDiscussionGroupActionSheetItem.swift in Sources */, + D03E40A62304D1240049C28B /* ChannelDiscussionGroupSetupController.swift in Sources */, + D03E40C52304D1240049C28B /* PhoneLabelController.swift in Sources */, + D03E40A92304D1240049C28B /* ChannelVisibilityController.swift in Sources */, + D03E40A02304D1240049C28B /* ChannelDiscussionGroupSearchContainerNode.swift in Sources */, + D03E40C32304D1240049C28B /* ChannelAdminController.swift in Sources */, + D03E40AE2304D1240049C28B /* ChannelMembersSearchController.swift in Sources */, + D03E40B32304D1240049C28B /* ChannelDiscussionGroupSetupSearchItem.swift in Sources */, + D03E41212304D3040049C28B /* UserInfoEditingPhoneItem.swift in Sources */, + D03E40AA2304D1240049C28B /* ChannelBlacklistController.swift in Sources */, + D03E40A22304D1240049C28B /* SecretChatKeyController.swift in Sources */, + D03E40BA2304D1240049C28B /* ChannelOwnershipTransferController.swift in Sources */, + D03E40AF2304D1240049C28B /* PeerBanTimeoutController.swift in Sources */, + D03E40B02304D1240049C28B /* ChannelDiscussionGroupSetupHeaderItem.swift in Sources */, + D03E40B22304D1240049C28B /* ChannelMembersSearchControllerNode.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E406F2304D0B30049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStoreLLC; + }; + D03E40702304D0B30049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStoreLLC; + }; + D03E40722304D0B30049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.PeerInfoUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugAppStoreLLC; + }; + D03E40732304D0B30049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.PeerInfoUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E40742304D0D90049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + D03E40752304D0D90049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.PeerInfoUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugHockeyapp; + }; + D03E40762304D0E10049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyappInternal; + }; + D03E40772304D0E10049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.PeerInfoUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseHockeyappInternal; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D03E40632304D0B30049C28B /* Build configuration list for PBXProject "PeerInfoUI_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E406F2304D0B30049C28B /* DebugAppStoreLLC */, + D03E40742304D0D90049C28B /* DebugHockeyapp */, + D03E40702304D0B30049C28B /* ReleaseAppStoreLLC */, + D03E40762304D0E10049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E40712304D0B30049C28B /* Build configuration list for PBXNativeTarget "PeerInfoUI" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E40722304D0B30049C28B /* DebugAppStoreLLC */, + D03E40752304D0D90049C28B /* DebugHockeyapp */, + D03E40732304D0B30049C28B /* ReleaseAppStoreLLC */, + D03E40772304D0E10049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E40602304D0B30049C28B /* Project object */; +} diff --git a/submodules/TelegramUI/TelegramUI/ChannelAdminController.swift b/submodules/PeerInfoUI/Sources/ChannelAdminController.swift similarity index 99% rename from submodules/TelegramUI/TelegramUI/ChannelAdminController.swift rename to submodules/PeerInfoUI/Sources/ChannelAdminController.swift index aa1f14d837..4458f265a0 100644 --- a/submodules/TelegramUI/TelegramUI/ChannelAdminController.swift +++ b/submodules/PeerInfoUI/Sources/ChannelAdminController.swift @@ -9,6 +9,7 @@ import ItemListUI import AccountContext import AlertUI import ItemListAvatarAndNameInfoItem +import Emoji private let rankMaxLength: Int32 = 16 diff --git a/submodules/TelegramUI/TelegramUI/ChannelAdminsController.swift b/submodules/PeerInfoUI/Sources/ChannelAdminsController.swift similarity index 99% rename from submodules/TelegramUI/TelegramUI/ChannelAdminsController.swift rename to submodules/PeerInfoUI/Sources/ChannelAdminsController.swift index 5cbe125deb..a0d5d79081 100644 --- a/submodules/TelegramUI/TelegramUI/ChannelAdminsController.swift +++ b/submodules/PeerInfoUI/Sources/ChannelAdminsController.swift @@ -536,7 +536,7 @@ public func channelAdminsController(context: AccountContext, peerId: PeerId, loa |> deliverOnMainQueue).start(next: { peer in if peer is TelegramGroup { } else { - pushControllerImpl?(ChatRecentActionsController(context: context, peer: peer)) + pushControllerImpl?(context.sharedContext.makeChatRecentActionsController(context: context, peer: peer)) } }) }, setPeerIdWithRevealedOptions: { peerId, fromPeerId in diff --git a/submodules/TelegramUI/TelegramUI/ChannelBannedMemberController.swift b/submodules/PeerInfoUI/Sources/ChannelBannedMemberController.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/ChannelBannedMemberController.swift rename to submodules/PeerInfoUI/Sources/ChannelBannedMemberController.swift diff --git a/submodules/TelegramUI/TelegramUI/ChannelBlacklistController.swift b/submodules/PeerInfoUI/Sources/ChannelBlacklistController.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/ChannelBlacklistController.swift rename to submodules/PeerInfoUI/Sources/ChannelBlacklistController.swift diff --git a/submodules/TelegramUI/TelegramUI/ChannelDiscussionGroupActionSheetItem.swift b/submodules/PeerInfoUI/Sources/ChannelDiscussionGroupActionSheetItem.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/ChannelDiscussionGroupActionSheetItem.swift rename to submodules/PeerInfoUI/Sources/ChannelDiscussionGroupActionSheetItem.swift diff --git a/submodules/TelegramUI/TelegramUI/ChannelDiscussionGroupSearchContainerNode.swift b/submodules/PeerInfoUI/Sources/ChannelDiscussionGroupSearchContainerNode.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/ChannelDiscussionGroupSearchContainerNode.swift rename to submodules/PeerInfoUI/Sources/ChannelDiscussionGroupSearchContainerNode.swift diff --git a/submodules/TelegramUI/TelegramUI/ChannelDiscussionGroupSetupController.swift b/submodules/PeerInfoUI/Sources/ChannelDiscussionGroupSetupController.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/ChannelDiscussionGroupSetupController.swift rename to submodules/PeerInfoUI/Sources/ChannelDiscussionGroupSetupController.swift diff --git a/submodules/TelegramUI/TelegramUI/ChannelDiscussionGroupSetupHeaderItem.swift b/submodules/PeerInfoUI/Sources/ChannelDiscussionGroupSetupHeaderItem.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/ChannelDiscussionGroupSetupHeaderItem.swift rename to submodules/PeerInfoUI/Sources/ChannelDiscussionGroupSetupHeaderItem.swift diff --git a/submodules/TelegramUI/TelegramUI/ChannelDiscussionGroupSetupSearchItem.swift b/submodules/PeerInfoUI/Sources/ChannelDiscussionGroupSetupSearchItem.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/ChannelDiscussionGroupSetupSearchItem.swift rename to submodules/PeerInfoUI/Sources/ChannelDiscussionGroupSetupSearchItem.swift diff --git a/submodules/TelegramUI/TelegramUI/ChannelInfoController.swift b/submodules/PeerInfoUI/Sources/ChannelInfoController.swift similarity index 99% rename from submodules/TelegramUI/TelegramUI/ChannelInfoController.swift rename to submodules/PeerInfoUI/Sources/ChannelInfoController.swift index dfaf5eb5d4..1261d6fde9 100644 --- a/submodules/TelegramUI/TelegramUI/ChannelInfoController.swift +++ b/submodules/PeerInfoUI/Sources/ChannelInfoController.swift @@ -16,9 +16,12 @@ import ShareController import AlertUI import GalleryUI import LegacyUI -import ChatListUI import ItemListAvatarAndNameInfoItem import WebSearchUI +import PeerAvatarGalleryUI +import NotificationMuteSettingsUI +import MapResourceToAvatarSizes +import NotificationSoundSelectionUI private final class ChannelInfoControllerArguments { let account: Account @@ -837,7 +840,7 @@ public func channelInfoController(context: AccountContext, peerId: PeerId) -> Vi presentControllerImpl?(controller, ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) }) }, openSharedMedia: { - if let controller = peerSharedMediaController(context: context, peerId: peerId) { + if let controller = context.sharedContext.makePeerSharedMediaController(context: context, peerId: peerId) { pushControllerImpl?(controller) } }, openStats: { diff --git a/submodules/TelegramUI/TelegramUI/ChannelMembersController.swift b/submodules/PeerInfoUI/Sources/ChannelMembersController.swift similarity index 99% rename from submodules/TelegramUI/TelegramUI/ChannelMembersController.swift rename to submodules/PeerInfoUI/Sources/ChannelMembersController.swift index 7228103a42..f1dbed3542 100644 --- a/submodules/TelegramUI/TelegramUI/ChannelMembersController.swift +++ b/submodules/PeerInfoUI/Sources/ChannelMembersController.swift @@ -351,7 +351,7 @@ public func channelMembersController(context: AccountContext, peerId: PeerId) -> |> take(1) |> deliverOnMainQueue).start(next: { members in let disabledIds = members?.compactMap({$0.peer.id}) ?? [] - let contactsController = ContactMultiselectionController(context: context, mode: .peerSelection(searchChatList: false, searchGroups: false), options: [], filters: [.excludeSelf, .disable(disabledIds)]) + let contactsController = context.sharedContext.makeContactMultiselectionController(ContactMultiselectionControllerParams(context: context, mode: .peerSelection(searchChatList: false, searchGroups: false), options: [], filters: [.excludeSelf, .disable(disabledIds)])) addMembersDisposable.set((contactsController.result |> deliverOnMainQueue diff --git a/submodules/TelegramUI/TelegramUI/ChannelMembersSearchContainerNode.swift b/submodules/PeerInfoUI/Sources/ChannelMembersSearchContainerNode.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/ChannelMembersSearchContainerNode.swift rename to submodules/PeerInfoUI/Sources/ChannelMembersSearchContainerNode.swift diff --git a/submodules/TelegramUI/TelegramUI/ChannelMembersSearchController.swift b/submodules/PeerInfoUI/Sources/ChannelMembersSearchController.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/ChannelMembersSearchController.swift rename to submodules/PeerInfoUI/Sources/ChannelMembersSearchController.swift diff --git a/submodules/TelegramUI/TelegramUI/ChannelMembersSearchControllerNode.swift b/submodules/PeerInfoUI/Sources/ChannelMembersSearchControllerNode.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/ChannelMembersSearchControllerNode.swift rename to submodules/PeerInfoUI/Sources/ChannelMembersSearchControllerNode.swift diff --git a/submodules/TelegramUI/TelegramUI/ChannelOwnershipTransferController.swift b/submodules/PeerInfoUI/Sources/ChannelOwnershipTransferController.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/ChannelOwnershipTransferController.swift rename to submodules/PeerInfoUI/Sources/ChannelOwnershipTransferController.swift diff --git a/submodules/TelegramUI/TelegramUI/ChannelPermissionsController.swift b/submodules/PeerInfoUI/Sources/ChannelPermissionsController.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/ChannelPermissionsController.swift rename to submodules/PeerInfoUI/Sources/ChannelPermissionsController.swift diff --git a/submodules/TelegramUI/TelegramUI/ChannelStatsController.swift b/submodules/PeerInfoUI/Sources/ChannelStatsController.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/ChannelStatsController.swift rename to submodules/PeerInfoUI/Sources/ChannelStatsController.swift diff --git a/submodules/TelegramUI/TelegramUI/ChannelStatsControllerNode.swift b/submodules/PeerInfoUI/Sources/ChannelStatsControllerNode.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/ChannelStatsControllerNode.swift rename to submodules/PeerInfoUI/Sources/ChannelStatsControllerNode.swift diff --git a/submodules/TelegramUI/TelegramUI/ChannelVisibilityController.swift b/submodules/PeerInfoUI/Sources/ChannelVisibilityController.swift similarity index 96% rename from submodules/TelegramUI/TelegramUI/ChannelVisibilityController.swift rename to submodules/PeerInfoUI/Sources/ChannelVisibilityController.swift index 6dd93ab980..a8dd5615eb 100644 --- a/submodules/TelegramUI/TelegramUI/ChannelVisibilityController.swift +++ b/submodules/PeerInfoUI/Sources/ChannelVisibilityController.swift @@ -1229,42 +1229,44 @@ public func channelVisibilityController(context: AccountContext, peerId: PeerId, nextImpl = { [weak controller] in if let controller = controller { if case .initialSetup = mode { - let selectionController = ContactMultiselectionController(context: context, mode: .channelCreation, options: []) + let selectionController = context.sharedContext.makeContactMultiselectionController(ContactMultiselectionControllerParams(context: context, mode: .channelCreation, options: [])) (controller.navigationController as? NavigationController)?.replaceAllButRootController(selectionController, animated: true) let _ = (selectionController.result - |> deliverOnMainQueue).start(next: { [weak selectionController] peerIds in - guard let selectionController = selectionController, let navigationController = selectionController.navigationController as? NavigationController else { - return - } - let filteredPeerIds = peerIds.compactMap({ peerId -> PeerId? in - if case let .peer(id) = peerId { - return id - } else { - return nil - } - }) - if filteredPeerIds.isEmpty { - context.sharedContext.navigateToChatController(NavigateToChatControllerParams(navigationController: navigationController, chatController: nil, context: context, chatLocation: .peer(peerId), keepStack: .never, animated: true)) + |> deliverOnMainQueue).start(next: { [weak selectionController] peerIds in + guard let selectionController = selectionController, let navigationController = selectionController.navigationController as? NavigationController else { + return + } + let filteredPeerIds = peerIds.compactMap({ peerId -> PeerId? in + if case let .peer(id) = peerId { + return id } else { - selectionController.displayProgress = true - let _ = (addChannelMembers(account: context.account, peerId: peerId, memberIds: filteredPeerIds) - |> deliverOnMainQueue).start(error: { [weak selectionController] _ in - guard let selectionController = selectionController, let navigationController = selectionController.navigationController as? NavigationController else { - return - } - - context.sharedContext.navigateToChatController(NavigateToChatControllerParams(navigationController: navigationController, chatController: nil, context: context, chatLocation: .peer(peerId), keepStack: .never, animated: true)) - }, completed: { [weak selectionController] in - guard let selectionController = selectionController, let navigationController = selectionController.navigationController as? NavigationController else { - return - } - - context.sharedContext.navigateToChatController(NavigateToChatControllerParams(navigationController: navigationController, chatController: nil, context: context, chatLocation: .peer(peerId), keepStack: .never, animated: true)) - }) + return nil } }) + if filteredPeerIds.isEmpty { + context.sharedContext.navigateToChatController(NavigateToChatControllerParams(navigationController: navigationController, chatController: nil, context: context, chatLocation: .peer(peerId), keepStack: .never, animated: true)) + } else { + selectionController.displayProgress = true + let _ = (addChannelMembers(account: context.account, peerId: peerId, memberIds: filteredPeerIds) + |> deliverOnMainQueue).start(error: { [weak selectionController] _ in + guard let selectionController = selectionController, let navigationController = selectionController.navigationController as? NavigationController else { + return + } + + context.sharedContext.navigateToChatController(NavigateToChatControllerParams(navigationController: navigationController, chatController: nil, context: context, chatLocation: .peer(peerId), keepStack: .never, animated: true)) + }, completed: { [weak selectionController] in + guard let selectionController = selectionController, let navigationController = selectionController.navigationController as? NavigationController else { + return + } + + context.sharedContext.navigateToChatController(NavigateToChatControllerParams(navigationController: navigationController, chatController: nil, context: context, chatLocation: .peer(peerId), keepStack: .never, animated: true)) + }) + } + }) } else { - (controller.navigationController as? NavigationController)?.replaceAllButRootController(ChatControllerImpl(context: context, chatLocation: .peer(peerId)), animated: true) + if let navigationController = controller.navigationController as? NavigationController { + navigationController.replaceAllButRootController(context.sharedContext.makeChatController(context: context, chatLocation: .peer(peerId), subject: nil, botStart: nil, mode: .standard(previewing: false)), animated: true) + } } } } diff --git a/submodules/TelegramUI/TelegramUI/ChatSlowmodeItem.swift b/submodules/PeerInfoUI/Sources/ChatSlowmodeItem.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/ChatSlowmodeItem.swift rename to submodules/PeerInfoUI/Sources/ChatSlowmodeItem.swift diff --git a/submodules/TelegramUI/TelegramUI/ConvertToSupergroupController.swift b/submodules/PeerInfoUI/Sources/ConvertToSupergroupController.swift similarity index 97% rename from submodules/TelegramUI/TelegramUI/ConvertToSupergroupController.swift rename to submodules/PeerInfoUI/Sources/ConvertToSupergroupController.swift index ab2a7dd41d..a8a274cf45 100644 --- a/submodules/TelegramUI/TelegramUI/ConvertToSupergroupController.swift +++ b/submodules/PeerInfoUI/Sources/ConvertToSupergroupController.swift @@ -147,7 +147,7 @@ public func convertToSupergroupController(context: AccountContext, peerId: PeerI if !alreadyConverting { convertDisposable.set((convertGroupToSupergroup(account: context.account, peerId: peerId) |> deliverOnMainQueue).start(next: { createdPeerId in - replaceControllerImpl?(ChatControllerImpl(context: context, chatLocation: .peer(createdPeerId))) + replaceControllerImpl?(context.sharedContext.makeChatController(context: context, chatLocation: .peer(createdPeerId), subject: nil, botStart: nil, mode: .standard(previewing: false))) })) } })]), nil) diff --git a/submodules/TelegramUI/TelegramUI/DeviceContactInfoController.swift b/submodules/PeerInfoUI/Sources/DeviceContactInfoController.swift similarity index 99% rename from submodules/TelegramUI/TelegramUI/DeviceContactInfoController.swift rename to submodules/PeerInfoUI/Sources/DeviceContactInfoController.swift index 8bc403ac30..899696b586 100644 --- a/submodules/TelegramUI/TelegramUI/DeviceContactInfoController.swift +++ b/submodules/PeerInfoUI/Sources/DeviceContactInfoController.swift @@ -14,6 +14,7 @@ import PhotoResources import MediaResources import ItemListAvatarAndNameInfoItem import Geocoding +import ItemListAddressItem private enum DeviceContactInfoAction { case sendMessage @@ -1291,7 +1292,7 @@ public func deviceContactInfoController(context: AccountContext, subject: Device } private func addContactToExisting(context: AccountContext, parentController: ViewController, contactData: DeviceContactExtendedData, completion: @escaping (Peer?, DeviceContactStableId, DeviceContactExtendedData) -> Void) { - let contactsController = ContactSelectionControllerImpl(ContactSelectionControllerParams(context: context, title: { $0.Contacts_Title }, displayDeviceContacts: true)) + let contactsController = context.sharedContext.makeContactSelectionController(ContactSelectionControllerParams(context: context, title: { $0.Contacts_Title }, displayDeviceContacts: true)) parentController.present(contactsController, in: .window(.root), with: ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) let _ = (contactsController.result |> deliverOnMainQueue).start(next: { peer in diff --git a/submodules/PeerInfoUI/Sources/FrameworkBundle.swift b/submodules/PeerInfoUI/Sources/FrameworkBundle.swift new file mode 100644 index 0000000000..8ca13d7d92 --- /dev/null +++ b/submodules/PeerInfoUI/Sources/FrameworkBundle.swift @@ -0,0 +1,13 @@ +import Foundation +import UIKit + +private class FrameworkBundleClass: NSObject { +} + +let frameworkBundle: Bundle = Bundle(for: FrameworkBundleClass.self) + +extension UIImage { + convenience init?(bundleImageName: String) { + self.init(named: bundleImageName, in: frameworkBundle, compatibleWith: nil) + } +} diff --git a/submodules/TelegramUI/TelegramUI/GroupInfoController.swift b/submodules/PeerInfoUI/Sources/GroupInfoController.swift similarity index 99% rename from submodules/TelegramUI/TelegramUI/GroupInfoController.swift rename to submodules/PeerInfoUI/Sources/GroupInfoController.swift index d6eed66cef..29ef37b4f3 100644 --- a/submodules/TelegramUI/TelegramUI/GroupInfoController.swift +++ b/submodules/PeerInfoUI/Sources/GroupInfoController.swift @@ -23,11 +23,16 @@ import LegacyUI import LocationUI import ItemListPeerItem import ContactListUI -import ChatListUI import ItemListAvatarAndNameInfoItem import ItemListPeerActionItem import WebSearchUI import Geocoding +import PeerAvatarGalleryUI +import Emoji +import NotificationMuteSettingsUI +import MapResourceToAvatarSizes +import NotificationSoundSelectionUI +import ItemListAddressItem private final class GroupInfoArguments { let context: AccountContext @@ -1515,7 +1520,7 @@ public func groupInfoController(context: AccountContext, peerId originalPeerId: let _ = (peerView.get() |> take(1) |> deliverOnMainQueue).start(next: { peerView in - if let controller = peerSharedMediaController(context: context, peerId: peerView.peerId) { + if let controller = context.sharedContext.makePeerSharedMediaController(context: context, peerId: peerView.peerId) { pushControllerImpl?(controller) } }) @@ -1601,7 +1606,7 @@ public func groupInfoController(context: AccountContext, peerId originalPeerId: let contactsController: ViewController if peerView.peerId.namespace == Namespaces.Peer.CloudGroup { - contactsController = ContactSelectionControllerImpl(ContactSelectionControllerParams(context: context, autoDismiss: false, title: { $0.GroupInfo_AddParticipantTitle }, options: options, confirmation: { peer in + contactsController = context.sharedContext.makeContactSelectionController(ContactSelectionControllerParams(context: context, autoDismiss: false, title: { $0.GroupInfo_AddParticipantTitle }, options: options, confirmation: { peer in if let confirmationImpl = confirmationImpl, case let .peer(peer, _, _) = peer { return confirmationImpl(peer.id) } else { @@ -1609,7 +1614,7 @@ public func groupInfoController(context: AccountContext, peerId originalPeerId: } })) } else { - contactsController = ContactMultiselectionController(context: context, mode: .peerSelection(searchChatList: false, searchGroups: false), options: options, filters: [.excludeSelf, .disable(recentIds)]) + contactsController = context.sharedContext.makeContactMultiselectionController(ContactMultiselectionControllerParams(context: context, mode: .peerSelection(searchChatList: false, searchGroups: false), options: options, filters: [.excludeSelf, .disable(recentIds)])) } confirmationImpl = { [weak contactsController] peerId in @@ -1808,7 +1813,7 @@ public func groupInfoController(context: AccountContext, peerId originalPeerId: } presentControllerImpl?(contactsController, ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) - if let contactsController = contactsController as? ContactSelectionControllerImpl { + if let contactsController = contactsController as? ContactSelectionController { selectAddMemberDisposable.set((contactsController.result |> deliverOnMainQueue).start(next: { [weak contactsController] memberPeer in guard let memberPeer = memberPeer else { @@ -2306,7 +2311,7 @@ public func groupInfoController(context: AccountContext, peerId originalPeerId: let infoController = groupInfoController(context: context, peerId: upgradedPeerId, membersLoaded: { f() }) - let chatController = ChatControllerImpl(context: context, chatLocation: .peer(upgradedPeerId), mode: .standard(previewing: false)) + let chatController = context.sharedContext.makeChatController(context: context, chatLocation: .peer(upgradedPeerId), subject: nil, botStart: nil, mode: .standard(previewing: false)) var viewControllers: [UIViewController] = [] if let first = navigationController.viewControllers.first { viewControllers.append(first) diff --git a/submodules/TelegramUI/TelegramUI/GroupInfoSearchItem.swift b/submodules/PeerInfoUI/Sources/GroupInfoSearchItem.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/GroupInfoSearchItem.swift rename to submodules/PeerInfoUI/Sources/GroupInfoSearchItem.swift diff --git a/submodules/TelegramUI/TelegramUI/GroupInfoSearchNavigationContentNode.swift b/submodules/PeerInfoUI/Sources/GroupInfoSearchNavigationContentNode.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/GroupInfoSearchNavigationContentNode.swift rename to submodules/PeerInfoUI/Sources/GroupInfoSearchNavigationContentNode.swift diff --git a/submodules/TelegramUI/TelegramUI/GroupPreHistorySetupController.swift b/submodules/PeerInfoUI/Sources/GroupPreHistorySetupController.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/GroupPreHistorySetupController.swift rename to submodules/PeerInfoUI/Sources/GroupPreHistorySetupController.swift diff --git a/submodules/TelegramUI/TelegramUI/GroupStickerPackCurrentItem.swift b/submodules/PeerInfoUI/Sources/GroupStickerPackCurrentItem.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/GroupStickerPackCurrentItem.swift rename to submodules/PeerInfoUI/Sources/GroupStickerPackCurrentItem.swift diff --git a/submodules/TelegramUI/TelegramUI/GroupStickerPackSetupController.swift b/submodules/PeerInfoUI/Sources/GroupStickerPackSetupController.swift similarity index 99% rename from submodules/TelegramUI/TelegramUI/GroupStickerPackSetupController.swift rename to submodules/PeerInfoUI/Sources/GroupStickerPackSetupController.swift index 5b91e6caba..29a18dd5f8 100644 --- a/submodules/TelegramUI/TelegramUI/GroupStickerPackSetupController.swift +++ b/submodules/PeerInfoUI/Sources/GroupStickerPackSetupController.swift @@ -9,6 +9,7 @@ import TelegramUIPreferences import ItemListUI import AccountContext import StickerPackPreviewUI +import ItemListStickerPackItem private final class GroupStickerPackSetupControllerArguments { let account: Account diff --git a/submodules/TelegramUI/TelegramUI/GroupsInCommonController.swift b/submodules/PeerInfoUI/Sources/GroupsInCommonController.swift similarity index 93% rename from submodules/TelegramUI/TelegramUI/GroupsInCommonController.swift rename to submodules/PeerInfoUI/Sources/GroupsInCommonController.swift index 324f4b47d9..07204dd178 100644 --- a/submodules/TelegramUI/TelegramUI/GroupsInCommonController.swift +++ b/submodules/PeerInfoUI/Sources/GroupsInCommonController.swift @@ -129,9 +129,13 @@ public func groupsInCommonController(context: AccountContext, peerId: PeerId) -> let peersPromise = Promise<[Peer]?>(nil) var pushControllerImpl: ((ViewController) -> Void)? + var getNavigationControllerImpl: (() -> NavigationController?)? let arguments = GroupsInCommonControllerArguments(account: context.account, openPeer: { memberId in - pushControllerImpl?(ChatControllerImpl(context: context, chatLocation: .peer(memberId))) + guard let navigationController = getNavigationControllerImpl?() else { + return + } + context.sharedContext.navigateToChatController(NavigateToChatControllerParams(navigationController: navigationController, context: context, chatLocation: .peer(memberId), animated: true)) }) let peersSignal: Signal<[Peer]?, NoError> = .single(nil) |> then(groupsInCommon(account: context.account, peerId: peerId) |> mapToSignal { peerIds -> Signal<[Peer], NoError> in @@ -176,5 +180,8 @@ public func groupsInCommonController(context: AccountContext, peerId: PeerId) -> (controller.navigationController as? NavigationController)?.pushViewController(c) } } + getNavigationControllerImpl = { [weak controller] in + return controller?.navigationController as? NavigationController + } return controller } diff --git a/submodules/TelegramUI/TelegramUI/ItemListCallListItem.swift b/submodules/PeerInfoUI/Sources/ItemListCallListItem.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/ItemListCallListItem.swift rename to submodules/PeerInfoUI/Sources/ItemListCallListItem.swift diff --git a/submodules/TelegramUI/TelegramUI/ItemListSecretChatKeyItem.swift b/submodules/PeerInfoUI/Sources/ItemListSecretChatKeyItem.swift similarity index 99% rename from submodules/TelegramUI/TelegramUI/ItemListSecretChatKeyItem.swift rename to submodules/PeerInfoUI/Sources/ItemListSecretChatKeyItem.swift index ad91fa855c..0eec849879 100644 --- a/submodules/TelegramUI/TelegramUI/ItemListSecretChatKeyItem.swift +++ b/submodules/PeerInfoUI/Sources/ItemListSecretChatKeyItem.swift @@ -6,6 +6,7 @@ import SwiftSignalKit import TelegramCore import TelegramPresentationData import ItemListUI +import EncryptionKeyVisualization class ItemListSecretChatKeyItem: ListViewItem, ItemListItem { let theme: PresentationTheme diff --git a/submodules/TelegramUI/TelegramUI/PeerBanTimeoutController.swift b/submodules/PeerInfoUI/Sources/PeerBanTimeoutController.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/PeerBanTimeoutController.swift rename to submodules/PeerInfoUI/Sources/PeerBanTimeoutController.swift diff --git a/submodules/TelegramUI/TelegramUI/PeerInfoController.swift b/submodules/PeerInfoUI/Sources/PeerInfoController.swift similarity index 84% rename from submodules/TelegramUI/TelegramUI/PeerInfoController.swift rename to submodules/PeerInfoUI/Sources/PeerInfoController.swift index 3db64333ce..c5792efe4b 100644 --- a/submodules/TelegramUI/TelegramUI/PeerInfoController.swift +++ b/submodules/PeerInfoUI/Sources/PeerInfoController.swift @@ -6,7 +6,7 @@ import SwiftSignalKit import TelegramCore import AccountContext -func peerInfoControllerImpl(context: AccountContext, peer: Peer, mode: PeerInfoControllerMode) -> ViewController? { +public func peerInfoControllerImpl(context: AccountContext, peer: Peer, mode: PeerInfoControllerMode) -> ViewController? { if let _ = peer as? TelegramGroup { return groupInfoController(context: context, peerId: peer.id) } else if let channel = peer as? TelegramChannel { diff --git a/submodules/PeerInfoUI/Sources/PeerInfoUI.h b/submodules/PeerInfoUI/Sources/PeerInfoUI.h new file mode 100644 index 0000000000..a54f44d256 --- /dev/null +++ b/submodules/PeerInfoUI/Sources/PeerInfoUI.h @@ -0,0 +1,19 @@ +// +// PeerInfoUI.h +// PeerInfoUI +// +// Created by Peter on 8/15/19. +// Copyright © 2019 Telegram Messenger LLP. All rights reserved. +// + +#import + +//! Project version number for PeerInfoUI. +FOUNDATION_EXPORT double PeerInfoUIVersionNumber; + +//! Project version string for PeerInfoUI. +FOUNDATION_EXPORT const unsigned char PeerInfoUIVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/submodules/TelegramUI/TelegramUI/PeerReportController.swift b/submodules/PeerInfoUI/Sources/PeerReportController.swift similarity index 97% rename from submodules/TelegramUI/TelegramUI/PeerReportController.swift rename to submodules/PeerInfoUI/Sources/PeerReportController.swift index 39ffdacc65..e827dff690 100644 --- a/submodules/TelegramUI/TelegramUI/PeerReportController.swift +++ b/submodules/PeerInfoUI/Sources/PeerReportController.swift @@ -10,7 +10,7 @@ import AccountContext import ContextUI import AlertUI -enum PeerReportSubject { +public enum PeerReportSubject { case peer(PeerId) case messages([MessageId]) } @@ -24,7 +24,7 @@ private enum PeerReportOption { case other } -func presentPeerReportOptions(context: AccountContext, parent: ViewController, contextController: ContextController?, subject: PeerReportSubject, completion: @escaping (Bool) -> Void) { +public func presentPeerReportOptions(context: AccountContext, parent: ViewController, contextController: ContextController?, subject: PeerReportSubject, completion: @escaping (Bool) -> Void) { if let contextController = contextController { let presentationData = context.sharedContext.currentPresentationData.with { $0 } let options: [PeerReportOption] = [ @@ -104,7 +104,7 @@ func presentPeerReportOptions(context: AccountContext, parent: ViewController, c } } -func peerReportOptionsController(context: AccountContext, subject: PeerReportSubject, present: @escaping (ViewController, Any?) -> Void, completion: @escaping (Bool) -> Void) -> ViewController { +public func peerReportOptionsController(context: AccountContext, subject: PeerReportSubject, present: @escaping (ViewController, Any?) -> Void, completion: @escaping (Bool) -> Void) -> ViewController { let presentationData = context.sharedContext.currentPresentationData.with { $0 } let controller = ActionSheetController(theme: ActionSheetControllerTheme(presentationTheme: presentationData.theme)) diff --git a/submodules/TelegramUI/TelegramUI/PhoneLabelController.swift b/submodules/PeerInfoUI/Sources/PhoneLabelController.swift similarity index 99% rename from submodules/TelegramUI/TelegramUI/PhoneLabelController.swift rename to submodules/PeerInfoUI/Sources/PhoneLabelController.swift index e04db33087..36018f2cc9 100644 --- a/submodules/TelegramUI/TelegramUI/PhoneLabelController.swift +++ b/submodules/PeerInfoUI/Sources/PhoneLabelController.swift @@ -7,6 +7,7 @@ import TelegramCore import TelegramPresentationData import ItemListUI import AccountContext +import TelegramStringFormatting private struct PhoneLabelArguments { let selectLabel: (String) -> Void diff --git a/submodules/TelegramUI/TelegramUI/SecretChatKeyController.swift b/submodules/PeerInfoUI/Sources/SecretChatKeyController.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/SecretChatKeyController.swift rename to submodules/PeerInfoUI/Sources/SecretChatKeyController.swift diff --git a/submodules/TelegramUI/TelegramUI/SecretChatKeyControllerNode.swift b/submodules/PeerInfoUI/Sources/SecretChatKeyControllerNode.swift similarity index 99% rename from submodules/TelegramUI/TelegramUI/SecretChatKeyControllerNode.swift rename to submodules/PeerInfoUI/Sources/SecretChatKeyControllerNode.swift index 534623a394..44de3f4f84 100644 --- a/submodules/TelegramUI/TelegramUI/SecretChatKeyControllerNode.swift +++ b/submodules/PeerInfoUI/Sources/SecretChatKeyControllerNode.swift @@ -7,6 +7,7 @@ import Postbox import TelegramPresentationData import TextFormat import AccountContext +import EncryptionKeyVisualization private func processHexString(_ string: String) -> String { var result = "" diff --git a/submodules/TelegramUI/TelegramUI/UserInfoController.swift b/submodules/PeerInfoUI/Sources/UserInfoController.swift similarity index 99% rename from submodules/TelegramUI/TelegramUI/UserInfoController.swift rename to submodules/PeerInfoUI/Sources/UserInfoController.swift index f5e6f9b0dd..9e93dc7bb2 100644 --- a/submodules/TelegramUI/TelegramUI/UserInfoController.swift +++ b/submodules/PeerInfoUI/Sources/UserInfoController.swift @@ -18,6 +18,9 @@ import AlertUI import TelegramNotices import GalleryUI import ItemListAvatarAndNameInfoItem +import PeerAvatarGalleryUI +import NotificationMuteSettingsUI +import NotificationSoundSelectionUI private final class UserInfoControllerArguments { let account: Account @@ -941,7 +944,7 @@ public func userInfoController(context: AccountContext, peerId: PeerId, mode: Pe presentControllerImpl?(controller, ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) }) }, openSharedMedia: { - if let controller = peerSharedMediaController(context: context, peerId: peerId) { + if let controller = context.sharedContext.makePeerSharedMediaController(context: context, peerId: peerId) { pushControllerImpl?(controller) } }, openGroupsInCommon: { diff --git a/submodules/TelegramUI/TelegramUI/UserInfoEditingPhoneActionItem.swift b/submodules/PeerInfoUI/Sources/UserInfoEditingPhoneActionItem.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/UserInfoEditingPhoneActionItem.swift rename to submodules/PeerInfoUI/Sources/UserInfoEditingPhoneActionItem.swift diff --git a/submodules/TelegramUI/TelegramUI/UserInfoEditingPhoneItem.swift b/submodules/PeerInfoUI/Sources/UserInfoEditingPhoneItem.swift similarity index 99% rename from submodules/TelegramUI/TelegramUI/UserInfoEditingPhoneItem.swift rename to submodules/PeerInfoUI/Sources/UserInfoEditingPhoneItem.swift index c006750808..99ac0e408a 100644 --- a/submodules/TelegramUI/TelegramUI/UserInfoEditingPhoneItem.swift +++ b/submodules/PeerInfoUI/Sources/UserInfoEditingPhoneItem.swift @@ -5,6 +5,7 @@ import AsyncDisplayKit import SwiftSignalKit import TelegramPresentationData import ItemListUI +import SinglePhoneInputNode private func generateClearIcon(color: UIColor) -> UIImage? { return generateTintedImage(image: UIImage(bundleImageName: "Components/Search Bar/Clear"), color: color) diff --git a/submodules/SinglePhoneInputNode/Info.plist b/submodules/SinglePhoneInputNode/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/SinglePhoneInputNode/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/submodules/SinglePhoneInputNode/SinglePhoneInputNode_Xcode.xcodeproj/project.pbxproj b/submodules/SinglePhoneInputNode/SinglePhoneInputNode_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..acd6ce8071 --- /dev/null +++ b/submodules/SinglePhoneInputNode/SinglePhoneInputNode_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,559 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E420C230563DB0049C28B /* SinglePhoneInputNode.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E420A230563DB0049C28B /* SinglePhoneInputNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E4217230564570049C28B /* SinglePhoneInputNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E4216230564570049C28B /* SinglePhoneInputNode.swift */; }; + D03E421A230564650049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E4219230564650049C28B /* Foundation.framework */; }; + D03E421C230564680049C28B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E421B230564680049C28B /* UIKit.framework */; }; + D03E421E2305646D0049C28B /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E421D2305646D0049C28B /* AsyncDisplayKit.framework */; }; + D03E4220230564700049C28B /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E421F230564700049C28B /* Display.framework */; }; + D03E4222230564760049C28B /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E4221230564760049C28B /* TelegramCore.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E4207230563DB0049C28B /* SinglePhoneInputNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SinglePhoneInputNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E420A230563DB0049C28B /* SinglePhoneInputNode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SinglePhoneInputNode.h; sourceTree = ""; }; + D03E420B230563DB0049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E4216230564570049C28B /* SinglePhoneInputNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SinglePhoneInputNode.swift; sourceTree = ""; }; + D03E4219230564650049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E421B230564680049C28B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D03E421D2305646D0049C28B /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E421F230564700049C28B /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E4221230564760049C28B /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E4204230563DB0049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E4222230564760049C28B /* TelegramCore.framework in Frameworks */, + D03E4220230564700049C28B /* Display.framework in Frameworks */, + D03E421E2305646D0049C28B /* AsyncDisplayKit.framework in Frameworks */, + D03E421C230564680049C28B /* UIKit.framework in Frameworks */, + D03E421A230564650049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E41FD230563DB0049C28B = { + isa = PBXGroup; + children = ( + D03E420B230563DB0049C28B /* Info.plist */, + D03E4209230563DB0049C28B /* Sources */, + D03E4208230563DB0049C28B /* Products */, + D03E4218230564650049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E4208230563DB0049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E4207230563DB0049C28B /* SinglePhoneInputNode.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E4209230563DB0049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E4216230564570049C28B /* SinglePhoneInputNode.swift */, + D03E420A230563DB0049C28B /* SinglePhoneInputNode.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E4218230564650049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E4221230564760049C28B /* TelegramCore.framework */, + D03E421F230564700049C28B /* Display.framework */, + D03E421D2305646D0049C28B /* AsyncDisplayKit.framework */, + D03E421B230564680049C28B /* UIKit.framework */, + D03E4219230564650049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E4202230563DB0049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E420C230563DB0049C28B /* SinglePhoneInputNode.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E4206230563DB0049C28B /* SinglePhoneInputNode */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E420F230563DB0049C28B /* Build configuration list for PBXNativeTarget "SinglePhoneInputNode" */; + buildPhases = ( + D03E4202230563DB0049C28B /* Headers */, + D03E4203230563DB0049C28B /* Sources */, + D03E4204230563DB0049C28B /* Frameworks */, + D03E4205230563DB0049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = SinglePhoneInputNode; + productName = SinglePhoneInputNode; + productReference = D03E4207230563DB0049C28B /* SinglePhoneInputNode.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E41FE230563DB0049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E4206230563DB0049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E4201230563DB0049C28B /* Build configuration list for PBXProject "SinglePhoneInputNode_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E41FD230563DB0049C28B; + productRefGroup = D03E4208230563DB0049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E4206230563DB0049C28B /* SinglePhoneInputNode */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E4205230563DB0049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E4203230563DB0049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E4217230564570049C28B /* SinglePhoneInputNode.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E420D230563DB0049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStoreLLC; + }; + D03E420E230563DB0049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStoreLLC; + }; + D03E4210230563DB0049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.SinglePhoneInputNode; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugAppStoreLLC; + }; + D03E4211230563DB0049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.SinglePhoneInputNode; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E4212230564170049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + D03E4213230564170049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.SinglePhoneInputNode; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugHockeyapp; + }; + D03E4214230564210049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyappInternal; + }; + D03E4215230564210049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.SinglePhoneInputNode; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseHockeyappInternal; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D03E4201230563DB0049C28B /* Build configuration list for PBXProject "SinglePhoneInputNode_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E420D230563DB0049C28B /* DebugAppStoreLLC */, + D03E4212230564170049C28B /* DebugHockeyapp */, + D03E420E230563DB0049C28B /* ReleaseAppStoreLLC */, + D03E4214230564210049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E420F230563DB0049C28B /* Build configuration list for PBXNativeTarget "SinglePhoneInputNode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E4210230563DB0049C28B /* DebugAppStoreLLC */, + D03E4213230564170049C28B /* DebugHockeyapp */, + D03E4211230563DB0049C28B /* ReleaseAppStoreLLC */, + D03E4215230564210049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E41FE230563DB0049C28B /* Project object */; +} diff --git a/submodules/SinglePhoneInputNode/Sources/SinglePhoneInputNode.h b/submodules/SinglePhoneInputNode/Sources/SinglePhoneInputNode.h new file mode 100644 index 0000000000..36afe0ff2c --- /dev/null +++ b/submodules/SinglePhoneInputNode/Sources/SinglePhoneInputNode.h @@ -0,0 +1,19 @@ +// +// SinglePhoneInputNode.h +// SinglePhoneInputNode +// +// Created by Peter on 8/15/19. +// Copyright © 2019 Telegram Messenger LLP. All rights reserved. +// + +#import + +//! Project version number for SinglePhoneInputNode. +FOUNDATION_EXPORT double SinglePhoneInputNodeVersionNumber; + +//! Project version string for SinglePhoneInputNode. +FOUNDATION_EXPORT const unsigned char SinglePhoneInputNodeVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/submodules/TelegramUI/TelegramUI/SinglePhoneInputNode.swift b/submodules/SinglePhoneInputNode/Sources/SinglePhoneInputNode.swift similarity index 81% rename from submodules/TelegramUI/TelegramUI/SinglePhoneInputNode.swift rename to submodules/SinglePhoneInputNode/Sources/SinglePhoneInputNode.swift index 62689797e2..5c488cc5c2 100644 --- a/submodules/TelegramUI/TelegramUI/SinglePhoneInputNode.swift +++ b/submodules/SinglePhoneInputNode/Sources/SinglePhoneInputNode.swift @@ -76,36 +76,36 @@ private func cleanSuffix(_ text: String) -> String { return result } -final class SinglePhoneInputNode: ASDisplayNode, UITextFieldDelegate { +public final class SinglePhoneInputNode: ASDisplayNode, UITextFieldDelegate { private let fontSize: CGFloat - var numberField: TextFieldNode? - var numberFieldText: String? + public var numberField: TextFieldNode? + public var numberFieldText: String? - var enableEditing: Bool = true + public var enableEditing: Bool = true - var number: String { + public var number: String { get { return cleanPhoneNumber(self.numberField?.textField.text ?? "") } set(value) { self.updateNumber(value) } } - var numberUpdated: ((String) -> Void)? - var beginEditing: (() -> Void)? - var endEditing: (() -> Void)? + public var numberUpdated: ((String) -> Void)? + public var beginEditing: (() -> Void)? + public var endEditing: (() -> Void)? private let phoneFormatter = InteractivePhoneFormatter() private var validLayout: CGSize? - init(fontSize: CGFloat = 20.0) { + public init(fontSize: CGFloat = 20.0) { self.fontSize = fontSize super.init() } - override func didLoad() { + override public func didLoad() { super.didLoad() let numberField = TextFieldNode() @@ -125,19 +125,19 @@ final class SinglePhoneInputNode: ASDisplayNode, UITextFieldDelegate { } } - @objc func numberTextChanged(_ textField: UITextField) { + @objc private func numberTextChanged(_ textField: UITextField) { self.updateNumberFromTextFields() } - func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { + public func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { return self.enableEditing } - func textFieldDidBeginEditing(_ textField: UITextField) { + public func textFieldDidBeginEditing(_ textField: UITextField) { self.beginEditing?() } - func textFieldDidEndEditing(_ textField: UITextField) { + public func textFieldDidEndEditing(_ textField: UITextField) { self.endEditing?() } @@ -162,7 +162,7 @@ final class SinglePhoneInputNode: ASDisplayNode, UITextFieldDelegate { } } - func updateLayout(size: CGSize) { + public func updateLayout(size: CGSize) { self.validLayout = size self.numberField?.frame = CGRect(origin: CGPoint(), size: size) } diff --git a/submodules/TelegramCore/TelegramCore/ValidateAddressNameInteractive.swift b/submodules/TelegramCore/TelegramCore/ValidateAddressNameInteractive.swift new file mode 100644 index 0000000000..aca1c16b80 --- /dev/null +++ b/submodules/TelegramCore/TelegramCore/ValidateAddressNameInteractive.swift @@ -0,0 +1,29 @@ +import Foundation +#if os(macOS) +import PostboxMac +import SwiftSignalKitMac +#else +import Postbox +import SwiftSignalKit +#endif + +public enum AddressNameValidationStatus: Equatable { + case checking + case invalidFormat(AddressNameFormatError) + case availability(AddressNameAvailability) +} + +public func validateAddressNameInteractive(account: Account, domain: AddressNameDomain, name: String) -> Signal { + if let error = checkAddressNameFormat(name) { + return .single(.invalidFormat(error)) + } else { + return .single(.checking) + |> then( + addressNameAvailability(account: account, domain: domain, name: name) + |> delay(0.3, queue: Queue.concurrentDefaultQueue()) + |> map { result -> AddressNameValidationStatus in + .availability(result) + } + ) + } +} diff --git a/submodules/TelegramCore/TelegramCore_Xcode.xcodeproj/project.pbxproj b/submodules/TelegramCore/TelegramCore_Xcode.xcodeproj/project.pbxproj index f126a85d63..40792cf43d 100644 --- a/submodules/TelegramCore/TelegramCore_Xcode.xcodeproj/project.pbxproj +++ b/submodules/TelegramCore/TelegramCore_Xcode.xcodeproj/project.pbxproj @@ -293,6 +293,7 @@ D03DC9141F82F89D001D584C /* RegularChatState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03DC9121F82F89D001D584C /* RegularChatState.swift */; }; D03E3D28230447960049C28B /* RestrictedContentMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3D27230447960049C28B /* RestrictedContentMessageAttribute.swift */; }; D03E3D29230447960049C28B /* RestrictedContentMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3D27230447960049C28B /* RestrictedContentMessageAttribute.swift */; }; + D03E416C2304D5B30049C28B /* ValidateAddressNameInteractive.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E416B2304D5B30049C28B /* ValidateAddressNameInteractive.swift */; }; D03E5E0C1E55E02D0029569A /* LoggedOutAccountAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E5E0B1E55E02D0029569A /* LoggedOutAccountAttribute.swift */; }; D03E5E0D1E55E02D0029569A /* LoggedOutAccountAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E5E0B1E55E02D0029569A /* LoggedOutAccountAttribute.swift */; }; D041E3F51E535464008C24B4 /* AddPeerMember.swift in Sources */ = {isa = PBXBuildFile; fileRef = D041E3F41E535464008C24B4 /* AddPeerMember.swift */; }; @@ -1002,6 +1003,7 @@ D03DC90F1F82E344001D584C /* AccountStateReset.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountStateReset.swift; sourceTree = ""; }; D03DC9121F82F89D001D584C /* RegularChatState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegularChatState.swift; sourceTree = ""; }; D03E3D27230447960049C28B /* RestrictedContentMessageAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RestrictedContentMessageAttribute.swift; sourceTree = ""; }; + D03E416B2304D5B30049C28B /* ValidateAddressNameInteractive.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ValidateAddressNameInteractive.swift; sourceTree = ""; }; D03E5E0B1E55E02D0029569A /* LoggedOutAccountAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoggedOutAccountAttribute.swift; sourceTree = ""; }; D041E3F41E535464008C24B4 /* AddPeerMember.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddPeerMember.swift; sourceTree = ""; }; D041E3F71E535A88008C24B4 /* RemovePeerMember.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RemovePeerMember.swift; sourceTree = ""; }; @@ -2028,6 +2030,7 @@ 090E778222A9862100CD99F5 /* ChannelOwnershipTransfer.swift */, 090E778F22AAABC600CD99F5 /* PeersNearby.swift */, D0D376E522DCCFD600FA7D7C /* SlowMode.swift */, + D03E416B2304D5B30049C28B /* ValidateAddressNameInteractive.swift */, ); name = Peers; sourceTree = ""; @@ -2264,6 +2267,7 @@ 090E778322A9862100CD99F5 /* ChannelOwnershipTransfer.swift in Sources */, D03E3D28230447960049C28B /* RestrictedContentMessageAttribute.swift in Sources */, D03B0CE01D62249100955575 /* StoreMessage_Telegram.swift in Sources */, + D03E416C2304D5B30049C28B /* ValidateAddressNameInteractive.swift in Sources */, D08774FE1E3E3A3500A97350 /* GlobalNotificationSettings.swift in Sources */, D023E67821540624008C27D1 /* UpdateMessageMedia.swift in Sources */, D0EE7FC420986C5300981319 /* SecureIdPassportRegistrationValue.swift in Sources */, diff --git a/submodules/TelegramUI/TelegramUI/ContactInfoStrings.swift b/submodules/TelegramStringFormatting/Sources/ContactInfoStrings.swift similarity index 83% rename from submodules/TelegramUI/TelegramUI/ContactInfoStrings.swift rename to submodules/TelegramStringFormatting/Sources/ContactInfoStrings.swift index e9d3c7e292..e8cdba5b09 100644 --- a/submodules/TelegramUI/TelegramUI/ContactInfoStrings.swift +++ b/submodules/TelegramStringFormatting/Sources/ContactInfoStrings.swift @@ -3,7 +3,7 @@ import Contacts import AddressBook import TelegramPresentationData -func localizedPhoneNumberLabel(label: String, strings: PresentationStrings) -> String { +public func localizedPhoneNumberLabel(label: String, strings: PresentationStrings) -> String { if #available(iOSApplicationExtension 9.0, iOS 9.0, *) { if label.isEmpty { return strings.ContactInfo_PhoneLabelMain @@ -24,7 +24,7 @@ func localizedPhoneNumberLabel(label: String, strings: PresentationStrings) -> S } } -func localizedGenericContactFieldLabel(label: String, strings: PresentationStrings) -> String { +public func localizedGenericContactFieldLabel(label: String, strings: PresentationStrings) -> String { if #available(iOSApplicationExtension 9.0, iOS 9.0, *) { if label.isEmpty { return strings.ContactInfo_PhoneLabelMain diff --git a/submodules/TelegramUI/TelegramUI/PeerNotificationSoundStrings.swift b/submodules/TelegramStringFormatting/Sources/PeerNotificationSoundStrings.swift similarity index 93% rename from submodules/TelegramUI/TelegramUI/PeerNotificationSoundStrings.swift rename to submodules/TelegramStringFormatting/Sources/PeerNotificationSoundStrings.swift index 8da9be20e1..b968ba58b2 100644 --- a/submodules/TelegramUI/TelegramUI/PeerNotificationSoundStrings.swift +++ b/submodules/TelegramStringFormatting/Sources/PeerNotificationSoundStrings.swift @@ -47,7 +47,7 @@ private func soundName(strings: PresentationStrings, sound: PeerMessageSound) -> } } -func localizedPeerNotificationSoundString(strings: PresentationStrings, sound: PeerMessageSound, default: PeerMessageSound? = nil) -> String { +public func localizedPeerNotificationSoundString(strings: PresentationStrings, sound: PeerMessageSound, default: PeerMessageSound? = nil) -> String { switch sound { case .default: if let defaultSound = `default` { diff --git a/submodules/TelegramStringFormatting/TelegramStringFormatting_Xcode.xcodeproj/project.pbxproj b/submodules/TelegramStringFormatting/TelegramStringFormatting_Xcode.xcodeproj/project.pbxproj index a078c688a8..5d6b2727fc 100644 --- a/submodules/TelegramStringFormatting/TelegramStringFormatting_Xcode.xcodeproj/project.pbxproj +++ b/submodules/TelegramStringFormatting/TelegramStringFormatting_Xcode.xcodeproj/project.pbxproj @@ -8,6 +8,10 @@ /* Begin PBXBuildFile section */ D03E3D4F23045E510049C28B /* PlatformRestrictionMatching.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3D4E23045E510049C28B /* PlatformRestrictionMatching.framework */; }; + D03E416E2304D68E0049C28B /* ContactInfoStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E416D2304D68E0049C28B /* ContactInfoStrings.swift */; }; + D03E41702304D6970049C28B /* AddressBook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E416F2304D6970049C28B /* AddressBook.framework */; }; + D03E41722304D6B80049C28B /* Contacts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41712304D6B80049C28B /* Contacts.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + D03E41982304D7D60049C28B /* PeerNotificationSoundStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E41972304D7D50049C28B /* PeerNotificationSoundStrings.swift */; }; D0879AB222F7021000C4D6B3 /* TelegramStringFormatting.h in Headers */ = {isa = PBXBuildFile; fileRef = D0879AB022F7021000C4D6B3 /* TelegramStringFormatting.h */; settings = {ATTRIBUTES = (Public, ); }; }; D0879ABD22F705AE00C4D6B3 /* PresenceStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879ABC22F705AE00C4D6B3 /* PresenceStrings.swift */; }; D0879AC022F705B800C4D6B3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879ABF22F705B800C4D6B3 /* Foundation.framework */; }; @@ -30,6 +34,10 @@ /* Begin PBXFileReference section */ D03E3D4E23045E510049C28B /* PlatformRestrictionMatching.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PlatformRestrictionMatching.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E416D2304D68E0049C28B /* ContactInfoStrings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContactInfoStrings.swift; sourceTree = ""; }; + D03E416F2304D6970049C28B /* AddressBook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AddressBook.framework; path = System/Library/Frameworks/AddressBook.framework; sourceTree = SDKROOT; }; + D03E41712304D6B80049C28B /* Contacts.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Contacts.framework; path = System/Library/Frameworks/Contacts.framework; sourceTree = SDKROOT; }; + D03E41972304D7D50049C28B /* PeerNotificationSoundStrings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerNotificationSoundStrings.swift; sourceTree = ""; }; D0879AAD22F7021000C4D6B3 /* TelegramStringFormatting.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = TelegramStringFormatting.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0879AB022F7021000C4D6B3 /* TelegramStringFormatting.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TelegramStringFormatting.h; sourceTree = ""; }; D0879AB122F7021000C4D6B3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -57,6 +65,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D03E41722304D6B80049C28B /* Contacts.framework in Frameworks */, + D03E41702304D6970049C28B /* AddressBook.framework in Frameworks */, D03E3D4F23045E510049C28B /* PlatformRestrictionMatching.framework in Frameworks */, D0C9C35E2300AEF100FAB518 /* Display.framework in Frameworks */, D0C9C35C2300AEBA00FAB518 /* LocalizedPeerData.framework in Frameworks */, @@ -93,6 +103,8 @@ D0879AAF22F7021000C4D6B3 /* Sources */ = { isa = PBXGroup; children = ( + D03E41972304D7D50049C28B /* PeerNotificationSoundStrings.swift */, + D03E416D2304D68E0049C28B /* ContactInfoStrings.swift */, D0C9CA3723022A8300FAB518 /* NumberFormat.swift */, D0C9C3612300AFCB00FAB518 /* CurrencyFormat.swift */, D0C9C3552300AD9900FAB518 /* MessageContentKind.swift */, @@ -110,6 +122,8 @@ D0879ABE22F705B700C4D6B3 /* Frameworks */ = { isa = PBXGroup; children = ( + D03E41712304D6B80049C28B /* Contacts.framework */, + D03E416F2304D6970049C28B /* AddressBook.framework */, D03E3D4E23045E510049C28B /* PlatformRestrictionMatching.framework */, D0C9C35D2300AEF100FAB518 /* Display.framework */, D0C9C35B2300AEBA00FAB518 /* LocalizedPeerData.framework */, @@ -205,11 +219,13 @@ files = ( D0C9C3642300AFE800FAB518 /* FrameworkBundle.swift in Sources */, D0C9C3622300AFCC00FAB518 /* CurrencyFormat.swift in Sources */, + D03E41982304D7D60049C28B /* PeerNotificationSoundStrings.swift in Sources */, D0C9C3562300AD9900FAB518 /* MessageContentKind.swift in Sources */, D0C9CA3823022A8300FAB518 /* NumberFormat.swift in Sources */, D0879ACA22F7063300C4D6B3 /* DateFormat.swift in Sources */, D0879ABD22F705AE00C4D6B3 /* PresenceStrings.swift in Sources */, D0C9C3542300AD7000FAB518 /* StringForDuration.swift in Sources */, + D03E416E2304D68E0049C28B /* ContactInfoStrings.swift in Sources */, D0C9C3582300ADCF00FAB518 /* ServiceMessageStrings.swift in Sources */, D0879ACE22F7069200C4D6B3 /* Locale.swift in Sources */, ); diff --git a/submodules/TelegramUI/TelegramUI/ArchivedStickerPacksController.swift b/submodules/TelegramUI/TelegramUI/ArchivedStickerPacksController.swift index 7fd8a0a2f3..c1bb994fba 100644 --- a/submodules/TelegramUI/TelegramUI/ArchivedStickerPacksController.swift +++ b/submodules/TelegramUI/TelegramUI/ArchivedStickerPacksController.swift @@ -10,6 +10,7 @@ import ItemListUI import OverlayStatusController import AccountContext import StickerPackPreviewUI +import ItemListStickerPackItem public enum ArchivedStickerPacksControllerMode { case stickers diff --git a/submodules/TelegramUI/TelegramUI/ChatController.swift b/submodules/TelegramUI/TelegramUI/ChatController.swift index b3d1060b3d..6a3687607f 100644 --- a/submodules/TelegramUI/TelegramUI/ChatController.swift +++ b/submodules/TelegramUI/TelegramUI/ChatController.swift @@ -38,6 +38,9 @@ import DeleteChatPeerActionSheetItem import HashtagSearchUI import LegacyMediaPickerUI import WebSearchUI +import Emoji +import PeerAvatarGalleryUI +import PeerInfoUI public enum ChatControllerPeekActions { case standard diff --git a/submodules/TelegramUI/TelegramUI/ChatHistoryEntriesForView.swift b/submodules/TelegramUI/TelegramUI/ChatHistoryEntriesForView.swift index 57db539fd1..35adb0d555 100644 --- a/submodules/TelegramUI/TelegramUI/ChatHistoryEntriesForView.swift +++ b/submodules/TelegramUI/TelegramUI/ChatHistoryEntriesForView.swift @@ -2,6 +2,7 @@ import Foundation import Postbox import TelegramCore import TemporaryCachedPeerDataManager +import Emoji func chatHistoryEntriesForView(location: ChatLocation, view: MessageHistoryView, includeUnreadEntry: Bool, includeEmptyEntry: Bool, includeChatInfoEntry: Bool, includeSearchEntry: Bool, reverse: Bool, groupMessages: Bool, selectedMessages: Set?, presentationData: ChatPresentationData, historyAppearsCleared: Bool, associatedData: ChatMessageItemAssociatedData) -> [ChatHistoryEntry] { if historyAppearsCleared { diff --git a/submodules/TelegramUI/TelegramUI/ChatHistoryListNode.swift b/submodules/TelegramUI/TelegramUI/ChatHistoryListNode.swift index fa94441913..6efa58a4db 100644 --- a/submodules/TelegramUI/TelegramUI/ChatHistoryListNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatHistoryListNode.swift @@ -11,6 +11,7 @@ import MediaResources import AccountContext import TemporaryCachedPeerDataManager import ChatListSearchItemNode +import Emoji private let historyMessageCount: Int = 100 diff --git a/submodules/TelegramUI/TelegramUI/ChatInfo.swift b/submodules/TelegramUI/TelegramUI/ChatInfo.swift index 2d6839c659..26afc6f80b 100644 --- a/submodules/TelegramUI/TelegramUI/ChatInfo.swift +++ b/submodules/TelegramUI/TelegramUI/ChatInfo.swift @@ -4,6 +4,6 @@ import TelegramCore import Display import AccountContext -func peerSharedMediaController(context: AccountContext, peerId: PeerId) -> ViewController? { +func peerSharedMediaControllerImpl(context: AccountContext, peerId: PeerId) -> ViewController? { return PeerMediaCollectionController(context: context, peerId: peerId) } diff --git a/submodules/TelegramUI/TelegramUI/ChatInterfaceInputContexts.swift b/submodules/TelegramUI/TelegramUI/ChatInterfaceInputContexts.swift index 3886c3ea5f..4b14c69a62 100644 --- a/submodules/TelegramUI/TelegramUI/ChatInterfaceInputContexts.swift +++ b/submodules/TelegramUI/TelegramUI/ChatInterfaceInputContexts.swift @@ -4,6 +4,7 @@ import TelegramCore import Postbox import Display import AccountContext +import Emoji struct PossibleContextQueryTypes: OptionSet { var rawValue: Int32 diff --git a/submodules/TelegramUI/TelegramUI/ChatInterfaceStateContextQueries.swift b/submodules/TelegramUI/TelegramUI/ChatInterfaceStateContextQueries.swift index 54c653cda7..71c0d11dac 100644 --- a/submodules/TelegramUI/TelegramUI/ChatInterfaceStateContextQueries.swift +++ b/submodules/TelegramUI/TelegramUI/ChatInterfaceStateContextQueries.swift @@ -8,6 +8,7 @@ import TelegramUIPrivateModule import LegacyComponents import TextFormat import AccountContext +import Emoji enum ChatContextQueryError { case inlineBotLocationRequest(PeerId) diff --git a/submodules/TelegramUI/TelegramUI/ChatMediaInputNode.swift b/submodules/TelegramUI/TelegramUI/ChatMediaInputNode.swift index 6609bc5d86..b30fe77c18 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMediaInputNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMediaInputNode.swift @@ -9,6 +9,7 @@ import TelegramPresentationData import MergeLists import AccountContext import StickerPackPreviewUI +import PeerInfoUI private struct PeerSpecificPackData { let peer: Peer diff --git a/submodules/TelegramUI/TelegramUI/ChatMediaInputStickerPackItem.swift b/submodules/TelegramUI/TelegramUI/ChatMediaInputStickerPackItem.swift index 841ba69cf5..6314859f33 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMediaInputStickerPackItem.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMediaInputStickerPackItem.swift @@ -8,6 +8,7 @@ import Postbox import TelegramPresentationData import StickerResources import AnimationUI +import ItemListStickerPackItem final class ChatMediaInputStickerPackItem: ListViewItem { let account: Account @@ -69,28 +70,6 @@ private let boundingImageSize = CGSize(width: 28.0, height: 28.0) private let highlightSize = CGSize(width: 35.0, height: 35.0) private let verticalOffset: CGFloat = 3.0 -enum StickerPackThumbnailItem: Equatable { - case still(TelegramMediaImageRepresentation) - case animated(MediaResource) - - static func ==(lhs: StickerPackThumbnailItem, rhs: StickerPackThumbnailItem) -> Bool { - switch lhs { - case let .still(representation): - if case .still(representation) = rhs { - return true - } else { - return false - } - case let .animated(lhsResource): - if case let .animated(rhsResource) = rhs, lhsResource.isEqual(to: rhsResource) { - return true - } else { - return false - } - } - } -} - final class ChatMediaInputStickerPackItemNode: ListViewItemNode { private let imageNode: TransformImageNode private var animatedStickerNode: AnimatedStickerNode? diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageAnimatedStickerItemNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageAnimatedStickerItemNode.swift index 142d556664..94612b26b5 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageAnimatedStickerItemNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageAnimatedStickerItemNode.swift @@ -14,6 +14,7 @@ import MediaResources import StickerResources import ContextUI import AnimationUI +import Emoji private let nameFont = Font.medium(14.0) private let inlineBotPrefixFont = Font.regular(14.0) diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift index 2768a4c63d..ed99325865 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift @@ -15,6 +15,7 @@ import TelegramUniversalVideoContent import MosaicLayout import TextSelectionNode import PlatformRestrictionMatching +import Emoji private func contentNodeMessagesAndClassesForItem(_ item: ChatMessageItem) -> [(Message, AnyClass)] { var result: [(Message, AnyClass)] = [] diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageItem.swift b/submodules/TelegramUI/TelegramUI/ChatMessageItem.swift index ea364c24e0..8d36e6ca21 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageItem.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageItem.swift @@ -8,6 +8,7 @@ import TelegramCore import TelegramPresentationData import TelegramUIPreferences import AccountContext +import Emoji public enum ChatMessageItemContent: Sequence { case message(message: Message, read: Bool, selection: ChatHistoryMessageSelection, attributes: ChatMessageEntryAttributes) diff --git a/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift b/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift index 5316e9b0c0..f8436d5c2e 100644 --- a/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift @@ -17,6 +17,7 @@ import HashtagSearchUI import StickerPackPreviewUI import JoinLinkPreviewUI import LanguageLinkPreviewUI +import PeerInfoUI private final class ChatRecentActionsListOpaqueState { let entries: [ChatRecentActionsEntry] diff --git a/submodules/TelegramUI/TelegramUI/ComposeController.swift b/submodules/TelegramUI/TelegramUI/ComposeController.swift index e594370d20..080321eaca 100644 --- a/submodules/TelegramUI/TelegramUI/ComposeController.swift +++ b/submodules/TelegramUI/TelegramUI/ComposeController.swift @@ -117,7 +117,7 @@ public class ComposeController: ViewController { self.contactsNode.openCreateNewGroup = { [weak self] in if let strongSelf = self { - let controller = ContactMultiselectionController(context: strongSelf.context, mode: .groupCreation, options: []) + let controller = strongSelf.context.sharedContext.makeContactMultiselectionController(ContactMultiselectionControllerParams(context: strongSelf.context, mode: .groupCreation, options: [])) (strongSelf.navigationController as? NavigationController)?.pushViewController(controller, completion: { [weak self] in if let strongSelf = self { strongSelf.contactsNode.contactListNode.listNode.clearHighlightAnimated(true) diff --git a/submodules/TelegramUI/TelegramUI/ContactMultiselectionController.swift b/submodules/TelegramUI/TelegramUI/ContactMultiselectionController.swift index 21e18b5e4a..f7206140dd 100644 --- a/submodules/TelegramUI/TelegramUI/ContactMultiselectionController.swift +++ b/submodules/TelegramUI/TelegramUI/ContactMultiselectionController.swift @@ -11,13 +11,7 @@ import AccountContext import AlertUI import ContactListUI -enum ContactMultiselectionControllerMode { - case groupCreation - case peerSelection(searchChatList: Bool, searchGroups: Bool) - case channelCreation -} - -class ContactMultiselectionController: ViewController { +class ContactMultiselectionControllerImpl: ViewController, ContactMultiselectionController { private let context: AccountContext private let mode: ContactMultiselectionControllerMode @@ -68,12 +62,12 @@ class ContactMultiselectionController: ViewController { private let options: [ContactListAdditionalOption] private let filters: [ContactListFilter] - init(context: AccountContext, mode: ContactMultiselectionControllerMode, options: [ContactListAdditionalOption], filters: [ContactListFilter] = [.excludeSelf]) { - self.context = context - self.mode = mode - self.options = options - self.filters = filters - self.presentationData = context.sharedContext.currentPresentationData.with { $0 } + init(_ params: ContactMultiselectionControllerParams) { + self.context = params.context + self.mode = params.mode + self.options = params.options + self.filters = params.filters + self.presentationData = self.context.sharedContext.currentPresentationData.with { $0 } self.titleView = CounterContollerTitleView(theme: self.presentationData.theme) diff --git a/submodules/TelegramUI/TelegramUI/CreateChannelController.swift b/submodules/TelegramUI/TelegramUI/CreateChannelController.swift index fa1382600b..3849e891d0 100644 --- a/submodules/TelegramUI/TelegramUI/CreateChannelController.swift +++ b/submodules/TelegramUI/TelegramUI/CreateChannelController.swift @@ -12,6 +12,8 @@ import AlertUI import LegacyUI import ItemListAvatarAndNameInfoItem import WebSearchUI +import PeerInfoUI +import MapResourceToAvatarSizes private struct CreateChannelArguments { let account: Account diff --git a/submodules/TelegramUI/TelegramUI/CreateGroupController.swift b/submodules/TelegramUI/TelegramUI/CreateGroupController.swift index 9854473433..76f02f88e9 100644 --- a/submodules/TelegramUI/TelegramUI/CreateGroupController.swift +++ b/submodules/TelegramUI/TelegramUI/CreateGroupController.swift @@ -18,6 +18,9 @@ import ItemListPeerItem import ItemListAvatarAndNameInfoItem import WebSearchUI import Geocoding +import PeerInfoUI +import MapResourceToAvatarSizes +import ItemListAddressItem private struct CreateGroupArguments { let account: Account diff --git a/submodules/TelegramUI/TelegramUI/EditSettingsController.swift b/submodules/TelegramUI/TelegramUI/EditSettingsController.swift index c63abdd13b..adebb90fd5 100644 --- a/submodules/TelegramUI/TelegramUI/EditSettingsController.swift +++ b/submodules/TelegramUI/TelegramUI/EditSettingsController.swift @@ -13,6 +13,8 @@ import GalleryUI import LegacyUI import ItemListAvatarAndNameInfoItem import WebSearchUI +import PeerAvatarGalleryUI +import MapResourceToAvatarSizes private struct EditSettingsItemArguments { let context: AccountContext diff --git a/submodules/TelegramUI/TelegramUI/EmojiResources.swift b/submodules/TelegramUI/TelegramUI/EmojiResources.swift index 9c6c7ad3ac..045c0e8a71 100644 --- a/submodules/TelegramUI/TelegramUI/EmojiResources.swift +++ b/submodules/TelegramUI/TelegramUI/EmojiResources.swift @@ -10,6 +10,7 @@ import WebPImage import WebP #endif import MediaResources +import Emoji public struct EmojiThumbnailResourceId: MediaResourceId { public let emoji: String diff --git a/submodules/TelegramUI/TelegramUI/EmojisChatInputContextPanelNode.swift b/submodules/TelegramUI/TelegramUI/EmojisChatInputContextPanelNode.swift index 34d4c64e00..8180a53f24 100644 --- a/submodules/TelegramUI/TelegramUI/EmojisChatInputContextPanelNode.swift +++ b/submodules/TelegramUI/TelegramUI/EmojisChatInputContextPanelNode.swift @@ -7,6 +7,7 @@ import Display import TelegramPresentationData import MergeLists import AccountContext +import Emoji private struct EmojisChatInputContextPanelEntryStableId: Hashable, Equatable { let symbol: String diff --git a/submodules/TelegramUI/TelegramUI/FeaturedStickerPacksController.swift b/submodules/TelegramUI/TelegramUI/FeaturedStickerPacksController.swift index d3f9261d7c..11a6ab9ea3 100644 --- a/submodules/TelegramUI/TelegramUI/FeaturedStickerPacksController.swift +++ b/submodules/TelegramUI/TelegramUI/FeaturedStickerPacksController.swift @@ -9,6 +9,7 @@ import TelegramUIPreferences import ItemListUI import AccountContext import StickerPackPreviewUI +import ItemListStickerPackItem private final class FeaturedStickerPacksControllerArguments { let account: Account diff --git a/submodules/TelegramUI/TelegramUI/InstalledStickerPacksController.swift b/submodules/TelegramUI/TelegramUI/InstalledStickerPacksController.swift index 123e11d297..9f55c85589 100644 --- a/submodules/TelegramUI/TelegramUI/InstalledStickerPacksController.swift +++ b/submodules/TelegramUI/TelegramUI/InstalledStickerPacksController.swift @@ -10,6 +10,7 @@ import ItemListUI import TextFormat import AccountContext import StickerPackPreviewUI +import ItemListStickerPackItem private final class InstalledStickerPacksControllerArguments { let account: Account diff --git a/submodules/TelegramUI/TelegramUI/NavigateToChatController.swift b/submodules/TelegramUI/TelegramUI/NavigateToChatController.swift index 6f4615c083..48d8e757b3 100644 --- a/submodules/TelegramUI/TelegramUI/NavigateToChatController.swift +++ b/submodules/TelegramUI/TelegramUI/NavigateToChatController.swift @@ -7,6 +7,7 @@ import AccountContext import GalleryUI import InstantPageUI import ChatListUI +import PeerAvatarGalleryUI public func navigateToChatControllerImpl(_ params: NavigateToChatControllerParams) { var found = false diff --git a/submodules/TelegramUI/TelegramUI/NotificationExceptionControllerNode.swift b/submodules/TelegramUI/TelegramUI/NotificationExceptionControllerNode.swift index bc983464f7..0026cd939f 100644 --- a/submodules/TelegramUI/TelegramUI/NotificationExceptionControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/NotificationExceptionControllerNode.swift @@ -17,6 +17,7 @@ import ContactsPeerItem import ChatListSearchItemHeader import ChatListUI import ItemListPeerActionItem +import TelegramStringFormatting private final class NotificationExceptionState : Equatable { let mode:NotificationExceptionMode diff --git a/submodules/TelegramUI/TelegramUI/NotificationExceptionSettingsController.swift b/submodules/TelegramUI/TelegramUI/NotificationExceptionSettingsController.swift index 7a39a0f840..a0d223bf0c 100644 --- a/submodules/TelegramUI/TelegramUI/NotificationExceptionSettingsController.swift +++ b/submodules/TelegramUI/TelegramUI/NotificationExceptionSettingsController.swift @@ -9,6 +9,8 @@ import TelegramPresentationData import ItemListUI import AccountContext import LocalizedPeerData +import TelegramStringFormatting +import NotificationSoundSelectionUI private enum NotificationPeerExceptionSection: Int32 { case remove diff --git a/submodules/TelegramUI/TelegramUI/NotificationsAndSounds.swift b/submodules/TelegramUI/TelegramUI/NotificationsAndSounds.swift index e99ed25239..42b87d5796 100644 --- a/submodules/TelegramUI/TelegramUI/NotificationsAndSounds.swift +++ b/submodules/TelegramUI/TelegramUI/NotificationsAndSounds.swift @@ -11,6 +11,8 @@ import ItemListUI import AccountContext import AlertUI import TelegramNotices +import NotificationSoundSelectionUI +import TelegramStringFormatting private final class NotificationsAndSoundsArguments { let context: AccountContext diff --git a/submodules/TelegramUI/TelegramUI/OpenAddContact.swift b/submodules/TelegramUI/TelegramUI/OpenAddContact.swift index 22a56ed5a9..e4df366ee3 100644 --- a/submodules/TelegramUI/TelegramUI/OpenAddContact.swift +++ b/submodules/TelegramUI/TelegramUI/OpenAddContact.swift @@ -5,6 +5,7 @@ import Display import DeviceAccess import AccountContext import AlertUI +import PeerInfoUI func openAddContactImpl(context: AccountContext, firstName: String = "", lastName: String = "", phoneNumber: String, label: String = "_$!!$_", present: @escaping (ViewController, Any?) -> Void, pushController: @escaping (ViewController) -> Void, completed: @escaping () -> Void = {}) { let _ = (DeviceAccess.authorizationStatus(subject: .contacts) diff --git a/submodules/TelegramUI/TelegramUI/OpenChatMessage.swift b/submodules/TelegramUI/TelegramUI/OpenChatMessage.swift index 7d142e3a17..dfa8455669 100644 --- a/submodules/TelegramUI/TelegramUI/OpenChatMessage.swift +++ b/submodules/TelegramUI/TelegramUI/OpenChatMessage.swift @@ -13,6 +13,8 @@ import GalleryUI import InstantPageUI import LocationUI import StickerPackPreviewUI +import PeerAvatarGalleryUI +import PeerInfoUI private enum ChatMessageGalleryControllerData { case url(String) diff --git a/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift b/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift index 7741bf05df..ae332ef3f2 100644 --- a/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift +++ b/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift @@ -13,6 +13,7 @@ import OverlayStatusController import AccountContext import ShareController import OpenInExternalAppUI +import PeerInfoUI public class PeerMediaCollectionController: TelegramBaseController { private var validLayout: ContainerViewLayout? diff --git a/submodules/TelegramUI/TelegramUI/PrefetchManager.swift b/submodules/TelegramUI/TelegramUI/PrefetchManager.swift index 0c73d4f8da..da6d49999d 100644 --- a/submodules/TelegramUI/TelegramUI/PrefetchManager.swift +++ b/submodules/TelegramUI/TelegramUI/PrefetchManager.swift @@ -5,6 +5,7 @@ import TelegramCore import TelegramUIPreferences import AccountContext import PhotoResources +import Emoji private final class PrefetchMediaContext { let fetchDisposable = MetaDisposable() diff --git a/submodules/TelegramUI/TelegramUI/SelectivePrivacySettingsController.swift b/submodules/TelegramUI/TelegramUI/SelectivePrivacySettingsController.swift index a9360c7e9c..c08f21f910 100644 --- a/submodules/TelegramUI/TelegramUI/SelectivePrivacySettingsController.swift +++ b/submodules/TelegramUI/TelegramUI/SelectivePrivacySettingsController.swift @@ -689,7 +689,7 @@ func selectivePrivacySettingsController(context: AccountContext, kind: Selective return state } if peerIds.isEmpty { - let controller = ContactMultiselectionController(context: context, mode: .peerSelection(searchChatList: true, searchGroups: true), options: []) + let controller = context.sharedContext.makeContactMultiselectionController(ContactMultiselectionControllerParams(context: context, mode: .peerSelection(searchChatList: true, searchGroups: true), options: [])) addPeerDisposable.set((controller.result |> take(1) |> deliverOnMainQueue).start(next: { [weak controller] peerIds in diff --git a/submodules/TelegramUI/TelegramUI/SelectivePrivacySettingsPeersController.swift b/submodules/TelegramUI/TelegramUI/SelectivePrivacySettingsPeersController.swift index a57298d29e..9d21882e34 100644 --- a/submodules/TelegramUI/TelegramUI/SelectivePrivacySettingsPeersController.swift +++ b/submodules/TelegramUI/TelegramUI/SelectivePrivacySettingsPeersController.swift @@ -287,7 +287,7 @@ public func selectivePrivacyPeersController(context: AccountContext, title: Stri removePeerDisposable.set(applyPeers.start()) }, addPeer: { - let controller = ContactMultiselectionController(context: context, mode: .peerSelection(searchChatList: true, searchGroups: true), options: []) + let controller = context.sharedContext.makeContactMultiselectionController(ContactMultiselectionControllerParams(context: context, mode: .peerSelection(searchChatList: true, searchGroups: true), options: [])) addPeerDisposable.set((controller.result |> take(1) |> deliverOnMainQueue).start(next: { [weak controller] peerIds in diff --git a/submodules/TelegramUI/TelegramUI/SettingsController.swift b/submodules/TelegramUI/TelegramUI/SettingsController.swift index dc5eabc0b3..617811e201 100644 --- a/submodules/TelegramUI/TelegramUI/SettingsController.swift +++ b/submodules/TelegramUI/TelegramUI/SettingsController.swift @@ -30,6 +30,8 @@ import ChatListUI import ItemListAvatarAndNameInfoItem import ItemListPeerActionItem import WebSearchUI +import PeerAvatarGalleryUI +import MapResourceToAvatarSizes private let maximumNumberOfAccounts = 3 @@ -1387,7 +1389,7 @@ public func settingsController(context: AccountContext, accountManager: AccountM }) if let selectedAccount = selectedAccount, let sharedContext = sharedContext { let accountContext = sharedContext.makeTempAccountContext(account: selectedAccount) - let chatListController = ChatListController(context: accountContext, groupId: .root, controlsHistoryPreload: false, hideNetworkActivityStatus: true, enableDebugActions: !GlobalExperimentalSettings.isAppStoreBuild) + let chatListController = accountContext.sharedContext.makeChatListController(context: accountContext, groupId: .root, controlsHistoryPreload: false, hideNetworkActivityStatus: true, enableDebugActions: !GlobalExperimentalSettings.isAppStoreBuild) return chatListController } } diff --git a/submodules/TelegramUI/TelegramUI/SettingsSearchableItems.swift b/submodules/TelegramUI/TelegramUI/SettingsSearchableItems.swift index 6ce890f171..3045df777a 100644 --- a/submodules/TelegramUI/TelegramUI/SettingsSearchableItems.swift +++ b/submodules/TelegramUI/TelegramUI/SettingsSearchableItems.swift @@ -11,6 +11,7 @@ import AccountContext import PassportUI import LocalAuth import CallListUI +import NotificationSoundSelectionUI private let maximumNumberOfAccounts = 3 diff --git a/submodules/TelegramUI/TelegramUI/ShareExtensionContext.swift b/submodules/TelegramUI/TelegramUI/ShareExtensionContext.swift index 4b870ac1ab..2ea5a49f19 100644 --- a/submodules/TelegramUI/TelegramUI/ShareExtensionContext.swift +++ b/submodules/TelegramUI/TelegramUI/ShareExtensionContext.swift @@ -9,6 +9,7 @@ import TelegramUIPrivateModule import AccountContext import ShareController import LegacyUI +import PeerInfoUI private let inForeground = ValuePromise(false, ignoreRepeated: true) diff --git a/submodules/TelegramUI/TelegramUI/SharedAccountContext.swift b/submodules/TelegramUI/TelegramUI/SharedAccountContext.swift index fa724f4ccf..44fb7e492e 100644 --- a/submodules/TelegramUI/TelegramUI/SharedAccountContext.swift +++ b/submodules/TelegramUI/TelegramUI/SharedAccountContext.swift @@ -11,6 +11,7 @@ import DeviceLocationManager import LegacyUI import ChatListUI import PeersNearbyUI +import PeerInfoUI private enum CallStatusText: Equatable { case none @@ -974,6 +975,14 @@ public final class SharedAccountContextImpl: SharedAccountContext { return ChatControllerImpl(context: context, chatLocation: chatLocation, subject: subject, botStart: botStart, mode: mode) } + public func makePeerSharedMediaController(context: AccountContext, peerId: PeerId) -> ViewController? { + return peerSharedMediaControllerImpl(context: context, peerId: peerId) + } + + public func makeChatRecentActionsController(context: AccountContext, peer: Peer) -> ViewController { + return ChatRecentActionsController(context: context, peer: peer) + } + public func presentContactsWarningSuppression(context: AccountContext, present: (ViewController, Any?) -> Void) { presentContactsWarningSuppressionImpl(context: context, present: present) } @@ -982,6 +991,10 @@ public final class SharedAccountContextImpl: SharedAccountContext { return ContactSelectionControllerImpl(params) } + public func makeContactMultiselectionController(_ params: ContactMultiselectionControllerParams) -> ContactMultiselectionController { + return ContactMultiselectionControllerImpl(params) + } + public func makeComposeController(context: AccountContext) -> ViewController { return ComposeController(context: context) } @@ -1001,4 +1014,8 @@ public final class SharedAccountContextImpl: SharedAccountContext { public func makeCreateGroupController(context: AccountContext, peerIds: [PeerId], initialTitle: String?, mode: CreateGroupMode, completion: ((PeerId, @escaping () -> Void) -> Void)?) -> ViewController { return createGroupControllerImpl(context: context, peerIds: peerIds, initialTitle: initialTitle, mode: mode, completion: completion) } + + public func makeChatListController(context: AccountContext, groupId: PeerGroupId, controlsHistoryPreload: Bool, hideNetworkActivityStatus: Bool, enableDebugActions: Bool) -> ChatListController { + return ChatListControllerImpl(context: context, groupId: groupId, controlsHistoryPreload: controlsHistoryPreload, hideNetworkActivityStatus: hideNetworkActivityStatus, enableDebugActions: enableDebugActions) + } } diff --git a/submodules/TelegramUI/TelegramUI/StickerPaneSearchContentNode.swift b/submodules/TelegramUI/TelegramUI/StickerPaneSearchContentNode.swift index 0c4a462ccc..cc0e408b5a 100644 --- a/submodules/TelegramUI/TelegramUI/StickerPaneSearchContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/StickerPaneSearchContentNode.swift @@ -11,6 +11,7 @@ import TelegramUIPrivateModule import MergeLists import AccountContext import StickerPackPreviewUI +import Emoji final class StickerPaneSearchInteraction { let open: (StickerPackCollectionInfo) -> Void diff --git a/submodules/TelegramUI/TelegramUI/TelegramRootController.swift b/submodules/TelegramUI/TelegramUI/TelegramRootController.swift index eba357651f..3d03cd1495 100644 --- a/submodules/TelegramUI/TelegramUI/TelegramRootController.swift +++ b/submodules/TelegramUI/TelegramUI/TelegramRootController.swift @@ -84,7 +84,7 @@ public final class TelegramRootController: NavigationController { public func addRootControllers(showCallsTab: Bool) { let tabBarController = TabBarController(navigationBarPresentationData: NavigationBarPresentationData(presentationData: self.presentationData), theme: TabBarControllerTheme(rootControllerTheme: self.presentationData.theme)) - let chatListController = ChatListController(context: self.context, groupId: .root, controlsHistoryPreload: true, enableDebugActions: !GlobalExperimentalSettings.isAppStoreBuild) + let chatListController = self.context.sharedContext.makeChatListController(context: self.context, groupId: .root, controlsHistoryPreload: true, hideNetworkActivityStatus: false, enableDebugActions: !GlobalExperimentalSettings.isAppStoreBuild) if let sharedContext = self.context.sharedContext as? SharedAccountContextImpl { chatListController.tabBarItem.badgeValue = sharedContext.switchingData.chatListBadge } @@ -159,7 +159,7 @@ public final class TelegramRootController: NavigationController { } public func openRootCompose() { - self.chatListController?.composePressed() + self.chatListController?.activateCompose() } public func openRootCamera() { diff --git a/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap b/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap index 594f238933..c035290575 100644 --- a/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap +++ b/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap @@ -1,7 +1,6 @@ module TelegramUIPrivateModule { header "../../third-party/opusenc/opusenc.h" header "../TGDataItem.h" - header "../SecretChatKeyVisualization.h" header "../DeviceProximityManager.h" header "../RaiseToListenActivator.h" header "../Bridge Audio/TGBridgeAudioDecoder.h" diff --git a/submodules/TelegramUI/TelegramUI/ValidateAddressNameInteractive.swift b/submodules/TelegramUI/TelegramUI/ValidateAddressNameInteractive.swift deleted file mode 100644 index 04ea82a825..0000000000 --- a/submodules/TelegramUI/TelegramUI/ValidateAddressNameInteractive.swift +++ /dev/null @@ -1,43 +0,0 @@ -import Foundation -import TelegramCore -import SwiftSignalKit -import Postbox - -enum AddressNameValidationStatus: Equatable { - case checking - case invalidFormat(AddressNameFormatError) - case availability(AddressNameAvailability) - - static func ==(lhs: AddressNameValidationStatus, rhs: AddressNameValidationStatus) -> Bool { - switch lhs { - case .checking: - if case .checking = rhs { - return true - } else { - return false - } - case let .invalidFormat(error): - if case .invalidFormat(error) = rhs { - return true - } else { - return false - } - case let .availability(availability): - if case .availability(availability) = rhs { - return true - } else { - return false - } - } - } -} - -func validateAddressNameInteractive(account: Account, domain: AddressNameDomain, name: String) -> Signal { - if let error = checkAddressNameFormat(name) { - return .single(.invalidFormat(error)) - } else { - return .single(.checking) |> then(addressNameAvailability(account: account, domain: domain, name: name) - |> delay(0.3, queue: Queue.concurrentDefaultQueue()) - |> map { result -> AddressNameValidationStatus in .availability(result) }) - } -} diff --git a/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj b/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj index 893365cba7..7fcffb8f64 100644 --- a/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj @@ -13,7 +13,6 @@ 090B48C82200BCA8005083FA /* WallpaperUploadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 090B48C72200BCA8005083FA /* WallpaperUploadManager.swift */; }; 090E63EE2196FE3A00E3C035 /* OpenAddContact.swift in Sources */ = {isa = PBXBuildFile; fileRef = 090E63ED2196FE3A00E3C035 /* OpenAddContact.swift */; }; 090E777922A6A32E00CD99F5 /* ThemeSettingsThemeItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 090E777822A6A32E00CD99F5 /* ThemeSettingsThemeItem.swift */; }; - 090E778A22A9F23C00CD99F5 /* ChannelOwnershipTransferController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 090E778922A9F23C00CD99F5 /* ChannelOwnershipTransferController.swift */; }; 090E778C22AA842300CD99F5 /* anim_success.json in Resources */ = {isa = PBXBuildFile; fileRef = 090E778B22AA842200CD99F5 /* anim_success.json */; }; 0910B0ED21FA178C00F8F87D /* WallpaperPreviewMedia.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0910B0EC21FA178C00F8F87D /* WallpaperPreviewMedia.swift */; }; 0910B0EF21FA532D00F8F87D /* WallpaperResources.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0910B0EE21FA532D00F8F87D /* WallpaperResources.swift */; }; @@ -23,7 +22,6 @@ 091BEAB3214552D9003AEA30 /* Vision.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D02DADBE2138D76F00116225 /* Vision.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 0921F60E228EE000001A13D7 /* ChatMessageActionUrlAuthController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0921F60D228EE000001A13D7 /* ChatMessageActionUrlAuthController.swift */; }; 092F368D2154AAEA001A9F49 /* SFCompactRounded-Semibold.otf in Resources */ = {isa = PBXBuildFile; fileRef = 092F368C2154AAE9001A9F49 /* SFCompactRounded-Semibold.otf */; }; - 092F36902157AB46001A9F49 /* ItemListCallListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 092F368F2157AB46001A9F49 /* ItemListCallListItem.swift */; }; 09310D32213ED5FC0020033A /* anim_ungroup.json in Resources */ = {isa = PBXBuildFile; fileRef = 09310D1A213BC5DE0020033A /* anim_ungroup.json */; }; 09310D33213ED5FC0020033A /* anim_group.json in Resources */ = {isa = PBXBuildFile; fileRef = 09310D1B213BC5DE0020033A /* anim_group.json */; }; 0940932422E73DFB003846A3 /* ChatSendMessageActionSheetController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0940932322E73DFB003846A3 /* ChatSendMessageActionSheetController.swift */; }; @@ -44,7 +42,6 @@ 09510B0F22F9347E0078CAB7 /* BundleResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09510B0E22F9347E0078CAB7 /* BundleResource.swift */; }; 09510B1322F96E5B0078CAB7 /* ChatScheduleTimeController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09510B1222F96E5B0078CAB7 /* ChatScheduleTimeController.swift */; }; 09510B1522F96E6C0078CAB7 /* ChatScheduleTimeControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09510B1422F96E6C0078CAB7 /* ChatScheduleTimeControllerNode.swift */; }; - 0952D1752176DEB500194860 /* NotificationMuteSettingsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0952D1742176DEB500194860 /* NotificationMuteSettingsController.swift */; }; 0957DE2322DE28FB001B4D57 /* ThemePreviewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0957DE2222DE28FB001B4D57 /* ThemePreviewController.swift */; }; 0957DE2522DE2909001B4D57 /* ThemePreviewControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0957DE2422DE2909001B4D57 /* ThemePreviewControllerNode.swift */; }; 0962E67921B67A9800245FD9 /* ChatMessageAnimatedStickerItemNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0962E67821B67A9800245FD9 /* ChatMessageAnimatedStickerItemNode.swift */; }; @@ -86,7 +83,6 @@ 09D96899221DE92600B1458A /* ID3ArtworkReader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09D96898221DE92600B1458A /* ID3ArtworkReader.swift */; }; 09DD5D5021ECC3C400D7007A /* SuppressContactsWarning.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DD5D4F21ECC3C400D7007A /* SuppressContactsWarning.swift */; }; 09DD5D5221ED175300D7007A /* WallpaperColorPickerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DD5D5121ED175300D7007A /* WallpaperColorPickerNode.swift */; }; - 09DD88E921BAF65E000766BC /* ItemListAddressItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DD88E821BAF65E000766BC /* ItemListAddressItem.swift */; }; 09DE2F272269D5730045E975 /* PrivacyIntroController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DE2F262269D5730045E975 /* PrivacyIntroController.swift */; }; 09DE2F292269D5E30045E975 /* PrivacyIntroControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DE2F282269D5E30045E975 /* PrivacyIntroControllerNode.swift */; }; 09E2D9EF226F1AFA00EA0AA4 /* Emoji.mapping in Resources */ = {isa = PBXBuildFile; fileRef = 09E2D9ED226F1AF300EA0AA4 /* Emoji.mapping */; }; @@ -116,7 +112,6 @@ 09FFBCD72281BB2D00C33B4B /* ChatTextLinkEditController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09FFBCD62281BB2D00C33B4B /* ChatTextLinkEditController.swift */; }; 9F06830921A404AB001D8EDB /* NotificationExceptionControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F06830821A404AB001D8EDB /* NotificationExceptionControllerNode.swift */; }; 9F06830B21A404C4001D8EDB /* NotificationExceptionSettingsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F06830A21A404C4001D8EDB /* NotificationExceptionSettingsController.swift */; }; - D000CABA21EE130D0011B15D /* MapResourceToAvatarSizes.swift in Sources */ = {isa = PBXBuildFile; fileRef = D000CAB921EE130D0011B15D /* MapResourceToAvatarSizes.swift */; }; D000CABC21F158AD0011B15D /* PrepareSecretThumbnailData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D000CABB21F158AD0011B15D /* PrepareSecretThumbnailData.swift */; }; D0068FA821760FA300D1B315 /* StoreDownloadedMedia.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0068FA721760FA300D1B315 /* StoreDownloadedMedia.swift */; }; D007019C2029E8F2006B9E34 /* LegacyICloudFileController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D007019B2029E8F2006B9E34 /* LegacyICloudFileController.swift */; }; @@ -158,7 +153,6 @@ D00818CD22B595CB008A895F /* LightweightAccountData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00818CC22B595CB008A895F /* LightweightAccountData.framework */; }; D00ACA4B20222C280045D427 /* libtgvoip.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00ACA4C20222C280045D427 /* libtgvoip.framework */; }; D00ACA5A2022897D0045D427 /* ProcessedPeerRestrictionText.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00ACA592022897D0045D427 /* ProcessedPeerRestrictionText.swift */; }; - D00BDA1F1EE5B69200C64C5E /* ChannelAdminController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00BDA1E1EE5B69200C64C5E /* ChannelAdminController.swift */; }; D010E17D22C238BC009324D4 /* RLottie.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D010E17C22C238BC009324D4 /* RLottie.framework */; }; D015E04F225D2E5900CB9E8A /* WebP.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D015E04E225D2E5900CB9E8A /* WebP.framework */; }; D017734C22049BF800DA06A7 /* UpgradedAccounts.swift in Sources */ = {isa = PBXBuildFile; fileRef = D017734B22049BF800DA06A7 /* UpgradedAccounts.swift */; }; @@ -179,7 +173,6 @@ D0208ADC1FA346A4001F0D5F /* RaiseToListen.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0208ADB1FA346A4001F0D5F /* RaiseToListen.swift */; }; D020A9DA1FEAE675008C66F7 /* OverlayAudioPlayerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D020A9D91FEAE675008C66F7 /* OverlayAudioPlayerController.swift */; }; D020A9DC1FEAE6E7008C66F7 /* OverlayPlayerControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D020A9DB1FEAE6E7008C66F7 /* OverlayPlayerControllerNode.swift */; }; - D025402322E1C92D00AC0195 /* ChatSlowmodeItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D025402222E1C92D00AC0195 /* ChatSlowmodeItem.swift */; }; D025402522E1E00100AC0195 /* ChatSlowmodeHintController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D025402422E1E00100AC0195 /* ChatSlowmodeHintController.swift */; }; D025402722E1F23000AC0195 /* ChatSendButtonRadialStatusNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D025402622E1F23000AC0195 /* ChatSendButtonRadialStatusNode.swift */; }; D025402922E1F7F500AC0195 /* ChatTextInputSlowmodePlaceholderNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D025402822E1F7F500AC0195 /* ChatTextInputSlowmodePlaceholderNode.swift */; }; @@ -216,9 +209,17 @@ D03E3FF02304C7FA0049C28B /* LocalMediaResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3FEF2304C7FA0049C28B /* LocalMediaResources.framework */; }; D03E40352304CD2A0049C28B /* PeersNearbyUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40342304CD2A0049C28B /* PeersNearbyUI.framework */; }; D03E405D2304CE920049C28B /* Geocoding.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E405C2304CE920049C28B /* Geocoding.framework */; }; + D03E40C72304D12D0049C28B /* PeerInfoUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40C62304D12D0049C28B /* PeerInfoUI.framework */; }; + D03E41682304D4820049C28B /* PeerAvatarGalleryUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41672304D4820049C28B /* PeerAvatarGalleryUI.framework */; }; + D03E41962304D79A0049C28B /* Emoji.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41952304D79A0049C28B /* Emoji.framework */; }; + D03E41CE2304D9800049C28B /* ItemListStickerPackItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41CD2304D9800049C28B /* ItemListStickerPackItem.framework */; }; + D03E41FA2305634F0049C28B /* NotificationMuteSettingsUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41F92305634F0049C28B /* NotificationMuteSettingsUI.framework */; }; + D03E4226230564B20049C28B /* SinglePhoneInputNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E4225230564B20049C28B /* SinglePhoneInputNode.framework */; }; + D03E425623056A4A0049C28B /* MapResourceToAvatarSizes.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E425523056A4A0049C28B /* MapResourceToAvatarSizes.framework */; }; + D03E428A23056B610049C28B /* NotificationSoundSelectionUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E428923056B610049C28B /* NotificationSoundSelectionUI.framework */; }; + D03E42B423056C730049C28B /* EncryptionKeyVisualization.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42B323056C730049C28B /* EncryptionKeyVisualization.framework */; }; + D03E42E6230572530049C28B /* ItemListAddressItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42E5230572530049C28B /* ItemListAddressItem.framework */; }; D04203152037162700490EA5 /* MediaInputPaneTrendingItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04203142037162700490EA5 /* MediaInputPaneTrendingItem.swift */; }; - D04281EF200E3D88009DDE36 /* GroupInfoSearchItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04281EE200E3D88009DDE36 /* GroupInfoSearchItem.swift */; }; - D04281F1200E4084009DDE36 /* GroupInfoSearchNavigationContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04281F0200E4084009DDE36 /* GroupInfoSearchNavigationContentNode.swift */; }; D04281F4200E5AB0009DDE36 /* ChatRecentActionsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04281F3200E5AB0009DDE36 /* ChatRecentActionsController.swift */; }; D04281F6200E5AC2009DDE36 /* ChatRecentActionsControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04281F5200E5AC2009DDE36 /* ChatRecentActionsControllerNode.swift */; }; D04281FA200E5CDC009DDE36 /* ChatRecentActionsControllerState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04281F9200E5CDC009DDE36 /* ChatRecentActionsControllerState.swift */; }; @@ -230,8 +231,6 @@ D048B339203C532800038D05 /* ChatMediaInputPane.swift in Sources */ = {isa = PBXBuildFile; fileRef = D048B338203C532800038D05 /* ChatMediaInputPane.swift */; }; D04B4D131EEA0A6500711AF6 /* ChatMessageMapBubbleContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04B4D121EEA0A6500711AF6 /* ChatMessageMapBubbleContentNode.swift */; }; D04ECD721FFBF22B00DE9029 /* OpenUrl.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04ECD711FFBF22B00DE9029 /* OpenUrl.swift */; }; - D050A464229C052A0044F11A /* ChannelDiscussionGroupSetupSearchItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D050A463229C052A0044F11A /* ChannelDiscussionGroupSetupSearchItem.swift */; }; - D050A466229C06460044F11A /* ChannelDiscussionGroupSearchContainerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D050A465229C06460044F11A /* ChannelDiscussionGroupSearchContainerNode.swift */; }; D053B4371F1A9CA000E2D58A /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D053B4361F1A9CA000E2D58A /* WebKit.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; D053DADC201AAAB100993D32 /* ChatTextInputMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = D053DADB201AAAB100993D32 /* ChatTextInputMenu.swift */; }; D056CD701FF147B000880D28 /* IconButtonNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D056CD6F1FF147B000880D28 /* IconButtonNode.swift */; }; @@ -271,9 +270,6 @@ D077C5C122B59A800097D617 /* ApplicationContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D077C5C022B59A800097D617 /* ApplicationContext.swift */; }; D07BCBFE1F2B792300ED97AA /* LegacyComponents.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D07BCBFD1F2B792300ED97AA /* LegacyComponents.framework */; }; D07E413D208A494D00FCA8F0 /* ProxyServerActionSheetController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07E413C208A494D00FCA8F0 /* ProxyServerActionSheetController.swift */; }; - D081A9A922EB26AE0069C449 /* PhoneLabelController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D081A9A822EB26AE0069C449 /* PhoneLabelController.swift */; }; - D083491C209361DC008CFD52 /* AvatarGalleryItemFooterContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D083491B209361DC008CFD52 /* AvatarGalleryItemFooterContentNode.swift */; }; - D084023420E295F000065674 /* GroupStickerPackSetupController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D084023320E295F000065674 /* GroupStickerPackSetupController.swift */; }; D08799F022F649A600C4D6B3 /* TelegramBaseController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D08799EF22F649A600C4D6B3 /* TelegramBaseController.framework */; }; D0879A0D22F64E4C00C4D6B3 /* DeviceLocationManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879A0C22F64E4C00C4D6B3 /* DeviceLocationManager.framework */; }; D0879B1F22F7189600C4D6B3 /* AvatarNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879B1E22F7189600C4D6B3 /* AvatarNode.framework */; }; @@ -288,7 +284,6 @@ D0879C9622F875C000C4D6B3 /* PeerPresenceStatusManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879C9522F875C000C4D6B3 /* PeerPresenceStatusManager.framework */; }; D0879CCC22F876DD00C4D6B3 /* ChatListSearchRecentPeersNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879CCB22F876DD00C4D6B3 /* ChatListSearchRecentPeersNode.framework */; }; D08803C51F6064CF00DD7951 /* TelegramUI.h in Headers */ = {isa = PBXBuildFile; fileRef = D0FC40821D5B8E7400261D9D /* TelegramUI.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D08984EE2114964700918162 /* GroupPreHistorySetupController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08984ED2114964700918162 /* GroupPreHistorySetupController.swift */; }; D08984F02114AE0C00918162 /* DataPrivacySettingsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08984EF2114AE0C00918162 /* DataPrivacySettingsController.swift */; }; D08BDF641FA37BEA009D08E1 /* ChatRecordingPreviewInputPanelNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08BDF631FA37BEA009D08E1 /* ChatRecordingPreviewInputPanelNode.swift */; }; D08BDF661FA8CB10009D08E1 /* EditSettingsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08BDF651FA8CB10009D08E1 /* EditSettingsController.swift */; }; @@ -299,7 +294,6 @@ D0943B051FDDFDA0001522CC /* OverlayInstantVideoNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0943B041FDDFDA0001522CC /* OverlayInstantVideoNode.swift */; }; D0943B071FDEC529001522CC /* InstantVideoRadialStatusNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0943B061FDEC528001522CC /* InstantVideoRadialStatusNode.swift */; }; D0955FB521912B6000F89427 /* PresentationStrings.mapping in Resources */ = {isa = PBXBuildFile; fileRef = D0955FB32191278C00F89427 /* PresentationStrings.mapping */; }; - D097C26820DD0A1D007BB4B8 /* PeerReportController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D097C26720DD0A1D007BB4B8 /* PeerReportController.swift */; }; D099E220229405BB00561B75 /* Weak.swift in Sources */ = {isa = PBXBuildFile; fileRef = D099E21F229405BB00561B75 /* Weak.swift */; }; D09D88731F86D56B00BEB4C9 /* AuthorizationLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = D09D88721F86D56B00BEB4C9 /* AuthorizationLayout.swift */; }; D09E637C1F0E7C28003444CD /* SharedMediaPlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D09E637B1F0E7C28003444CD /* SharedMediaPlayer.swift */; }; @@ -327,7 +321,6 @@ D0A8998D217A294100759EE6 /* SaveIncomingMediaController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0A8998C217A294100759EE6 /* SaveIncomingMediaController.swift */; }; D0AA840C1FEB2BA3005C6E91 /* OverlayPlayerControlsNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AA840B1FEB2BA3005C6E91 /* OverlayPlayerControlsNode.swift */; }; D0AB262921C307D7008F6685 /* ChatMessagePollBubbleContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB262821C307D7008F6685 /* ChatMessagePollBubbleContentNode.swift */; }; - D0AB269E21D56A12008F6685 /* ChannelPermissionsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB269D21D56A12008F6685 /* ChannelPermissionsController.swift */; }; D0ACCB1C1EC5FF4B0079D8BF /* ChatMessageCallBubbleContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0ACCB1B1EC5FF4B0079D8BF /* ChatMessageCallBubbleContentNode.swift */; }; D0AD02EA1FFFEBEF00C1DCFF /* ChatMessageLiveLocationTextNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AD02E91FFFEBEF00C1DCFF /* ChatMessageLiveLocationTextNode.swift */; }; D0ADF966212E05A300310BBC /* TonePlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0ADF965212E05A300310BBC /* TonePlayer.swift */; }; @@ -348,9 +341,6 @@ D0B21B17220D85E7003F741D /* TabBarAccountSwitchControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B21B16220D85E7003F741D /* TabBarAccountSwitchControllerNode.swift */; }; D0B21B1F22156D92003F741D /* LegacyCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B21B1E22156D92003F741D /* LegacyCache.swift */; }; D0B21B212215B539003F741D /* LogoutOptionsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B21B202215B539003F741D /* LogoutOptionsController.swift */; }; - D0B2F76820528E3D00D3BFB9 /* UserInfoEditingPhoneActionItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B2F76720528E3D00D3BFB9 /* UserInfoEditingPhoneActionItem.swift */; }; - D0B2F76A2052920D00D3BFB9 /* UserInfoEditingPhoneItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B2F7692052920D00D3BFB9 /* UserInfoEditingPhoneItem.swift */; }; - D0B2F76C2052A7D600D3BFB9 /* SinglePhoneInputNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B2F76B2052A7D600D3BFB9 /* SinglePhoneInputNode.swift */; }; D0B37C5C1F8D22AE004252DF /* ThemeSettingsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B37C5B1F8D22AE004252DF /* ThemeSettingsController.swift */; }; D0B37C5E1F8D26A8004252DF /* ThemeSettingsChatPreviewItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B37C5D1F8D26A8004252DF /* ThemeSettingsChatPreviewItem.swift */; }; D0B37C601F8D286E004252DF /* ThemeSettingsFontSizeItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B37C5F1F8D286E004252DF /* ThemeSettingsFontSizeItem.swift */; }; @@ -366,7 +356,6 @@ D0BCC3D620404CD8008126C2 /* ChatMessageActionSheetControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BCC3D520404CD8008126C2 /* ChatMessageActionSheetControllerNode.swift */; }; D0BFAE4620AB04FB00793CF2 /* ChatRestrictedInputPanelNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BFAE4520AB04FB00793CF2 /* ChatRestrictedInputPanelNode.swift */; }; D0BFAE4E20AB1D7B00793CF2 /* DisabledContextResultsChatInputContextPanelNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BFAE4D20AB1D7B00793CF2 /* DisabledContextResultsChatInputContextPanelNode.swift */; }; - D0BFAE5020AB2A1300793CF2 /* PeerBanTimeoutController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BFAE4F20AB2A1300793CF2 /* PeerBanTimeoutController.swift */; }; D0C0B59B1EE019E5000F4D2C /* ChatSearchNavigationContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C0B59A1EE019E5000F4D2C /* ChatSearchNavigationContentNode.swift */; }; D0C0B59F1EE082F5000F4D2C /* ChatSearchInputPanelNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C0B59E1EE082F5000F4D2C /* ChatSearchInputPanelNode.swift */; }; D0C0B5B11EE1C421000F4D2C /* ChatDateSelectionSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C0B5B01EE1C421000F4D2C /* ChatDateSelectionSheet.swift */; }; @@ -440,9 +429,6 @@ D0D4345C1F97CEAA00CC1806 /* ProxyServerSettingsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D4345B1F97CEAA00CC1806 /* ProxyServerSettingsController.swift */; }; D0DE66061F9A51E200EF4AE9 /* GalleryHiddenMediaManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DE66051F9A51E200EF4AE9 /* GalleryHiddenMediaManager.swift */; }; D0DFD5E21FCE2BA50039B3B1 /* CalculatingCacheSizeItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DFD5E11FCE2BA50039B3B1 /* CalculatingCacheSizeItem.swift */; }; - D0E1199A2297F9C6008CAE3A /* ChannelDiscussionGroupSetupController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E119992297F9C6008CAE3A /* ChannelDiscussionGroupSetupController.swift */; }; - D0E1199C229808B8008CAE3A /* ChannelDiscussionGroupSetupHeaderItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E1199B229808B8008CAE3A /* ChannelDiscussionGroupSetupHeaderItem.swift */; }; - D0E1199E229809B6008CAE3A /* ChannelDiscussionGroupActionSheetItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E1199D229809B6008CAE3A /* ChannelDiscussionGroupActionSheetItem.swift */; }; D0E2CE6C222930540084E3DD /* PrefetchManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E2CE6B222930540084E3DD /* PrefetchManager.swift */; }; D0E8174C2011F8A300B82BBB /* ChatMessageEventLogPreviousMessageContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E8174B2011F8A300B82BBB /* ChatMessageEventLogPreviousMessageContentNode.swift */; }; D0E8174E2011FC3800B82BBB /* ChatMessageEventLogPreviousDescriptionContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E8174D2011FC3800B82BBB /* ChatMessageEventLogPreviousDescriptionContentNode.swift */; }; @@ -450,10 +436,6 @@ D0E8175720122DAD00B82BBB /* ChatRecentActionsSearchNavigationContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E8175620122DAD00B82BBB /* ChatRecentActionsSearchNavigationContentNode.swift */; }; D0E8175920122FE100B82BBB /* ChatRecentActionsFilterController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E8175820122FE100B82BBB /* ChatRecentActionsFilterController.swift */; }; D0E8175B201254FA00B82BBB /* ChatRecentActionsEmptyNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E8175A201254FA00B82BBB /* ChatRecentActionsEmptyNode.swift */; }; - D0E8B8B9204477B600605593 /* SecretChatKeyVisualization.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E8B8B8204477B600605593 /* SecretChatKeyVisualization.swift */; }; - D0E8B8BB2044780600605593 /* ItemListSecretChatKeyItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E8B8BA2044780600605593 /* ItemListSecretChatKeyItem.swift */; }; - D0E8B8BD204479A500605593 /* SecretChatKeyController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E8B8BC204479A500605593 /* SecretChatKeyController.swift */; }; - D0E8B8BF20447A4600605593 /* SecretChatKeyControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E8B8BE20447A4600605593 /* SecretChatKeyControllerNode.swift */; }; D0E9B9EA1F00853C00F079A4 /* PhoneCountries.txt in Resources */ = {isa = PBXBuildFile; fileRef = D0E9B9E91F00853C00F079A4 /* PhoneCountries.txt */; }; D0E9BA911F056F4C00F079A4 /* stp_card_amex@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA691F056F4C00F079A4 /* stp_card_amex@2x.png */; }; D0E9BA921F056F4C00F079A4 /* stp_card_amex@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA6A1F056F4C00F079A4 /* stp_card_amex@3x.png */; }; @@ -500,14 +482,11 @@ D0EC55A3210231D600D1992C /* SearchPeerMembers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EC55A2210231D600D1992C /* SearchPeerMembers.swift */; }; D0EC6CC11EB9F58800EBF1C3 /* LegacyCamera.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00E15251DDBD4E700ACF65C /* LegacyCamera.swift */; }; D0EC6CC51EB9F58800EBF1C3 /* TGDataItem.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D03B221DECB1AD00220C46 /* TGDataItem.m */; }; - D0EC6CC71EB9F58800EBF1C3 /* PeerNotificationSoundStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08775081E3E59DE00A97350 /* PeerNotificationSoundStrings.swift */; }; D0EC6CC91EB9F58800EBF1C3 /* ConvertToWebP.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69E941D6B8C9B0046BCD6 /* ConvertToWebP.swift */; }; D0EC6CCC1EB9F58800EBF1C3 /* ServiceSoundManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D073CE641DCBC26B007511FD /* ServiceSoundManager.swift */; }; D0EC6CCD1EB9F58800EBF1C3 /* DeclareEncodables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D073CE701DCBF23F007511FD /* DeclareEncodables.swift */; }; D0EC6CCE1EB9F58800EBF1C3 /* AccountContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05811931DD5F9380057C769 /* AccountContext.swift */; }; D0EC6CD11EB9F58800EBF1C3 /* UrlHandling.swift in Sources */ = {isa = PBXBuildFile; fileRef = D023836F1DDF0462004018B6 /* UrlHandling.swift */; }; - D0EC6CD71EB9F58800EBF1C3 /* EmojiUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01D6BFB1E42AB3C006151C6 /* EmojiUtils.swift */; }; - D0EC6CD91EB9F58800EBF1C3 /* ValidateAddressNameInteractive.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E305A41E5B2BFB00D7A3A2 /* ValidateAddressNameInteractive.swift */; }; D0EC6CDC1EB9F58800EBF1C3 /* TelegramAccountAuxiliaryMethods.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F3A8AA1E82D83E00B4C64C /* TelegramAccountAuxiliaryMethods.swift */; }; D0EC6CF91EB9F58800EBF1C3 /* MediaManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69CD61D6B87D30046BCD6 /* MediaManager.swift */; }; D0EC6CFB1EB9F58800EBF1C3 /* ManagedAudioRecorder.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D03AE41DECAE8900220C46 /* ManagedAudioRecorder.swift */; }; @@ -670,8 +649,6 @@ D0EC6DF61EB9F58900EBF1C3 /* PeerMediaCollectionControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B7F8E71D8A1F5F0045D939 /* PeerMediaCollectionControllerNode.swift */; }; D0EC6DF81EB9F58900EBF1C3 /* PeerMediaCollectionInterfaceState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DE77221D932043002B8809 /* PeerMediaCollectionInterfaceState.swift */; }; D0EC6DF91EB9F58900EBF1C3 /* PeerMediaCollectionInterfaceStateButtons.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DE77241D93225E002B8809 /* PeerMediaCollectionInterfaceStateButtons.swift */; }; - D0EC6DFB1EB9F58900EBF1C3 /* AvatarGalleryController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0575AF91EA0FDA7006F2541 /* AvatarGalleryController.swift */; }; - D0EC6E0E1EB9F58900EBF1C3 /* PeerAvatarImageGalleryItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0575AFB1EA104A6006F2541 /* PeerAvatarImageGalleryItem.swift */; }; D0EC6E2B1EB9F58900EBF1C3 /* ComposeController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D087750F1E3F46A400A97350 /* ComposeController.swift */; }; D0EC6E2C1EB9F58900EBF1C3 /* ComposeControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08775111E3F46AB00A97350 /* ComposeControllerNode.swift */; }; D0EC6E2D1EB9F58900EBF1C3 /* CounterContollerTitleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D087751D1E3F579300A97350 /* CounterContollerTitleView.swift */; }; @@ -681,16 +658,6 @@ D0EC6E311EB9F58900EBF1C3 /* ContactSelectionControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BC38801E40F1D80044D6FE /* ContactSelectionControllerNode.swift */; }; D0EC6E321EB9F58900EBF1C3 /* CreateGroupController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BC38691E3FB94D0044D6FE /* CreateGroupController.swift */; }; D0EC6E331EB9F58900EBF1C3 /* CreateChannelController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D018D3341E6489EC00C5E089 /* CreateChannelController.swift */; }; - D0EC6E4D1EB9F58900EBF1C3 /* PeerInfoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B843CC1DA903BB005F29E1 /* PeerInfoController.swift */; }; - D0EC6E4E1EB9F58900EBF1C3 /* GroupInfoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0486F091E523C8500091F0C /* GroupInfoController.swift */; }; - D0EC6E4F1EB9F58900EBF1C3 /* ChannelVisibilityController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E5E0E1E55F8B90029569A /* ChannelVisibilityController.swift */; }; - D0EC6E501EB9F58900EBF1C3 /* ChannelAdminsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0561DE71E574C3200E6B9E9 /* ChannelAdminsController.swift */; }; - D0EC6E511EB9F58900EBF1C3 /* ChannelBlacklistController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B98E7E1E575D2C008084B1 /* ChannelBlacklistController.swift */; }; - D0EC6E521EB9F58900EBF1C3 /* ChannelInfoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0613FC71E5F8AB100202CDB /* ChannelInfoController.swift */; }; - D0EC6E531EB9F58900EBF1C3 /* ChannelMembersController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0613FCC1E60482300202CDB /* ChannelMembersController.swift */; }; - D0EC6E541EB9F58900EBF1C3 /* ConvertToSupergroupController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0613FD41E6064D200202CDB /* ConvertToSupergroupController.swift */; }; - D0EC6E561EB9F58900EBF1C3 /* UserInfoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0528E621E65BECA00E2FEF5 /* UserInfoController.swift */; }; - D0EC6E571EB9F58900EBF1C3 /* GroupsInCommonController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D099261E1E69791E00D95539 /* GroupsInCommonController.swift */; }; D0EC6E581EB9F58900EBF1C3 /* PeerSelectionController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07CFF731DCA207200761F81 /* PeerSelectionController.swift */; }; D0EC6E591EB9F58900EBF1C3 /* PeerSelectionControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07CFF751DCA224100761F81 /* PeerSelectionControllerNode.swift */; }; D0EC6E5D1EB9F58900EBF1C3 /* PrivacyAndSecurityController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05A32DD1E6F0097002760B4 /* PrivacyAndSecurityController.swift */; }; @@ -709,14 +676,12 @@ D0EC6E6A1EB9F58900EBF1C3 /* StorageUsageController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA35001EA6127000E56FFA /* StorageUsageController.swift */; }; D0EC6E6B1EB9F58900EBF1C3 /* InstalledStickerPacksController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA0AC41E77431A005BB9B7 /* InstalledStickerPacksController.swift */; }; D0EC6E6C1EB9F58900EBF1C3 /* FeaturedStickerPacksController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E23DD71E805E2600B9B6D2 /* FeaturedStickerPacksController.swift */; }; - D0EC6E6D1EB9F58900EBF1C3 /* ItemListStickerPackItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04791661E79A22000F18979 /* ItemListStickerPackItem.swift */; }; D0EC6E6E1EB9F58900EBF1C3 /* ArchivedStickerPacksController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E23DDC1E8081A200B9B6D2 /* ArchivedStickerPacksController.swift */; }; D0EC6E731EB9F58900EBF1C3 /* WallpaperGalleryToolbarNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05174AA1EAA5B4700A1BF36 /* WallpaperGalleryToolbarNode.swift */; }; D0EC6E741EB9F58900EBF1C3 /* ThemeGridController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EC6B351EB88D0A00EBF1C3 /* ThemeGridController.swift */; }; D0EC6E751EB9F58900EBF1C3 /* ThemeGridControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EC6B371EB88D1600EBF1C3 /* ThemeGridControllerNode.swift */; }; D0EC6E761EB9F58900EBF1C3 /* SettingsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01B279A1E39386C0022A4C0 /* SettingsController.swift */; }; D0EC6E771EB9F58900EBF1C3 /* NotificationsAndSounds.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01B279C1E394A500022A4C0 /* NotificationsAndSounds.swift */; }; - D0EC6E781EB9F58900EBF1C3 /* NotificationSoundSelection.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0A749961E3AA25200AD786E /* NotificationSoundSelection.swift */; }; D0EC6E7A1EB9F58900EBF1C3 /* DebugController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CE1BD21E51BC6100404327 /* DebugController.swift */; }; D0EC6E7B1EB9F58900EBF1C3 /* DebugAccountsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E5E081E55C49C0029569A /* DebugAccountsController.swift */; }; D0EC6E7C1EB9F58900EBF1C3 /* UsernameSetupController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0528E671E65CB2C00E2FEF5 /* UsernameSetupController.swift */; }; @@ -730,7 +695,6 @@ D0EC6E841EB9F58900EBF1C3 /* NotificationItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C50E3B1E93CC2600F62E39 /* NotificationItem.swift */; }; D0EC6E851EB9F58900EBF1C3 /* ChatMessageNotificationItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C50E3F1E93D3B000F62E39 /* ChatMessageNotificationItem.swift */; }; D0EC6E891EB9F58900EBF1C3 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69E831D6B8C850046BCD6 /* FrameworkBundle.swift */; }; - D0EC6E8D1EB9F58900EBF1C3 /* SecretChatKeyVisualization.m in Sources */ = {isa = PBXBuildFile; fileRef = D00C7CF61E37BF680080C3D5 /* SecretChatKeyVisualization.m */; }; D0EC6E8F1EB9F5B200EBF1C3 /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D08D45291D5E340300A7428A /* AsyncDisplayKit.framework */; }; D0EC6E901EB9F5B200EBF1C3 /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D08D452A1D5E340300A7428A /* Display.framework */; }; D0EC6E911EB9F5B200EBF1C3 /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D08D452B1D5E340300A7428A /* Postbox.framework */; }; @@ -744,16 +708,7 @@ D0EC6EA61EB9FC2400EBF1C3 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D07551901DDA4FC70073E051 /* libc++.tbd */; }; D0EC6EBD1EBA100F00EBF1C3 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EC6EBC1EBA100F00EBF1C3 /* CoreAudio.framework */; }; D0EEE9A12165585F001292A6 /* DocumentPreviewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EEE9A02165585F001292A6 /* DocumentPreviewController.swift */; }; - D0F19F6220E5694D00EEC860 /* GroupStickerPackCurrentItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F19F6120E5694D00EEC860 /* GroupStickerPackCurrentItem.swift */; }; D0F19F6420E5A15B00EEC860 /* ChatMediaInputPeerSpecificItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F19F6320E5A15B00EEC860 /* ChatMediaInputPeerSpecificItem.swift */; }; - D0F4B01A211073C500912B92 /* DeviceContactInfoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F4B019211073C500912B92 /* DeviceContactInfoController.swift */; }; - D0F4B0222110972300912B92 /* ContactInfoStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F4B0212110972300912B92 /* ContactInfoStrings.swift */; }; - D0F67FF01EE6B8A8000E5906 /* ChannelMembersSearchController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F67FEF1EE6B8A8000E5906 /* ChannelMembersSearchController.swift */; }; - D0F67FF21EE6B915000E5906 /* ChannelMembersSearchControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F67FF11EE6B915000E5906 /* ChannelMembersSearchControllerNode.swift */; }; - D0F67FF41EE6C10F000E5906 /* ChannelMembersSearchContainerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F67FF31EE6C10F000E5906 /* ChannelMembersSearchContainerNode.swift */; }; - D0F6800A1EE750EE000E5906 /* ChannelBannedMemberController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F680091EE750EE000E5906 /* ChannelBannedMemberController.swift */; }; - D0F760DB222034910074F7E5 /* ChannelStatsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F760DA222034910074F7E5 /* ChannelStatsController.swift */; }; - D0F760DD222034980074F7E5 /* ChannelStatsControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F760DC222034980074F7E5 /* ChannelStatsControllerNode.swift */; }; D0F9720F1FFE4BD5002595C8 /* notification.caf in Resources */ = {isa = PBXBuildFile; fileRef = D0C50E431E93FCD200F62E39 /* notification.caf */; }; D0F972101FFE4BD5002595C8 /* MessageSent.caf in Resources */ = {isa = PBXBuildFile; fileRef = D073CE621DCBBE5D007511FD /* MessageSent.caf */; }; D0FA08C8204982DC00DD23FC /* ChatTextInputActionButtonsNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA08C7204982DC00DD23FC /* ChatTextInputActionButtonsNode.swift */; }; @@ -771,7 +726,6 @@ 090B48C72200BCA8005083FA /* WallpaperUploadManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallpaperUploadManager.swift; sourceTree = ""; }; 090E63ED2196FE3A00E3C035 /* OpenAddContact.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenAddContact.swift; sourceTree = ""; }; 090E777822A6A32E00CD99F5 /* ThemeSettingsThemeItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeSettingsThemeItem.swift; sourceTree = ""; }; - 090E778922A9F23C00CD99F5 /* ChannelOwnershipTransferController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelOwnershipTransferController.swift; sourceTree = ""; }; 090E778B22AA842200CD99F5 /* anim_success.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_success.json; sourceTree = ""; }; 0910B0EC21FA178C00F8F87D /* WallpaperPreviewMedia.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallpaperPreviewMedia.swift; sourceTree = ""; }; 0910B0EE21FA532D00F8F87D /* WallpaperResources.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallpaperResources.swift; sourceTree = ""; }; @@ -780,7 +734,6 @@ 091417F321EF4F5F00C8325A /* WallpaperGalleryItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallpaperGalleryItem.swift; sourceTree = ""; }; 0921F60D228EE000001A13D7 /* ChatMessageActionUrlAuthController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageActionUrlAuthController.swift; sourceTree = ""; }; 092F368C2154AAE9001A9F49 /* SFCompactRounded-Semibold.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "SFCompactRounded-Semibold.otf"; sourceTree = ""; }; - 092F368F2157AB46001A9F49 /* ItemListCallListItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ItemListCallListItem.swift; sourceTree = ""; }; 09310D1A213BC5DE0020033A /* anim_ungroup.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_ungroup.json; sourceTree = ""; }; 09310D1B213BC5DE0020033A /* anim_group.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_group.json; sourceTree = ""; }; 0940932322E73DFB003846A3 /* ChatSendMessageActionSheetController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatSendMessageActionSheetController.swift; sourceTree = ""; }; @@ -801,7 +754,6 @@ 09510B0E22F9347E0078CAB7 /* BundleResource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BundleResource.swift; sourceTree = ""; }; 09510B1222F96E5B0078CAB7 /* ChatScheduleTimeController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatScheduleTimeController.swift; sourceTree = ""; }; 09510B1422F96E6C0078CAB7 /* ChatScheduleTimeControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatScheduleTimeControllerNode.swift; sourceTree = ""; }; - 0952D1742176DEB500194860 /* NotificationMuteSettingsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationMuteSettingsController.swift; sourceTree = ""; }; 0957DE2222DE28FB001B4D57 /* ThemePreviewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemePreviewController.swift; sourceTree = ""; }; 0957DE2422DE2909001B4D57 /* ThemePreviewControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemePreviewControllerNode.swift; sourceTree = ""; }; 0962E67821B67A9800245FD9 /* ChatMessageAnimatedStickerItemNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageAnimatedStickerItemNode.swift; sourceTree = ""; }; @@ -843,7 +795,6 @@ 09D96898221DE92600B1458A /* ID3ArtworkReader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ID3ArtworkReader.swift; sourceTree = ""; }; 09DD5D4F21ECC3C400D7007A /* SuppressContactsWarning.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SuppressContactsWarning.swift; sourceTree = ""; }; 09DD5D5121ED175300D7007A /* WallpaperColorPickerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallpaperColorPickerNode.swift; sourceTree = ""; }; - 09DD88E821BAF65E000766BC /* ItemListAddressItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ItemListAddressItem.swift; sourceTree = ""; }; 09DE2F262269D5730045E975 /* PrivacyIntroController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrivacyIntroController.swift; sourceTree = ""; }; 09DE2F282269D5E30045E975 /* PrivacyIntroControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrivacyIntroControllerNode.swift; sourceTree = ""; }; 09E2D9ED226F1AF300EA0AA4 /* Emoji.mapping */ = {isa = PBXFileReference; lastKnownFileType = file; name = Emoji.mapping; path = TelegramUI/Resources/Emoji.mapping; sourceTree = ""; }; @@ -873,7 +824,6 @@ 09FFBCD62281BB2D00C33B4B /* ChatTextLinkEditController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTextLinkEditController.swift; sourceTree = ""; }; 9F06830821A404AB001D8EDB /* NotificationExceptionControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationExceptionControllerNode.swift; sourceTree = ""; }; 9F06830A21A404C4001D8EDB /* NotificationExceptionSettingsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationExceptionSettingsController.swift; sourceTree = ""; }; - D000CAB921EE130D0011B15D /* MapResourceToAvatarSizes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapResourceToAvatarSizes.swift; sourceTree = ""; }; D000CABB21F158AD0011B15D /* PrepareSecretThumbnailData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrepareSecretThumbnailData.swift; sourceTree = ""; }; D002A0D21E9BBE6700A81812 /* MultiplexedSoftwareVideoSourceManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MultiplexedSoftwareVideoSourceManager.swift; sourceTree = ""; }; D002A0D41E9BD48400A81812 /* SampleBufferPool.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SampleBufferPool.swift; sourceTree = ""; }; @@ -921,11 +871,8 @@ D00818CC22B595CB008A895F /* LightweightAccountData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LightweightAccountData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D00ACA4C20222C280045D427 /* libtgvoip.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = libtgvoip.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D00ACA592022897D0045D427 /* ProcessedPeerRestrictionText.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProcessedPeerRestrictionText.swift; sourceTree = ""; }; - D00BDA1E1EE5B69200C64C5E /* ChannelAdminController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelAdminController.swift; sourceTree = ""; }; D00C7CE51E378FD00080C3D5 /* RadialTimeoutNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadialTimeoutNode.swift; sourceTree = ""; }; D00C7CE81E379B820080C3D5 /* ChatSecretAutoremoveTimerActionSheet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatSecretAutoremoveTimerActionSheet.swift; sourceTree = ""; }; - D00C7CF51E37BF680080C3D5 /* SecretChatKeyVisualization.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SecretChatKeyVisualization.h; sourceTree = ""; }; - D00C7CF61E37BF680080C3D5 /* SecretChatKeyVisualization.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SecretChatKeyVisualization.m; sourceTree = ""; }; D00D34361E6E14E30057B307 /* ChatMessageThrottledProcessingManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageThrottledProcessingManager.swift; sourceTree = ""; }; D00DBBDC1E65650800DB5485 /* ChatReportPeerTitlePanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatReportPeerTitlePanelNode.swift; sourceTree = ""; }; D00E15251DDBD4E700ACF65C /* LegacyCamera.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyCamera.swift; sourceTree = ""; }; @@ -952,7 +899,6 @@ D01C06B41FBB7720001561AB /* ChatMediaInputSettingsItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMediaInputSettingsItem.swift; sourceTree = ""; }; D01C2AA01E758F90001F6F9A /* NavigateToChatController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NavigateToChatController.swift; sourceTree = ""; }; D01C2AAA1E75E010001F6F9A /* TwoStepVerificationUnlockController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TwoStepVerificationUnlockController.swift; sourceTree = ""; }; - D01D6BFB1E42AB3C006151C6 /* EmojiUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EmojiUtils.swift; sourceTree = ""; }; D01DBA9A209CC6AD00C64E64 /* ChatLinkPreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatLinkPreview.swift; sourceTree = ""; }; D01F66121DE8903300345CBE /* ChatTextInputMediaRecordingButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatTextInputMediaRecordingButton.swift; sourceTree = ""; }; D01FB436217CEC62009C6134 /* FetchVideoThumbnail.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchVideoThumbnail.swift; sourceTree = ""; }; @@ -977,7 +923,6 @@ D02383781DDF1A4D004018B6 /* ChatRequestInProgressTitlePanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatRequestInProgressTitlePanelNode.swift; sourceTree = ""; }; D023837D1DDF50FD004018B6 /* ChatToastAlertPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatToastAlertPanelNode.swift; sourceTree = ""; }; D02383831DDFA22C004018B6 /* ListMessageHoleItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ListMessageHoleItem.swift; sourceTree = ""; }; - D025402222E1C92D00AC0195 /* ChatSlowmodeItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatSlowmodeItem.swift; sourceTree = ""; }; D025402422E1E00100AC0195 /* ChatSlowmodeHintController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatSlowmodeHintController.swift; sourceTree = ""; }; D025402622E1F23000AC0195 /* ChatSendButtonRadialStatusNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatSendButtonRadialStatusNode.swift; sourceTree = ""; }; D025402822E1F7F500AC0195 /* ChatTextInputSlowmodePlaceholderNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTextInputSlowmodePlaceholderNode.swift; sourceTree = ""; }; @@ -1025,11 +970,18 @@ D03E3FEF2304C7FA0049C28B /* LocalMediaResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LocalMediaResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E40342304CD2A0049C28B /* PeersNearbyUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PeersNearbyUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E405C2304CE920049C28B /* Geocoding.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Geocoding.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40C62304D12D0049C28B /* PeerInfoUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PeerInfoUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41672304D4820049C28B /* PeerAvatarGalleryUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PeerAvatarGalleryUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41952304D79A0049C28B /* Emoji.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Emoji.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41CD2304D9800049C28B /* ItemListStickerPackItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListStickerPackItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41F92305634F0049C28B /* NotificationMuteSettingsUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = NotificationMuteSettingsUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E4225230564B20049C28B /* SinglePhoneInputNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SinglePhoneInputNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E425523056A4A0049C28B /* MapResourceToAvatarSizes.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MapResourceToAvatarSizes.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E428923056B610049C28B /* NotificationSoundSelectionUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = NotificationSoundSelectionUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E42B323056C730049C28B /* EncryptionKeyVisualization.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = EncryptionKeyVisualization.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E42E5230572530049C28B /* ItemListAddressItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListAddressItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E5E081E55C49C0029569A /* DebugAccountsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DebugAccountsController.swift; sourceTree = ""; }; - D03E5E0E1E55F8B90029569A /* ChannelVisibilityController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelVisibilityController.swift; sourceTree = ""; }; D04203142037162700490EA5 /* MediaInputPaneTrendingItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaInputPaneTrendingItem.swift; sourceTree = ""; }; - D04281EE200E3D88009DDE36 /* GroupInfoSearchItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupInfoSearchItem.swift; sourceTree = ""; }; - D04281F0200E4084009DDE36 /* GroupInfoSearchNavigationContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupInfoSearchNavigationContentNode.swift; sourceTree = ""; }; D04281F3200E5AB0009DDE36 /* ChatRecentActionsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatRecentActionsController.swift; sourceTree = ""; }; D04281F5200E5AC2009DDE36 /* ChatRecentActionsControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatRecentActionsControllerNode.swift; sourceTree = ""; }; D04281F9200E5CDC009DDE36 /* ChatRecentActionsControllerState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatRecentActionsControllerState.swift; sourceTree = ""; }; @@ -1040,8 +992,6 @@ D04554A321B42982007A6DD9 /* ConfirmPhoneNumberController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfirmPhoneNumberController.swift; sourceTree = ""; }; D04662801E68BA64006FAFC4 /* TransformOutgoingMessageMedia.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TransformOutgoingMessageMedia.swift; sourceTree = ""; }; D0471B531EFD8ECA0074D609 /* currencies.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = currencies.json; path = TelegramUI/Resources/currencies.json; sourceTree = ""; }; - D04791661E79A22000F18979 /* ItemListStickerPackItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemListStickerPackItem.swift; sourceTree = ""; }; - D0486F091E523C8500091F0C /* GroupInfoController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupInfoController.swift; sourceTree = ""; }; D048B338203C532800038D05 /* ChatMediaInputPane.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMediaInputPane.swift; sourceTree = ""; }; D049EAE11E447AD500A2CD3A /* StickersChatInputContextPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StickersChatInputContextPanelNode.swift; sourceTree = ""; }; D049EAE51E44AD5600A2CD3A /* ChatMediaInputMetaSectionItemNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMediaInputMetaSectionItemNode.swift; sourceTree = ""; }; @@ -1056,18 +1006,14 @@ D04BB2C21E45020A00650E93 /* AuthorizationSequencePasswordEntryController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthorizationSequencePasswordEntryController.swift; sourceTree = ""; }; D04BB2C41E45022C00650E93 /* AuthorizationSequencePasswordEntryControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthorizationSequencePasswordEntryControllerNode.swift; sourceTree = ""; }; D04ECD711FFBF22B00DE9029 /* OpenUrl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenUrl.swift; sourceTree = ""; }; - D050A463229C052A0044F11A /* ChannelDiscussionGroupSetupSearchItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelDiscussionGroupSetupSearchItem.swift; sourceTree = ""; }; - D050A465229C06460044F11A /* ChannelDiscussionGroupSearchContainerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelDiscussionGroupSearchContainerNode.swift; sourceTree = ""; }; D05174AA1EAA5B4700A1BF36 /* WallpaperGalleryToolbarNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WallpaperGalleryToolbarNode.swift; sourceTree = ""; }; D05174C21EAE583800A1BF36 /* TelegramRootController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramRootController.swift; sourceTree = ""; }; D0528E551E65750600E2FEF5 /* SecretChatHandshakeStatusInputPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatHandshakeStatusInputPanelNode.swift; sourceTree = ""; }; D0528E571E65773300E2FEF5 /* DeleteChatInputPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeleteChatInputPanelNode.swift; sourceTree = ""; }; - D0528E621E65BECA00E2FEF5 /* UserInfoController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserInfoController.swift; sourceTree = ""; }; D0528E671E65CB2C00E2FEF5 /* UsernameSetupController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UsernameSetupController.swift; sourceTree = ""; }; D0528E6C1E65DE3B00E2FEF5 /* WebpagePreviewAccessoryPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebpagePreviewAccessoryPanelNode.swift; sourceTree = ""; }; D053B4361F1A9CA000E2D58A /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; D053DADB201AAAB100993D32 /* ChatTextInputMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTextInputMenu.swift; sourceTree = ""; }; - D0561DE71E574C3200E6B9E9 /* ChannelAdminsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelAdminsController.swift; sourceTree = ""; }; D0568AAC1DF198130022E7DA /* AudioWaveformNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AudioWaveformNode.swift; sourceTree = ""; }; D056CD6F1FF147B000880D28 /* IconButtonNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconButtonNode.swift; sourceTree = ""; }; D056CD751FF2A30900880D28 /* ChatSwipeToReplyRecognizer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatSwipeToReplyRecognizer.swift; sourceTree = ""; }; @@ -1076,8 +1022,6 @@ D0575AEC1E9FF1AD006F2541 /* ChatMediaInputTrendingPane.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMediaInputTrendingPane.swift; sourceTree = ""; }; D0575AEE1E9FF881006F2541 /* ChatMediaInputTrendingItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMediaInputTrendingItem.swift; sourceTree = ""; }; D0575AF61EA0ED4F006F2541 /* ChatMessageInstantVideoItemNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageInstantVideoItemNode.swift; sourceTree = ""; }; - D0575AF91EA0FDA7006F2541 /* AvatarGalleryController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarGalleryController.swift; sourceTree = ""; }; - D0575AFB1EA104A6006F2541 /* PeerAvatarImageGalleryItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerAvatarImageGalleryItem.swift; sourceTree = ""; }; D05811931DD5F9380057C769 /* AccountContext.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountContext.swift; sourceTree = ""; }; D05A32DD1E6F0097002760B4 /* PrivacyAndSecurityController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PrivacyAndSecurityController.swift; sourceTree = ""; }; D05A32E91E6F143C002760B4 /* RecentSessionsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RecentSessionsController.swift; sourceTree = ""; }; @@ -1094,9 +1038,6 @@ D060184322F35D2400796784 /* ProgressNavigationButtonNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ProgressNavigationButtonNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D060184522F35D2B00796784 /* ItemListUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D06018B422F3659900796784 /* ChatTextFormat.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTextFormat.swift; sourceTree = ""; }; - D0613FC71E5F8AB100202CDB /* ChannelInfoController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelInfoController.swift; sourceTree = ""; }; - D0613FCC1E60482300202CDB /* ChannelMembersController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelMembersController.swift; sourceTree = ""; }; - D0613FD41E6064D200202CDB /* ConvertToSupergroupController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConvertToSupergroupController.swift; sourceTree = ""; }; D06350AD2229A7F800FA2B32 /* InChatPrefetchManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InChatPrefetchManager.swift; sourceTree = ""; }; D0642EFB1F3E1E7B00792790 /* ChatHistoryNavigationButtons.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatHistoryNavigationButtons.swift; sourceTree = ""; }; D06879561DB8F22200424BBD /* FetchCachedRepresentations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FetchCachedRepresentations.swift; sourceTree = ""; }; @@ -1136,10 +1077,6 @@ D07CFF751DCA224100761F81 /* PeerSelectionControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerSelectionControllerNode.swift; sourceTree = ""; }; D07CFF861DCAAE5E00761F81 /* ForwardAccessoryPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ForwardAccessoryPanelNode.swift; sourceTree = ""; }; D07E413C208A494D00FCA8F0 /* ProxyServerActionSheetController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProxyServerActionSheetController.swift; sourceTree = ""; }; - D081A9A822EB26AE0069C449 /* PhoneLabelController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhoneLabelController.swift; sourceTree = ""; }; - D083491B209361DC008CFD52 /* AvatarGalleryItemFooterContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AvatarGalleryItemFooterContentNode.swift; sourceTree = ""; }; - D084023320E295F000065674 /* GroupStickerPackSetupController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupStickerPackSetupController.swift; sourceTree = ""; }; - D08775081E3E59DE00A97350 /* PeerNotificationSoundStrings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerNotificationSoundStrings.swift; sourceTree = ""; }; D087750F1E3F46A400A97350 /* ComposeController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ComposeController.swift; sourceTree = ""; }; D08775111E3F46AB00A97350 /* ComposeControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ComposeControllerNode.swift; sourceTree = ""; }; D08775181E3F53FC00A97350 /* ContactMultiselectionController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContactMultiselectionController.swift; sourceTree = ""; }; @@ -1158,7 +1095,6 @@ D0879C7322F874E100C4D6B3 /* PeerOnlineMarkerNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PeerOnlineMarkerNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0879C9522F875C000C4D6B3 /* PeerPresenceStatusManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PeerPresenceStatusManager.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0879CCB22F876DD00C4D6B3 /* ChatListSearchRecentPeersNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ChatListSearchRecentPeersNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D08984ED2114964700918162 /* GroupPreHistorySetupController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupPreHistorySetupController.swift; sourceTree = ""; }; D08984EF2114AE0C00918162 /* DataPrivacySettingsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataPrivacySettingsController.swift; sourceTree = ""; }; D08BDF631FA37BEA009D08E1 /* ChatRecordingPreviewInputPanelNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatRecordingPreviewInputPanelNode.swift; sourceTree = ""; }; D08BDF651FA8CB10009D08E1 /* EditSettingsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditSettingsController.swift; sourceTree = ""; }; @@ -1177,8 +1113,6 @@ D0943B041FDDFDA0001522CC /* OverlayInstantVideoNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverlayInstantVideoNode.swift; sourceTree = ""; }; D0943B061FDEC528001522CC /* InstantVideoRadialStatusNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InstantVideoRadialStatusNode.swift; sourceTree = ""; }; D0955FB32191278C00F89427 /* PresentationStrings.mapping */ = {isa = PBXFileReference; lastKnownFileType = file; name = PresentationStrings.mapping; path = TelegramUI/Resources/PresentationStrings.mapping; sourceTree = ""; }; - D097C26720DD0A1D007BB4B8 /* PeerReportController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerReportController.swift; sourceTree = ""; }; - D099261E1E69791E00D95539 /* GroupsInCommonController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupsInCommonController.swift; sourceTree = ""; }; D099E21F229405BB00561B75 /* Weak.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Weak.swift; sourceTree = ""; }; D099EA1E1DE7450B001AF5A8 /* HorizontalListContextResultsChatInputContextPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HorizontalListContextResultsChatInputContextPanelNode.swift; sourceTree = ""; }; D099EA201DE7451D001AF5A8 /* HorizontalListContextResultsChatInputPanelItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HorizontalListContextResultsChatInputPanelItem.swift; sourceTree = ""; }; @@ -1208,7 +1142,6 @@ D0A11BF91E7836C20081CE03 /* ChangePhoneNumberIntroController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangePhoneNumberIntroController.swift; sourceTree = ""; }; D0A11BFB1E7840750081CE03 /* ChangePhoneNumberController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangePhoneNumberController.swift; sourceTree = ""; }; D0A11BFD1E7840A50081CE03 /* ChangePhoneNumberControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangePhoneNumberControllerNode.swift; sourceTree = ""; }; - D0A749961E3AA25200AD786E /* NotificationSoundSelection.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationSoundSelection.swift; sourceTree = ""; }; D0A8998C217A294100759EE6 /* SaveIncomingMediaController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SaveIncomingMediaController.swift; sourceTree = ""; }; D0AA840B1FEB2BA3005C6E91 /* OverlayPlayerControlsNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverlayPlayerControlsNode.swift; sourceTree = ""; }; D0AB0BB01D6718DA002C78E7 /* libiconv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libiconv.tbd; path = usr/lib/libiconv.tbd; sourceTree = SDKROOT; }; @@ -1218,7 +1151,6 @@ D0AB0BB71D67191C002C78E7 /* SSignalKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SSignalKit.framework; path = "../../../../Library/Developer/Xcode/DerivedData/Telegram-iOS-diblohvjozhgaifjcniwdlixlilx/Build/Products/Debug-iphoneos/SSignalKit.framework"; sourceTree = ""; }; D0AB0BBA1D6719B5002C78E7 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; D0AB262821C307D7008F6685 /* ChatMessagePollBubbleContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessagePollBubbleContentNode.swift; sourceTree = ""; }; - D0AB269D21D56A12008F6685 /* ChannelPermissionsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelPermissionsController.swift; sourceTree = ""; }; D0ACCB1B1EC5FF4B0079D8BF /* ChatMessageCallBubbleContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageCallBubbleContentNode.swift; sourceTree = ""; }; D0AD02E91FFFEBEF00C1DCFF /* ChatMessageLiveLocationTextNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageLiveLocationTextNode.swift; sourceTree = ""; }; D0ADF965212E05A300310BBC /* TonePlayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TonePlayer.swift; sourceTree = ""; }; @@ -1239,9 +1171,6 @@ D0B21B16220D85E7003F741D /* TabBarAccountSwitchControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabBarAccountSwitchControllerNode.swift; sourceTree = ""; }; D0B21B1E22156D92003F741D /* LegacyCache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyCache.swift; sourceTree = ""; }; D0B21B202215B539003F741D /* LogoutOptionsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogoutOptionsController.swift; sourceTree = ""; }; - D0B2F76720528E3D00D3BFB9 /* UserInfoEditingPhoneActionItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInfoEditingPhoneActionItem.swift; sourceTree = ""; }; - D0B2F7692052920D00D3BFB9 /* UserInfoEditingPhoneItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInfoEditingPhoneItem.swift; sourceTree = ""; }; - D0B2F76B2052A7D600D3BFB9 /* SinglePhoneInputNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SinglePhoneInputNode.swift; sourceTree = ""; }; D0B37C5B1F8D22AE004252DF /* ThemeSettingsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeSettingsController.swift; sourceTree = ""; }; D0B37C5D1F8D26A8004252DF /* ThemeSettingsChatPreviewItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeSettingsChatPreviewItem.swift; sourceTree = ""; }; D0B37C5F1F8D286E004252DF /* ThemeSettingsFontSizeItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeSettingsFontSizeItem.swift; sourceTree = ""; }; @@ -1250,12 +1179,10 @@ D0B69C3820EBB397003632C7 /* ChatMessageInteractiveInstantVideoNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageInteractiveInstantVideoNode.swift; sourceTree = ""; }; D0B7F8E11D8A18070045D939 /* PeerMediaCollectionController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerMediaCollectionController.swift; sourceTree = ""; }; D0B7F8E71D8A1F5F0045D939 /* PeerMediaCollectionControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerMediaCollectionControllerNode.swift; sourceTree = ""; }; - D0B843CC1DA903BB005F29E1 /* PeerInfoController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerInfoController.swift; sourceTree = ""; }; D0B85C1B1FF6F76000E795B4 /* AuthorizationSequencePasswordRecoveryController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthorizationSequencePasswordRecoveryController.swift; sourceTree = ""; }; D0B85C1D1FF6F76600E795B4 /* AuthorizationSequencePasswordRecoveryControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthorizationSequencePasswordRecoveryControllerNode.swift; sourceTree = ""; }; D0B85C201FF70BEC00E795B4 /* AuthorizationSequenceAwaitingAccountResetControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthorizationSequenceAwaitingAccountResetControllerNode.swift; sourceTree = ""; }; D0B85C221FF70BF400E795B4 /* AuthorizationSequenceAwaitingAccountResetController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthorizationSequenceAwaitingAccountResetController.swift; sourceTree = ""; }; - D0B98E7E1E575D2C008084B1 /* ChannelBlacklistController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelBlacklistController.swift; sourceTree = ""; }; D0BA6F821D784C520034826E /* ChatInputPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatInputPanelNode.swift; sourceTree = ""; }; D0BA6F841D784ECD0034826E /* ChatInterfaceStateInputPanels.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatInterfaceStateInputPanels.swift; sourceTree = ""; }; D0BA6F871D784F880034826E /* ChatMessageSelectionInputPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageSelectionInputPanelNode.swift; sourceTree = ""; }; @@ -1268,7 +1195,6 @@ D0BCC3D520404CD8008126C2 /* ChatMessageActionSheetControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageActionSheetControllerNode.swift; sourceTree = ""; }; D0BFAE4520AB04FB00793CF2 /* ChatRestrictedInputPanelNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatRestrictedInputPanelNode.swift; sourceTree = ""; }; D0BFAE4D20AB1D7B00793CF2 /* DisabledContextResultsChatInputContextPanelNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DisabledContextResultsChatInputContextPanelNode.swift; sourceTree = ""; }; - D0BFAE4F20AB2A1300793CF2 /* PeerBanTimeoutController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerBanTimeoutController.swift; sourceTree = ""; }; D0C0B59A1EE019E5000F4D2C /* ChatSearchNavigationContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatSearchNavigationContentNode.swift; sourceTree = ""; }; D0C0B59E1EE082F5000F4D2C /* ChatSearchInputPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatSearchInputPanelNode.swift; sourceTree = ""; }; D0C0B5B01EE1C421000F4D2C /* ChatDateSelectionSheet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatDateSelectionSheet.swift; sourceTree = ""; }; @@ -1408,13 +1334,9 @@ D0DF0CA01D821B28008AEB01 /* HashtagChatInputPanelItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HashtagChatInputPanelItem.swift; sourceTree = ""; }; D0DF0CA31D82BCD0008AEB01 /* MentionChatInputContextPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MentionChatInputContextPanelNode.swift; sourceTree = ""; }; D0DFD5E11FCE2BA50039B3B1 /* CalculatingCacheSizeItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CalculatingCacheSizeItem.swift; sourceTree = ""; }; - D0E119992297F9C6008CAE3A /* ChannelDiscussionGroupSetupController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelDiscussionGroupSetupController.swift; sourceTree = ""; }; - D0E1199B229808B8008CAE3A /* ChannelDiscussionGroupSetupHeaderItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelDiscussionGroupSetupHeaderItem.swift; sourceTree = ""; }; - D0E1199D229809B6008CAE3A /* ChannelDiscussionGroupActionSheetItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelDiscussionGroupActionSheetItem.swift; sourceTree = ""; }; D0E23DD71E805E2600B9B6D2 /* FeaturedStickerPacksController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FeaturedStickerPacksController.swift; sourceTree = ""; }; D0E23DDC1E8081A200B9B6D2 /* ArchivedStickerPacksController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ArchivedStickerPacksController.swift; sourceTree = ""; }; D0E2CE6B222930540084E3DD /* PrefetchManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrefetchManager.swift; sourceTree = ""; }; - D0E305A41E5B2BFB00D7A3A2 /* ValidateAddressNameInteractive.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ValidateAddressNameInteractive.swift; sourceTree = ""; }; D0E35A061DE4803400BC6096 /* VerticalListContextResultsChatInputContextPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VerticalListContextResultsChatInputContextPanelNode.swift; sourceTree = ""; }; D0E35A081DE4804900BC6096 /* VerticalListContextResultsChatInputPanelItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VerticalListContextResultsChatInputPanelItem.swift; sourceTree = ""; }; D0E7A1BC1D8C246D00C37A6F /* ChatHistoryListNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatHistoryListNode.swift; sourceTree = ""; }; @@ -1427,10 +1349,6 @@ D0E8175620122DAD00B82BBB /* ChatRecentActionsSearchNavigationContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatRecentActionsSearchNavigationContentNode.swift; sourceTree = ""; }; D0E8175820122FE100B82BBB /* ChatRecentActionsFilterController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatRecentActionsFilterController.swift; sourceTree = ""; }; D0E8175A201254FA00B82BBB /* ChatRecentActionsEmptyNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatRecentActionsEmptyNode.swift; sourceTree = ""; }; - D0E8B8B8204477B600605593 /* SecretChatKeyVisualization.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretChatKeyVisualization.swift; sourceTree = ""; }; - D0E8B8BA2044780600605593 /* ItemListSecretChatKeyItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ItemListSecretChatKeyItem.swift; sourceTree = ""; }; - D0E8B8BC204479A500605593 /* SecretChatKeyController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretChatKeyController.swift; sourceTree = ""; }; - D0E8B8BE20447A4600605593 /* SecretChatKeyControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretChatKeyControllerNode.swift; sourceTree = ""; }; D0E9B9E91F00853C00F079A4 /* PhoneCountries.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PhoneCountries.txt; path = TelegramUI/Resources/PhoneCountries.txt; sourceTree = ""; }; D0E9BA691F056F4C00F079A4 /* stp_card_amex@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_amex@2x.png"; sourceTree = ""; }; D0E9BA6A1F056F4C00F079A4 /* stp_card_amex@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_amex@3x.png"; sourceTree = ""; }; @@ -1490,20 +1408,13 @@ D0EF40DE1E73100D000DFCD4 /* ChatHistoryNavigationStack.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatHistoryNavigationStack.swift; sourceTree = ""; }; D0F02CCB1E96EF350065DEE2 /* ChatMediaInputStickerPane.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMediaInputStickerPane.swift; sourceTree = ""; }; D0F02CCD1E96FACE0065DEE2 /* ChatMediaInputGifPane.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMediaInputGifPane.swift; sourceTree = ""; }; - D0F19F6120E5694D00EEC860 /* GroupStickerPackCurrentItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupStickerPackCurrentItem.swift; sourceTree = ""; }; D0F19F6320E5A15B00EEC860 /* ChatMediaInputPeerSpecificItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMediaInputPeerSpecificItem.swift; sourceTree = ""; }; D0F3A8AA1E82D83E00B4C64C /* TelegramAccountAuxiliaryMethods.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramAccountAuxiliaryMethods.swift; sourceTree = ""; }; D0F3A8B51E83120A00B4C64C /* FetchResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FetchResource.swift; sourceTree = ""; }; D0F3A8B91E831E6300B4C64C /* FetchVideoMediaResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FetchVideoMediaResource.swift; sourceTree = ""; }; - D0F4B019211073C500912B92 /* DeviceContactInfoController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceContactInfoController.swift; sourceTree = ""; }; - D0F4B0212110972300912B92 /* ContactInfoStrings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactInfoStrings.swift; sourceTree = ""; }; D0F53BEB1E784DA900117362 /* ChangePhoneNumberCodeController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangePhoneNumberCodeController.swift; sourceTree = ""; }; D0F53BF61E79593500117362 /* AuthorizationSequenceSignUpController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthorizationSequenceSignUpController.swift; sourceTree = ""; }; D0F53BF81E79593F00117362 /* AuthorizationSequenceSignUpControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthorizationSequenceSignUpControllerNode.swift; sourceTree = ""; }; - D0F67FEF1EE6B8A8000E5906 /* ChannelMembersSearchController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelMembersSearchController.swift; sourceTree = ""; }; - D0F67FF11EE6B915000E5906 /* ChannelMembersSearchControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelMembersSearchControllerNode.swift; sourceTree = ""; }; - D0F67FF31EE6C10F000E5906 /* ChannelMembersSearchContainerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelMembersSearchContainerNode.swift; sourceTree = ""; }; - D0F680091EE750EE000E5906 /* ChannelBannedMemberController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelBannedMemberController.swift; sourceTree = ""; }; D0F69CD61D6B87D30046BCD6 /* MediaManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MediaManager.swift; sourceTree = ""; }; D0F69DB91D6B88190046BCD6 /* TelegramUI.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = TelegramUI.xcconfig; path = TelegramUI/Config/TelegramUI.xcconfig; sourceTree = ""; }; D0F69DC41D6B89E10046BCD6 /* RadialProgressNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadialProgressNode.swift; sourceTree = ""; }; @@ -1540,8 +1451,6 @@ D0F69EA91D6B9BCB0046BCD6 /* libavformat.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libavformat.a; path = "third-party/FFmpeg-iOS/lib/libavformat.a"; sourceTree = ""; }; D0F69EAA1D6B9BCB0046BCD6 /* libavutil.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libavutil.a; path = "third-party/FFmpeg-iOS/lib/libavutil.a"; sourceTree = ""; }; D0F69EAB1D6B9BCB0046BCD6 /* libswresample.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libswresample.a; path = "third-party/FFmpeg-iOS/lib/libswresample.a"; sourceTree = ""; }; - D0F760DA222034910074F7E5 /* ChannelStatsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelStatsController.swift; sourceTree = ""; }; - D0F760DC222034980074F7E5 /* ChannelStatsControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelStatsControllerNode.swift; sourceTree = ""; }; D0F7AB381DCFF87B009AD9A1 /* ChatMessageDateHeader.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageDateHeader.swift; sourceTree = ""; }; D0FA08C7204982DC00DD23FC /* ChatTextInputActionButtonsNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTextInputActionButtonsNode.swift; sourceTree = ""; }; D0FA08C92049BEAC00DD23FC /* ChatEmptyNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatEmptyNode.swift; sourceTree = ""; }; @@ -1564,6 +1473,16 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D03E42E6230572530049C28B /* ItemListAddressItem.framework in Frameworks */, + D03E42B423056C730049C28B /* EncryptionKeyVisualization.framework in Frameworks */, + D03E428A23056B610049C28B /* NotificationSoundSelectionUI.framework in Frameworks */, + D03E425623056A4A0049C28B /* MapResourceToAvatarSizes.framework in Frameworks */, + D03E4226230564B20049C28B /* SinglePhoneInputNode.framework in Frameworks */, + D03E41FA2305634F0049C28B /* NotificationMuteSettingsUI.framework in Frameworks */, + D03E41CE2304D9800049C28B /* ItemListStickerPackItem.framework in Frameworks */, + D03E41962304D79A0049C28B /* Emoji.framework in Frameworks */, + D03E41682304D4820049C28B /* PeerAvatarGalleryUI.framework in Frameworks */, + D03E40C72304D12D0049C28B /* PeerInfoUI.framework in Frameworks */, D03E405D2304CE920049C28B /* Geocoding.framework in Frameworks */, D03E40352304CD2A0049C28B /* PeersNearbyUI.framework in Frameworks */, D03E3FF02304C7FA0049C28B /* LocalMediaResources.framework in Frameworks */, @@ -1814,7 +1733,6 @@ isa = PBXGroup; children = ( D000CABB21F158AD0011B15D /* PrepareSecretThumbnailData.swift */, - D0E8B8B8204477B600605593 /* SecretChatKeyVisualization.swift */, D0F69E941D6B8C9B0046BCD6 /* ConvertToWebP.swift */, ); name = Images; @@ -1921,8 +1839,6 @@ children = ( D0BCC3D1203F0A6C008126C2 /* StringForMessageTimestampStatus.swift */, D00ACA592022897D0045D427 /* ProcessedPeerRestrictionText.swift */, - D01D6BFB1E42AB3C006151C6 /* EmojiUtils.swift */, - D08775081E3E59DE00A97350 /* PeerNotificationSoundStrings.swift */, 0900678E21ED8E0E00530762 /* HexColor.swift */, 0947FCAF224055990086741C /* StringHash.swift */, 09F2158C225CF5BC00AEDF6D /* Pasteboard.swift */, @@ -1942,7 +1858,6 @@ isa = PBXGroup; children = ( D0192D43210A5AA50005FA10 /* DeviceContactDataManager.swift */, - D0F4B0212110972300912B92 /* ContactInfoStrings.swift */, 090E63ED2196FE3A00E3C035 /* OpenAddContact.swift */, ); name = "Device Contacts"; @@ -2041,7 +1956,6 @@ children = ( D0579E6D2179178700495DC7 /* Exceptions */, D01B279C1E394A500022A4C0 /* NotificationsAndSounds.swift */, - D0A749961E3AA25200AD786E /* NotificationSoundSelection.swift */, D02C81722177AC5900CD1006 /* NotificationSearchItem.swift */, ); name = Notifications; @@ -2192,15 +2106,6 @@ name = Root; sourceTree = ""; }; - D0575AF81EA0FD94006F2541 /* Avatar Gallery */ = { - isa = PBXGroup; - children = ( - D0575AF91EA0FDA7006F2541 /* AvatarGalleryController.swift */, - D083491B209361DC008CFD52 /* AvatarGalleryItemFooterContentNode.swift */, - ); - name = "Avatar Gallery"; - sourceTree = ""; - }; D0579E6D2179178700495DC7 /* Exceptions */ = { isa = PBXGroup; children = ( @@ -2314,6 +2219,16 @@ D08D45281D5E340200A7428A /* Frameworks */ = { isa = PBXGroup; children = ( + D03E42E5230572530049C28B /* ItemListAddressItem.framework */, + D03E42B323056C730049C28B /* EncryptionKeyVisualization.framework */, + D03E428923056B610049C28B /* NotificationSoundSelectionUI.framework */, + D03E425523056A4A0049C28B /* MapResourceToAvatarSizes.framework */, + D03E4225230564B20049C28B /* SinglePhoneInputNode.framework */, + D03E41F92305634F0049C28B /* NotificationMuteSettingsUI.framework */, + D03E41CD2304D9800049C28B /* ItemListStickerPackItem.framework */, + D03E41952304D79A0049C28B /* Emoji.framework */, + D03E41672304D4820049C28B /* PeerAvatarGalleryUI.framework */, + D03E40C62304D12D0049C28B /* PeerInfoUI.framework */, D03E405C2304CE920049C28B /* Geocoding.framework */, D03E40342304CD2A0049C28B /* PeersNearbyUI.framework */, D03E3FEF2304C7FA0049C28B /* LocalMediaResources.framework */, @@ -2619,7 +2534,6 @@ D0C50E3D1E93D09200F62E39 /* NotificationItemContainerNode.swift */, D0C50E3B1E93CC2600F62E39 /* NotificationItem.swift */, D0C50E3F1E93D3B000F62E39 /* ChatMessageNotificationItem.swift */, - 0952D1742176DEB500194860 /* NotificationMuteSettingsController.swift */, ); name = Notifications; sourceTree = ""; @@ -2903,52 +2817,6 @@ path = TelegramUI/Resources/Stripe; sourceTree = ""; }; - D0EE97131D88BB1A006C18E1 /* Peer Info */ = { - isa = PBXGroup; - children = ( - D0B843CC1DA903BB005F29E1 /* PeerInfoController.swift */, - D0486F091E523C8500091F0C /* GroupInfoController.swift */, - D03E5E0E1E55F8B90029569A /* ChannelVisibilityController.swift */, - D0561DE71E574C3200E6B9E9 /* ChannelAdminsController.swift */, - D00BDA1E1EE5B69200C64C5E /* ChannelAdminController.swift */, - D0F680091EE750EE000E5906 /* ChannelBannedMemberController.swift */, - D0B98E7E1E575D2C008084B1 /* ChannelBlacklistController.swift */, - D0AB269D21D56A12008F6685 /* ChannelPermissionsController.swift */, - D0613FC71E5F8AB100202CDB /* ChannelInfoController.swift */, - D0613FCC1E60482300202CDB /* ChannelMembersController.swift */, - D0613FD41E6064D200202CDB /* ConvertToSupergroupController.swift */, - D08984ED2114964700918162 /* GroupPreHistorySetupController.swift */, - D0528E621E65BECA00E2FEF5 /* UserInfoController.swift */, - D099261E1E69791E00D95539 /* GroupsInCommonController.swift */, - D0F67FEF1EE6B8A8000E5906 /* ChannelMembersSearchController.swift */, - D0F67FF11EE6B915000E5906 /* ChannelMembersSearchControllerNode.swift */, - D0F67FF31EE6C10F000E5906 /* ChannelMembersSearchContainerNode.swift */, - D04281EE200E3D88009DDE36 /* GroupInfoSearchItem.swift */, - D04281F0200E4084009DDE36 /* GroupInfoSearchNavigationContentNode.swift */, - D0E8B8BA2044780600605593 /* ItemListSecretChatKeyItem.swift */, - D0E8B8BC204479A500605593 /* SecretChatKeyController.swift */, - D0E8B8BE20447A4600605593 /* SecretChatKeyControllerNode.swift */, - D0BFAE4F20AB2A1300793CF2 /* PeerBanTimeoutController.swift */, - D097C26720DD0A1D007BB4B8 /* PeerReportController.swift */, - D084023320E295F000065674 /* GroupStickerPackSetupController.swift */, - D0F19F6120E5694D00EEC860 /* GroupStickerPackCurrentItem.swift */, - D0F4B019211073C500912B92 /* DeviceContactInfoController.swift */, - 092F368F2157AB46001A9F49 /* ItemListCallListItem.swift */, - 09DD88E821BAF65E000766BC /* ItemListAddressItem.swift */, - D0F760DA222034910074F7E5 /* ChannelStatsController.swift */, - D0F760DC222034980074F7E5 /* ChannelStatsControllerNode.swift */, - D0E119992297F9C6008CAE3A /* ChannelDiscussionGroupSetupController.swift */, - D0E1199B229808B8008CAE3A /* ChannelDiscussionGroupSetupHeaderItem.swift */, - D0E1199D229809B6008CAE3A /* ChannelDiscussionGroupActionSheetItem.swift */, - D050A463229C052A0044F11A /* ChannelDiscussionGroupSetupSearchItem.swift */, - D050A465229C06460044F11A /* ChannelDiscussionGroupSearchContainerNode.swift */, - 090E778922A9F23C00CD99F5 /* ChannelOwnershipTransferController.swift */, - D025402222E1C92D00AC0195 /* ChatSlowmodeItem.swift */, - D081A9A822EB26AE0069C449 /* PhoneLabelController.swift */, - ); - name = "Peer Info"; - sourceTree = ""; - }; D0EEE99F2165583B001292A6 /* Document */ = { isa = PBXGroup; children = ( @@ -3003,7 +2871,6 @@ D00C7CE51E378FD00080C3D5 /* RadialTimeoutNode.swift */, D0568AAC1DF198130022E7DA /* AudioWaveformNode.swift */, D0BC38621E3F9EFA0044D6FE /* EditableTokenListNode.swift */, - D0B2F76B2052A7D600D3BFB9 /* SinglePhoneInputNode.swift */, D056CD6F1FF147B000880D28 /* IconButtonNode.swift */, 09F85BA621E7DA5F00D73170 /* BlurredImageNode.swift */, 09749BCE21F236F2008FDDE9 /* ModernCheckNode.swift */, @@ -3021,9 +2888,7 @@ D00DE6961E8E8E21003F0D76 /* Share */, D008178022B47450008A895F /* Notification Content */, D0F69E4E1D6B8BB90046BCD6 /* Media */, - D0F69E6C1D6B8C220046BCD6 /* Contacts */, D0BC38681E3FB92B0044D6FE /* Compose */, - D0EE97131D88BB1A006C18E1 /* Peer Info */, D0D2689B1D79D31500C422DA /* Peer Selection */, D0F69E791D6B8C3B0046BCD6 /* Settings */, D0C50E361E93CAF200F62E39 /* Notifications */, @@ -3179,7 +3044,6 @@ children = ( D0B7F8DF1D8A17D20045D939 /* Collection */, D0F69E4F1D6B8BC40046BCD6 /* Gallery */, - D0575AF81EA0FD94006F2541 /* Avatar Gallery */, D0EEE99F2165583B001292A6 /* Document */, D07827CC1E03F32C00071108 /* Instant Page */, D020A9D81FEAE611008C66F7 /* Player */, @@ -3199,20 +3063,10 @@ D0F69E5A1D6B8BDD0046BCD6 /* Items */ = { isa = PBXGroup; children = ( - D0575AFB1EA104A6006F2541 /* PeerAvatarImageGalleryItem.swift */, ); name = Items; sourceTree = ""; }; - D0F69E6C1D6B8C220046BCD6 /* Contacts */ = { - isa = PBXGroup; - children = ( - D0B2F76720528E3D00D3BFB9 /* UserInfoEditingPhoneActionItem.swift */, - D0B2F7692052920D00D3BFB9 /* UserInfoEditingPhoneItem.swift */, - ); - name = Contacts; - sourceTree = ""; - }; D0F69E791D6B8C3B0046BCD6 /* Settings */ = { isa = PBXGroup; children = ( @@ -3246,8 +3100,6 @@ isa = PBXGroup; children = ( D0F69E831D6B8C850046BCD6 /* FrameworkBundle.swift */, - D00C7CF51E37BF680080C3D5 /* SecretChatKeyVisualization.h */, - D00C7CF61E37BF680080C3D5 /* SecretChatKeyVisualization.m */, D0208AD31FA33D14001F0D5F /* RaiseToListenActivator.h */, D0208AD41FA33D14001F0D5F /* RaiseToListenActivator.m */, D0208AD71FA34017001F0D5F /* DeviceProximityManager.h */, @@ -3270,10 +3122,8 @@ D01848F021A2323D00B6DEBD /* Strings */, D073CE701DCBF23F007511FD /* DeclareEncodables.swift */, D073CE641DCBC26B007511FD /* ServiceSoundManager.swift */, - D0E305A41E5B2BFB00D7A3A2 /* ValidateAddressNameInteractive.swift */, D0F3A8AA1E82D83E00B4C64C /* TelegramAccountAuxiliaryMethods.swift */, D01DBA9A209CC6AD00C64E64 /* ChatLinkPreview.swift */, - D000CAB921EE130D0011B15D /* MapResourceToAvatarSizes.swift */, 090B48C72200BCA8005083FA /* WallpaperUploadManager.swift */, 09D96898221DE92600B1458A /* ID3ArtworkReader.swift */, 09E4A806223D4B860038140F /* AccountUtils.swift */, @@ -3329,7 +3179,6 @@ children = ( D0FA0AC41E77431A005BB9B7 /* InstalledStickerPacksController.swift */, D0E23DD71E805E2600B9B6D2 /* FeaturedStickerPacksController.swift */, - D04791661E79A22000F18979 /* ItemListStickerPackItem.swift */, D0E23DDC1E8081A200B9B6D2 /* ArchivedStickerPacksController.swift */, ); name = Stickers; @@ -3588,16 +3437,10 @@ D0383EE6207D299600C45548 /* EmojisChatInputPanelItem.swift in Sources */, D00817E322B47A14008A895F /* TGPresentationAutoNightPreferences.m in Sources */, D03E3D2B23045B120049C28B /* ChatMessageRestrictedBubbleContentNode.swift in Sources */, - D0E1199E229809B6008CAE3A /* ChannelDiscussionGroupActionSheetItem.swift in Sources */, 09EDAD2A220DA6A40012A50B /* VolumeButtons.swift in Sources */, - D0E1199A2297F9C6008CAE3A /* ChannelDiscussionGroupSetupController.swift in Sources */, - D083491C209361DC008CFD52 /* AvatarGalleryItemFooterContentNode.swift in Sources */, - 090E778A22A9F23C00CD99F5 /* ChannelOwnershipTransferController.swift in Sources */, D06E4C352134AE3C00088087 /* ThemeAutoNightSettingsController.swift in Sources */, - D0B2F76C2052A7D600D3BFB9 /* SinglePhoneInputNode.swift in Sources */, D04281F6200E5AC2009DDE36 /* ChatRecentActionsControllerNode.swift in Sources */, 09DD5D5221ED175300D7007A /* WallpaperColorPickerNode.swift in Sources */, - D0B2F76820528E3D00D3BFB9 /* UserInfoEditingPhoneActionItem.swift in Sources */, D01848E821A03BDA00B6DEBD /* ChatSearchState.swift in Sources */, D0208ADC1FA346A4001F0D5F /* RaiseToListen.swift in Sources */, 09D304182173C15700C00567 /* WatchSettingsController.swift in Sources */, @@ -3607,12 +3450,9 @@ D0EC6CC11EB9F58800EBF1C3 /* LegacyCamera.swift in Sources */, D0754D1E1EEDDF6200884F6E /* ChatMessageAttachedContentNode.swift in Sources */, D0CFBB911FD881A600B65C0D /* AudioRecordningToneData.swift in Sources */, - D050A466229C06460044F11A /* ChannelDiscussionGroupSearchContainerNode.swift in Sources */, D0EC6CC51EB9F58800EBF1C3 /* TGDataItem.m in Sources */, - 092F36902157AB46001A9F49 /* ItemListCallListItem.swift in Sources */, D00817D522B47A14008A895F /* ApplicationShortcutItem.swift in Sources */, D077C5C122B59A800097D617 /* ApplicationContext.swift in Sources */, - D0EC6CC71EB9F58800EBF1C3 /* PeerNotificationSoundStrings.swift in Sources */, D0EC6CC91EB9F58800EBF1C3 /* ConvertToWebP.swift in Sources */, D09E637F1F0E8C9F003444CD /* PeerMessagesMediaPlaylist.swift in Sources */, D0EC6CCC1EB9F58800EBF1C3 /* ServiceSoundManager.swift in Sources */, @@ -3623,20 +3463,15 @@ D0EC6CD11EB9F58800EBF1C3 /* UrlHandling.swift in Sources */, 09F85BA521E7821500D73170 /* ThemeGridSelectionPanelNode.swift in Sources */, 09CE950E2237E45E00A7D2C3 /* CachedFaqInstantPage.swift in Sources */, - D0EC6CD71EB9F58800EBF1C3 /* EmojiUtils.swift in Sources */, - D0EC6CD91EB9F58800EBF1C3 /* ValidateAddressNameInteractive.swift in Sources */, 09F664CA21EB4F2700AB7E26 /* ThemeGridSearchColorsItem.swift in Sources */, D025402922E1F7F500AC0195 /* ChatTextInputSlowmodePlaceholderNode.swift in Sources */, D0380DB8204EE0A5000414AB /* ChatInstantVideoMessageDurationNode.swift in Sources */, D0EC6CDC1EB9F58800EBF1C3 /* TelegramAccountAuxiliaryMethods.swift in Sources */, D0642EFC1F3E1E7B00792790 /* ChatHistoryNavigationButtons.swift in Sources */, - D025402322E1C92D00AC0195 /* ChatSlowmodeItem.swift in Sources */, D05D8B3F2192FC6E0064586F /* LocalizationListControllerNode.swift in Sources */, D0AA840C1FEB2BA3005C6E91 /* OverlayPlayerControlsNode.swift in Sources */, 09DD5D5021ECC3C400D7007A /* SuppressContactsWarning.swift in Sources */, D02B198A21F1DA9E0094A764 /* SharedAccountContext.swift in Sources */, - D0F67FF21EE6B915000E5906 /* ChannelMembersSearchControllerNode.swift in Sources */, - D0E8B8BF20447A4600605593 /* SecretChatKeyControllerNode.swift in Sources */, D02B2B9820810DA00062476B /* StickerPaneSearchStickerItem.swift in Sources */, D020A9DC1FEAE6E7008C66F7 /* OverlayPlayerControllerNode.swift in Sources */, D04ECD721FFBF22B00DE9029 /* OpenUrl.swift in Sources */, @@ -3675,10 +3510,8 @@ D0EC6D0C1EB9F58800EBF1C3 /* stream.c in Sources */, 09FFBCD72281BB2D00C33B4B /* ChatTextLinkEditController.swift in Sources */, 09CE95042236C6B300A7D2C3 /* CachedInstantPages.swift in Sources */, - D0AB269E21D56A12008F6685 /* ChannelPermissionsController.swift in Sources */, D0B69C3920EBB397003632C7 /* ChatMessageInteractiveInstantVideoNode.swift in Sources */, D056CD701FF147B000880D28 /* IconButtonNode.swift in Sources */, - D0F760DB222034910074F7E5 /* ChannelStatsController.swift in Sources */, D0FA08CA2049BEAC00DD23FC /* ChatEmptyNode.swift in Sources */, 09CE95002232729A00A7D2C3 /* StickerPaneSearchContentNode.swift in Sources */, D00817D122B47A14008A895F /* LegacyDataImport.swift in Sources */, @@ -3693,7 +3526,6 @@ D0B21B15220D85DD003F741D /* TabBarAccountSwitchController.swift in Sources */, D0ADF966212E05A300310BBC /* TonePlayer.swift in Sources */, D007019E2029EFDD006B9E34 /* ICloudResources.swift in Sources */, - D0F760DD222034980074F7E5 /* ChannelStatsControllerNode.swift in Sources */, D0EC6D251EB9F58800EBF1C3 /* FetchCachedRepresentations.swift in Sources */, D0EC6D261EB9F58800EBF1C3 /* TransformOutgoingMessageMedia.swift in Sources */, D0EC6D271EB9F58800EBF1C3 /* FetchResource.swift in Sources */, @@ -3702,8 +3534,6 @@ 09EDAD2E221164440012A50B /* AutodownloadSizeLimitItem.swift in Sources */, D008177E22B46B7E008A895F /* TGItemProviderSignals.m in Sources */, 099529B421D3E5D800805E13 /* CheckDiskSpace.swift in Sources */, - D04281EF200E3D88009DDE36 /* GroupInfoSearchItem.swift in Sources */, - D0F67FF41EE6C10F000E5906 /* ChannelMembersSearchContainerNode.swift in Sources */, D0EC6D2A1EB9F58800EBF1C3 /* FetchPhotoLibraryImageResource.swift in Sources */, D0EC6D2B1EB9F58800EBF1C3 /* FileMediaResourceStatus.swift in Sources */, 09510B0F22F9347E0078CAB7 /* BundleResource.swift in Sources */, @@ -3711,11 +3541,9 @@ D008177D22B46B7E008A895F /* TGContactModel.m in Sources */, D0EC6D301EB9F58800EBF1C3 /* RadialProgressNode.swift in Sources */, D0EC6D311EB9F58800EBF1C3 /* RadialTimeoutNode.swift in Sources */, - D0BFAE5020AB2A1300793CF2 /* PeerBanTimeoutController.swift in Sources */, 09CE950A2237B93500A7D2C3 /* SettingsSearchResultItem.swift in Sources */, D0AE303922B1D3620058D3BC /* LegacyBridgeAudio.swift in Sources */, D008177F22B46B7E008A895F /* TGShareLocationSignals.m in Sources */, - D0E8B8B9204477B600605593 /* SecretChatKeyVisualization.swift in Sources */, D0185E8C208A025A005E1A6C /* ProxySettingsServerItem.swift in Sources */, 090E63EE2196FE3A00E3C035 /* OpenAddContact.swift in Sources */, D06F1EA41F6C0A5D00FE8B74 /* ChatHistorySearchContainerNode.swift in Sources */, @@ -3723,10 +3551,8 @@ D0EC6D3B1EB9F58800EBF1C3 /* EditableTokenListNode.swift in Sources */, D0E2CE6C222930540084E3DD /* PrefetchManager.swift in Sources */, D0CE8CE51F6F354400AA2DB0 /* ChatTextInputAccessoryItem.swift in Sources */, - D097C26820DD0A1D007BB4B8 /* PeerReportController.swift in Sources */, 09F664C621EB400A00AB7E26 /* ThemeGridSearchContentNode.swift in Sources */, 0962E67921B67A9800245FD9 /* ChatMessageAnimatedStickerItemNode.swift in Sources */, - D0B2F76A2052920D00D3BFB9 /* UserInfoEditingPhoneItem.swift in Sources */, D0AEAE272080D6970013176E /* PaneSearchBarNode.swift in Sources */, D0EC6D531EB9F58800EBF1C3 /* ChatHistoryViewForLocation.swift in Sources */, D06BB8821F58994B0084FC30 /* LegacyInstantVideoController.swift in Sources */, @@ -3742,7 +3568,6 @@ D025402722E1F23000AC0195 /* ChatSendButtonRadialStatusNode.swift in Sources */, D0BFAE4620AB04FB00793CF2 /* ChatRestrictedInputPanelNode.swift in Sources */, 09EDAD30221164530012A50B /* AutodownloadDataUsagePickerItem.swift in Sources */, - D000CABA21EE130D0011B15D /* MapResourceToAvatarSizes.swift in Sources */, D06E0F8E1F79ABFB003CF3DD /* ChatLoadingNode.swift in Sources */, D0EC6D5A1EB9F58800EBF1C3 /* ListMessageItem.swift in Sources */, D0EC6D5B1EB9F58800EBF1C3 /* ListMessageNode.swift in Sources */, @@ -3755,7 +3580,6 @@ D0EC6D601EB9F58800EBF1C3 /* GridHoleItem.swift in Sources */, D0EC6D611EB9F58800EBF1C3 /* GridMessageSelectionNode.swift in Sources */, D0754D201EEDEBA000884F6E /* ChatMessageGameBubbleContentNode.swift in Sources */, - D050A464229C052A0044F11A /* ChannelDiscussionGroupSetupSearchItem.swift in Sources */, D0B85C1E1FF6F76600E795B4 /* AuthorizationSequencePasswordRecoveryControllerNode.swift in Sources */, 09B4EE4721A6D33F00847FA6 /* RecentSessionsEmptyStateItem.swift in Sources */, 09F664C421EAB98300AB7E26 /* ThemeColorsGridControllerItem.swift in Sources */, @@ -3780,7 +3604,6 @@ D0C12EB01F9A8D1300600BB2 /* ListMessageDateHeader.swift in Sources */, D0EC6D741EB9F58800EBF1C3 /* AuthorizationSequenceSignUpControllerNode.swift in Sources */, D0EC6D751EB9F58800EBF1C3 /* TelegramRootController.swift in Sources */, - D0F6800A1EE750EE000E5906 /* ChannelBannedMemberController.swift in Sources */, D03AA4DF202DBF6F0056C405 /* ChatContextResultPeekContentNode.swift in Sources */, D00817D622B47A14008A895F /* TGProxyItem.m in Sources */, 0910B0ED21FA178C00F8F87D /* WallpaperPreviewMedia.swift in Sources */, @@ -3812,7 +3635,6 @@ D01DBA9B209CC6AD00C64E64 /* ChatLinkPreview.swift in Sources */, D0EC6D901EB9F58900EBF1C3 /* ChatMessageBubbleContentNode.swift in Sources */, D0EC6D911EB9F58900EBF1C3 /* ChatMessageBubbleItemNode.swift in Sources */, - D0E8B8BD204479A500605593 /* SecretChatKeyController.swift in Sources */, D0B85C1C1FF6F76000E795B4 /* AuthorizationSequencePasswordRecoveryController.swift in Sources */, D0EC6D921EB9F58900EBF1C3 /* ChatMessageDateAndStatusNode.swift in Sources */, D0EC6D931EB9F58900EBF1C3 /* ChatMessageFileBubbleContentNode.swift in Sources */, @@ -3862,7 +3684,6 @@ D0EC6DAD1EB9F58900EBF1C3 /* ChatInterfaceStateNavigationButtons.swift in Sources */, D0EC6DAE1EB9F58900EBF1C3 /* ChatInterfaceStateContextMenus.swift in Sources */, 09DE2F292269D5E30045E975 /* PrivacyIntroControllerNode.swift in Sources */, - D0F67FF01EE6B8A8000E5906 /* ChannelMembersSearchController.swift in Sources */, D0EC6DAF1EB9F58900EBF1C3 /* ChatInterfaceInputContexts.swift in Sources */, 09B4819323028A4200D5B32B /* ThemeAccentColorController.swift in Sources */, 0921F60E228EE000001A13D7 /* ChatMessageActionUrlAuthController.swift in Sources */, @@ -3881,7 +3702,6 @@ D0EC6DBA1EB9F58900EBF1C3 /* ChatMediaInputNode.swift in Sources */, D0EC6DBB1EB9F58900EBF1C3 /* ChatMediaInputStickerPane.swift in Sources */, 0910B0F121FB3DE100F8F87D /* WallpaperPatternPanelNode.swift in Sources */, - D08984EE2114964700918162 /* GroupPreHistorySetupController.swift in Sources */, D0EC6DBC1EB9F58900EBF1C3 /* ChatMediaInputGifPane.swift in Sources */, D0EC6DBD1EB9F58900EBF1C3 /* ChatMediaInputPanelEntries.swift in Sources */, D008178222B47464008A895F /* NotificationContentContext.swift in Sources */, @@ -3933,7 +3753,6 @@ D0EC6DDE1EB9F58900EBF1C3 /* ChatTextInputAudioRecordingOverlayButton.swift in Sources */, D0EC6DDF1EB9F58900EBF1C3 /* ChatTextInputAudioRecordingTimeNode.swift in Sources */, D0EC6DE01EB9F58900EBF1C3 /* ChatTextInputAudioRecordingCancelIndicator.swift in Sources */, - D081A9A922EB26AE0069C449 /* PhoneLabelController.swift in Sources */, D0EC6DE11EB9F58900EBF1C3 /* ChatMessageSelectionInputPanelNode.swift in Sources */, D04281FA200E5CDC009DDE36 /* ChatRecentActionsControllerState.swift in Sources */, D0EC6DE21EB9F58900EBF1C3 /* ChatChannelSubscriberInputPanelNode.swift in Sources */, @@ -3953,7 +3772,6 @@ D0EC6DEB1EB9F58900EBF1C3 /* ChatRequestInProgressTitlePanelNode.swift in Sources */, D0EC6DEC1EB9F58900EBF1C3 /* ChatToastAlertPanelNode.swift in Sources */, D0EC6DED1EB9F58900EBF1C3 /* ChatHistoryNavigationButtonNode.swift in Sources */, - D0F4B01A211073C500912B92 /* DeviceContactInfoController.swift in Sources */, D0EC6DF51EB9F58900EBF1C3 /* PeerMediaCollectionController.swift in Sources */, D06E4C332134A59700088087 /* ThemeAccentColorActionSheet.swift in Sources */, D0EC6DF61EB9F58900EBF1C3 /* PeerMediaCollectionControllerNode.swift in Sources */, @@ -3963,11 +3781,9 @@ 09A218D9229EE1B600DE6898 /* HorizontalStickerGridItem.swift in Sources */, 09EC0DED22CB583C00E7185B /* TextLinkHandling.swift in Sources */, D08984F02114AE0C00918162 /* DataPrivacySettingsController.swift in Sources */, - D0EC6DFB1EB9F58900EBF1C3 /* AvatarGalleryController.swift in Sources */, D00817DB22B47A14008A895F /* LegacyChatImport.swift in Sources */, 09EDAD2C2211552F0012A50B /* AutodownloadMediaCategoryController.swift in Sources */, 090B48C82200BCA8005083FA /* WallpaperUploadManager.swift in Sources */, - D0E8B8BB2044780600605593 /* ItemListSecretChatKeyItem.swift in Sources */, D06F31E62135A41C001A0F12 /* ThemeSettingsBrightnessItem.swift in Sources */, 09F2158D225CF5BC00AEDF6D /* Pasteboard.swift in Sources */, D0C26D571FDF2388004ABF18 /* OpenChatMessage.swift in Sources */, @@ -3978,7 +3794,6 @@ D000CABC21F158AD0011B15D /* PrepareSecretThumbnailData.swift in Sources */, D0208AD61FA33D14001F0D5F /* RaiseToListenActivator.m in Sources */, D04554A421B42982007A6DD9 /* ConfirmPhoneNumberController.swift in Sources */, - D0EC6E0E1EB9F58900EBF1C3 /* PeerAvatarImageGalleryItem.swift in Sources */, D0D4345C1F97CEAA00CC1806 /* ProxyServerSettingsController.swift in Sources */, D08BDF641FA37BEA009D08E1 /* ChatRecordingPreviewInputPanelNode.swift in Sources */, D0943B071FDEC529001522CC /* InstantVideoRadialStatusNode.swift in Sources */, @@ -3987,9 +3802,7 @@ D091C7A61F8ECEA300D7DE13 /* SettingsThemeWallpaperNode.swift in Sources */, D00817CC22B47A14008A895F /* WatchCommunicationManager.swift in Sources */, D0AE303522B1D3620058D3BC /* TGBridgeAudioEncoder.m in Sources */, - D04281F1200E4084009DDE36 /* GroupInfoSearchNavigationContentNode.swift in Sources */, D00817D922B47A14008A895F /* AppDelegate.swift in Sources */, - D0E1199C229808B8008CAE3A /* ChannelDiscussionGroupSetupHeaderItem.swift in Sources */, 091417F221EF4E5D00C8325A /* WallpaperGalleryController.swift in Sources */, D0FC194D201F82A000FEDBB2 /* OpenResolvedUrl.swift in Sources */, D00817D422B47A14008A895F /* LegacyUserDataImport.swift in Sources */, @@ -4001,7 +3814,6 @@ D0EC6E2C1EB9F58900EBF1C3 /* ComposeControllerNode.swift in Sources */, D0EC6E2D1EB9F58900EBF1C3 /* CounterContollerTitleView.swift in Sources */, D0AEAE292080FD660013176E /* StickerPaneSearchGlobaltem.swift in Sources */, - D0F19F6220E5694D00EEC860 /* GroupStickerPackCurrentItem.swift in Sources */, D0EC6E2E1EB9F58900EBF1C3 /* ContactMultiselectionController.swift in Sources */, D0EC6E2F1EB9F58900EBF1C3 /* ContactMultiselectionControllerNode.swift in Sources */, D0EC6E301EB9F58900EBF1C3 /* ContactSelectionController.swift in Sources */, @@ -4016,7 +3828,6 @@ 0940932622E73E12003846A3 /* ChatSendMessageActionSheetControllerNode.swift in Sources */, D00817D022B47A14008A895F /* WakeupManager.swift in Sources */, D0E8175920122FE100B82BBB /* ChatRecentActionsFilterController.swift in Sources */, - D084023420E295F000065674 /* GroupStickerPackSetupController.swift in Sources */, 0900678D21ED5EA800530762 /* WallpaperColorPanelNode.swift in Sources */, 0957DE2522DE2909001B4D57 /* ThemePreviewControllerNode.swift in Sources */, 09A218DA229EE1B600DE6898 /* HorizontalStickersChatContextPanelNode.swift in Sources */, @@ -4028,31 +3839,19 @@ D0B37C5C1F8D22AE004252DF /* ThemeSettingsController.swift in Sources */, D05D8B412192FC8A0064586F /* LocalizationListItem.swift in Sources */, D0AE303822B1D3620058D3BC /* TGBridgeAudioDecoder.mm in Sources */, - D0EC6E4D1EB9F58900EBF1C3 /* PeerInfoController.swift in Sources */, - D0EC6E4E1EB9F58900EBF1C3 /* GroupInfoController.swift in Sources */, D00817D322B47A14008A895F /* LegacyResourceImport.swift in Sources */, D0380DAD204ED434000414AB /* LegacyLiveUploadInterface.swift in Sources */, D00817D222B47A14008A895F /* LegacyPreferencesImport.swift in Sources */, D0185E882089ED5F005E1A6C /* ProxyListSettingsController.swift in Sources */, - D0EC6E4F1EB9F58900EBF1C3 /* ChannelVisibilityController.swift in Sources */, D09250061FE5371D003F693F /* GlobalExperimentalSettings.swift in Sources */, D025A4231F79344500563950 /* FetchManager.swift in Sources */, D0CB27CF20C17A4A001ACF93 /* TermsOfServiceController.swift in Sources */, - D00BDA1F1EE5B69200C64C5E /* ChannelAdminController.swift in Sources */, D09E778F22FA239B00B9CCA7 /* ChatMessageContextControllerContentSource.swift in Sources */, - D0EC6E501EB9F58900EBF1C3 /* ChannelAdminsController.swift in Sources */, - D0EC6E511EB9F58900EBF1C3 /* ChannelBlacklistController.swift in Sources */, - D0EC6E521EB9F58900EBF1C3 /* ChannelInfoController.swift in Sources */, - D0EC6E531EB9F58900EBF1C3 /* ChannelMembersController.swift in Sources */, D02B676320800A00001A864A /* PaneSearchBarPlaceholderItem.swift in Sources */, 098CF79222B924E200AF6134 /* ThemeSettingsAccentColorItem.swift in Sources */, - D0EC6E541EB9F58900EBF1C3 /* ConvertToSupergroupController.swift in Sources */, - D0EC6E561EB9F58900EBF1C3 /* UserInfoController.swift in Sources */, - D0EC6E571EB9F58900EBF1C3 /* GroupsInCommonController.swift in Sources */, D0EC6E581EB9F58900EBF1C3 /* PeerSelectionController.swift in Sources */, D0EC6E591EB9F58900EBF1C3 /* PeerSelectionControllerNode.swift in Sources */, D0AB262921C307D7008F6685 /* ChatMessagePollBubbleContentNode.swift in Sources */, - D0F4B0222110972300912B92 /* ContactInfoStrings.swift in Sources */, D0EC6E5D1EB9F58900EBF1C3 /* PrivacyAndSecurityController.swift in Sources */, D0EC6E5E1EB9F58900EBF1C3 /* ItemListRecentSessionItem.swift in Sources */, D0EC6E5F1EB9F58900EBF1C3 /* RecentSessionsController.swift in Sources */, @@ -4073,7 +3872,6 @@ D0EC6E6B1EB9F58900EBF1C3 /* InstalledStickerPacksController.swift in Sources */, D0EC6E6C1EB9F58900EBF1C3 /* FeaturedStickerPacksController.swift in Sources */, D0B85C231FF70BF400E795B4 /* AuthorizationSequenceAwaitingAccountResetController.swift in Sources */, - D0EC6E6D1EB9F58900EBF1C3 /* ItemListStickerPackItem.swift in Sources */, D0EC6E6E1EB9F58900EBF1C3 /* ArchivedStickerPacksController.swift in Sources */, D0C0B5B11EE1C421000F4D2C /* ChatDateSelectionSheet.swift in Sources */, D0EC6E731EB9F58900EBF1C3 /* WallpaperGalleryToolbarNode.swift in Sources */, @@ -4083,7 +3881,6 @@ D0EC6E761EB9F58900EBF1C3 /* SettingsController.swift in Sources */, D0FAB13E22EBC25300D8BED2 /* ChatMessageBubbleBackdrop.swift in Sources */, D0EC6E771EB9F58900EBF1C3 /* NotificationsAndSounds.swift in Sources */, - D0EC6E781EB9F58900EBF1C3 /* NotificationSoundSelection.swift in Sources */, D0EC6E7A1EB9F58900EBF1C3 /* DebugController.swift in Sources */, 09E2D9F1226F214000EA0AA4 /* EmojiResources.swift in Sources */, D0EC6E7B1EB9F58900EBF1C3 /* DebugAccountsController.swift in Sources */, @@ -4098,10 +3895,8 @@ D09E637C1F0E7C28003444CD /* SharedMediaPlayer.swift in Sources */, D0750C8522B2E52400BE5F6E /* ClearNotificationsManager.swift in Sources */, D0EC6E811EB9F58900EBF1C3 /* NotificationContainerController.swift in Sources */, - 0952D1752176DEB500194860 /* NotificationMuteSettingsController.swift in Sources */, D0EC6E821EB9F58900EBF1C3 /* NotificationContainerControllerNode.swift in Sources */, D0EC6E831EB9F58900EBF1C3 /* NotificationItemContainerNode.swift in Sources */, - 09DD88E921BAF65E000766BC /* ItemListAddressItem.swift in Sources */, D0CB27D220C17A7F001ACF93 /* TermsOfServiceControllerNode.swift in Sources */, D0EC6E841EB9F58900EBF1C3 /* NotificationItem.swift in Sources */, D0EC6E851EB9F58900EBF1C3 /* ChatMessageNotificationItem.swift in Sources */, @@ -4110,7 +3905,6 @@ D0ACCB1C1EC5FF4B0079D8BF /* ChatMessageCallBubbleContentNode.swift in Sources */, D0EC6E891EB9F58900EBF1C3 /* FrameworkBundle.swift in Sources */, D0FA08C8204982DC00DD23FC /* ChatTextInputActionButtonsNode.swift in Sources */, - D0EC6E8D1EB9F58900EBF1C3 /* SecretChatKeyVisualization.m in Sources */, 09F664C221EAAFCB00AB7E26 /* ThemeColorsGridControllerNode.swift in Sources */, D0BCC3D420404CC7008126C2 /* ChatMessageActionSheetController.swift in Sources */, 0957DE2322DE28FB001B4D57 /* ThemePreviewController.swift in Sources */,