Refactor PeerInfoUI and related modules

This commit is contained in:
Peter 2019-08-15 14:12:19 +03:00
parent ad79e4143e
commit b6316ab12c
141 changed files with 6957 additions and 489 deletions

View File

@ -35,9 +35,6 @@
<FileRef
location = "group:submodules/DeviceAccess/DeviceAccess_Xcode.xcodeproj">
</FileRef>
<FileRef
location = "group:submodules/TextFormat/TextFormat_Xcode.xcodeproj">
</FileRef>
<FileRef
location = "group:submodules/MergeLists/MergeLists_Xcode.xcodeproj">
</FileRef>
@ -47,6 +44,9 @@
<FileRef
location = "group:submodules/PeerPresenceStatusManager/PeerPresenceStatusManager_Xcode.xcodeproj">
</FileRef>
<FileRef
location = "group:submodules/MapResourceToAvatarSizes/MapResourceToAvatarSizes_Xcode.xcodeproj">
</FileRef>
<FileRef
location = "group:submodules/LocalizedPeerData/LocalizedPeerData_Xcode.xcodeproj">
</FileRef>
@ -65,9 +65,6 @@
<FileRef
location = "group:submodules/TelegramPermissions/TelegramPermissions_Xcode.xcodeproj">
</FileRef>
<FileRef
location = "group:submodules/TelegramStringFormatting/TelegramStringFormatting_Xcode.xcodeproj">
</FileRef>
<FileRef
location = "group:submodules/WebsiteType/WebsiteType_Xcode.xcodeproj">
</FileRef>
@ -92,6 +89,19 @@
<FileRef
location = "group:submodules/Geocoding/Geocoding_Xcode.xcodeproj">
</FileRef>
<Group
location = "container:"
name = "Text Processing">
<FileRef
location = "group:submodules/TextFormat/TextFormat_Xcode.xcodeproj">
</FileRef>
<FileRef
location = "group:submodules/TelegramStringFormatting/TelegramStringFormatting_Xcode.xcodeproj">
</FileRef>
<FileRef
location = "group:submodules/Emoji/Emoji_Xcode.xcodeproj">
</FileRef>
</Group>
<Group
location = "container:"
name = "Image Processing">
@ -110,6 +120,9 @@
<FileRef
location = "group:submodules/ImageCompression/ImageCompression_Xcode.xcodeproj">
</FileRef>
<FileRef
location = "group:submodules/EncryptionKeyVisualization/EncryptionKeyVisualization_Xcode.xcodeproj">
</FileRef>
</Group>
</Group>
<Group
@ -238,6 +251,9 @@
<FileRef
location = "group:submodules/TextSelectionNode/TextSelectionNode_Xcode.xcodeproj">
</FileRef>
<FileRef
location = "group:submodules/SinglePhoneInputNode/SinglePhoneInputNode_Xcode.xcodeproj">
</FileRef>
</Group>
<Group
location = "container:"
@ -296,6 +312,12 @@
<FileRef
location = "group:submodules/ItemListPeerActionItem/ItemListPeerActionItem_Xcode.xcodeproj">
</FileRef>
<FileRef
location = "group:submodules/ItemListStickerPackItem/ItemListStickerPackItem_Xcode.xcodeproj">
</FileRef>
<FileRef
location = "group:submodules/ItemListAddressItem/ItemListAddressItem_Xcode.xcodeproj">
</FileRef>
</Group>
<Group
location = "container:"
@ -391,6 +413,9 @@
<FileRef
location = "group:submodules/GalleryUI/GalleryUI_Xcode.xcodeproj">
</FileRef>
<FileRef
location = "group:submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI_Xcode.xcodeproj">
</FileRef>
<FileRef
location = "group:submodules/PasswordSetupUI/PasswordSetupUI_Xcode.xcodeproj">
</FileRef>
@ -442,6 +467,15 @@
<FileRef
location = "group:submodules/PeersNearbyUI/PeersNearbyUI_Xcode.xcodeproj">
</FileRef>
<FileRef
location = "group:submodules/NotificationMuteSettingsUI/NotificationMuteSettingsUI_Xcode.xcodeproj">
</FileRef>
<FileRef
location = "group:submodules/NotificationSoundSelectionUI/NotificationSoundSelectionUI_Xcode.xcodeproj">
</FileRef>
<FileRef
location = "group:submodules/PeerInfoUI/PeerInfoUI_Xcode.xcodeproj">
</FileRef>
</Group>
<FileRef
location = "group:submodules/TelegramUI/TelegramUI_Xcode.xcodeproj">

View File

@ -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 = "<group>"; };
D03E4229230567900049C28B /* ContactMultiselectionController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactMultiselectionController.swift; sourceTree = "<group>"; };
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 = "<group>"; };
@ -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 = "<group>";
@ -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 */,

View File

@ -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<MessageId>) -> Signal<ChatAvailableMessageActions, NoError>

View File

@ -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)
}

View File

@ -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 }
}

View File

@ -4,6 +4,8 @@ import SwiftSignalKit
public protocol ContactSelectionController: ViewController {
var result: Signal<ContactListPeer?, NoError> { get }
var displayProgress: Bool { get set }
var dismissed: (() -> Void)? { get set }
func dismissSearch()
}

View File

@ -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)
}

View File

@ -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

View File

@ -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?

View File

@ -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 = "<group>"; };
D03E41812304D6F00049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
D03E418C2304D7610049C28B /* EmojiUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EmojiUtils.swift; sourceTree = "<group>"; };
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 = "<group>";
};
D03E417E2304D6F00049C28B /* Products */ = {
isa = PBXGroup;
children = (
D03E417D2304D6F00049C28B /* Emoji.framework */,
);
name = Products;
sourceTree = "<group>";
};
D03E417F2304D6F00049C28B /* Sources */ = {
isa = PBXGroup;
children = (
D03E418C2304D7610049C28B /* EmojiUtils.swift */,
D03E41802304D6F00049C28B /* Emoji.h */,
);
path = Sources;
sourceTree = "<group>";
};
D03E418E2304D76D0049C28B /* Frameworks */ = {
isa = PBXGroup;
children = (
D03E41912304D7710049C28B /* CoreText.framework */,
D03E418F2304D76E0049C28B /* Foundation.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
/* 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 */;
}

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
</dict>
</plist>

View File

@ -0,0 +1,19 @@
//
// Emoji.h
// Emoji
//
// Created by Peter on 8/15/19.
// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
//
#import <UIKit/UIKit.h>
//! 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 <Emoji/PublicHeader.h>

View File

@ -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(" ") {

View File

@ -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 = "<group>"; };
D03E429B23056BC20049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
D03E42A623056C340049C28B /* SecretChatKeyVisualization.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SecretChatKeyVisualization.h; sourceTree = "<group>"; };
D03E42A723056C340049C28B /* SecretChatKeyVisualization.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SecretChatKeyVisualization.m; sourceTree = "<group>"; };
D03E42A823056C340049C28B /* SecretChatKeyVisualization.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatKeyVisualization.swift; sourceTree = "<group>"; };
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 = "<group>";
};
D03E429823056BC20049C28B /* Products */ = {
isa = PBXGroup;
children = (
D03E429723056BC20049C28B /* EncryptionKeyVisualization.framework */,
);
name = Products;
sourceTree = "<group>";
};
D03E429923056BC20049C28B /* Sources */ = {
isa = PBXGroup;
children = (
D03E42A623056C340049C28B /* SecretChatKeyVisualization.h */,
D03E42A723056C340049C28B /* SecretChatKeyVisualization.m */,
D03E42A823056C340049C28B /* SecretChatKeyVisualization.swift */,
D03E429A23056BC20049C28B /* EncryptionKeyVisualization.h */,
);
path = Sources;
sourceTree = "<group>";
};
D03E42AC23056C590049C28B /* Frameworks */ = {
isa = PBXGroup;
children = (
D03E42AF23056C5C0049C28B /* TelegramCore.framework */,
D03E42AD23056C5A0049C28B /* Foundation.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
/* 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 */;
}

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
</dict>
</plist>

View File

@ -0,0 +1,11 @@
#import <UIKit/UIKit.h>
//! Project version number for EncryptionKeyVisualization.
FOUNDATION_EXPORT double EncryptionKeyVisualizationVersionNumber;
//! Project version string for EncryptionKeyVisualization.
FOUNDATION_EXPORT const unsigned char EncryptionKeyVisualizationVersionString[];
#import <EncryptionKeyVisualization/SecretChatKeyVisualization.h>

View File

@ -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)

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
</dict>
</plist>

View File

@ -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 = "<group>"; };
D03E42C3230571620049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
D03E42CA230571700049C28B /* ItemListAddressItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemListAddressItem.swift; sourceTree = "<group>"; };
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 = "<group>"; };
/* 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 = "<group>";
};
D03E42C0230571620049C28B /* Products */ = {
isa = PBXGroup;
children = (
D03E42BF230571620049C28B /* ItemListAddressItem.framework */,
);
name = Products;
sourceTree = "<group>";
};
D03E42C1230571620049C28B /* Sources */ = {
isa = PBXGroup;
children = (
D03E42CA230571700049C28B /* ItemListAddressItem.swift */,
D03E42E7230572780049C28B /* FrameworkBundle.swift */,
D03E42C2230571620049C28B /* ItemListAddressItem.h */,
);
path = Sources;
sourceTree = "<group>";
};
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 = "<group>";
};
/* 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 */;
}

View File

@ -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)
}
}

View File

@ -0,0 +1,19 @@
//
// ItemListAddressItem.h
// ItemListAddressItem
//
// Created by Peter on 8/15/19.
// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
//
#import <UIKit/UIKit.h>
//! 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 <ItemListAddressItem/PublicHeader.h>

View File

@ -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<Void, NoError>?, (ListViewItemApply) -> Void)) -> Void) {
public func nodeConfiguredForParams(async: @escaping (@escaping () -> Void) -> Void, params: ListViewItemLayoutParams, synchronousLoads: Bool, previousItem: ListViewItem?, nextItem: ListViewItem?, completion: @escaping (ListViewItemNode, @escaping () -> (Signal<Void, NoError>?, (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
}
}

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
</dict>
</plist>

View File

@ -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 = "<group>"; };
D03E41A72304D8770049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
D03E41B22304D8E00049C28B /* ItemListStickerPackItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemListStickerPackItem.swift; sourceTree = "<group>"; };
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 = "<group>";
};
D03E41A42304D8770049C28B /* Products */ = {
isa = PBXGroup;
children = (
D03E41A32304D8770049C28B /* ItemListStickerPackItem.framework */,
);
name = Products;
sourceTree = "<group>";
};
D03E41A52304D8770049C28B /* Sources */ = {
isa = PBXGroup;
children = (
D03E41B22304D8E00049C28B /* ItemListStickerPackItem.swift */,
D03E41A62304D8770049C28B /* ItemListStickerPackItem.h */,
);
path = Sources;
sourceTree = "<group>";
};
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 = "<group>";
};
/* 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 */;
}

View File

@ -0,0 +1,19 @@
//
// ItemListStickerPackItem.h
// ItemListStickerPackItem
//
// Created by Peter on 8/15/19.
// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
//
#import <UIKit/UIKit.h>
//! 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 <ItemListStickerPackItem/PublicHeader.h>

View File

@ -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<Void, NoError>?, (ListViewItemApply) -> Void)) -> Void) {
public func nodeConfiguredForParams(async: @escaping (@escaping () -> Void) -> Void, params: ListViewItemLayoutParams, synchronousLoads: Bool, previousItem: ListViewItem?, nextItem: ListViewItem?, completion: @escaping (ListViewItemNode, @escaping () -> (Signal<Void, NoError>?, (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?

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
</dict>
</plist>

View File

@ -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 = "<group>"; };
D03E4239230569A20049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
D03E424423056A080049C28B /* MapResourceToAvatarSizes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MapResourceToAvatarSizes.swift; sourceTree = "<group>"; };
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 = "<group>";
};
D03E4236230569A20049C28B /* Products */ = {
isa = PBXGroup;
children = (
D03E4235230569A20049C28B /* MapResourceToAvatarSizes.framework */,
);
name = Products;
sourceTree = "<group>";
};
D03E4237230569A20049C28B /* Sources */ = {
isa = PBXGroup;
children = (
D03E424423056A080049C28B /* MapResourceToAvatarSizes.swift */,
D03E4238230569A20049C28B /* MapResourceToAvatarSizes.h */,
);
path = Sources;
sourceTree = "<group>";
};
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 = "<group>";
};
/* 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 */;
}

View File

@ -0,0 +1,19 @@
//
// MapResourceToAvatarSizes.h
// MapResourceToAvatarSizes
//
// Created by Peter on 8/15/19.
// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
//
#import <UIKit/UIKit.h>
//! 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 <MapResourceToAvatarSizes/PublicHeader.h>

View File

@ -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

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
</dict>
</plist>

View File

@ -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 = "<group>"; };
D03E41DD2304DA600049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
D03E41E8230563080049C28B /* NotificationMuteSettingsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationMuteSettingsController.swift; sourceTree = "<group>"; };
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 = "<group>";
};
D03E41DA2304DA600049C28B /* Products */ = {
isa = PBXGroup;
children = (
D03E41D92304DA600049C28B /* NotificationMuteSettingsUI.framework */,
);
name = Products;
sourceTree = "<group>";
};
D03E41DB2304DA600049C28B /* Sources */ = {
isa = PBXGroup;
children = (
D03E41E8230563080049C28B /* NotificationMuteSettingsController.swift */,
D03E41DC2304DA600049C28B /* NotificationMuteSettingsUI.h */,
);
path = Sources;
sourceTree = "<group>";
};
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 = "<group>";
};
/* 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 */;
}

View File

@ -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()

View File

@ -0,0 +1,19 @@
//
// NotificationMuteSettingsUI.h
// NotificationMuteSettingsUI
//
// Created by Peter on 8/15/19.
// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
//
#import <UIKit/UIKit.h>
//! 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 <NotificationMuteSettingsUI/PublicHeader.h>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
</dict>
</plist>

View File

@ -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 = "<group>"; };
D03E426523056AA40049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
D03E427023056AFB0049C28B /* NotificationSoundSelection.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationSoundSelection.swift; sourceTree = "<group>"; };
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 = "<group>";
};
D03E426223056AA40049C28B /* Products */ = {
isa = PBXGroup;
children = (
D03E426123056AA40049C28B /* NotificationSoundSelectionUI.framework */,
);
name = Products;
sourceTree = "<group>";
};
D03E426323056AA40049C28B /* Sources */ = {
isa = PBXGroup;
children = (
D03E427023056AFB0049C28B /* NotificationSoundSelection.swift */,
D03E426423056AA40049C28B /* NotificationSoundSelectionUI.h */,
);
path = Sources;
sourceTree = "<group>";
};
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 = "<group>";
};
/* 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 */;
}

View File

@ -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<Void, NoError> {
public func playSound(context: AccountContext, sound: PeerMessageSound, defaultSound: PeerMessageSound?) -> Signal<Void, NoError> {
if case .none = sound {
return .complete()
} else {

View File

@ -0,0 +1,19 @@
//
// NotificationSoundSelectionUI.h
// NotificationSoundSelectionUI
//
// Created by Peter on 8/15/19.
// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
//
#import <UIKit/UIKit.h>
//! 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 <NotificationSoundSelectionUI/PublicHeader.h>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
</dict>
</plist>

View File

@ -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 = "<group>"; };
D03E41312304D37B0049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
D03E413C2304D3F50049C28B /* AvatarGalleryController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarGalleryController.swift; sourceTree = "<group>"; };
D03E413D2304D3F60049C28B /* AvatarGalleryItemFooterContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarGalleryItemFooterContentNode.swift; sourceTree = "<group>"; };
D03E413E2304D3F60049C28B /* PeerAvatarImageGalleryItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerAvatarImageGalleryItem.swift; sourceTree = "<group>"; };
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 = "<group>"; };
/* 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 = "<group>";
};
D03E412E2304D37B0049C28B /* Products */ = {
isa = PBXGroup;
children = (
D03E412D2304D37B0049C28B /* PeerAvatarGalleryUI.framework */,
);
name = Products;
sourceTree = "<group>";
};
D03E412F2304D37B0049C28B /* Sources */ = {
isa = PBXGroup;
children = (
D03E413C2304D3F50049C28B /* AvatarGalleryController.swift */,
D03E413D2304D3F60049C28B /* AvatarGalleryItemFooterContentNode.swift */,
D03E413E2304D3F60049C28B /* PeerAvatarImageGalleryItem.swift */,
D03E41692304D4F50049C28B /* FrameworkBundle.swift */,
D03E41302304D37B0049C28B /* PeerAvatarGalleryUI.h */,
);
path = Sources;
sourceTree = "<group>";
};
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 = "<group>";
};
/* 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 */;
}

View File

@ -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<Bool>()
override var ready: Promise<Bool> {
override public var ready: Promise<Bool> {
return self._ready
}
private var didSetReady = false
@ -121,13 +121,13 @@ class AvatarGalleryController: ViewController {
private let centralItemAttributesDisposable = DisposableSet();
private let _hiddenMedia = Promise<AvatarGalleryEntry?>(nil)
var hiddenMedia: Signal<AvatarGalleryEntry?, NoError> {
public var hiddenMedia: Signal<AvatarGalleryEntry?, NoError> {
return self._hiddenMedia.get()
}
private let replaceRootController: (ViewController, ValuePromise<Bool>?) -> Void
init(context: AccountContext, peer: Peer, remoteEntries: Promise<[AvatarGalleryEntry]>? = nil, replaceRootController: @escaping (ViewController, ValuePromise<Bool>?) -> Void, synchronousLoad: Bool = false) {
public init(context: AccountContext, peer: Peer, remoteEntries: Promise<[AvatarGalleryEntry]>? = nil, replaceRootController: @escaping (ViewController, ValuePromise<Bool>?) -> 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))
}

View File

@ -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)
}
}

View File

@ -0,0 +1,19 @@
//
// PeerAvatarGalleryUI.h
// PeerAvatarGalleryUI
//
// Created by Peter on 8/15/19.
// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
//
#import <UIKit/UIKit.h>
//! 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 <PeerAvatarGalleryUI/PublicHeader.h>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
</dict>
</plist>

View File

@ -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 = "<group>"; };
D03E406D2304D0B30049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
D03E40782304D1180049C28B /* ChannelAdminsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelAdminsController.swift; sourceTree = "<group>"; };
D03E40792304D1180049C28B /* ChannelDiscussionGroupSearchContainerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelDiscussionGroupSearchContainerNode.swift; sourceTree = "<group>"; };
D03E407A2304D1180049C28B /* ChannelInfoController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelInfoController.swift; sourceTree = "<group>"; };
D03E407B2304D1190049C28B /* SecretChatKeyController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatKeyController.swift; sourceTree = "<group>"; };
D03E407C2304D1190049C28B /* ChannelMembersController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelMembersController.swift; sourceTree = "<group>"; };
D03E407D2304D1190049C28B /* SecretChatKeyControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatKeyControllerNode.swift; sourceTree = "<group>"; };
D03E407E2304D1190049C28B /* ChannelMembersSearchContainerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelMembersSearchContainerNode.swift; sourceTree = "<group>"; };
D03E407F2304D1190049C28B /* ChannelDiscussionGroupSetupController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelDiscussionGroupSetupController.swift; sourceTree = "<group>"; };
D03E40802304D1190049C28B /* ItemListSecretChatKeyItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemListSecretChatKeyItem.swift; sourceTree = "<group>"; };
D03E40812304D11A0049C28B /* GroupInfoSearchNavigationContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupInfoSearchNavigationContentNode.swift; sourceTree = "<group>"; };
D03E40822304D11A0049C28B /* ChannelVisibilityController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelVisibilityController.swift; sourceTree = "<group>"; };
D03E40832304D11A0049C28B /* ChannelBlacklistController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelBlacklistController.swift; sourceTree = "<group>"; };
D03E40842304D11A0049C28B /* GroupInfoSearchItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupInfoSearchItem.swift; sourceTree = "<group>"; };
D03E40852304D11A0049C28B /* ChannelDiscussionGroupActionSheetItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelDiscussionGroupActionSheetItem.swift; sourceTree = "<group>"; };
D03E40862304D11B0049C28B /* ItemListCallListItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemListCallListItem.swift; sourceTree = "<group>"; };
D03E40872304D11B0049C28B /* ChannelMembersSearchController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelMembersSearchController.swift; sourceTree = "<group>"; };
D03E40882304D11B0049C28B /* PeerBanTimeoutController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerBanTimeoutController.swift; sourceTree = "<group>"; };
D03E40892304D11C0049C28B /* ChannelDiscussionGroupSetupHeaderItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelDiscussionGroupSetupHeaderItem.swift; sourceTree = "<group>"; };
D03E408A2304D11C0049C28B /* ConvertToSupergroupController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConvertToSupergroupController.swift; sourceTree = "<group>"; };
D03E408B2304D11C0049C28B /* ChannelMembersSearchControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelMembersSearchControllerNode.swift; sourceTree = "<group>"; };
D03E408C2304D11C0049C28B /* ChannelDiscussionGroupSetupSearchItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelDiscussionGroupSetupSearchItem.swift; sourceTree = "<group>"; };
D03E408D2304D11D0049C28B /* PeerInfoController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerInfoController.swift; sourceTree = "<group>"; };
D03E408E2304D11D0049C28B /* UserInfoController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserInfoController.swift; sourceTree = "<group>"; };
D03E408F2304D11D0049C28B /* DeviceContactInfoController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeviceContactInfoController.swift; sourceTree = "<group>"; };
D03E40902304D11E0049C28B /* GroupStickerPackCurrentItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupStickerPackCurrentItem.swift; sourceTree = "<group>"; };
D03E40922304D11F0049C28B /* ChatSlowmodeItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatSlowmodeItem.swift; sourceTree = "<group>"; };
D03E40932304D11F0049C28B /* ChannelOwnershipTransferController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelOwnershipTransferController.swift; sourceTree = "<group>"; };
D03E40942304D11F0049C28B /* GroupPreHistorySetupController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupPreHistorySetupController.swift; sourceTree = "<group>"; };
D03E40952304D1200049C28B /* ChannelStatsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelStatsController.swift; sourceTree = "<group>"; };
D03E40962304D1200049C28B /* ChannelStatsControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelStatsControllerNode.swift; sourceTree = "<group>"; };
D03E40972304D1200049C28B /* ChannelPermissionsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelPermissionsController.swift; sourceTree = "<group>"; };
D03E40982304D1210049C28B /* PeerReportController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerReportController.swift; sourceTree = "<group>"; };
D03E40992304D1210049C28B /* ChannelBannedMemberController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelBannedMemberController.swift; sourceTree = "<group>"; };
D03E409A2304D1220049C28B /* GroupStickerPackSetupController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupStickerPackSetupController.swift; sourceTree = "<group>"; };
D03E409B2304D1220049C28B /* GroupInfoController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupInfoController.swift; sourceTree = "<group>"; };
D03E409C2304D1230049C28B /* ChannelAdminController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelAdminController.swift; sourceTree = "<group>"; };
D03E409D2304D1230049C28B /* GroupsInCommonController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupsInCommonController.swift; sourceTree = "<group>"; };
D03E409E2304D1240049C28B /* PhoneLabelController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PhoneLabelController.swift; sourceTree = "<group>"; };
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 = "<group>"; };
D03E411F2304D3030049C28B /* UserInfoEditingPhoneItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserInfoEditingPhoneItem.swift; sourceTree = "<group>"; };
D03E41202304D3040049C28B /* UserInfoEditingPhoneActionItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserInfoEditingPhoneActionItem.swift; sourceTree = "<group>"; };
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 = "<group>";
};
D03E406A2304D0B30049C28B /* Products */ = {
isa = PBXGroup;
children = (
D03E40692304D0B30049C28B /* PeerInfoUI.framework */,
);
name = Products;
sourceTree = "<group>";
};
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 = "<group>";
};
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 = "<group>";
};
/* 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 */;
}

View File

@ -9,6 +9,7 @@ import ItemListUI
import AccountContext
import AlertUI
import ItemListAvatarAndNameInfoItem
import Emoji
private let rankMaxLength: Int32 = 16

View File

@ -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

View File

@ -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: {

View File

@ -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

View File

@ -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)
}
}
}
}

View File

@ -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)

View File

@ -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

View File

@ -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)
}
}

View File

@ -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)

View File

@ -9,6 +9,7 @@ import TelegramUIPreferences
import ItemListUI
import AccountContext
import StickerPackPreviewUI
import ItemListStickerPackItem
private final class GroupStickerPackSetupControllerArguments {
let account: Account

View File

@ -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
}

View File

@ -6,6 +6,7 @@ import SwiftSignalKit
import TelegramCore
import TelegramPresentationData
import ItemListUI
import EncryptionKeyVisualization
class ItemListSecretChatKeyItem: ListViewItem, ItemListItem {
let theme: PresentationTheme

View File

@ -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 {

View File

@ -0,0 +1,19 @@
//
// PeerInfoUI.h
// PeerInfoUI
//
// Created by Peter on 8/15/19.
// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
//
#import <UIKit/UIKit.h>
//! 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 <PeerInfoUI/PublicHeader.h>

View File

@ -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))

View File

@ -7,6 +7,7 @@ import TelegramCore
import TelegramPresentationData
import ItemListUI
import AccountContext
import TelegramStringFormatting
private struct PhoneLabelArguments {
let selectLabel: (String) -> Void

View File

@ -7,6 +7,7 @@ import Postbox
import TelegramPresentationData
import TextFormat
import AccountContext
import EncryptionKeyVisualization
private func processHexString(_ string: String) -> String {
var result = ""

View File

@ -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: {

View File

@ -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)

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
</dict>
</plist>

View File

@ -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 = "<group>"; };
D03E420B230563DB0049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
D03E4216230564570049C28B /* SinglePhoneInputNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SinglePhoneInputNode.swift; sourceTree = "<group>"; };
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 = "<group>";
};
D03E4208230563DB0049C28B /* Products */ = {
isa = PBXGroup;
children = (
D03E4207230563DB0049C28B /* SinglePhoneInputNode.framework */,
);
name = Products;
sourceTree = "<group>";
};
D03E4209230563DB0049C28B /* Sources */ = {
isa = PBXGroup;
children = (
D03E4216230564570049C28B /* SinglePhoneInputNode.swift */,
D03E420A230563DB0049C28B /* SinglePhoneInputNode.h */,
);
path = Sources;
sourceTree = "<group>";
};
D03E4218230564650049C28B /* Frameworks */ = {
isa = PBXGroup;
children = (
D03E4221230564760049C28B /* TelegramCore.framework */,
D03E421F230564700049C28B /* Display.framework */,
D03E421D2305646D0049C28B /* AsyncDisplayKit.framework */,
D03E421B230564680049C28B /* UIKit.framework */,
D03E4219230564650049C28B /* Foundation.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
/* 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 */;
}

View File

@ -0,0 +1,19 @@
//
// SinglePhoneInputNode.h
// SinglePhoneInputNode
//
// Created by Peter on 8/15/19.
// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
//
#import <UIKit/UIKit.h>
//! 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 <SinglePhoneInputNode/PublicHeader.h>

View File

@ -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)
}

View File

@ -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<AddressNameValidationStatus, NoError> {
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)
}
)
}
}

View File

@ -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 = "<group>"; };
D03DC9121F82F89D001D584C /* RegularChatState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegularChatState.swift; sourceTree = "<group>"; };
D03E3D27230447960049C28B /* RestrictedContentMessageAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RestrictedContentMessageAttribute.swift; sourceTree = "<group>"; };
D03E416B2304D5B30049C28B /* ValidateAddressNameInteractive.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ValidateAddressNameInteractive.swift; sourceTree = "<group>"; };
D03E5E0B1E55E02D0029569A /* LoggedOutAccountAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoggedOutAccountAttribute.swift; sourceTree = "<group>"; };
D041E3F41E535464008C24B4 /* AddPeerMember.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddPeerMember.swift; sourceTree = "<group>"; };
D041E3F71E535A88008C24B4 /* RemovePeerMember.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RemovePeerMember.swift; sourceTree = "<group>"; };
@ -2028,6 +2030,7 @@
090E778222A9862100CD99F5 /* ChannelOwnershipTransfer.swift */,
090E778F22AAABC600CD99F5 /* PeersNearby.swift */,
D0D376E522DCCFD600FA7D7C /* SlowMode.swift */,
D03E416B2304D5B30049C28B /* ValidateAddressNameInteractive.swift */,
);
name = Peers;
sourceTree = "<group>";
@ -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 */,

View File

@ -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

View File

@ -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` {

View File

@ -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 = "<group>"; };
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 = "<group>"; };
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 = "<group>"; };
D0879AB122F7021000C4D6B3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
@ -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 */,
);

Some files were not shown because too many files have changed in this diff Show More