diff --git a/Telegram-iOS.xcworkspace/contents.xcworkspacedata b/Telegram-iOS.xcworkspace/contents.xcworkspacedata
index 08888c0f5b..7e31881bcd 100644
--- a/Telegram-iOS.xcworkspace/contents.xcworkspacedata
+++ b/Telegram-iOS.xcworkspace/contents.xcworkspacedata
@@ -22,6 +22,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -68,8 +97,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ location = "group:submodules/RadialStatusNode/RadialStatusNode_Xcode.xcodeproj">
@@ -125,21 +200,10 @@
-
-
-
-
-
-
diff --git a/submodules/ActionSheetPeerItem/ActionSheetPeerItem_Xcode.xcodeproj/project.pbxproj b/submodules/ActionSheetPeerItem/ActionSheetPeerItem_Xcode.xcodeproj/project.pbxproj
new file mode 100644
index 0000000000..af93e83378
--- /dev/null
+++ b/submodules/ActionSheetPeerItem/ActionSheetPeerItem_Xcode.xcodeproj/project.pbxproj
@@ -0,0 +1,571 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 50;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ D0879D5722F87C9C00C4D6B3 /* ActionSheetPeerItem.h in Headers */ = {isa = PBXBuildFile; fileRef = D0879D5522F87C9C00C4D6B3 /* ActionSheetPeerItem.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0879D6222F87CF500C4D6B3 /* ActionSheetPeerItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879D6122F87CF500C4D6B3 /* ActionSheetPeerItem.swift */; };
+ D0879D6522F87D0600C4D6B3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879D6422F87D0600C4D6B3 /* Foundation.framework */; };
+ D0879D6722F87D0900C4D6B3 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879D6622F87D0900C4D6B3 /* UIKit.framework */; };
+ D0879D6922F87D0D00C4D6B3 /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879D6822F87D0D00C4D6B3 /* AsyncDisplayKit.framework */; };
+ D0879D6B22F87D1000C4D6B3 /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879D6A22F87D1000C4D6B3 /* Display.framework */; };
+ D0879D6D22F87D1600C4D6B3 /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879D6C22F87D1600C4D6B3 /* TelegramCore.framework */; };
+ D0879D6F22F87D1C00C4D6B3 /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879D6E22F87D1C00C4D6B3 /* Postbox.framework */; };
+ D0879D7122F87D2300C4D6B3 /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879D7022F87D2300C4D6B3 /* TelegramPresentationData.framework */; };
+ D0879D7322F87D2900C4D6B3 /* AvatarNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879D7222F87D2900C4D6B3 /* AvatarNode.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ D0879D5222F87C9C00C4D6B3 /* ActionSheetPeerItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ActionSheetPeerItem.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879D5522F87C9C00C4D6B3 /* ActionSheetPeerItem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ActionSheetPeerItem.h; sourceTree = ""; };
+ D0879D5622F87C9C00C4D6B3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ D0879D6122F87CF500C4D6B3 /* ActionSheetPeerItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ActionSheetPeerItem.swift; sourceTree = ""; };
+ D0879D6422F87D0600C4D6B3 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ D0879D6622F87D0900C4D6B3 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+ D0879D6822F87D0D00C4D6B3 /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879D6A22F87D1000C4D6B3 /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879D6C22F87D1600C4D6B3 /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879D6E22F87D1C00C4D6B3 /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879D7022F87D2300C4D6B3 /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879D7222F87D2900C4D6B3 /* AvatarNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AvatarNode.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ D0879D4F22F87C9C00C4D6B3 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879D7322F87D2900C4D6B3 /* AvatarNode.framework in Frameworks */,
+ D0879D7122F87D2300C4D6B3 /* TelegramPresentationData.framework in Frameworks */,
+ D0879D6F22F87D1C00C4D6B3 /* Postbox.framework in Frameworks */,
+ D0879D6D22F87D1600C4D6B3 /* TelegramCore.framework in Frameworks */,
+ D0879D6B22F87D1000C4D6B3 /* Display.framework in Frameworks */,
+ D0879D6922F87D0D00C4D6B3 /* AsyncDisplayKit.framework in Frameworks */,
+ D0879D6722F87D0900C4D6B3 /* UIKit.framework in Frameworks */,
+ D0879D6522F87D0600C4D6B3 /* Foundation.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ D0879D4822F87C9C00C4D6B3 = {
+ isa = PBXGroup;
+ children = (
+ D0879D5622F87C9C00C4D6B3 /* Info.plist */,
+ D0879D5422F87C9C00C4D6B3 /* Sources */,
+ D0879D5322F87C9C00C4D6B3 /* Products */,
+ D0879D6322F87D0500C4D6B3 /* Frameworks */,
+ );
+ sourceTree = "";
+ };
+ D0879D5322F87C9C00C4D6B3 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ D0879D5222F87C9C00C4D6B3 /* ActionSheetPeerItem.framework */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ D0879D5422F87C9C00C4D6B3 /* Sources */ = {
+ isa = PBXGroup;
+ children = (
+ D0879D6122F87CF500C4D6B3 /* ActionSheetPeerItem.swift */,
+ D0879D5522F87C9C00C4D6B3 /* ActionSheetPeerItem.h */,
+ );
+ path = Sources;
+ sourceTree = "";
+ };
+ D0879D6322F87D0500C4D6B3 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ D0879D7222F87D2900C4D6B3 /* AvatarNode.framework */,
+ D0879D7022F87D2300C4D6B3 /* TelegramPresentationData.framework */,
+ D0879D6E22F87D1C00C4D6B3 /* Postbox.framework */,
+ D0879D6C22F87D1600C4D6B3 /* TelegramCore.framework */,
+ D0879D6A22F87D1000C4D6B3 /* Display.framework */,
+ D0879D6822F87D0D00C4D6B3 /* AsyncDisplayKit.framework */,
+ D0879D6622F87D0900C4D6B3 /* UIKit.framework */,
+ D0879D6422F87D0600C4D6B3 /* Foundation.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ D0879D4D22F87C9C00C4D6B3 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879D5722F87C9C00C4D6B3 /* ActionSheetPeerItem.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ D0879D5122F87C9C00C4D6B3 /* ActionSheetPeerItem */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = D0879D5A22F87C9C00C4D6B3 /* Build configuration list for PBXNativeTarget "ActionSheetPeerItem" */;
+ buildPhases = (
+ D0879D4D22F87C9C00C4D6B3 /* Headers */,
+ D0879D4E22F87C9C00C4D6B3 /* Sources */,
+ D0879D4F22F87C9C00C4D6B3 /* Frameworks */,
+ D0879D5022F87C9C00C4D6B3 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = ActionSheetPeerItem;
+ productName = ActionSheetPeerItem;
+ productReference = D0879D5222F87C9C00C4D6B3 /* ActionSheetPeerItem.framework */;
+ productType = "com.apple.product-type.framework";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ D0879D4922F87C9C00C4D6B3 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ DefaultBuildSystemTypeForWorkspace = Latest;
+ LastUpgradeCheck = 1030;
+ ORGANIZATIONNAME = "Telegram Messenger LLP";
+ TargetAttributes = {
+ D0879D5122F87C9C00C4D6B3 = {
+ CreatedOnToolsVersion = 10.3;
+ LastSwiftMigration = 1030;
+ };
+ };
+ };
+ buildConfigurationList = D0879D4C22F87C9C00C4D6B3 /* Build configuration list for PBXProject "ActionSheetPeerItem_Xcode" */;
+ compatibilityVersion = "Xcode 9.3";
+ developmentRegion = en;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ );
+ mainGroup = D0879D4822F87C9C00C4D6B3;
+ productRefGroup = D0879D5322F87C9C00C4D6B3 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ D0879D5122F87C9C00C4D6B3 /* ActionSheetPeerItem */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ D0879D5022F87C9C00C4D6B3 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ D0879D4E22F87C9C00C4D6B3 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879D6222F87CF500C4D6B3 /* ActionSheetPeerItem.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+ D0879D5822F87C9C00C4D6B3 /* 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;
+ };
+ D0879D5922F87C9C00C4D6B3 /* 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;
+ };
+ D0879D5B22F87C9C00C4D6B3 /* 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.ActionSheetPeerItem;
+ 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;
+ };
+ D0879D5C22F87C9C00C4D6B3 /* 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.ActionSheetPeerItem;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SKIP_INSTALL = YES;
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = ReleaseAppStoreLLC;
+ };
+ D0879D5D22F87CBB00C4D6B3 /* 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;
+ };
+ D0879D5E22F87CBB00C4D6B3 /* 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.ActionSheetPeerItem;
+ 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;
+ };
+ D0879D5F22F87CC700C4D6B3 /* 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;
+ };
+ D0879D6022F87CC700C4D6B3 /* 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.ActionSheetPeerItem;
+ 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 */
+ D0879D4C22F87C9C00C4D6B3 /* Build configuration list for PBXProject "ActionSheetPeerItem_Xcode" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D0879D5822F87C9C00C4D6B3 /* DebugAppStoreLLC */,
+ D0879D5D22F87CBB00C4D6B3 /* DebugHockeyapp */,
+ D0879D5922F87C9C00C4D6B3 /* ReleaseAppStoreLLC */,
+ D0879D5F22F87CC700C4D6B3 /* ReleaseHockeyappInternal */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = ReleaseAppStoreLLC;
+ };
+ D0879D5A22F87C9C00C4D6B3 /* Build configuration list for PBXNativeTarget "ActionSheetPeerItem" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D0879D5B22F87C9C00C4D6B3 /* DebugAppStoreLLC */,
+ D0879D5E22F87CBB00C4D6B3 /* DebugHockeyapp */,
+ D0879D5C22F87C9C00C4D6B3 /* ReleaseAppStoreLLC */,
+ D0879D6022F87CC700C4D6B3 /* ReleaseHockeyappInternal */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = ReleaseAppStoreLLC;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = D0879D4922F87C9C00C4D6B3 /* Project object */;
+}
diff --git a/submodules/ActionSheetPeerItem/Info.plist b/submodules/ActionSheetPeerItem/Info.plist
new file mode 100644
index 0000000000..e1fe4cfb7b
--- /dev/null
+++ b/submodules/ActionSheetPeerItem/Info.plist
@@ -0,0 +1,22 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ $(DEVELOPMENT_LANGUAGE)
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ $(CURRENT_PROJECT_VERSION)
+
+
diff --git a/submodules/ActionSheetPeerItem/Sources/ActionSheetPeerItem.h b/submodules/ActionSheetPeerItem/Sources/ActionSheetPeerItem.h
new file mode 100644
index 0000000000..43128d709d
--- /dev/null
+++ b/submodules/ActionSheetPeerItem/Sources/ActionSheetPeerItem.h
@@ -0,0 +1,19 @@
+//
+// ActionSheetPeerItem.h
+// ActionSheetPeerItem
+//
+// Created by Peter on 8/5/19.
+// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
+//
+
+#import
+
+//! Project version number for ActionSheetPeerItem.
+FOUNDATION_EXPORT double ActionSheetPeerItemVersionNumber;
+
+//! Project version string for ActionSheetPeerItem.
+FOUNDATION_EXPORT const unsigned char ActionSheetPeerItemVersionString[];
+
+// In this header, you should import all the public headers of your framework using statements like #import
+
+
diff --git a/submodules/TelegramUI/TelegramUI/ActionSheetPeerItem.swift b/submodules/ActionSheetPeerItem/Sources/ActionSheetPeerItem.swift
similarity index 99%
rename from submodules/TelegramUI/TelegramUI/ActionSheetPeerItem.swift
rename to submodules/ActionSheetPeerItem/Sources/ActionSheetPeerItem.swift
index 0804fdd2c8..1dadcca511 100644
--- a/submodules/TelegramUI/TelegramUI/ActionSheetPeerItem.swift
+++ b/submodules/ActionSheetPeerItem/Sources/ActionSheetPeerItem.swift
@@ -156,7 +156,7 @@ public class ActionSheetPeerItemNode: ActionSheetItemNode {
self.accessibilityArea.frame = CGRect(origin: CGPoint(), size: size)
}
- @objc func buttonPressed() {
+ @objc private func buttonPressed() {
if let item = self.item {
item.action()
}
diff --git a/submodules/ChatListSearchRecentPeersNode/ChatListSearchRecentPeersNode_Xcode.xcodeproj/project.pbxproj b/submodules/ChatListSearchRecentPeersNode/ChatListSearchRecentPeersNode_Xcode.xcodeproj/project.pbxproj
new file mode 100644
index 0000000000..a62377f670
--- /dev/null
+++ b/submodules/ChatListSearchRecentPeersNode/ChatListSearchRecentPeersNode_Xcode.xcodeproj/project.pbxproj
@@ -0,0 +1,587 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 50;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ D0879CAA22F8763E00C4D6B3 /* ChatListSearchRecentPeersNode.h in Headers */ = {isa = PBXBuildFile; fileRef = D0879CA822F8763E00C4D6B3 /* ChatListSearchRecentPeersNode.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0879CB522F8769000C4D6B3 /* ChatListSearchRecentPeersNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879CB422F8769000C4D6B3 /* ChatListSearchRecentPeersNode.swift */; };
+ D0879CB822F876A300C4D6B3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879CB722F876A300C4D6B3 /* Foundation.framework */; };
+ D0879CBA22F876A600C4D6B3 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879CB922F876A600C4D6B3 /* UIKit.framework */; };
+ D0879CBC22F876AA00C4D6B3 /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879CBB22F876AA00C4D6B3 /* AsyncDisplayKit.framework */; };
+ D0879CBE22F876AD00C4D6B3 /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879CBD22F876AD00C4D6B3 /* Display.framework */; };
+ D0879CC022F876B100C4D6B3 /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879CBF22F876B100C4D6B3 /* SwiftSignalKit.framework */; };
+ D0879CC222F876B600C4D6B3 /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879CC122F876B600C4D6B3 /* Postbox.framework */; };
+ D0879CC422F876BB00C4D6B3 /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879CC322F876BB00C4D6B3 /* TelegramCore.framework */; };
+ D0879CC622F876BF00C4D6B3 /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879CC522F876BF00C4D6B3 /* TelegramPresentationData.framework */; };
+ D0879CC822F876C300C4D6B3 /* MergeLists.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879CC722F876C300C4D6B3 /* MergeLists.framework */; };
+ D0879CFC22F878FA00C4D6B3 /* HorizontalPeerItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879CFB22F878FA00C4D6B3 /* HorizontalPeerItem.framework */; };
+ D0879D1F22F87B2900C4D6B3 /* UnreadSearchBadge.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879D1E22F87B2900C4D6B3 /* UnreadSearchBadge.framework */; };
+ D0879D4722F87BEF00C4D6B3 /* ListSectionHeaderNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879D4622F87BEF00C4D6B3 /* ListSectionHeaderNode.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ D0879CA522F8763E00C4D6B3 /* ChatListSearchRecentPeersNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ChatListSearchRecentPeersNode.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879CA822F8763E00C4D6B3 /* ChatListSearchRecentPeersNode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChatListSearchRecentPeersNode.h; sourceTree = ""; };
+ D0879CA922F8763E00C4D6B3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ D0879CB422F8769000C4D6B3 /* ChatListSearchRecentPeersNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListSearchRecentPeersNode.swift; sourceTree = ""; };
+ D0879CB722F876A300C4D6B3 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ D0879CB922F876A600C4D6B3 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+ D0879CBB22F876AA00C4D6B3 /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879CBD22F876AD00C4D6B3 /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879CBF22F876B100C4D6B3 /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879CC122F876B600C4D6B3 /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879CC322F876BB00C4D6B3 /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879CC522F876BF00C4D6B3 /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879CC722F876C300C4D6B3 /* MergeLists.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MergeLists.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879CFB22F878FA00C4D6B3 /* HorizontalPeerItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = HorizontalPeerItem.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879D1E22F87B2900C4D6B3 /* UnreadSearchBadge.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = UnreadSearchBadge.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879D4622F87BEF00C4D6B3 /* ListSectionHeaderNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ListSectionHeaderNode.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ D0879CA222F8763E00C4D6B3 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879D4722F87BEF00C4D6B3 /* ListSectionHeaderNode.framework in Frameworks */,
+ D0879D1F22F87B2900C4D6B3 /* UnreadSearchBadge.framework in Frameworks */,
+ D0879CFC22F878FA00C4D6B3 /* HorizontalPeerItem.framework in Frameworks */,
+ D0879CC822F876C300C4D6B3 /* MergeLists.framework in Frameworks */,
+ D0879CC622F876BF00C4D6B3 /* TelegramPresentationData.framework in Frameworks */,
+ D0879CC422F876BB00C4D6B3 /* TelegramCore.framework in Frameworks */,
+ D0879CC222F876B600C4D6B3 /* Postbox.framework in Frameworks */,
+ D0879CC022F876B100C4D6B3 /* SwiftSignalKit.framework in Frameworks */,
+ D0879CBE22F876AD00C4D6B3 /* Display.framework in Frameworks */,
+ D0879CBC22F876AA00C4D6B3 /* AsyncDisplayKit.framework in Frameworks */,
+ D0879CBA22F876A600C4D6B3 /* UIKit.framework in Frameworks */,
+ D0879CB822F876A300C4D6B3 /* Foundation.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ D0879C9B22F8763E00C4D6B3 = {
+ isa = PBXGroup;
+ children = (
+ D0879CA922F8763E00C4D6B3 /* Info.plist */,
+ D0879CA722F8763E00C4D6B3 /* Sources */,
+ D0879CA622F8763E00C4D6B3 /* Products */,
+ D0879CB622F876A200C4D6B3 /* Frameworks */,
+ );
+ sourceTree = "";
+ };
+ D0879CA622F8763E00C4D6B3 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ D0879CA522F8763E00C4D6B3 /* ChatListSearchRecentPeersNode.framework */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ D0879CA722F8763E00C4D6B3 /* Sources */ = {
+ isa = PBXGroup;
+ children = (
+ D0879CB422F8769000C4D6B3 /* ChatListSearchRecentPeersNode.swift */,
+ D0879CA822F8763E00C4D6B3 /* ChatListSearchRecentPeersNode.h */,
+ );
+ path = Sources;
+ sourceTree = "";
+ };
+ D0879CB622F876A200C4D6B3 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ D0879D4622F87BEF00C4D6B3 /* ListSectionHeaderNode.framework */,
+ D0879D1E22F87B2900C4D6B3 /* UnreadSearchBadge.framework */,
+ D0879CFB22F878FA00C4D6B3 /* HorizontalPeerItem.framework */,
+ D0879CC722F876C300C4D6B3 /* MergeLists.framework */,
+ D0879CC522F876BF00C4D6B3 /* TelegramPresentationData.framework */,
+ D0879CC322F876BB00C4D6B3 /* TelegramCore.framework */,
+ D0879CC122F876B600C4D6B3 /* Postbox.framework */,
+ D0879CBF22F876B100C4D6B3 /* SwiftSignalKit.framework */,
+ D0879CBD22F876AD00C4D6B3 /* Display.framework */,
+ D0879CBB22F876AA00C4D6B3 /* AsyncDisplayKit.framework */,
+ D0879CB922F876A600C4D6B3 /* UIKit.framework */,
+ D0879CB722F876A300C4D6B3 /* Foundation.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ D0879CA022F8763E00C4D6B3 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879CAA22F8763E00C4D6B3 /* ChatListSearchRecentPeersNode.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ D0879CA422F8763E00C4D6B3 /* ChatListSearchRecentPeersNode */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = D0879CAD22F8763E00C4D6B3 /* Build configuration list for PBXNativeTarget "ChatListSearchRecentPeersNode" */;
+ buildPhases = (
+ D0879CA022F8763E00C4D6B3 /* Headers */,
+ D0879CA122F8763E00C4D6B3 /* Sources */,
+ D0879CA222F8763E00C4D6B3 /* Frameworks */,
+ D0879CA322F8763E00C4D6B3 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = ChatListSearchRecentPeersNode;
+ productName = ChatListSearchRecentPeersNode;
+ productReference = D0879CA522F8763E00C4D6B3 /* ChatListSearchRecentPeersNode.framework */;
+ productType = "com.apple.product-type.framework";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ D0879C9C22F8763E00C4D6B3 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ DefaultBuildSystemTypeForWorkspace = Latest;
+ LastUpgradeCheck = 1030;
+ ORGANIZATIONNAME = "Telegram Messenger LLP";
+ TargetAttributes = {
+ D0879CA422F8763E00C4D6B3 = {
+ CreatedOnToolsVersion = 10.3;
+ LastSwiftMigration = 1030;
+ };
+ };
+ };
+ buildConfigurationList = D0879C9F22F8763E00C4D6B3 /* Build configuration list for PBXProject "ChatListSearchRecentPeersNode_Xcode" */;
+ compatibilityVersion = "Xcode 9.3";
+ developmentRegion = en;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ );
+ mainGroup = D0879C9B22F8763E00C4D6B3;
+ productRefGroup = D0879CA622F8763E00C4D6B3 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ D0879CA422F8763E00C4D6B3 /* ChatListSearchRecentPeersNode */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ D0879CA322F8763E00C4D6B3 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ D0879CA122F8763E00C4D6B3 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879CB522F8769000C4D6B3 /* ChatListSearchRecentPeersNode.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+ D0879CAB22F8763E00C4D6B3 /* 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;
+ };
+ D0879CAC22F8763E00C4D6B3 /* 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;
+ };
+ D0879CAE22F8763E00C4D6B3 /* 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.ChatListSearchRecentPeersNode;
+ 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;
+ };
+ D0879CAF22F8763E00C4D6B3 /* 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.ChatListSearchRecentPeersNode;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SKIP_INSTALL = YES;
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = ReleaseAppStoreLLC;
+ };
+ D0879CB022F8765C00C4D6B3 /* 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;
+ };
+ D0879CB122F8765C00C4D6B3 /* 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.ChatListSearchRecentPeersNode;
+ 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;
+ };
+ D0879CB222F8766800C4D6B3 /* 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;
+ };
+ D0879CB322F8766800C4D6B3 /* 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.ChatListSearchRecentPeersNode;
+ 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 */
+ D0879C9F22F8763E00C4D6B3 /* Build configuration list for PBXProject "ChatListSearchRecentPeersNode_Xcode" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D0879CAB22F8763E00C4D6B3 /* DebugAppStoreLLC */,
+ D0879CB022F8765C00C4D6B3 /* DebugHockeyapp */,
+ D0879CAC22F8763E00C4D6B3 /* ReleaseAppStoreLLC */,
+ D0879CB222F8766800C4D6B3 /* ReleaseHockeyappInternal */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = ReleaseAppStoreLLC;
+ };
+ D0879CAD22F8763E00C4D6B3 /* Build configuration list for PBXNativeTarget "ChatListSearchRecentPeersNode" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D0879CAE22F8763E00C4D6B3 /* DebugAppStoreLLC */,
+ D0879CB122F8765C00C4D6B3 /* DebugHockeyapp */,
+ D0879CAF22F8763E00C4D6B3 /* ReleaseAppStoreLLC */,
+ D0879CB322F8766800C4D6B3 /* ReleaseHockeyappInternal */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = ReleaseAppStoreLLC;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = D0879C9C22F8763E00C4D6B3 /* Project object */;
+}
diff --git a/submodules/ChatListSearchRecentPeersNode/Info.plist b/submodules/ChatListSearchRecentPeersNode/Info.plist
new file mode 100644
index 0000000000..e1fe4cfb7b
--- /dev/null
+++ b/submodules/ChatListSearchRecentPeersNode/Info.plist
@@ -0,0 +1,22 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ $(DEVELOPMENT_LANGUAGE)
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ $(CURRENT_PROJECT_VERSION)
+
+
diff --git a/submodules/ChatListSearchRecentPeersNode/Sources/ChatListSearchRecentPeersNode.h b/submodules/ChatListSearchRecentPeersNode/Sources/ChatListSearchRecentPeersNode.h
new file mode 100644
index 0000000000..82bc0e1c74
--- /dev/null
+++ b/submodules/ChatListSearchRecentPeersNode/Sources/ChatListSearchRecentPeersNode.h
@@ -0,0 +1,19 @@
+//
+// ChatListSearchRecentPeersNode.h
+// ChatListSearchRecentPeersNode
+//
+// Created by Peter on 8/5/19.
+// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
+//
+
+#import
+
+//! Project version number for ChatListSearchRecentPeersNode.
+FOUNDATION_EXPORT double ChatListSearchRecentPeersNodeVersionNumber;
+
+//! Project version string for ChatListSearchRecentPeersNode.
+FOUNDATION_EXPORT const unsigned char ChatListSearchRecentPeersNodeVersionString[];
+
+// In this header, you should import all the public headers of your framework using statements like #import
+
+
diff --git a/submodules/TelegramUI/TelegramUI/ChatListSearchRecentPeersNode.swift b/submodules/ChatListSearchRecentPeersNode/Sources/ChatListSearchRecentPeersNode.swift
similarity index 89%
rename from submodules/TelegramUI/TelegramUI/ChatListSearchRecentPeersNode.swift
rename to submodules/ChatListSearchRecentPeersNode/Sources/ChatListSearchRecentPeersNode.swift
index fcb6a951ec..5048da2950 100644
--- a/submodules/TelegramUI/TelegramUI/ChatListSearchRecentPeersNode.swift
+++ b/submodules/ChatListSearchRecentPeersNode/Sources/ChatListSearchRecentPeersNode.swift
@@ -7,6 +7,9 @@ import Postbox
import TelegramCore
import TelegramPresentationData
import MergeLists
+import HorizontalPeerItem
+import UnreadSearchBadge
+import ListSectionHeaderNode
private func calculateItemCustomWidth(width: CGFloat) -> CGFloat {
let itemInsets = UIEdgeInsets(top: 0.0, left: 6.0, bottom: 0.0, right: 6.0)
@@ -26,26 +29,6 @@ private func calculateItemCustomWidth(width: CGFloat) -> CGFloat {
return itemWidth + itemSpacing
}
-enum UnreadSearchBadge : Equatable {
- case muted(Int32)
- case unmuted(Int32)
-
- var count: Int32 {
- switch self {
- case let .muted(count), let .unmuted(count):
- return count
- }
- }
- var isMuted: Bool {
- switch self {
- case .muted:
- return true
- case .unmuted:
- return false
- }
- }
-}
-
private struct ChatListSearchRecentPeersEntry: Comparable, Identifiable {
let index: Int
let peer: Peer
@@ -120,7 +103,7 @@ private func preparedRecentPeersTransition(account: Account, mode: HorizontalPee
return ChatListSearchRecentNodeTransition(deletions: deletions, insertions: insertions, updates: updates, firstTime: firstTime, animated: animated)
}
-final class ChatListSearchRecentPeersNode: ASDisplayNode {
+public final class ChatListSearchRecentPeersNode: ASDisplayNode {
private var theme: PresentationTheme
private var strings: PresentationStrings
private let themeAndStringsPromise: Promise<(PresentationTheme, PresentationStrings)>
@@ -138,7 +121,8 @@ final class ChatListSearchRecentPeersNode: ASDisplayNode {
private var items: [ListViewItem] = []
private var queuedTransitions: [ChatListSearchRecentNodeTransition] = []
- init(account: Account, theme: PresentationTheme, mode: HorizontalPeerItemMode, strings: PresentationStrings, peerSelected: @escaping (Peer) -> Void, peerLongTapped: @escaping (Peer) -> Void, isPeerSelected: @escaping (PeerId) -> Bool, share: Bool = false) {
+
+ public init(account: Account, theme: PresentationTheme, mode: HorizontalPeerItemMode, strings: PresentationStrings, peerSelected: @escaping (Peer) -> Void, peerLongTapped: @escaping (Peer) -> Void, isPeerSelected: @escaping (PeerId) -> Bool, share: Bool = false) {
self.theme = theme
self.strings = strings
self.themeAndStringsPromise = Promise((self.theme, self.strings))
@@ -256,7 +240,7 @@ final class ChatListSearchRecentPeersNode: ASDisplayNode {
self.disposable.dispose()
}
- func updateThemeAndStrings(theme: PresentationTheme, strings: PresentationStrings) {
+ public func updateThemeAndStrings(theme: PresentationTheme, strings: PresentationStrings) {
if self.theme !== theme || self.strings !== strings {
self.theme = theme
self.strings = strings
@@ -267,11 +251,11 @@ final class ChatListSearchRecentPeersNode: ASDisplayNode {
}
}
- override func calculateSizeThatFits(_ constrainedSize: CGSize) -> CGSize {
+ override public func calculateSizeThatFits(_ constrainedSize: CGSize) -> CGSize {
return CGSize(width: constrainedSize.width, height: 114.0)
}
- func updateLayout(size: CGSize, leftInset: CGFloat, rightInset: CGFloat) {
+ public func updateLayout(size: CGSize, leftInset: CGFloat, rightInset: CGFloat) {
self.sectionHeaderNode.frame = CGRect(origin: CGPoint(), size: CGSize(width: size.width, height: 28.0))
self.sectionHeaderNode.updateLayout(size: CGSize(width: size.width, height: 28.0), leftInset: leftInset, rightInset: rightInset)
@@ -294,7 +278,7 @@ final class ChatListSearchRecentPeersNode: ASDisplayNode {
self.itemCustomWidthValuePromise.set(itemCustomWidth)
}
- func viewAndPeerAtPoint(_ point: CGPoint) -> (UIView, PeerId)? {
+ public func viewAndPeerAtPoint(_ point: CGPoint) -> (UIView, PeerId)? {
let adjustedPoint = self.view.convert(point, to: self.listView.view)
var selectedItemNode: ASDisplayNode?
self.listView.forEachItemNode { itemNode in
@@ -308,17 +292,7 @@ final class ChatListSearchRecentPeersNode: ASDisplayNode {
return nil
}
- func removePeer(_ peerId: PeerId) {
-// for i in 0 ..< self.items.count {
-// if let item = self.items[i] as? HorizontalPeerItem, item.peer.id == peerId {
-// self.items.remove(at: i)
-// self.listView.transaction(deleteIndices: [ListViewDeleteItem(index: i, directionHint: nil)], insertIndicesAndItems: [], updateIndicesAndItems: [], options: [.AnimateInsertion], updateOpaqueState: nil)
-// break
-// }
-// }
- }
-
- func updateSelectedPeers(animated: Bool) {
+ public func updateSelectedPeers(animated: Bool) {
self.listView.forEachItemNode { itemNode in
if let itemNode = itemNode as? HorizontalPeerItemNode {
itemNode.updateSelection(animated: animated)
diff --git a/submodules/HorizontalPeerItem/HorizontalPeerItem_Xcode.xcodeproj/project.pbxproj b/submodules/HorizontalPeerItem/HorizontalPeerItem_Xcode.xcodeproj/project.pbxproj
new file mode 100644
index 0000000000..8b2936e320
--- /dev/null
+++ b/submodules/HorizontalPeerItem/HorizontalPeerItem_Xcode.xcodeproj/project.pbxproj
@@ -0,0 +1,587 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 50;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ D0879CDC22F8779600C4D6B3 /* HorizontalPeerItem.h in Headers */ = {isa = PBXBuildFile; fileRef = D0879CDA22F8779600C4D6B3 /* HorizontalPeerItem.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0879CE722F8788500C4D6B3 /* HorizontalPeerItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879CE622F8788500C4D6B3 /* HorizontalPeerItem.swift */; };
+ D0879CEA22F8789500C4D6B3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879CE922F8789500C4D6B3 /* Foundation.framework */; };
+ D0879CEC22F8789B00C4D6B3 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879CEB22F8789A00C4D6B3 /* UIKit.framework */; };
+ D0879CEE22F8789E00C4D6B3 /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879CED22F8789E00C4D6B3 /* Display.framework */; };
+ D0879CF022F878A200C4D6B3 /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879CEF22F878A200C4D6B3 /* Postbox.framework */; };
+ D0879CF222F878A600C4D6B3 /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879CF122F878A600C4D6B3 /* AsyncDisplayKit.framework */; };
+ D0879CF422F878AB00C4D6B3 /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879CF322F878AB00C4D6B3 /* TelegramCore.framework */; };
+ D0879CF622F878B100C4D6B3 /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879CF522F878B100C4D6B3 /* SwiftSignalKit.framework */; };
+ D0879CF822F878B600C4D6B3 /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879CF722F878B600C4D6B3 /* TelegramPresentationData.framework */; };
+ D0879CFA22F878BC00C4D6B3 /* TelegramStringFormatting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879CF922F878BC00C4D6B3 /* TelegramStringFormatting.framework */; };
+ D0879CFE22F87A1000C4D6B3 /* PeerOnlineMarkerNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879CFD22F87A1000C4D6B3 /* PeerOnlineMarkerNode.framework */; };
+ D0879D0022F87A4F00C4D6B3 /* SelectablePeerNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879CFF22F87A4F00C4D6B3 /* SelectablePeerNode.framework */; };
+ D0879D1D22F87B2300C4D6B3 /* UnreadSearchBadge.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879D1C22F87B2300C4D6B3 /* UnreadSearchBadge.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ D0879CD722F8779600C4D6B3 /* HorizontalPeerItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = HorizontalPeerItem.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879CDA22F8779600C4D6B3 /* HorizontalPeerItem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HorizontalPeerItem.h; sourceTree = ""; };
+ D0879CDB22F8779600C4D6B3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ D0879CE622F8788500C4D6B3 /* HorizontalPeerItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HorizontalPeerItem.swift; sourceTree = ""; };
+ D0879CE922F8789500C4D6B3 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ D0879CEB22F8789A00C4D6B3 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+ D0879CED22F8789E00C4D6B3 /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879CEF22F878A200C4D6B3 /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879CF122F878A600C4D6B3 /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879CF322F878AB00C4D6B3 /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879CF522F878B100C4D6B3 /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879CF722F878B600C4D6B3 /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879CF922F878BC00C4D6B3 /* TelegramStringFormatting.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramStringFormatting.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879CFD22F87A1000C4D6B3 /* PeerOnlineMarkerNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PeerOnlineMarkerNode.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879CFF22F87A4F00C4D6B3 /* SelectablePeerNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SelectablePeerNode.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879D1C22F87B2300C4D6B3 /* UnreadSearchBadge.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = UnreadSearchBadge.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ D0879CD422F8779600C4D6B3 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879D1D22F87B2300C4D6B3 /* UnreadSearchBadge.framework in Frameworks */,
+ D0879D0022F87A4F00C4D6B3 /* SelectablePeerNode.framework in Frameworks */,
+ D0879CFE22F87A1000C4D6B3 /* PeerOnlineMarkerNode.framework in Frameworks */,
+ D0879CFA22F878BC00C4D6B3 /* TelegramStringFormatting.framework in Frameworks */,
+ D0879CF822F878B600C4D6B3 /* TelegramPresentationData.framework in Frameworks */,
+ D0879CF622F878B100C4D6B3 /* SwiftSignalKit.framework in Frameworks */,
+ D0879CF422F878AB00C4D6B3 /* TelegramCore.framework in Frameworks */,
+ D0879CF222F878A600C4D6B3 /* AsyncDisplayKit.framework in Frameworks */,
+ D0879CF022F878A200C4D6B3 /* Postbox.framework in Frameworks */,
+ D0879CEE22F8789E00C4D6B3 /* Display.framework in Frameworks */,
+ D0879CEC22F8789B00C4D6B3 /* UIKit.framework in Frameworks */,
+ D0879CEA22F8789500C4D6B3 /* Foundation.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ D0879CCD22F8779600C4D6B3 = {
+ isa = PBXGroup;
+ children = (
+ D0879CDB22F8779600C4D6B3 /* Info.plist */,
+ D0879CD922F8779600C4D6B3 /* Sources */,
+ D0879CD822F8779600C4D6B3 /* Products */,
+ D0879CE822F8789500C4D6B3 /* Frameworks */,
+ );
+ sourceTree = "";
+ };
+ D0879CD822F8779600C4D6B3 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ D0879CD722F8779600C4D6B3 /* HorizontalPeerItem.framework */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ D0879CD922F8779600C4D6B3 /* Sources */ = {
+ isa = PBXGroup;
+ children = (
+ D0879CE622F8788500C4D6B3 /* HorizontalPeerItem.swift */,
+ D0879CDA22F8779600C4D6B3 /* HorizontalPeerItem.h */,
+ );
+ path = Sources;
+ sourceTree = "";
+ };
+ D0879CE822F8789500C4D6B3 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ D0879D1C22F87B2300C4D6B3 /* UnreadSearchBadge.framework */,
+ D0879CFF22F87A4F00C4D6B3 /* SelectablePeerNode.framework */,
+ D0879CFD22F87A1000C4D6B3 /* PeerOnlineMarkerNode.framework */,
+ D0879CF922F878BC00C4D6B3 /* TelegramStringFormatting.framework */,
+ D0879CF722F878B600C4D6B3 /* TelegramPresentationData.framework */,
+ D0879CF522F878B100C4D6B3 /* SwiftSignalKit.framework */,
+ D0879CF322F878AB00C4D6B3 /* TelegramCore.framework */,
+ D0879CF122F878A600C4D6B3 /* AsyncDisplayKit.framework */,
+ D0879CEF22F878A200C4D6B3 /* Postbox.framework */,
+ D0879CED22F8789E00C4D6B3 /* Display.framework */,
+ D0879CEB22F8789A00C4D6B3 /* UIKit.framework */,
+ D0879CE922F8789500C4D6B3 /* Foundation.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ D0879CD222F8779600C4D6B3 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879CDC22F8779600C4D6B3 /* HorizontalPeerItem.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ D0879CD622F8779600C4D6B3 /* HorizontalPeerItem */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = D0879CDF22F8779600C4D6B3 /* Build configuration list for PBXNativeTarget "HorizontalPeerItem" */;
+ buildPhases = (
+ D0879CD222F8779600C4D6B3 /* Headers */,
+ D0879CD322F8779600C4D6B3 /* Sources */,
+ D0879CD422F8779600C4D6B3 /* Frameworks */,
+ D0879CD522F8779600C4D6B3 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = HorizontalPeerItem;
+ productName = HorizontalPeerItem;
+ productReference = D0879CD722F8779600C4D6B3 /* HorizontalPeerItem.framework */;
+ productType = "com.apple.product-type.framework";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ D0879CCE22F8779600C4D6B3 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ DefaultBuildSystemTypeForWorkspace = Latest;
+ LastUpgradeCheck = 1030;
+ ORGANIZATIONNAME = "Telegram Messenger LLP";
+ TargetAttributes = {
+ D0879CD622F8779600C4D6B3 = {
+ CreatedOnToolsVersion = 10.3;
+ LastSwiftMigration = 1030;
+ };
+ };
+ };
+ buildConfigurationList = D0879CD122F8779600C4D6B3 /* Build configuration list for PBXProject "HorizontalPeerItem_Xcode" */;
+ compatibilityVersion = "Xcode 9.3";
+ developmentRegion = en;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ );
+ mainGroup = D0879CCD22F8779600C4D6B3;
+ productRefGroup = D0879CD822F8779600C4D6B3 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ D0879CD622F8779600C4D6B3 /* HorizontalPeerItem */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ D0879CD522F8779600C4D6B3 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ D0879CD322F8779600C4D6B3 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879CE722F8788500C4D6B3 /* HorizontalPeerItem.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+ D0879CDD22F8779600C4D6B3 /* 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;
+ };
+ D0879CDE22F8779600C4D6B3 /* 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;
+ };
+ D0879CE022F8779600C4D6B3 /* 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.HorizontalPeerItem;
+ 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;
+ };
+ D0879CE122F8779600C4D6B3 /* 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.HorizontalPeerItem;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SKIP_INSTALL = YES;
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = ReleaseAppStoreLLC;
+ };
+ D0879CE222F8784900C4D6B3 /* 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;
+ };
+ D0879CE322F8784900C4D6B3 /* 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.HorizontalPeerItem;
+ 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;
+ };
+ D0879CE422F8785400C4D6B3 /* 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;
+ };
+ D0879CE522F8785400C4D6B3 /* 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.HorizontalPeerItem;
+ 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 */
+ D0879CD122F8779600C4D6B3 /* Build configuration list for PBXProject "HorizontalPeerItem_Xcode" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D0879CDD22F8779600C4D6B3 /* DebugAppStoreLLC */,
+ D0879CE222F8784900C4D6B3 /* DebugHockeyapp */,
+ D0879CDE22F8779600C4D6B3 /* ReleaseAppStoreLLC */,
+ D0879CE422F8785400C4D6B3 /* ReleaseHockeyappInternal */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = ReleaseAppStoreLLC;
+ };
+ D0879CDF22F8779600C4D6B3 /* Build configuration list for PBXNativeTarget "HorizontalPeerItem" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D0879CE022F8779600C4D6B3 /* DebugAppStoreLLC */,
+ D0879CE322F8784900C4D6B3 /* DebugHockeyapp */,
+ D0879CE122F8779600C4D6B3 /* ReleaseAppStoreLLC */,
+ D0879CE522F8785400C4D6B3 /* ReleaseHockeyappInternal */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = ReleaseAppStoreLLC;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = D0879CCE22F8779600C4D6B3 /* Project object */;
+}
diff --git a/submodules/HorizontalPeerItem/Info.plist b/submodules/HorizontalPeerItem/Info.plist
new file mode 100644
index 0000000000..e1fe4cfb7b
--- /dev/null
+++ b/submodules/HorizontalPeerItem/Info.plist
@@ -0,0 +1,22 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ $(DEVELOPMENT_LANGUAGE)
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ $(CURRENT_PROJECT_VERSION)
+
+
diff --git a/submodules/HorizontalPeerItem/Sources/HorizontalPeerItem.h b/submodules/HorizontalPeerItem/Sources/HorizontalPeerItem.h
new file mode 100644
index 0000000000..3a9e82c243
--- /dev/null
+++ b/submodules/HorizontalPeerItem/Sources/HorizontalPeerItem.h
@@ -0,0 +1,19 @@
+//
+// HorizontalPeerItem.h
+// HorizontalPeerItem
+//
+// Created by Peter on 8/5/19.
+// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
+//
+
+#import
+
+//! Project version number for HorizontalPeerItem.
+FOUNDATION_EXPORT double HorizontalPeerItemVersionNumber;
+
+//! Project version string for HorizontalPeerItem.
+FOUNDATION_EXPORT const unsigned char HorizontalPeerItemVersionString[];
+
+// In this header, you should import all the public headers of your framework using statements like #import
+
+
diff --git a/submodules/TelegramUI/TelegramUI/HorizontalPeerItem.swift b/submodules/HorizontalPeerItem/Sources/HorizontalPeerItem.swift
similarity index 84%
rename from submodules/TelegramUI/TelegramUI/HorizontalPeerItem.swift
rename to submodules/HorizontalPeerItem/Sources/HorizontalPeerItem.swift
index a59d7fcb5b..4613e342fc 100644
--- a/submodules/TelegramUI/TelegramUI/HorizontalPeerItem.swift
+++ b/submodules/HorizontalPeerItem/Sources/HorizontalPeerItem.swift
@@ -7,27 +7,31 @@ import TelegramCore
import SwiftSignalKit
import TelegramPresentationData
import TelegramStringFormatting
+import PeerOnlineMarkerNode
+import SelectablePeerNode
+import UnreadSearchBadge
-enum HorizontalPeerItemMode {
+public enum HorizontalPeerItemMode {
case list
case actionSheet
}
private let badgeFont = Font.regular(14.0)
-final class HorizontalPeerItem: ListViewItem {
+public final class HorizontalPeerItem: ListViewItem {
let theme: PresentationTheme
let strings: PresentationStrings
let mode: HorizontalPeerItemMode
let account: Account
- let peer: Peer
+ public let peer: Peer
let action: (Peer) -> Void
let longTapAction: (Peer) -> Void
let isPeerSelected: (PeerId) -> Bool
let customWidth: CGFloat?
let presence: PeerPresence?
let unreadBadge: UnreadSearchBadge?
- init(theme: PresentationTheme, strings: PresentationStrings, mode: HorizontalPeerItemMode, account: Account, peer: Peer, presence: PeerPresence?, unreadBadge: UnreadSearchBadge?, action: @escaping (Peer) -> Void, longTapAction: @escaping (Peer) -> Void, isPeerSelected: @escaping (PeerId) -> Bool, customWidth: CGFloat?) {
+
+ public init(theme: PresentationTheme, strings: PresentationStrings, mode: HorizontalPeerItemMode, account: Account, peer: Peer, presence: PeerPresence?, unreadBadge: UnreadSearchBadge?, action: @escaping (Peer) -> Void, longTapAction: @escaping (Peer) -> Void, isPeerSelected: @escaping (PeerId) -> Bool, customWidth: CGFloat?) {
self.theme = theme
self.strings = strings
self.mode = mode
@@ -41,7 +45,7 @@ final class HorizontalPeerItem: ListViewItem {
self.unreadBadge = unreadBadge
}
- func nodeConfiguredForParams(async: @escaping (@escaping () -> Void) -> Void, params: ListViewItemLayoutParams, synchronousLoads: Bool, previousItem: ListViewItem?, nextItem: ListViewItem?, completion: @escaping (ListViewItemNode, @escaping () -> (Signal?, (ListViewItemApply) -> Void)) -> Void) {
+ public func nodeConfiguredForParams(async: @escaping (@escaping () -> Void) -> Void, params: ListViewItemLayoutParams, synchronousLoads: Bool, previousItem: ListViewItem?, nextItem: ListViewItem?, completion: @escaping (ListViewItemNode, @escaping () -> (Signal?, (ListViewItemApply) -> Void)) -> Void) {
async {
let node = HorizontalPeerItemNode()
let (nodeLayout, apply) = node.asyncLayout()(self, params)
@@ -58,7 +62,7 @@ final class HorizontalPeerItem: ListViewItem {
}
}
- 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 {
assert(node() is HorizontalPeerItemNode)
if let nodeValue = node() as? HorizontalPeerItemNode {
@@ -76,14 +80,14 @@ final class HorizontalPeerItem: ListViewItem {
}
}
-final class HorizontalPeerItemNode: ListViewItemNode {
+public final class HorizontalPeerItemNode: ListViewItemNode {
private(set) var peerNode: SelectablePeerNode
let badgeBackgroundNode: ASImageNode
let badgeTextNode: TextNode
- let onlineNode: ChatListOnlineNode
- private(set) var item: HorizontalPeerItem?
+ let onlineNode: PeerOnlineMarkerNode
+ public private(set) var item: HorizontalPeerItem?
- init() {
+ public init() {
self.peerNode = SelectablePeerNode()
self.badgeBackgroundNode = ASImageNode()
self.badgeBackgroundNode.isLayerBacked = true
@@ -94,7 +98,7 @@ final class HorizontalPeerItemNode: ListViewItemNode {
self.badgeTextNode.isUserInteractionEnabled = false
self.badgeTextNode.displaysAsynchronously = true
- self.onlineNode = ChatListOnlineNode()
+ self.onlineNode = PeerOnlineMarkerNode()
super.init(layerBacked: false, dynamicBounce: false)
@@ -114,13 +118,13 @@ final class HorizontalPeerItemNode: ListViewItemNode {
}
}
- override func didLoad() {
+ override public func didLoad() {
super.didLoad()
self.layer.sublayerTransform = CATransform3DMakeRotation(CGFloat.pi / 2.0, 0.0, 0.0, 1.0)
}
- func asyncLayout() -> (HorizontalPeerItem, ListViewItemLayoutParams) -> (ListViewItemNodeLayout, (Bool) -> Void) {
+ public func asyncLayout() -> (HorizontalPeerItem, ListViewItemLayoutParams) -> (ListViewItemNodeLayout, (Bool) -> Void) {
let badgeTextLayout = TextNode.asyncLayout(self.badgeTextNode)
let onlineLayout = self.onlineNode.asyncLayout()
@@ -222,25 +226,25 @@ final class HorizontalPeerItemNode: ListViewItemNode {
}
}
- func updateSelection(animated: Bool) {
+ public func updateSelection(animated: Bool) {
if let item = self.item {
self.peerNode.updateSelection(selected: item.isPeerSelected(item.peer.id), animated: animated)
}
}
- override func animateInsertion(_ currentTimestamp: Double, duration: Double, short: Bool) {
+ override public func animateInsertion(_ currentTimestamp: Double, duration: Double, short: Bool) {
super.animateInsertion(currentTimestamp, duration: duration, short: short)
self.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.2)
}
- override func animateRemoved(_ currentTimestamp: Double, duration: Double) {
+ override public func animateRemoved(_ currentTimestamp: Double, duration: Double) {
super.animateRemoved(currentTimestamp, duration: duration)
self.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.2, removeOnCompletion: false)
}
- override func animateAdded(_ currentTimestamp: Double, duration: Double) {
+ override public func animateAdded(_ currentTimestamp: Double, duration: Double) {
super.animateAdded(currentTimestamp, duration: duration)
self.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.2)
diff --git a/submodules/ImageBlur/ImageBlur_Xcode.xcodeproj/project.pbxproj b/submodules/ImageBlur/ImageBlur_Xcode.xcodeproj/project.pbxproj
new file mode 100644
index 0000000000..07bfe8c85a
--- /dev/null
+++ b/submodules/ImageBlur/ImageBlur_Xcode.xcodeproj/project.pbxproj
@@ -0,0 +1,536 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 50;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ D038AC1722F8864000320981 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D038AC1622F8864000320981 /* Accelerate.framework */; };
+ D0879E1722F8858600C4D6B3 /* ImageBlur.h in Headers */ = {isa = PBXBuildFile; fileRef = D0879E1522F8858600C4D6B3 /* ImageBlur.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0879E1F22F885E500C4D6B3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879E1E22F885E500C4D6B3 /* Foundation.framework */; };
+ D0879E2122F885E800C4D6B3 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879E2022F885E800C4D6B3 /* UIKit.framework */; };
+ D0879E2422F8860300C4D6B3 /* FastBlur.m in Sources */ = {isa = PBXBuildFile; fileRef = D0879E2222F8860300C4D6B3 /* FastBlur.m */; };
+ D0879E2522F8860300C4D6B3 /* FastBlur.h in Headers */ = {isa = PBXBuildFile; fileRef = D0879E2322F8860300C4D6B3 /* FastBlur.h */; settings = {ATTRIBUTES = (Public, ); }; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ D038AC1622F8864000320981 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; };
+ D0879E1222F8858600C4D6B3 /* ImageBlur.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ImageBlur.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879E1522F8858600C4D6B3 /* ImageBlur.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ImageBlur.h; sourceTree = ""; };
+ D0879E1622F8858600C4D6B3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ D0879E1E22F885E500C4D6B3 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ D0879E2022F885E800C4D6B3 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+ D0879E2222F8860300C4D6B3 /* FastBlur.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FastBlur.m; sourceTree = ""; };
+ D0879E2322F8860300C4D6B3 /* FastBlur.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FastBlur.h; sourceTree = ""; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ D0879E0F22F8858600C4D6B3 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D038AC1722F8864000320981 /* Accelerate.framework in Frameworks */,
+ D0879E2122F885E800C4D6B3 /* UIKit.framework in Frameworks */,
+ D0879E1F22F885E500C4D6B3 /* Foundation.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ D0879E0822F8858500C4D6B3 = {
+ isa = PBXGroup;
+ children = (
+ D0879E1622F8858600C4D6B3 /* Info.plist */,
+ D0879E1422F8858600C4D6B3 /* Sources */,
+ D0879E1322F8858600C4D6B3 /* Products */,
+ D0879E1D22F885E400C4D6B3 /* Frameworks */,
+ );
+ sourceTree = "";
+ };
+ D0879E1322F8858600C4D6B3 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ D0879E1222F8858600C4D6B3 /* ImageBlur.framework */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ D0879E1422F8858600C4D6B3 /* Sources */ = {
+ isa = PBXGroup;
+ children = (
+ D0879E2322F8860300C4D6B3 /* FastBlur.h */,
+ D0879E2222F8860300C4D6B3 /* FastBlur.m */,
+ D0879E1522F8858600C4D6B3 /* ImageBlur.h */,
+ );
+ path = Sources;
+ sourceTree = "";
+ };
+ D0879E1D22F885E400C4D6B3 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ D038AC1622F8864000320981 /* Accelerate.framework */,
+ D0879E2022F885E800C4D6B3 /* UIKit.framework */,
+ D0879E1E22F885E500C4D6B3 /* Foundation.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ D0879E0D22F8858600C4D6B3 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879E1722F8858600C4D6B3 /* ImageBlur.h in Headers */,
+ D0879E2522F8860300C4D6B3 /* FastBlur.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ D0879E1122F8858600C4D6B3 /* ImageBlur */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = D0879E1A22F8858600C4D6B3 /* Build configuration list for PBXNativeTarget "ImageBlur" */;
+ buildPhases = (
+ D0879E0D22F8858600C4D6B3 /* Headers */,
+ D0879E0E22F8858600C4D6B3 /* Sources */,
+ D0879E0F22F8858600C4D6B3 /* Frameworks */,
+ D0879E1022F8858600C4D6B3 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = ImageBlur;
+ productName = ImageBlur;
+ productReference = D0879E1222F8858600C4D6B3 /* ImageBlur.framework */;
+ productType = "com.apple.product-type.framework";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ D0879E0922F8858500C4D6B3 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ DefaultBuildSystemTypeForWorkspace = Latest;
+ LastUpgradeCheck = 1030;
+ ORGANIZATIONNAME = "Telegram Messenger LLP";
+ TargetAttributes = {
+ D0879E1122F8858600C4D6B3 = {
+ CreatedOnToolsVersion = 10.3;
+ };
+ };
+ };
+ buildConfigurationList = D0879E0C22F8858500C4D6B3 /* Build configuration list for PBXProject "ImageBlur_Xcode" */;
+ compatibilityVersion = "Xcode 9.3";
+ developmentRegion = en;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ );
+ mainGroup = D0879E0822F8858500C4D6B3;
+ productRefGroup = D0879E1322F8858600C4D6B3 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ D0879E1122F8858600C4D6B3 /* ImageBlur */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ D0879E1022F8858600C4D6B3 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ D0879E0E22F8858600C4D6B3 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879E2422F8860300C4D6B3 /* FastBlur.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+ D038AC1A22F886A600320981 /* 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;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = DebugHockeyapp;
+ };
+ D038AC1B22F886A600320981 /* DebugHockeyapp */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ 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.ImageBlur;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SKIP_INSTALL = YES;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = DebugHockeyapp;
+ };
+ D038AC1C22F886B100320981 /* 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;
+ VALIDATE_PRODUCT = YES;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = ReleaseHockeyappInternal;
+ };
+ D038AC1D22F886B100320981 /* ReleaseHockeyappInternal */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ 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.ImageBlur;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SKIP_INSTALL = YES;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = ReleaseHockeyappInternal;
+ };
+ D0879E1822F8858600C4D6B3 /* 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;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = DebugAppStoreLLC;
+ };
+ D0879E1922F8858600C4D6B3 /* 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;
+ VALIDATE_PRODUCT = YES;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = ReleaseAppStoreLLC;
+ };
+ D0879E1B22F8858600C4D6B3 /* DebugAppStoreLLC */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ 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.ImageBlur;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SKIP_INSTALL = YES;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = DebugAppStoreLLC;
+ };
+ D0879E1C22F8858600C4D6B3 /* ReleaseAppStoreLLC */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ 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.ImageBlur;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SKIP_INSTALL = YES;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = ReleaseAppStoreLLC;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ D0879E0C22F8858500C4D6B3 /* Build configuration list for PBXProject "ImageBlur_Xcode" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D0879E1822F8858600C4D6B3 /* DebugAppStoreLLC */,
+ D038AC1A22F886A600320981 /* DebugHockeyapp */,
+ D0879E1922F8858600C4D6B3 /* ReleaseAppStoreLLC */,
+ D038AC1C22F886B100320981 /* ReleaseHockeyappInternal */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = ReleaseAppStoreLLC;
+ };
+ D0879E1A22F8858600C4D6B3 /* Build configuration list for PBXNativeTarget "ImageBlur" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D0879E1B22F8858600C4D6B3 /* DebugAppStoreLLC */,
+ D038AC1B22F886A600320981 /* DebugHockeyapp */,
+ D0879E1C22F8858600C4D6B3 /* ReleaseAppStoreLLC */,
+ D038AC1D22F886B100320981 /* ReleaseHockeyappInternal */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = ReleaseAppStoreLLC;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = D0879E0922F8858500C4D6B3 /* Project object */;
+}
diff --git a/submodules/ImageBlur/Info.plist b/submodules/ImageBlur/Info.plist
new file mode 100644
index 0000000000..e1fe4cfb7b
--- /dev/null
+++ b/submodules/ImageBlur/Info.plist
@@ -0,0 +1,22 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ $(DEVELOPMENT_LANGUAGE)
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ $(CURRENT_PROJECT_VERSION)
+
+
diff --git a/submodules/TelegramUI/TelegramUI/FastBlur.h b/submodules/ImageBlur/Sources/FastBlur.h
similarity index 70%
rename from submodules/TelegramUI/TelegramUI/FastBlur.h
rename to submodules/ImageBlur/Sources/FastBlur.h
index 78e200f06e..1a06dcc567 100644
--- a/submodules/TelegramUI/TelegramUI/FastBlur.h
+++ b/submodules/ImageBlur/Sources/FastBlur.h
@@ -3,9 +3,9 @@
#import
-void imageFastBlur(int imageWidth, int imageHeight, int imageStride, void *pixels);
-void telegramFastBlurMore(int imageWidth, int imageHeight, int imageStride, void *pixels);
-void stickerThumbnailAlphaBlur(int imageWidth, int imageHeight, int imageStride, void *pixels);
-void telegramBrightenImage(int imageWidth, int imageHeight, int imageStride, void *pixels);
+void imageFastBlur(int imageWidth, int imageHeight, int imageStride, void * _Nonnull pixels);
+void telegramFastBlurMore(int imageWidth, int imageHeight, int imageStride, void * _Nonnull pixels);
+void stickerThumbnailAlphaBlur(int imageWidth, int imageHeight, int imageStride, void * _Nonnull pixels);
+void telegramBrightenImage(int imageWidth, int imageHeight, int imageStride, void * _Nonnull pixels);
#endif
diff --git a/submodules/TelegramUI/TelegramUI/FastBlur.m b/submodules/ImageBlur/Sources/FastBlur.m
similarity index 95%
rename from submodules/TelegramUI/TelegramUI/FastBlur.m
rename to submodules/ImageBlur/Sources/FastBlur.m
index 588dd24489..106e50b545 100644
--- a/submodules/TelegramUI/TelegramUI/FastBlur.m
+++ b/submodules/ImageBlur/Sources/FastBlur.m
@@ -6,7 +6,7 @@ static inline uint64_t get_colors (const uint8_t *p) {
return p[0] + (p[1] << 16) + ((uint64_t)p[2] << 32);
}
-void imageFastBlur(int imageWidth, int imageHeight, int imageStride, void *pixels)
+void imageFastBlur(int imageWidth, int imageHeight, int imageStride, void * _Nonnull pixels)
{
uint8_t *pix = (uint8_t *)pixels;
const int w = imageWidth;
@@ -103,7 +103,7 @@ yi += stride;
free(rgb);
}
-void telegramFastBlurMore(int imageWidth, int imageHeight, int imageStride, void *pixels)
+void telegramFastBlurMore(int imageWidth, int imageHeight, int imageStride, void * _Nonnull pixels)
{
uint8_t *pix = (uint8_t *)pixels;
const int w = imageWidth;
@@ -200,7 +200,7 @@ yi += stride;
free(rgb);
}
-void stickerThumbnailAlphaBlur(int imageWidth, int imageHeight, int imageStride, void *pixels) {
+void stickerThumbnailAlphaBlur(int imageWidth, int imageHeight, int imageStride, void * _Nonnull pixels) {
vImage_Buffer srcBuffer;
srcBuffer.width = imageWidth;
srcBuffer.height = imageHeight;
@@ -221,7 +221,7 @@ void stickerThumbnailAlphaBlur(int imageWidth, int imageHeight, int imageStride,
}
}
-static void modifyImage(void *pixels, unsigned int width, unsigned int height, unsigned int stride, int16_t *matrix)
+static void modifyImage(void *pixels, unsigned int width, unsigned int height, unsigned int stride, int16_t * _Nonnull matrix)
{
vImage_Buffer dstBuffer;
dstBuffer.width = width;
@@ -233,7 +233,7 @@ static void modifyImage(void *pixels, unsigned int width, unsigned int height, u
vImageMatrixMultiply_ARGB8888(&dstBuffer, &dstBuffer, matrix, divisor, NULL, NULL, kvImageDoNotTile);
}
-static void matrixMul(CGFloat *a, CGFloat *b, CGFloat *result)
+static void matrixMul(CGFloat * _Nonnull a, CGFloat * _Nonnull b, CGFloat *result)
{
for (int i = 0; i != 4; ++i)
{
@@ -249,7 +249,7 @@ static void matrixMul(CGFloat *a, CGFloat *b, CGFloat *result)
}
}
-static int16_t *lightBrightenMatrix(int32_t *outDivisor)
+static int16_t *lightBrightenMatrix(int32_t * _Nullable outDivisor)
{
static int16_t saturationMatrix[16];
static const int32_t divisor = 256;
@@ -287,7 +287,7 @@ static int16_t *lightBrightenMatrix(int32_t *outDivisor)
return saturationMatrix;
}
-void telegramBrightenImage(int imageWidth, int imageHeight, int imageStride, void *pixels)
+void telegramBrightenImage(int imageWidth, int imageHeight, int imageStride, void * _Nonnull pixels)
{
modifyImage(pixels, imageWidth, imageHeight, imageStride, lightBrightenMatrix(NULL));
}
diff --git a/submodules/ImageBlur/Sources/ImageBlur.h b/submodules/ImageBlur/Sources/ImageBlur.h
new file mode 100644
index 0000000000..21ab6cdb46
--- /dev/null
+++ b/submodules/ImageBlur/Sources/ImageBlur.h
@@ -0,0 +1,11 @@
+#import
+
+//! Project version number for ImageBlur.
+FOUNDATION_EXPORT double ImageBlurVersionNumber;
+
+//! Project version string for ImageBlur.
+FOUNDATION_EXPORT const unsigned char ImageBlurVersionString[];
+
+#import
+
+
diff --git a/submodules/ListSectionHeaderNode/Info.plist b/submodules/ListSectionHeaderNode/Info.plist
new file mode 100644
index 0000000000..e1fe4cfb7b
--- /dev/null
+++ b/submodules/ListSectionHeaderNode/Info.plist
@@ -0,0 +1,22 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ $(DEVELOPMENT_LANGUAGE)
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ $(CURRENT_PROJECT_VERSION)
+
+
diff --git a/submodules/ListSectionHeaderNode/ListSectionHeaderNode_Xcode.xcodeproj/project.pbxproj b/submodules/ListSectionHeaderNode/ListSectionHeaderNode_Xcode.xcodeproj/project.pbxproj
new file mode 100644
index 0000000000..fbc786a6a8
--- /dev/null
+++ b/submodules/ListSectionHeaderNode/ListSectionHeaderNode_Xcode.xcodeproj/project.pbxproj
@@ -0,0 +1,559 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 50;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ D0879D2F22F87B6100C4D6B3 /* ListSectionHeaderNode.h in Headers */ = {isa = PBXBuildFile; fileRef = D0879D2D22F87B6100C4D6B3 /* ListSectionHeaderNode.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0879D3A22F87BB800C4D6B3 /* ListSectionHeaderNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879D3922F87BB800C4D6B3 /* ListSectionHeaderNode.swift */; };
+ D0879D3D22F87BC600C4D6B3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879D3C22F87BC600C4D6B3 /* Foundation.framework */; };
+ D0879D3F22F87BC900C4D6B3 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879D3E22F87BC900C4D6B3 /* UIKit.framework */; };
+ D0879D4122F87BCB00C4D6B3 /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879D4022F87BCB00C4D6B3 /* AsyncDisplayKit.framework */; };
+ D0879D4322F87BCE00C4D6B3 /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879D4222F87BCE00C4D6B3 /* Display.framework */; };
+ D0879D4522F87BD300C4D6B3 /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879D4422F87BD300C4D6B3 /* TelegramPresentationData.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ D0879D2A22F87B6100C4D6B3 /* ListSectionHeaderNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ListSectionHeaderNode.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879D2D22F87B6100C4D6B3 /* ListSectionHeaderNode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ListSectionHeaderNode.h; sourceTree = ""; };
+ D0879D2E22F87B6100C4D6B3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ D0879D3922F87BB800C4D6B3 /* ListSectionHeaderNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ListSectionHeaderNode.swift; sourceTree = ""; };
+ D0879D3C22F87BC600C4D6B3 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ D0879D3E22F87BC900C4D6B3 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+ D0879D4022F87BCB00C4D6B3 /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879D4222F87BCE00C4D6B3 /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879D4422F87BD300C4D6B3 /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ D0879D2722F87B6100C4D6B3 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879D4522F87BD300C4D6B3 /* TelegramPresentationData.framework in Frameworks */,
+ D0879D4322F87BCE00C4D6B3 /* Display.framework in Frameworks */,
+ D0879D4122F87BCB00C4D6B3 /* AsyncDisplayKit.framework in Frameworks */,
+ D0879D3F22F87BC900C4D6B3 /* UIKit.framework in Frameworks */,
+ D0879D3D22F87BC600C4D6B3 /* Foundation.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ D0879D2022F87B6100C4D6B3 = {
+ isa = PBXGroup;
+ children = (
+ D0879D2E22F87B6100C4D6B3 /* Info.plist */,
+ D0879D2C22F87B6100C4D6B3 /* Sources */,
+ D0879D2B22F87B6100C4D6B3 /* Products */,
+ D0879D3B22F87BC500C4D6B3 /* Frameworks */,
+ );
+ sourceTree = "";
+ };
+ D0879D2B22F87B6100C4D6B3 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ D0879D2A22F87B6100C4D6B3 /* ListSectionHeaderNode.framework */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ D0879D2C22F87B6100C4D6B3 /* Sources */ = {
+ isa = PBXGroup;
+ children = (
+ D0879D3922F87BB800C4D6B3 /* ListSectionHeaderNode.swift */,
+ D0879D2D22F87B6100C4D6B3 /* ListSectionHeaderNode.h */,
+ );
+ path = Sources;
+ sourceTree = "";
+ };
+ D0879D3B22F87BC500C4D6B3 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ D0879D4422F87BD300C4D6B3 /* TelegramPresentationData.framework */,
+ D0879D4222F87BCE00C4D6B3 /* Display.framework */,
+ D0879D4022F87BCB00C4D6B3 /* AsyncDisplayKit.framework */,
+ D0879D3E22F87BC900C4D6B3 /* UIKit.framework */,
+ D0879D3C22F87BC600C4D6B3 /* Foundation.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ D0879D2522F87B6100C4D6B3 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879D2F22F87B6100C4D6B3 /* ListSectionHeaderNode.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ D0879D2922F87B6100C4D6B3 /* ListSectionHeaderNode */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = D0879D3222F87B6100C4D6B3 /* Build configuration list for PBXNativeTarget "ListSectionHeaderNode" */;
+ buildPhases = (
+ D0879D2522F87B6100C4D6B3 /* Headers */,
+ D0879D2622F87B6100C4D6B3 /* Sources */,
+ D0879D2722F87B6100C4D6B3 /* Frameworks */,
+ D0879D2822F87B6100C4D6B3 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = ListSectionHeaderNode;
+ productName = ListSectionHeaderNode;
+ productReference = D0879D2A22F87B6100C4D6B3 /* ListSectionHeaderNode.framework */;
+ productType = "com.apple.product-type.framework";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ D0879D2122F87B6100C4D6B3 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ DefaultBuildSystemTypeForWorkspace = Latest;
+ LastUpgradeCheck = 1030;
+ ORGANIZATIONNAME = "Telegram Messenger LLP";
+ TargetAttributes = {
+ D0879D2922F87B6100C4D6B3 = {
+ CreatedOnToolsVersion = 10.3;
+ LastSwiftMigration = 1030;
+ };
+ };
+ };
+ buildConfigurationList = D0879D2422F87B6100C4D6B3 /* Build configuration list for PBXProject "ListSectionHeaderNode_Xcode" */;
+ compatibilityVersion = "Xcode 9.3";
+ developmentRegion = en;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ );
+ mainGroup = D0879D2022F87B6100C4D6B3;
+ productRefGroup = D0879D2B22F87B6100C4D6B3 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ D0879D2922F87B6100C4D6B3 /* ListSectionHeaderNode */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ D0879D2822F87B6100C4D6B3 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ D0879D2622F87B6100C4D6B3 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879D3A22F87BB800C4D6B3 /* ListSectionHeaderNode.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+ D0879D3022F87B6100C4D6B3 /* 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;
+ };
+ D0879D3122F87B6100C4D6B3 /* 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;
+ };
+ D0879D3322F87B6100C4D6B3 /* 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.ListSectionHeaderNode;
+ 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;
+ };
+ D0879D3422F87B6100C4D6B3 /* 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.ListSectionHeaderNode;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SKIP_INSTALL = YES;
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = ReleaseAppStoreLLC;
+ };
+ D0879D3522F87B7F00C4D6B3 /* 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;
+ };
+ D0879D3622F87B7F00C4D6B3 /* 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.ListSectionHeaderNode;
+ 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;
+ };
+ D0879D3722F87B8B00C4D6B3 /* 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;
+ };
+ D0879D3822F87B8B00C4D6B3 /* 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.ListSectionHeaderNode;
+ 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 */
+ D0879D2422F87B6100C4D6B3 /* Build configuration list for PBXProject "ListSectionHeaderNode_Xcode" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D0879D3022F87B6100C4D6B3 /* DebugAppStoreLLC */,
+ D0879D3522F87B7F00C4D6B3 /* DebugHockeyapp */,
+ D0879D3122F87B6100C4D6B3 /* ReleaseAppStoreLLC */,
+ D0879D3722F87B8B00C4D6B3 /* ReleaseHockeyappInternal */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = ReleaseAppStoreLLC;
+ };
+ D0879D3222F87B6100C4D6B3 /* Build configuration list for PBXNativeTarget "ListSectionHeaderNode" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D0879D3322F87B6100C4D6B3 /* DebugAppStoreLLC */,
+ D0879D3622F87B7F00C4D6B3 /* DebugHockeyapp */,
+ D0879D3422F87B6100C4D6B3 /* ReleaseAppStoreLLC */,
+ D0879D3822F87B8B00C4D6B3 /* ReleaseHockeyappInternal */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = ReleaseAppStoreLLC;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = D0879D2122F87B6100C4D6B3 /* Project object */;
+}
diff --git a/submodules/ListSectionHeaderNode/Sources/ListSectionHeaderNode.h b/submodules/ListSectionHeaderNode/Sources/ListSectionHeaderNode.h
new file mode 100644
index 0000000000..aa5c6c5a61
--- /dev/null
+++ b/submodules/ListSectionHeaderNode/Sources/ListSectionHeaderNode.h
@@ -0,0 +1,19 @@
+//
+// ListSectionHeaderNode.h
+// ListSectionHeaderNode
+//
+// Created by Peter on 8/5/19.
+// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
+//
+
+#import
+
+//! Project version number for ListSectionHeaderNode.
+FOUNDATION_EXPORT double ListSectionHeaderNodeVersionNumber;
+
+//! Project version string for ListSectionHeaderNode.
+FOUNDATION_EXPORT const unsigned char ListSectionHeaderNodeVersionString[];
+
+// In this header, you should import all the public headers of your framework using statements like #import
+
+
diff --git a/submodules/TelegramUI/TelegramUI/ListSectionHeaderNode.swift b/submodules/ListSectionHeaderNode/Sources/ListSectionHeaderNode.swift
similarity index 89%
rename from submodules/TelegramUI/TelegramUI/ListSectionHeaderNode.swift
rename to submodules/ListSectionHeaderNode/Sources/ListSectionHeaderNode.swift
index 2a80960520..5d99fc9119 100644
--- a/submodules/TelegramUI/TelegramUI/ListSectionHeaderNode.swift
+++ b/submodules/ListSectionHeaderNode/Sources/ListSectionHeaderNode.swift
@@ -7,14 +7,14 @@ import TelegramPresentationData
private let titleFont = Font.bold(13.0)
private let actionFont = Font.medium(13.0)
-final class ListSectionHeaderNode: ASDisplayNode {
+public final class ListSectionHeaderNode: ASDisplayNode {
private let label: ImmediateTextNode
private var actionButton: HighlightableButtonNode?
private var theme: PresentationTheme
private var validLayout: (size: CGSize, leftInset: CGFloat, rightInset: CGFloat)?
- var title: String? {
+ public var title: String? {
didSet {
self.label.attributedText = NSAttributedString(string: self.title ?? "", font: titleFont, textColor: self.theme.chatList.sectionHeaderTextColor)
@@ -24,7 +24,7 @@ final class ListSectionHeaderNode: ASDisplayNode {
}
}
- var action: String? {
+ public var action: String? {
didSet {
if (self.action != nil) != (self.actionButton != nil) {
if let _ = self.action {
@@ -47,9 +47,9 @@ final class ListSectionHeaderNode: ASDisplayNode {
}
}
- var activateAction: (() -> Void)?
+ public var activateAction: (() -> Void)?
- init(theme: PresentationTheme) {
+ public init(theme: PresentationTheme) {
self.theme = theme
self.label = ImmediateTextNode()
@@ -62,7 +62,7 @@ final class ListSectionHeaderNode: ASDisplayNode {
self.backgroundColor = theme.chatList.sectionHeaderFillColor
}
- func updateTheme(theme: PresentationTheme) {
+ public func updateTheme(theme: PresentationTheme) {
if self.theme !== theme {
self.theme = theme
@@ -79,7 +79,7 @@ final class ListSectionHeaderNode: ASDisplayNode {
}
}
- func updateLayout(size: CGSize, leftInset: CGFloat, rightInset: CGFloat) {
+ public func updateLayout(size: CGSize, leftInset: CGFloat, rightInset: CGFloat) {
self.validLayout = (size, leftInset, rightInset)
let labelSize = self.label.updateLayout(CGSize(width: max(0.0, size.width - leftInset - rightInset - 18.0), height: size.height))
self.label.frame = CGRect(origin: CGPoint(x: leftInset + 16.0, y: 6.0 + UIScreenPixel), size: labelSize)
@@ -90,7 +90,7 @@ final class ListSectionHeaderNode: ASDisplayNode {
}
}
- @objc func actionButtonPressed() {
+ @objc private func actionButtonPressed() {
self.activateAction?()
}
}
diff --git a/submodules/LocalizedPeerData/Info.plist b/submodules/LocalizedPeerData/Info.plist
new file mode 100644
index 0000000000..e1fe4cfb7b
--- /dev/null
+++ b/submodules/LocalizedPeerData/Info.plist
@@ -0,0 +1,22 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ $(DEVELOPMENT_LANGUAGE)
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ $(CURRENT_PROJECT_VERSION)
+
+
diff --git a/submodules/LocalizedPeerData/LocalizedPeerData_Xcode.xcodeproj/project.pbxproj b/submodules/LocalizedPeerData/LocalizedPeerData_Xcode.xcodeproj/project.pbxproj
new file mode 100644
index 0000000000..a6fe813c11
--- /dev/null
+++ b/submodules/LocalizedPeerData/LocalizedPeerData_Xcode.xcodeproj/project.pbxproj
@@ -0,0 +1,559 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 50;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ D0879D8522F87DDF00C4D6B3 /* LocalizedPeerData.h in Headers */ = {isa = PBXBuildFile; fileRef = D0879D8322F87DDF00C4D6B3 /* LocalizedPeerData.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0879D9022F87E2E00C4D6B3 /* PeerTitle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879D8F22F87E2E00C4D6B3 /* PeerTitle.swift */; };
+ D0879D9322F87E4900C4D6B3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879D9222F87E4900C4D6B3 /* Foundation.framework */; };
+ D0879D9522F87E4C00C4D6B3 /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879D9422F87E4C00C4D6B3 /* TelegramCore.framework */; };
+ D0879D9722F87E4F00C4D6B3 /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879D9622F87E4F00C4D6B3 /* Postbox.framework */; };
+ D0879D9922F87E5400C4D6B3 /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879D9822F87E5400C4D6B3 /* TelegramPresentationData.framework */; };
+ D0879D9B22F87E5900C4D6B3 /* TelegramUIPreferences.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879D9A22F87E5900C4D6B3 /* TelegramUIPreferences.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ D0879D8022F87DDF00C4D6B3 /* LocalizedPeerData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LocalizedPeerData.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879D8322F87DDF00C4D6B3 /* LocalizedPeerData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LocalizedPeerData.h; sourceTree = ""; };
+ D0879D8422F87DDF00C4D6B3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ D0879D8F22F87E2E00C4D6B3 /* PeerTitle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerTitle.swift; sourceTree = ""; };
+ D0879D9222F87E4900C4D6B3 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ D0879D9422F87E4C00C4D6B3 /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879D9622F87E4F00C4D6B3 /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879D9822F87E5400C4D6B3 /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879D9A22F87E5900C4D6B3 /* TelegramUIPreferences.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramUIPreferences.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ D0879D7D22F87DDF00C4D6B3 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879D9B22F87E5900C4D6B3 /* TelegramUIPreferences.framework in Frameworks */,
+ D0879D9922F87E5400C4D6B3 /* TelegramPresentationData.framework in Frameworks */,
+ D0879D9722F87E4F00C4D6B3 /* Postbox.framework in Frameworks */,
+ D0879D9522F87E4C00C4D6B3 /* TelegramCore.framework in Frameworks */,
+ D0879D9322F87E4900C4D6B3 /* Foundation.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ D0879D7622F87DDF00C4D6B3 = {
+ isa = PBXGroup;
+ children = (
+ D0879D8422F87DDF00C4D6B3 /* Info.plist */,
+ D0879D8222F87DDF00C4D6B3 /* Sources */,
+ D0879D8122F87DDF00C4D6B3 /* Products */,
+ D0879D9122F87E4900C4D6B3 /* Frameworks */,
+ );
+ sourceTree = "";
+ };
+ D0879D8122F87DDF00C4D6B3 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ D0879D8022F87DDF00C4D6B3 /* LocalizedPeerData.framework */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ D0879D8222F87DDF00C4D6B3 /* Sources */ = {
+ isa = PBXGroup;
+ children = (
+ D0879D8F22F87E2E00C4D6B3 /* PeerTitle.swift */,
+ D0879D8322F87DDF00C4D6B3 /* LocalizedPeerData.h */,
+ );
+ path = Sources;
+ sourceTree = "";
+ };
+ D0879D9122F87E4900C4D6B3 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ D0879D9A22F87E5900C4D6B3 /* TelegramUIPreferences.framework */,
+ D0879D9822F87E5400C4D6B3 /* TelegramPresentationData.framework */,
+ D0879D9622F87E4F00C4D6B3 /* Postbox.framework */,
+ D0879D9422F87E4C00C4D6B3 /* TelegramCore.framework */,
+ D0879D9222F87E4900C4D6B3 /* Foundation.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ D0879D7B22F87DDF00C4D6B3 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879D8522F87DDF00C4D6B3 /* LocalizedPeerData.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ D0879D7F22F87DDF00C4D6B3 /* LocalizedPeerData */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = D0879D8822F87DDF00C4D6B3 /* Build configuration list for PBXNativeTarget "LocalizedPeerData" */;
+ buildPhases = (
+ D0879D7B22F87DDF00C4D6B3 /* Headers */,
+ D0879D7C22F87DDF00C4D6B3 /* Sources */,
+ D0879D7D22F87DDF00C4D6B3 /* Frameworks */,
+ D0879D7E22F87DDF00C4D6B3 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = LocalizedPeerData;
+ productName = LocalizedPeerData;
+ productReference = D0879D8022F87DDF00C4D6B3 /* LocalizedPeerData.framework */;
+ productType = "com.apple.product-type.framework";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ D0879D7722F87DDF00C4D6B3 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ DefaultBuildSystemTypeForWorkspace = Latest;
+ LastUpgradeCheck = 1030;
+ ORGANIZATIONNAME = "Telegram Messenger LLP";
+ TargetAttributes = {
+ D0879D7F22F87DDF00C4D6B3 = {
+ CreatedOnToolsVersion = 10.3;
+ LastSwiftMigration = 1030;
+ };
+ };
+ };
+ buildConfigurationList = D0879D7A22F87DDF00C4D6B3 /* Build configuration list for PBXProject "LocalizedPeerData_Xcode" */;
+ compatibilityVersion = "Xcode 9.3";
+ developmentRegion = en;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ );
+ mainGroup = D0879D7622F87DDF00C4D6B3;
+ productRefGroup = D0879D8122F87DDF00C4D6B3 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ D0879D7F22F87DDF00C4D6B3 /* LocalizedPeerData */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ D0879D7E22F87DDF00C4D6B3 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ D0879D7C22F87DDF00C4D6B3 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879D9022F87E2E00C4D6B3 /* PeerTitle.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+ D0879D8622F87DDF00C4D6B3 /* 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;
+ };
+ D0879D8722F87DDF00C4D6B3 /* 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;
+ };
+ D0879D8922F87DDF00C4D6B3 /* 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.LocalizedPeerData;
+ 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;
+ };
+ D0879D8A22F87DDF00C4D6B3 /* 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.LocalizedPeerData;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SKIP_INSTALL = YES;
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = ReleaseAppStoreLLC;
+ };
+ D0879D8B22F87DF900C4D6B3 /* 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;
+ };
+ D0879D8C22F87DF900C4D6B3 /* 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.LocalizedPeerData;
+ 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;
+ };
+ D0879D8D22F87E0700C4D6B3 /* 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;
+ };
+ D0879D8E22F87E0700C4D6B3 /* 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.LocalizedPeerData;
+ 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 */
+ D0879D7A22F87DDF00C4D6B3 /* Build configuration list for PBXProject "LocalizedPeerData_Xcode" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D0879D8622F87DDF00C4D6B3 /* DebugAppStoreLLC */,
+ D0879D8B22F87DF900C4D6B3 /* DebugHockeyapp */,
+ D0879D8722F87DDF00C4D6B3 /* ReleaseAppStoreLLC */,
+ D0879D8D22F87E0700C4D6B3 /* ReleaseHockeyappInternal */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = ReleaseAppStoreLLC;
+ };
+ D0879D8822F87DDF00C4D6B3 /* Build configuration list for PBXNativeTarget "LocalizedPeerData" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D0879D8922F87DDF00C4D6B3 /* DebugAppStoreLLC */,
+ D0879D8C22F87DF900C4D6B3 /* DebugHockeyapp */,
+ D0879D8A22F87DDF00C4D6B3 /* ReleaseAppStoreLLC */,
+ D0879D8E22F87E0700C4D6B3 /* ReleaseHockeyappInternal */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = ReleaseAppStoreLLC;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = D0879D7722F87DDF00C4D6B3 /* Project object */;
+}
diff --git a/submodules/LocalizedPeerData/Sources/LocalizedPeerData.h b/submodules/LocalizedPeerData/Sources/LocalizedPeerData.h
new file mode 100644
index 0000000000..e848df1d0f
--- /dev/null
+++ b/submodules/LocalizedPeerData/Sources/LocalizedPeerData.h
@@ -0,0 +1,19 @@
+//
+// LocalizedPeerData.h
+// LocalizedPeerData
+//
+// Created by Peter on 8/5/19.
+// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
+//
+
+#import
+
+//! Project version number for LocalizedPeerData.
+FOUNDATION_EXPORT double LocalizedPeerDataVersionNumber;
+
+//! Project version string for LocalizedPeerData.
+FOUNDATION_EXPORT const unsigned char LocalizedPeerDataVersionString[];
+
+// In this header, you should import all the public headers of your framework using statements like #import
+
+
diff --git a/submodules/TelegramUI/TelegramUI/PeerTitle.swift b/submodules/LocalizedPeerData/Sources/PeerTitle.swift
similarity index 98%
rename from submodules/TelegramUI/TelegramUI/PeerTitle.swift
rename to submodules/LocalizedPeerData/Sources/PeerTitle.swift
index a28062069a..6f4fdd0d0b 100644
--- a/submodules/TelegramUI/TelegramUI/PeerTitle.swift
+++ b/submodules/LocalizedPeerData/Sources/PeerTitle.swift
@@ -4,7 +4,7 @@ import Postbox
import TelegramPresentationData
import TelegramUIPreferences
-extension Peer {
+public extension Peer {
func displayTitle(strings: PresentationStrings, displayOrder: PresentationPersonNameOrder) -> String {
switch self {
case let user as TelegramUser:
diff --git a/submodules/PeerOnlineMarkerNode/Info.plist b/submodules/PeerOnlineMarkerNode/Info.plist
new file mode 100644
index 0000000000..e1fe4cfb7b
--- /dev/null
+++ b/submodules/PeerOnlineMarkerNode/Info.plist
@@ -0,0 +1,22 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ $(DEVELOPMENT_LANGUAGE)
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ $(CURRENT_PROJECT_VERSION)
+
+
diff --git a/submodules/PeerOnlineMarkerNode/PeerOnlineMarkerNode_Xcode.xcodeproj/project.pbxproj b/submodules/PeerOnlineMarkerNode/PeerOnlineMarkerNode_Xcode.xcodeproj/project.pbxproj
new file mode 100644
index 0000000000..05278e43d8
--- /dev/null
+++ b/submodules/PeerOnlineMarkerNode/PeerOnlineMarkerNode_Xcode.xcodeproj/project.pbxproj
@@ -0,0 +1,555 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 50;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ D0879C5C22F873A300C4D6B3 /* PeerOnlineMarkerNode.h in Headers */ = {isa = PBXBuildFile; fileRef = D0879C5A22F873A300C4D6B3 /* PeerOnlineMarkerNode.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0879C6722F8748200C4D6B3 /* PeerOnlineMarkerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879C6622F8748200C4D6B3 /* PeerOnlineMarkerNode.swift */; };
+ D0879C6A22F8748E00C4D6B3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879C6922F8748E00C4D6B3 /* Foundation.framework */; };
+ D0879C6C22F8749200C4D6B3 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879C6B22F8749200C4D6B3 /* UIKit.framework */; };
+ D0879C6E22F8749500C4D6B3 /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879C6D22F8749500C4D6B3 /* AsyncDisplayKit.framework */; };
+ D0879C7022F8749800C4D6B3 /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879C6F22F8749800C4D6B3 /* Display.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ D0879C5722F873A300C4D6B3 /* PeerOnlineMarkerNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PeerOnlineMarkerNode.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879C5A22F873A300C4D6B3 /* PeerOnlineMarkerNode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PeerOnlineMarkerNode.h; sourceTree = ""; };
+ D0879C5B22F873A300C4D6B3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ D0879C6622F8748200C4D6B3 /* PeerOnlineMarkerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerOnlineMarkerNode.swift; sourceTree = ""; };
+ D0879C6922F8748E00C4D6B3 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ D0879C6B22F8749200C4D6B3 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+ D0879C6D22F8749500C4D6B3 /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879C6F22F8749800C4D6B3 /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ D0879C5422F873A300C4D6B3 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879C7022F8749800C4D6B3 /* Display.framework in Frameworks */,
+ D0879C6E22F8749500C4D6B3 /* AsyncDisplayKit.framework in Frameworks */,
+ D0879C6C22F8749200C4D6B3 /* UIKit.framework in Frameworks */,
+ D0879C6A22F8748E00C4D6B3 /* Foundation.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ D0879C4D22F873A300C4D6B3 = {
+ isa = PBXGroup;
+ children = (
+ D0879C5B22F873A300C4D6B3 /* Info.plist */,
+ D0879C5922F873A300C4D6B3 /* Sources */,
+ D0879C5822F873A300C4D6B3 /* Products */,
+ D0879C6822F8748D00C4D6B3 /* Frameworks */,
+ );
+ sourceTree = "";
+ };
+ D0879C5822F873A300C4D6B3 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ D0879C5722F873A300C4D6B3 /* PeerOnlineMarkerNode.framework */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ D0879C5922F873A300C4D6B3 /* Sources */ = {
+ isa = PBXGroup;
+ children = (
+ D0879C6622F8748200C4D6B3 /* PeerOnlineMarkerNode.swift */,
+ D0879C5A22F873A300C4D6B3 /* PeerOnlineMarkerNode.h */,
+ );
+ path = Sources;
+ sourceTree = "";
+ };
+ D0879C6822F8748D00C4D6B3 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ D0879C6F22F8749800C4D6B3 /* Display.framework */,
+ D0879C6D22F8749500C4D6B3 /* AsyncDisplayKit.framework */,
+ D0879C6B22F8749200C4D6B3 /* UIKit.framework */,
+ D0879C6922F8748E00C4D6B3 /* Foundation.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ D0879C5222F873A300C4D6B3 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879C5C22F873A300C4D6B3 /* PeerOnlineMarkerNode.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ D0879C5622F873A300C4D6B3 /* PeerOnlineMarkerNode */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = D0879C5F22F873A300C4D6B3 /* Build configuration list for PBXNativeTarget "PeerOnlineMarkerNode" */;
+ buildPhases = (
+ D0879C5222F873A300C4D6B3 /* Headers */,
+ D0879C5322F873A300C4D6B3 /* Sources */,
+ D0879C5422F873A300C4D6B3 /* Frameworks */,
+ D0879C5522F873A300C4D6B3 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = PeerOnlineMarkerNode;
+ productName = PeerOnlineMarkerNode;
+ productReference = D0879C5722F873A300C4D6B3 /* PeerOnlineMarkerNode.framework */;
+ productType = "com.apple.product-type.framework";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ D0879C4E22F873A300C4D6B3 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ DefaultBuildSystemTypeForWorkspace = Latest;
+ LastUpgradeCheck = 1030;
+ ORGANIZATIONNAME = "Telegram Messenger LLP";
+ TargetAttributes = {
+ D0879C5622F873A300C4D6B3 = {
+ CreatedOnToolsVersion = 10.3;
+ LastSwiftMigration = 1030;
+ };
+ };
+ };
+ buildConfigurationList = D0879C5122F873A300C4D6B3 /* Build configuration list for PBXProject "PeerOnlineMarkerNode_Xcode" */;
+ compatibilityVersion = "Xcode 9.3";
+ developmentRegion = en;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ );
+ mainGroup = D0879C4D22F873A300C4D6B3;
+ productRefGroup = D0879C5822F873A300C4D6B3 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ D0879C5622F873A300C4D6B3 /* PeerOnlineMarkerNode */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ D0879C5522F873A300C4D6B3 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ D0879C5322F873A300C4D6B3 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879C6722F8748200C4D6B3 /* PeerOnlineMarkerNode.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+ D0879C5D22F873A300C4D6B3 /* 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;
+ };
+ D0879C5E22F873A300C4D6B3 /* 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;
+ };
+ D0879C6022F873A300C4D6B3 /* 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.PeerOnlineMarkerNode;
+ 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;
+ };
+ D0879C6122F873A300C4D6B3 /* 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.PeerOnlineMarkerNode;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SKIP_INSTALL = YES;
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = ReleaseAppStoreLLC;
+ };
+ D0879C6222F8745100C4D6B3 /* 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;
+ };
+ D0879C6322F8745100C4D6B3 /* 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.PeerOnlineMarkerNode;
+ 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;
+ };
+ D0879C6422F8745F00C4D6B3 /* 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;
+ };
+ D0879C6522F8745F00C4D6B3 /* 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.PeerOnlineMarkerNode;
+ 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 */
+ D0879C5122F873A300C4D6B3 /* Build configuration list for PBXProject "PeerOnlineMarkerNode_Xcode" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D0879C5D22F873A300C4D6B3 /* DebugAppStoreLLC */,
+ D0879C6222F8745100C4D6B3 /* DebugHockeyapp */,
+ D0879C5E22F873A300C4D6B3 /* ReleaseAppStoreLLC */,
+ D0879C6422F8745F00C4D6B3 /* ReleaseHockeyappInternal */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = ReleaseAppStoreLLC;
+ };
+ D0879C5F22F873A300C4D6B3 /* Build configuration list for PBXNativeTarget "PeerOnlineMarkerNode" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D0879C6022F873A300C4D6B3 /* DebugAppStoreLLC */,
+ D0879C6322F8745100C4D6B3 /* DebugHockeyapp */,
+ D0879C6122F873A300C4D6B3 /* ReleaseAppStoreLLC */,
+ D0879C6522F8745F00C4D6B3 /* ReleaseHockeyappInternal */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = ReleaseAppStoreLLC;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = D0879C4E22F873A300C4D6B3 /* Project object */;
+}
diff --git a/submodules/PeerOnlineMarkerNode/Sources/PeerOnlineMarkerNode.h b/submodules/PeerOnlineMarkerNode/Sources/PeerOnlineMarkerNode.h
new file mode 100644
index 0000000000..a59a27b659
--- /dev/null
+++ b/submodules/PeerOnlineMarkerNode/Sources/PeerOnlineMarkerNode.h
@@ -0,0 +1,19 @@
+//
+// PeerOnlineMarkerNode.h
+// PeerOnlineMarkerNode
+//
+// Created by Peter on 8/5/19.
+// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
+//
+
+#import
+
+//! Project version number for PeerOnlineMarkerNode.
+FOUNDATION_EXPORT double PeerOnlineMarkerNodeVersionNumber;
+
+//! Project version string for PeerOnlineMarkerNode.
+FOUNDATION_EXPORT const unsigned char PeerOnlineMarkerNodeVersionString[];
+
+// In this header, you should import all the public headers of your framework using statements like #import
+
+
diff --git a/submodules/TelegramUI/TelegramUI/ChatListOnlineNode.swift b/submodules/PeerOnlineMarkerNode/Sources/PeerOnlineMarkerNode.swift
similarity index 89%
rename from submodules/TelegramUI/TelegramUI/ChatListOnlineNode.swift
rename to submodules/PeerOnlineMarkerNode/Sources/PeerOnlineMarkerNode.swift
index a910e65025..3581cb4050 100644
--- a/submodules/TelegramUI/TelegramUI/ChatListOnlineNode.swift
+++ b/submodules/PeerOnlineMarkerNode/Sources/PeerOnlineMarkerNode.swift
@@ -3,10 +3,10 @@ import UIKit
import AsyncDisplayKit
import Display
-final class ChatListOnlineNode: ASDisplayNode {
+public final class PeerOnlineMarkerNode: ASDisplayNode {
private let iconNode: ASImageNode
- override init() {
+ override public init() {
self.iconNode = ASImageNode()
self.iconNode.isLayerBacked = true
self.iconNode.displaysAsynchronously = false
@@ -20,11 +20,11 @@ final class ChatListOnlineNode: ASDisplayNode {
self.addSubnode(self.iconNode)
}
- func setImage(_ image: UIImage?) {
+ public func setImage(_ image: UIImage?) {
self.iconNode.image = image
}
- func asyncLayout() -> (Bool) -> (CGSize, (Bool) -> Void) {
+ public func asyncLayout() -> (Bool) -> (CGSize, (Bool) -> Void) {
return { [weak self] online in
return (CGSize(width: 14.0, height: 14.0), { animated in
if let strongSelf = self {
diff --git a/submodules/PeerPresenceStatusManager/Info.plist b/submodules/PeerPresenceStatusManager/Info.plist
new file mode 100644
index 0000000000..e1fe4cfb7b
--- /dev/null
+++ b/submodules/PeerPresenceStatusManager/Info.plist
@@ -0,0 +1,22 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ $(DEVELOPMENT_LANGUAGE)
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ $(CURRENT_PROJECT_VERSION)
+
+
diff --git a/submodules/PeerPresenceStatusManager/PeerPresenceStatusManager_Xcode.xcodeproj/project.pbxproj b/submodules/PeerPresenceStatusManager/PeerPresenceStatusManager_Xcode.xcodeproj/project.pbxproj
new file mode 100644
index 0000000000..e75c5ece06
--- /dev/null
+++ b/submodules/PeerPresenceStatusManager/PeerPresenceStatusManager_Xcode.xcodeproj/project.pbxproj
@@ -0,0 +1,551 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 50;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ D0879C8422F8751100C4D6B3 /* PeerPresenceStatusManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D0879C8222F8751100C4D6B3 /* PeerPresenceStatusManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0879C8B22F8754300C4D6B3 /* PeerPresenceStatusManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879C8A22F8754300C4D6B3 /* PeerPresenceStatusManager.swift */; };
+ D0879C8E22F8755200C4D6B3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879C8D22F8755200C4D6B3 /* Foundation.framework */; };
+ D0879C9022F8755A00C4D6B3 /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879C8F22F8755A00C4D6B3 /* Postbox.framework */; };
+ D0879C9222F8756200C4D6B3 /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879C9122F8756200C4D6B3 /* SwiftSignalKit.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ D0879C7F22F8751100C4D6B3 /* PeerPresenceStatusManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PeerPresenceStatusManager.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879C8222F8751100C4D6B3 /* PeerPresenceStatusManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PeerPresenceStatusManager.h; sourceTree = ""; };
+ D0879C8322F8751100C4D6B3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ D0879C8A22F8754300C4D6B3 /* PeerPresenceStatusManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerPresenceStatusManager.swift; sourceTree = ""; };
+ D0879C8D22F8755200C4D6B3 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ D0879C8F22F8755A00C4D6B3 /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879C9122F8756200C4D6B3 /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ D0879C7C22F8751100C4D6B3 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879C9222F8756200C4D6B3 /* SwiftSignalKit.framework in Frameworks */,
+ D0879C9022F8755A00C4D6B3 /* Postbox.framework in Frameworks */,
+ D0879C8E22F8755200C4D6B3 /* Foundation.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ D0879C7522F8751100C4D6B3 = {
+ isa = PBXGroup;
+ children = (
+ D0879C8322F8751100C4D6B3 /* Info.plist */,
+ D0879C8122F8751100C4D6B3 /* Sources */,
+ D0879C8022F8751100C4D6B3 /* Products */,
+ D0879C8C22F8755200C4D6B3 /* Frameworks */,
+ );
+ sourceTree = "";
+ };
+ D0879C8022F8751100C4D6B3 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ D0879C7F22F8751100C4D6B3 /* PeerPresenceStatusManager.framework */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ D0879C8122F8751100C4D6B3 /* Sources */ = {
+ isa = PBXGroup;
+ children = (
+ D0879C8A22F8754300C4D6B3 /* PeerPresenceStatusManager.swift */,
+ D0879C8222F8751100C4D6B3 /* PeerPresenceStatusManager.h */,
+ );
+ path = Sources;
+ sourceTree = "";
+ };
+ D0879C8C22F8755200C4D6B3 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ D0879C9122F8756200C4D6B3 /* SwiftSignalKit.framework */,
+ D0879C8F22F8755A00C4D6B3 /* Postbox.framework */,
+ D0879C8D22F8755200C4D6B3 /* Foundation.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ D0879C7A22F8751100C4D6B3 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879C8422F8751100C4D6B3 /* PeerPresenceStatusManager.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ D0879C7E22F8751100C4D6B3 /* PeerPresenceStatusManager */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = D0879C8722F8751100C4D6B3 /* Build configuration list for PBXNativeTarget "PeerPresenceStatusManager" */;
+ buildPhases = (
+ D0879C7A22F8751100C4D6B3 /* Headers */,
+ D0879C7B22F8751100C4D6B3 /* Sources */,
+ D0879C7C22F8751100C4D6B3 /* Frameworks */,
+ D0879C7D22F8751100C4D6B3 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = PeerPresenceStatusManager;
+ productName = PeerPresenceStatusManager;
+ productReference = D0879C7F22F8751100C4D6B3 /* PeerPresenceStatusManager.framework */;
+ productType = "com.apple.product-type.framework";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ D0879C7622F8751100C4D6B3 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ DefaultBuildSystemTypeForWorkspace = Latest;
+ LastUpgradeCheck = 1030;
+ ORGANIZATIONNAME = "Telegram Messenger LLP";
+ TargetAttributes = {
+ D0879C7E22F8751100C4D6B3 = {
+ CreatedOnToolsVersion = 10.3;
+ LastSwiftMigration = 1030;
+ };
+ };
+ };
+ buildConfigurationList = D0879C7922F8751100C4D6B3 /* Build configuration list for PBXProject "PeerPresenceStatusManager_Xcode" */;
+ compatibilityVersion = "Xcode 9.3";
+ developmentRegion = en;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ );
+ mainGroup = D0879C7522F8751100C4D6B3;
+ productRefGroup = D0879C8022F8751100C4D6B3 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ D0879C7E22F8751100C4D6B3 /* PeerPresenceStatusManager */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ D0879C7D22F8751100C4D6B3 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ D0879C7B22F8751100C4D6B3 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879C8B22F8754300C4D6B3 /* PeerPresenceStatusManager.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+ D0879C8522F8751100C4D6B3 /* 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;
+ };
+ D0879C8622F8751100C4D6B3 /* 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;
+ };
+ D0879C8822F8751100C4D6B3 /* 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.PeerPresenceStatusManager;
+ 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;
+ };
+ D0879C8922F8751100C4D6B3 /* 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.PeerPresenceStatusManager;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SKIP_INSTALL = YES;
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = ReleaseAppStoreLLC;
+ };
+ D0879C9722F8760800C4D6B3 /* 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;
+ };
+ D0879C9822F8760800C4D6B3 /* 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.PeerPresenceStatusManager;
+ 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;
+ };
+ D0879C9922F8761300C4D6B3 /* 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;
+ };
+ D0879C9A22F8761300C4D6B3 /* 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.PeerPresenceStatusManager;
+ 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 */
+ D0879C7922F8751100C4D6B3 /* Build configuration list for PBXProject "PeerPresenceStatusManager_Xcode" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D0879C8522F8751100C4D6B3 /* DebugAppStoreLLC */,
+ D0879C9722F8760800C4D6B3 /* DebugHockeyapp */,
+ D0879C8622F8751100C4D6B3 /* ReleaseAppStoreLLC */,
+ D0879C9922F8761300C4D6B3 /* ReleaseHockeyappInternal */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = ReleaseAppStoreLLC;
+ };
+ D0879C8722F8751100C4D6B3 /* Build configuration list for PBXNativeTarget "PeerPresenceStatusManager" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D0879C8822F8751100C4D6B3 /* DebugAppStoreLLC */,
+ D0879C9822F8760800C4D6B3 /* DebugHockeyapp */,
+ D0879C8922F8751100C4D6B3 /* ReleaseAppStoreLLC */,
+ D0879C9A22F8761300C4D6B3 /* ReleaseHockeyappInternal */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = ReleaseAppStoreLLC;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = D0879C7622F8751100C4D6B3 /* Project object */;
+}
diff --git a/submodules/PeerPresenceStatusManager/Sources/PeerPresenceStatusManager.h b/submodules/PeerPresenceStatusManager/Sources/PeerPresenceStatusManager.h
new file mode 100644
index 0000000000..cb0de955db
--- /dev/null
+++ b/submodules/PeerPresenceStatusManager/Sources/PeerPresenceStatusManager.h
@@ -0,0 +1,19 @@
+//
+// PeerPresenceStatusManager.h
+// PeerPresenceStatusManager
+//
+// Created by Peter on 8/5/19.
+// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
+//
+
+#import
+
+//! Project version number for PeerPresenceStatusManager.
+FOUNDATION_EXPORT double PeerPresenceStatusManagerVersionNumber;
+
+//! Project version string for PeerPresenceStatusManager.
+FOUNDATION_EXPORT const unsigned char PeerPresenceStatusManagerVersionString[];
+
+// In this header, you should import all the public headers of your framework using statements like #import
+
+
diff --git a/submodules/PeerPresenceStatusManager/Sources/PeerPresenceStatusManager.swift b/submodules/PeerPresenceStatusManager/Sources/PeerPresenceStatusManager.swift
new file mode 100644
index 0000000000..0ec875e56f
--- /dev/null
+++ b/submodules/PeerPresenceStatusManager/Sources/PeerPresenceStatusManager.swift
@@ -0,0 +1,59 @@
+import Foundation
+import SwiftSignalKit
+import TelegramCore
+
+private func suggestedUserPresenceStringRefreshTimeout(_ presence: TelegramUserPresence, relativeTo timestamp: Int32) -> Double {
+ switch presence.status {
+ case let .present(statusTimestamp):
+ if statusTimestamp >= timestamp {
+ return Double(statusTimestamp - timestamp)
+ } else {
+ let difference = timestamp - statusTimestamp
+ if difference < 30 {
+ return Double((30 - difference) + 1)
+ } else if difference < 60 * 60 {
+ return Double((difference % 60) + 1)
+ } else {
+ return Double.infinity
+ }
+ }
+ case .recently:
+ let activeUntil = presence.lastActivity + 30
+ if activeUntil >= timestamp {
+ return Double(activeUntil - timestamp + 1)
+ } else {
+ return Double.infinity
+ }
+ case .none, .lastWeek, .lastMonth:
+ return Double.infinity
+ }
+}
+
+public final class PeerPresenceStatusManager {
+ private let update: () -> Void
+ private var timer: SwiftSignalKit.Timer?
+
+ public init(update: @escaping () -> Void) {
+ self.update = update
+ }
+
+ deinit {
+ self.timer?.invalidate()
+ }
+
+ public func reset(presence: TelegramUserPresence) {
+ self.timer?.invalidate()
+ self.timer = nil
+
+ let timestamp = CFAbsoluteTimeGetCurrent() + NSTimeIntervalSince1970
+ let timeout = suggestedUserPresenceStringRefreshTimeout(presence, relativeTo: Int32(timestamp))
+ if timeout.isFinite {
+ self.timer = SwiftSignalKit.Timer(timeout: timeout, repeat: false, completion: { [weak self] in
+ if let strongSelf = self {
+ strongSelf.update()
+ }
+ }, queue: Queue.mainQueue())
+ self.timer?.start()
+ }
+ }
+}
diff --git a/submodules/RadialStatusNode/Info.plist b/submodules/RadialStatusNode/Info.plist
new file mode 100644
index 0000000000..e1fe4cfb7b
--- /dev/null
+++ b/submodules/RadialStatusNode/Info.plist
@@ -0,0 +1,22 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ $(DEVELOPMENT_LANGUAGE)
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ $(CURRENT_PROJECT_VERSION)
+
+
diff --git a/submodules/RadialStatusNode/RadialStatusNode_Xcode.xcodeproj/project.pbxproj b/submodules/RadialStatusNode/RadialStatusNode_Xcode.xcodeproj/project.pbxproj
new file mode 100644
index 0000000000..f55bb142fc
--- /dev/null
+++ b/submodules/RadialStatusNode/RadialStatusNode_Xcode.xcodeproj/project.pbxproj
@@ -0,0 +1,591 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 50;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ D0879BD922F85E2000C4D6B3 /* RadialStatusNode.h in Headers */ = {isa = PBXBuildFile; fileRef = D0879BD722F85E2000C4D6B3 /* RadialStatusNode.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0879BE722F85F7B00C4D6B3 /* RadialStatusContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879BE322F85F7A00C4D6B3 /* RadialStatusContentNode.swift */; };
+ D0879BE822F85F7B00C4D6B3 /* RadialStatusBackgroundNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879BE422F85F7B00C4D6B3 /* RadialStatusBackgroundNode.swift */; };
+ D0879BE922F85F7B00C4D6B3 /* RadialStatusIconContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879BE522F85F7B00C4D6B3 /* RadialStatusIconContentNode.swift */; };
+ D0879BEA22F85F7B00C4D6B3 /* RadialStatusNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879BE622F85F7B00C4D6B3 /* RadialStatusNode.swift */; };
+ D0879BF322F85FCB00C4D6B3 /* RadialCloudProgressContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879BEF22F85FCB00C4D6B3 /* RadialCloudProgressContentNode.swift */; };
+ D0879BF422F85FCB00C4D6B3 /* RadialProgressContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879BF022F85FCB00C4D6B3 /* RadialProgressContentNode.swift */; };
+ D0879BF522F85FCB00C4D6B3 /* RadialDownloadContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879BF122F85FCB00C4D6B3 /* RadialDownloadContentNode.swift */; };
+ D0879BF622F85FCB00C4D6B3 /* RadialCheckContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879BF222F85FCB00C4D6B3 /* RadialCheckContentNode.swift */; };
+ D0879BF822F85FE500C4D6B3 /* RadialStatusSecretTimeoutContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879BF722F85FE500C4D6B3 /* RadialStatusSecretTimeoutContentNode.swift */; };
+ D0879BFB22F8600300C4D6B3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879BFA22F8600300C4D6B3 /* Foundation.framework */; };
+ D0879BFD22F8600700C4D6B3 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879BFC22F8600700C4D6B3 /* UIKit.framework */; };
+ D0879BFF22F8600900C4D6B3 /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879BFE22F8600900C4D6B3 /* AsyncDisplayKit.framework */; };
+ D0879C0122F8601200C4D6B3 /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879C0022F8601200C4D6B3 /* Display.framework */; };
+ D0879C0322F8602000C4D6B3 /* LegacyComponents.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879C0222F8602000C4D6B3 /* LegacyComponents.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ D0879BD422F85E2000C4D6B3 /* RadialStatusNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RadialStatusNode.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879BD722F85E2000C4D6B3 /* RadialStatusNode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RadialStatusNode.h; sourceTree = ""; };
+ D0879BD822F85E2000C4D6B3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ D0879BE322F85F7A00C4D6B3 /* RadialStatusContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadialStatusContentNode.swift; sourceTree = ""; };
+ D0879BE422F85F7B00C4D6B3 /* RadialStatusBackgroundNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadialStatusBackgroundNode.swift; sourceTree = ""; };
+ D0879BE522F85F7B00C4D6B3 /* RadialStatusIconContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadialStatusIconContentNode.swift; sourceTree = ""; };
+ D0879BE622F85F7B00C4D6B3 /* RadialStatusNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadialStatusNode.swift; sourceTree = ""; };
+ D0879BEF22F85FCB00C4D6B3 /* RadialCloudProgressContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadialCloudProgressContentNode.swift; sourceTree = ""; };
+ D0879BF022F85FCB00C4D6B3 /* RadialProgressContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadialProgressContentNode.swift; sourceTree = ""; };
+ D0879BF122F85FCB00C4D6B3 /* RadialDownloadContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadialDownloadContentNode.swift; sourceTree = ""; };
+ D0879BF222F85FCB00C4D6B3 /* RadialCheckContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadialCheckContentNode.swift; sourceTree = ""; };
+ D0879BF722F85FE500C4D6B3 /* RadialStatusSecretTimeoutContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadialStatusSecretTimeoutContentNode.swift; sourceTree = ""; };
+ D0879BFA22F8600300C4D6B3 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ D0879BFC22F8600700C4D6B3 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+ D0879BFE22F8600900C4D6B3 /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879C0022F8601200C4D6B3 /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879C0222F8602000C4D6B3 /* LegacyComponents.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LegacyComponents.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ D0879BD122F85E2000C4D6B3 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879C0322F8602000C4D6B3 /* LegacyComponents.framework in Frameworks */,
+ D0879C0122F8601200C4D6B3 /* Display.framework in Frameworks */,
+ D0879BFF22F8600900C4D6B3 /* AsyncDisplayKit.framework in Frameworks */,
+ D0879BFD22F8600700C4D6B3 /* UIKit.framework in Frameworks */,
+ D0879BFB22F8600300C4D6B3 /* Foundation.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ D0879BCA22F85E2000C4D6B3 = {
+ isa = PBXGroup;
+ children = (
+ D0879BD822F85E2000C4D6B3 /* Info.plist */,
+ D0879BD622F85E2000C4D6B3 /* Sources */,
+ D0879BD522F85E2000C4D6B3 /* Products */,
+ D0879BF922F8600300C4D6B3 /* Frameworks */,
+ );
+ sourceTree = "";
+ };
+ D0879BD522F85E2000C4D6B3 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ D0879BD422F85E2000C4D6B3 /* RadialStatusNode.framework */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ D0879BD622F85E2000C4D6B3 /* Sources */ = {
+ isa = PBXGroup;
+ children = (
+ D0879BF722F85FE500C4D6B3 /* RadialStatusSecretTimeoutContentNode.swift */,
+ D0879BF222F85FCB00C4D6B3 /* RadialCheckContentNode.swift */,
+ D0879BEF22F85FCB00C4D6B3 /* RadialCloudProgressContentNode.swift */,
+ D0879BF122F85FCB00C4D6B3 /* RadialDownloadContentNode.swift */,
+ D0879BF022F85FCB00C4D6B3 /* RadialProgressContentNode.swift */,
+ D0879BE422F85F7B00C4D6B3 /* RadialStatusBackgroundNode.swift */,
+ D0879BE322F85F7A00C4D6B3 /* RadialStatusContentNode.swift */,
+ D0879BE522F85F7B00C4D6B3 /* RadialStatusIconContentNode.swift */,
+ D0879BE622F85F7B00C4D6B3 /* RadialStatusNode.swift */,
+ D0879BD722F85E2000C4D6B3 /* RadialStatusNode.h */,
+ );
+ path = Sources;
+ sourceTree = "";
+ };
+ D0879BF922F8600300C4D6B3 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ D0879C0222F8602000C4D6B3 /* LegacyComponents.framework */,
+ D0879C0022F8601200C4D6B3 /* Display.framework */,
+ D0879BFE22F8600900C4D6B3 /* AsyncDisplayKit.framework */,
+ D0879BFC22F8600700C4D6B3 /* UIKit.framework */,
+ D0879BFA22F8600300C4D6B3 /* Foundation.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ D0879BCF22F85E2000C4D6B3 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879BD922F85E2000C4D6B3 /* RadialStatusNode.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ D0879BD322F85E2000C4D6B3 /* RadialStatusNode */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = D0879BDC22F85E2000C4D6B3 /* Build configuration list for PBXNativeTarget "RadialStatusNode" */;
+ buildPhases = (
+ D0879BCF22F85E2000C4D6B3 /* Headers */,
+ D0879BD022F85E2000C4D6B3 /* Sources */,
+ D0879BD122F85E2000C4D6B3 /* Frameworks */,
+ D0879BD222F85E2000C4D6B3 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = RadialStatusNode;
+ productName = RadialStatusNode;
+ productReference = D0879BD422F85E2000C4D6B3 /* RadialStatusNode.framework */;
+ productType = "com.apple.product-type.framework";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ D0879BCB22F85E2000C4D6B3 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ DefaultBuildSystemTypeForWorkspace = Latest;
+ LastUpgradeCheck = 1030;
+ ORGANIZATIONNAME = "Telegram Messenger LLP";
+ TargetAttributes = {
+ D0879BD322F85E2000C4D6B3 = {
+ CreatedOnToolsVersion = 10.3;
+ LastSwiftMigration = 1030;
+ };
+ };
+ };
+ buildConfigurationList = D0879BCE22F85E2000C4D6B3 /* Build configuration list for PBXProject "RadialStatusNode_Xcode" */;
+ compatibilityVersion = "Xcode 9.3";
+ developmentRegion = en;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ );
+ mainGroup = D0879BCA22F85E2000C4D6B3;
+ productRefGroup = D0879BD522F85E2000C4D6B3 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ D0879BD322F85E2000C4D6B3 /* RadialStatusNode */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ D0879BD222F85E2000C4D6B3 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ D0879BD022F85E2000C4D6B3 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879BEA22F85F7B00C4D6B3 /* RadialStatusNode.swift in Sources */,
+ D0879BF322F85FCB00C4D6B3 /* RadialCloudProgressContentNode.swift in Sources */,
+ D0879BF822F85FE500C4D6B3 /* RadialStatusSecretTimeoutContentNode.swift in Sources */,
+ D0879BE822F85F7B00C4D6B3 /* RadialStatusBackgroundNode.swift in Sources */,
+ D0879BF622F85FCB00C4D6B3 /* RadialCheckContentNode.swift in Sources */,
+ D0879BE922F85F7B00C4D6B3 /* RadialStatusIconContentNode.swift in Sources */,
+ D0879BE722F85F7B00C4D6B3 /* RadialStatusContentNode.swift in Sources */,
+ D0879BF522F85FCB00C4D6B3 /* RadialDownloadContentNode.swift in Sources */,
+ D0879BF422F85FCB00C4D6B3 /* RadialProgressContentNode.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+ D0879BDA22F85E2000C4D6B3 /* 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;
+ };
+ D0879BDB22F85E2000C4D6B3 /* 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;
+ };
+ D0879BDD22F85E2000C4D6B3 /* 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.RadialStatusNode;
+ 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;
+ };
+ D0879BDE22F85E2000C4D6B3 /* 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.RadialStatusNode;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SKIP_INSTALL = YES;
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = ReleaseAppStoreLLC;
+ };
+ D0879BDF22F85E3D00C4D6B3 /* 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;
+ };
+ D0879BE022F85E3D00C4D6B3 /* 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.RadialStatusNode;
+ 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;
+ };
+ D0879BE122F85E4800C4D6B3 /* 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;
+ };
+ D0879BE222F85E4800C4D6B3 /* 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.RadialStatusNode;
+ 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 */
+ D0879BCE22F85E2000C4D6B3 /* Build configuration list for PBXProject "RadialStatusNode_Xcode" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D0879BDA22F85E2000C4D6B3 /* DebugAppStoreLLC */,
+ D0879BDF22F85E3D00C4D6B3 /* DebugHockeyapp */,
+ D0879BDB22F85E2000C4D6B3 /* ReleaseAppStoreLLC */,
+ D0879BE122F85E4800C4D6B3 /* ReleaseHockeyappInternal */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = ReleaseAppStoreLLC;
+ };
+ D0879BDC22F85E2000C4D6B3 /* Build configuration list for PBXNativeTarget "RadialStatusNode" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D0879BDD22F85E2000C4D6B3 /* DebugAppStoreLLC */,
+ D0879BE022F85E3D00C4D6B3 /* DebugHockeyapp */,
+ D0879BDE22F85E2000C4D6B3 /* ReleaseAppStoreLLC */,
+ D0879BE222F85E4800C4D6B3 /* ReleaseHockeyappInternal */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = ReleaseAppStoreLLC;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = D0879BCB22F85E2000C4D6B3 /* Project object */;
+}
diff --git a/submodules/TelegramUI/TelegramUI/RadialCheckContentNode.swift b/submodules/RadialStatusNode/Sources/RadialCheckContentNode.swift
similarity index 100%
rename from submodules/TelegramUI/TelegramUI/RadialCheckContentNode.swift
rename to submodules/RadialStatusNode/Sources/RadialCheckContentNode.swift
diff --git a/submodules/TelegramUI/TelegramUI/RadialCloudProgressContentNode.swift b/submodules/RadialStatusNode/Sources/RadialCloudProgressContentNode.swift
similarity index 100%
rename from submodules/TelegramUI/TelegramUI/RadialCloudProgressContentNode.swift
rename to submodules/RadialStatusNode/Sources/RadialCloudProgressContentNode.swift
diff --git a/submodules/TelegramUI/TelegramUI/RadialDownloadContentNode.swift b/submodules/RadialStatusNode/Sources/RadialDownloadContentNode.swift
similarity index 100%
rename from submodules/TelegramUI/TelegramUI/RadialDownloadContentNode.swift
rename to submodules/RadialStatusNode/Sources/RadialDownloadContentNode.swift
diff --git a/submodules/TelegramUI/TelegramUI/RadialProgressContentNode.swift b/submodules/RadialStatusNode/Sources/RadialProgressContentNode.swift
similarity index 100%
rename from submodules/TelegramUI/TelegramUI/RadialProgressContentNode.swift
rename to submodules/RadialStatusNode/Sources/RadialProgressContentNode.swift
diff --git a/submodules/TelegramUI/TelegramUI/RadialStatusBackgroundNode.swift b/submodules/RadialStatusNode/Sources/RadialStatusBackgroundNode.swift
similarity index 100%
rename from submodules/TelegramUI/TelegramUI/RadialStatusBackgroundNode.swift
rename to submodules/RadialStatusNode/Sources/RadialStatusBackgroundNode.swift
diff --git a/submodules/TelegramUI/TelegramUI/RadialStatusContentNode.swift b/submodules/RadialStatusNode/Sources/RadialStatusContentNode.swift
similarity index 100%
rename from submodules/TelegramUI/TelegramUI/RadialStatusContentNode.swift
rename to submodules/RadialStatusNode/Sources/RadialStatusContentNode.swift
diff --git a/submodules/TelegramUI/TelegramUI/RadialStatusIconContentNode.swift b/submodules/RadialStatusNode/Sources/RadialStatusIconContentNode.swift
similarity index 100%
rename from submodules/TelegramUI/TelegramUI/RadialStatusIconContentNode.swift
rename to submodules/RadialStatusNode/Sources/RadialStatusIconContentNode.swift
diff --git a/submodules/RadialStatusNode/Sources/RadialStatusNode.h b/submodules/RadialStatusNode/Sources/RadialStatusNode.h
new file mode 100644
index 0000000000..ddec279dae
--- /dev/null
+++ b/submodules/RadialStatusNode/Sources/RadialStatusNode.h
@@ -0,0 +1,19 @@
+//
+// RadialStatusNode.h
+// RadialStatusNode
+//
+// Created by Peter on 8/5/19.
+// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
+//
+
+#import
+
+//! Project version number for RadialStatusNode.
+FOUNDATION_EXPORT double RadialStatusNodeVersionNumber;
+
+//! Project version string for RadialStatusNode.
+FOUNDATION_EXPORT const unsigned char RadialStatusNodeVersionString[];
+
+// In this header, you should import all the public headers of your framework using statements like #import
+
+
diff --git a/submodules/TelegramUI/TelegramUI/RadialStatusNode.swift b/submodules/RadialStatusNode/Sources/RadialStatusNode.swift
similarity index 99%
rename from submodules/TelegramUI/TelegramUI/RadialStatusNode.swift
rename to submodules/RadialStatusNode/Sources/RadialStatusNode.swift
index 04608b98c2..34db6ac566 100644
--- a/submodules/TelegramUI/TelegramUI/RadialStatusNode.swift
+++ b/submodules/RadialStatusNode/Sources/RadialStatusNode.swift
@@ -126,13 +126,13 @@ public enum RadialStatusNodeState: Equatable {
}
public final class RadialStatusNode: ASControlNode {
- var backgroundNodeColor: UIColor {
+ public var backgroundNodeColor: UIColor {
didSet {
self.transitionToBackgroundColor(state.backgroundColor(color: self.backgroundNodeColor), previousContentNode: nil, animated: false, completion: {})
}
}
- private(set) var state: RadialStatusNodeState = .none
+ public private(set) var state: RadialStatusNodeState = .none
private var backgroundNode: RadialStatusBackgroundNode?
private var contentNode: RadialStatusContentNode?
diff --git a/submodules/TelegramUI/TelegramUI/RadialStatusSecretTimeoutContentNode.swift b/submodules/RadialStatusNode/Sources/RadialStatusSecretTimeoutContentNode.swift
similarity index 100%
rename from submodules/TelegramUI/TelegramUI/RadialStatusSecretTimeoutContentNode.swift
rename to submodules/RadialStatusNode/Sources/RadialStatusSecretTimeoutContentNode.swift
diff --git a/submodules/SaveToCameraRoll/Info.plist b/submodules/SaveToCameraRoll/Info.plist
new file mode 100644
index 0000000000..e1fe4cfb7b
--- /dev/null
+++ b/submodules/SaveToCameraRoll/Info.plist
@@ -0,0 +1,22 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ $(DEVELOPMENT_LANGUAGE)
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ $(CURRENT_PROJECT_VERSION)
+
+
diff --git a/submodules/SaveToCameraRoll/SaveToCameraRoll_Xcode.xcodeproj/project.pbxproj b/submodules/SaveToCameraRoll/SaveToCameraRoll_Xcode.xcodeproj/project.pbxproj
new file mode 100644
index 0000000000..8ad6a8dc85
--- /dev/null
+++ b/submodules/SaveToCameraRoll/SaveToCameraRoll_Xcode.xcodeproj/project.pbxproj
@@ -0,0 +1,579 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 50;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ D038AC2D22F8873900320981 /* SaveToCameraRoll.h in Headers */ = {isa = PBXBuildFile; fileRef = D038AC2B22F8873900320981 /* SaveToCameraRoll.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D038AC3822F8878200320981 /* SaveToCameraRoll.swift in Sources */ = {isa = PBXBuildFile; fileRef = D038AC3722F8878200320981 /* SaveToCameraRoll.swift */; };
+ D038AC3B22F8879C00320981 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D038AC3A22F8879C00320981 /* Foundation.framework */; };
+ D038AC3D22F887A000320981 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D038AC3C22F887A000320981 /* UIKit.framework */; };
+ D038AC3F22F887A300320981 /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D038AC3E22F887A300320981 /* SwiftSignalKit.framework */; };
+ D038AC4122F887A700320981 /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D038AC4022F887A700320981 /* Postbox.framework */; };
+ D038AC4322F887AF00320981 /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D038AC4222F887AF00320981 /* TelegramCore.framework */; };
+ D038AC4522F887B400320981 /* Photos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D038AC4422F887B300320981 /* Photos.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
+ D038AC4722F887BB00320981 /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D038AC4622F887BB00320981 /* Display.framework */; };
+ D038AC4922F887BF00320981 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D038AC4822F887BF00320981 /* MobileCoreServices.framework */; };
+ D038AC4B22F887C400320981 /* DeviceAccess.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D038AC4A22F887C400320981 /* DeviceAccess.framework */; };
+ D038AC4D22F887CA00320981 /* AccountContext.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D038AC4C22F887CA00320981 /* AccountContext.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ D038AC2822F8873800320981 /* SaveToCameraRoll.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SaveToCameraRoll.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D038AC2B22F8873900320981 /* SaveToCameraRoll.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SaveToCameraRoll.h; sourceTree = ""; };
+ D038AC2C22F8873900320981 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ D038AC3722F8878200320981 /* SaveToCameraRoll.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SaveToCameraRoll.swift; sourceTree = ""; };
+ D038AC3A22F8879C00320981 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ D038AC3C22F887A000320981 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+ D038AC3E22F887A300320981 /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D038AC4022F887A700320981 /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D038AC4222F887AF00320981 /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D038AC4422F887B300320981 /* Photos.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Photos.framework; path = System/Library/Frameworks/Photos.framework; sourceTree = SDKROOT; };
+ D038AC4622F887BB00320981 /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D038AC4822F887BF00320981 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; };
+ D038AC4A22F887C400320981 /* DeviceAccess.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DeviceAccess.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D038AC4C22F887CA00320981 /* AccountContext.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AccountContext.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ D038AC2522F8873800320981 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D038AC4D22F887CA00320981 /* AccountContext.framework in Frameworks */,
+ D038AC4B22F887C400320981 /* DeviceAccess.framework in Frameworks */,
+ D038AC4922F887BF00320981 /* MobileCoreServices.framework in Frameworks */,
+ D038AC4722F887BB00320981 /* Display.framework in Frameworks */,
+ D038AC4522F887B400320981 /* Photos.framework in Frameworks */,
+ D038AC4322F887AF00320981 /* TelegramCore.framework in Frameworks */,
+ D038AC4122F887A700320981 /* Postbox.framework in Frameworks */,
+ D038AC3F22F887A300320981 /* SwiftSignalKit.framework in Frameworks */,
+ D038AC3D22F887A000320981 /* UIKit.framework in Frameworks */,
+ D038AC3B22F8879C00320981 /* Foundation.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ D038AC1E22F8873800320981 = {
+ isa = PBXGroup;
+ children = (
+ D038AC2C22F8873900320981 /* Info.plist */,
+ D038AC2A22F8873900320981 /* Sources */,
+ D038AC2922F8873800320981 /* Products */,
+ D038AC3922F8879C00320981 /* Frameworks */,
+ );
+ sourceTree = "";
+ };
+ D038AC2922F8873800320981 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ D038AC2822F8873800320981 /* SaveToCameraRoll.framework */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ D038AC2A22F8873900320981 /* Sources */ = {
+ isa = PBXGroup;
+ children = (
+ D038AC3722F8878200320981 /* SaveToCameraRoll.swift */,
+ D038AC2B22F8873900320981 /* SaveToCameraRoll.h */,
+ );
+ path = Sources;
+ sourceTree = "";
+ };
+ D038AC3922F8879C00320981 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ D038AC4C22F887CA00320981 /* AccountContext.framework */,
+ D038AC4A22F887C400320981 /* DeviceAccess.framework */,
+ D038AC4822F887BF00320981 /* MobileCoreServices.framework */,
+ D038AC4622F887BB00320981 /* Display.framework */,
+ D038AC4422F887B300320981 /* Photos.framework */,
+ D038AC4222F887AF00320981 /* TelegramCore.framework */,
+ D038AC4022F887A700320981 /* Postbox.framework */,
+ D038AC3E22F887A300320981 /* SwiftSignalKit.framework */,
+ D038AC3C22F887A000320981 /* UIKit.framework */,
+ D038AC3A22F8879C00320981 /* Foundation.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ D038AC2322F8873800320981 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D038AC2D22F8873900320981 /* SaveToCameraRoll.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ D038AC2722F8873800320981 /* SaveToCameraRoll */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = D038AC3022F8873900320981 /* Build configuration list for PBXNativeTarget "SaveToCameraRoll" */;
+ buildPhases = (
+ D038AC2322F8873800320981 /* Headers */,
+ D038AC2422F8873800320981 /* Sources */,
+ D038AC2522F8873800320981 /* Frameworks */,
+ D038AC2622F8873800320981 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = SaveToCameraRoll;
+ productName = SaveToCameraRoll;
+ productReference = D038AC2822F8873800320981 /* SaveToCameraRoll.framework */;
+ productType = "com.apple.product-type.framework";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ D038AC1F22F8873800320981 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ DefaultBuildSystemTypeForWorkspace = Latest;
+ LastUpgradeCheck = 1030;
+ ORGANIZATIONNAME = "Telegram Messenger LLP";
+ TargetAttributes = {
+ D038AC2722F8873800320981 = {
+ CreatedOnToolsVersion = 10.3;
+ LastSwiftMigration = 1030;
+ };
+ };
+ };
+ buildConfigurationList = D038AC2222F8873800320981 /* Build configuration list for PBXProject "SaveToCameraRoll_Xcode" */;
+ compatibilityVersion = "Xcode 9.3";
+ developmentRegion = en;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ );
+ mainGroup = D038AC1E22F8873800320981;
+ productRefGroup = D038AC2922F8873800320981 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ D038AC2722F8873800320981 /* SaveToCameraRoll */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ D038AC2622F8873800320981 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ D038AC2422F8873800320981 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D038AC3822F8878200320981 /* SaveToCameraRoll.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+ D038AC2E22F8873900320981 /* 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;
+ };
+ D038AC2F22F8873900320981 /* 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;
+ };
+ D038AC3122F8873900320981 /* 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.SaveToCameraRoll;
+ 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;
+ };
+ D038AC3222F8873900320981 /* 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.SaveToCameraRoll;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SKIP_INSTALL = YES;
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = ReleaseAppStoreLLC;
+ };
+ D038AC3322F8876700320981 /* 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;
+ };
+ D038AC3422F8876700320981 /* 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.SaveToCameraRoll;
+ 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;
+ };
+ D038AC3522F8877200320981 /* 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;
+ };
+ D038AC3622F8877200320981 /* 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.SaveToCameraRoll;
+ 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 */
+ D038AC2222F8873800320981 /* Build configuration list for PBXProject "SaveToCameraRoll_Xcode" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D038AC2E22F8873900320981 /* DebugAppStoreLLC */,
+ D038AC3322F8876700320981 /* DebugHockeyapp */,
+ D038AC2F22F8873900320981 /* ReleaseAppStoreLLC */,
+ D038AC3522F8877200320981 /* ReleaseHockeyappInternal */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = ReleaseAppStoreLLC;
+ };
+ D038AC3022F8873900320981 /* Build configuration list for PBXNativeTarget "SaveToCameraRoll" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D038AC3122F8873900320981 /* DebugAppStoreLLC */,
+ D038AC3422F8876700320981 /* DebugHockeyapp */,
+ D038AC3222F8873900320981 /* ReleaseAppStoreLLC */,
+ D038AC3622F8877200320981 /* ReleaseHockeyappInternal */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = ReleaseAppStoreLLC;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = D038AC1F22F8873800320981 /* Project object */;
+}
diff --git a/submodules/SaveToCameraRoll/Sources/SaveToCameraRoll.h b/submodules/SaveToCameraRoll/Sources/SaveToCameraRoll.h
new file mode 100644
index 0000000000..aa7306b79e
--- /dev/null
+++ b/submodules/SaveToCameraRoll/Sources/SaveToCameraRoll.h
@@ -0,0 +1,19 @@
+//
+// SaveToCameraRoll.h
+// SaveToCameraRoll
+//
+// Created by Peter on 8/5/19.
+// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
+//
+
+#import
+
+//! Project version number for SaveToCameraRoll.
+FOUNDATION_EXPORT double SaveToCameraRollVersionNumber;
+
+//! Project version string for SaveToCameraRoll.
+FOUNDATION_EXPORT const unsigned char SaveToCameraRollVersionString[];
+
+// In this header, you should import all the public headers of your framework using statements like #import
+
+
diff --git a/submodules/TelegramUI/TelegramUI/SaveToCameraRoll.swift b/submodules/SaveToCameraRoll/Sources/SaveToCameraRoll.swift
similarity index 96%
rename from submodules/TelegramUI/TelegramUI/SaveToCameraRoll.swift
rename to submodules/SaveToCameraRoll/Sources/SaveToCameraRoll.swift
index 3e72f9b86e..3e273dceb7 100644
--- a/submodules/TelegramUI/TelegramUI/SaveToCameraRoll.swift
+++ b/submodules/SaveToCameraRoll/Sources/SaveToCameraRoll.swift
@@ -77,7 +77,7 @@ private func fetchMediaData(context: AccountContext, postbox: Postbox, mediaRefe
}
}
-func saveToCameraRoll(context: AccountContext, postbox: Postbox, mediaReference: AnyMediaReference) -> Signal {
+public func saveToCameraRoll(context: AccountContext, postbox: Postbox, mediaReference: AnyMediaReference) -> Signal {
return fetchMediaData(context: context, postbox: postbox, mediaReference: mediaReference)
|> mapToSignal { state, isImage -> Signal in
switch state {
@@ -131,7 +131,7 @@ func saveToCameraRoll(context: AccountContext, postbox: Postbox, mediaReference:
}
}
-func copyToPasteboard(context: AccountContext, postbox: Postbox, mediaReference: AnyMediaReference) -> Signal {
+public func copyToPasteboard(context: AccountContext, postbox: Postbox, mediaReference: AnyMediaReference) -> Signal {
return fetchMediaData(context: context, postbox: postbox, mediaReference: mediaReference)
|> mapToSignal { state, isImage -> Signal in
if case let .data(data) = state, data.complete {
diff --git a/submodules/SelectablePeerNode/Info.plist b/submodules/SelectablePeerNode/Info.plist
new file mode 100644
index 0000000000..e1fe4cfb7b
--- /dev/null
+++ b/submodules/SelectablePeerNode/Info.plist
@@ -0,0 +1,22 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ $(DEVELOPMENT_LANGUAGE)
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ $(CURRENT_PROJECT_VERSION)
+
+
diff --git a/submodules/SelectablePeerNode/SelectablePeerNode_Xcode.xcodeproj/project.pbxproj b/submodules/SelectablePeerNode/SelectablePeerNode_Xcode.xcodeproj/project.pbxproj
new file mode 100644
index 0000000000..b92084fd60
--- /dev/null
+++ b/submodules/SelectablePeerNode/SelectablePeerNode_Xcode.xcodeproj/project.pbxproj
@@ -0,0 +1,579 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 50;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ D0879C1722F871F600C4D6B3 /* SelectablePeerNode.h in Headers */ = {isa = PBXBuildFile; fileRef = D0879C1522F871F600C4D6B3 /* SelectablePeerNode.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0879C2222F872C900C4D6B3 /* SelectablePeerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879C2122F872C900C4D6B3 /* SelectablePeerNode.swift */; };
+ D0879C2522F872D900C4D6B3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879C2422F872D900C4D6B3 /* Foundation.framework */; };
+ D0879C2722F872DD00C4D6B3 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879C2622F872DD00C4D6B3 /* UIKit.framework */; };
+ D0879C2922F872E100C4D6B3 /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879C2822F872E100C4D6B3 /* AsyncDisplayKit.framework */; };
+ D0879C2B22F872E400C4D6B3 /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879C2A22F872E400C4D6B3 /* Display.framework */; };
+ D0879C2D22F872E900C4D6B3 /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879C2C22F872E900C4D6B3 /* Postbox.framework */; };
+ D0879C2F22F872EE00C4D6B3 /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879C2E22F872EE00C4D6B3 /* TelegramCore.framework */; };
+ D0879C3122F872F300C4D6B3 /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879C3022F872F300C4D6B3 /* SwiftSignalKit.framework */; };
+ D0879C3322F872F900C4D6B3 /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879C3222F872F900C4D6B3 /* TelegramPresentationData.framework */; };
+ D0879C3522F872FF00C4D6B3 /* AvatarNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879C3422F872FF00C4D6B3 /* AvatarNode.framework */; };
+ D0879C7222F874D900C4D6B3 /* PeerOnlineMarkerNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879C7122F874D900C4D6B3 /* PeerOnlineMarkerNode.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ D0879C1222F871F600C4D6B3 /* SelectablePeerNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SelectablePeerNode.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879C1522F871F600C4D6B3 /* SelectablePeerNode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SelectablePeerNode.h; sourceTree = ""; };
+ D0879C1622F871F600C4D6B3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ D0879C2122F872C900C4D6B3 /* SelectablePeerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SelectablePeerNode.swift; sourceTree = ""; };
+ D0879C2422F872D900C4D6B3 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ D0879C2622F872DD00C4D6B3 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+ D0879C2822F872E100C4D6B3 /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879C2A22F872E400C4D6B3 /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879C2C22F872E900C4D6B3 /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879C2E22F872EE00C4D6B3 /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879C3022F872F300C4D6B3 /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879C3222F872F900C4D6B3 /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879C3422F872FF00C4D6B3 /* AvatarNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AvatarNode.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879C7122F874D900C4D6B3 /* PeerOnlineMarkerNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PeerOnlineMarkerNode.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ D0879C0F22F871F600C4D6B3 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879C7222F874D900C4D6B3 /* PeerOnlineMarkerNode.framework in Frameworks */,
+ D0879C3522F872FF00C4D6B3 /* AvatarNode.framework in Frameworks */,
+ D0879C3322F872F900C4D6B3 /* TelegramPresentationData.framework in Frameworks */,
+ D0879C3122F872F300C4D6B3 /* SwiftSignalKit.framework in Frameworks */,
+ D0879C2F22F872EE00C4D6B3 /* TelegramCore.framework in Frameworks */,
+ D0879C2D22F872E900C4D6B3 /* Postbox.framework in Frameworks */,
+ D0879C2B22F872E400C4D6B3 /* Display.framework in Frameworks */,
+ D0879C2922F872E100C4D6B3 /* AsyncDisplayKit.framework in Frameworks */,
+ D0879C2722F872DD00C4D6B3 /* UIKit.framework in Frameworks */,
+ D0879C2522F872D900C4D6B3 /* Foundation.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ D0879C0822F871F600C4D6B3 = {
+ isa = PBXGroup;
+ children = (
+ D0879C1622F871F600C4D6B3 /* Info.plist */,
+ D0879C1422F871F600C4D6B3 /* Sources */,
+ D0879C1322F871F600C4D6B3 /* Products */,
+ D0879C2322F872D900C4D6B3 /* Frameworks */,
+ );
+ sourceTree = "";
+ };
+ D0879C1322F871F600C4D6B3 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ D0879C1222F871F600C4D6B3 /* SelectablePeerNode.framework */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ D0879C1422F871F600C4D6B3 /* Sources */ = {
+ isa = PBXGroup;
+ children = (
+ D0879C2122F872C900C4D6B3 /* SelectablePeerNode.swift */,
+ D0879C1522F871F600C4D6B3 /* SelectablePeerNode.h */,
+ );
+ path = Sources;
+ sourceTree = "";
+ };
+ D0879C2322F872D900C4D6B3 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ D0879C7122F874D900C4D6B3 /* PeerOnlineMarkerNode.framework */,
+ D0879C3422F872FF00C4D6B3 /* AvatarNode.framework */,
+ D0879C3222F872F900C4D6B3 /* TelegramPresentationData.framework */,
+ D0879C3022F872F300C4D6B3 /* SwiftSignalKit.framework */,
+ D0879C2E22F872EE00C4D6B3 /* TelegramCore.framework */,
+ D0879C2C22F872E900C4D6B3 /* Postbox.framework */,
+ D0879C2A22F872E400C4D6B3 /* Display.framework */,
+ D0879C2822F872E100C4D6B3 /* AsyncDisplayKit.framework */,
+ D0879C2622F872DD00C4D6B3 /* UIKit.framework */,
+ D0879C2422F872D900C4D6B3 /* Foundation.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ D0879C0D22F871F600C4D6B3 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879C1722F871F600C4D6B3 /* SelectablePeerNode.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ D0879C1122F871F600C4D6B3 /* SelectablePeerNode */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = D0879C1A22F871F600C4D6B3 /* Build configuration list for PBXNativeTarget "SelectablePeerNode" */;
+ buildPhases = (
+ D0879C0D22F871F600C4D6B3 /* Headers */,
+ D0879C0E22F871F600C4D6B3 /* Sources */,
+ D0879C0F22F871F600C4D6B3 /* Frameworks */,
+ D0879C1022F871F600C4D6B3 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = SelectablePeerNode;
+ productName = SelectablePeerNode;
+ productReference = D0879C1222F871F600C4D6B3 /* SelectablePeerNode.framework */;
+ productType = "com.apple.product-type.framework";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ D0879C0922F871F600C4D6B3 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ DefaultBuildSystemTypeForWorkspace = Latest;
+ LastUpgradeCheck = 1030;
+ ORGANIZATIONNAME = "Telegram Messenger LLP";
+ TargetAttributes = {
+ D0879C1122F871F600C4D6B3 = {
+ CreatedOnToolsVersion = 10.3;
+ LastSwiftMigration = 1030;
+ };
+ };
+ };
+ buildConfigurationList = D0879C0C22F871F600C4D6B3 /* Build configuration list for PBXProject "SelectablePeerNode_Xcode" */;
+ compatibilityVersion = "Xcode 9.3";
+ developmentRegion = en;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ );
+ mainGroup = D0879C0822F871F600C4D6B3;
+ productRefGroup = D0879C1322F871F600C4D6B3 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ D0879C1122F871F600C4D6B3 /* SelectablePeerNode */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ D0879C1022F871F600C4D6B3 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ D0879C0E22F871F600C4D6B3 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879C2222F872C900C4D6B3 /* SelectablePeerNode.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+ D0879C1822F871F600C4D6B3 /* 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;
+ };
+ D0879C1922F871F600C4D6B3 /* 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;
+ };
+ D0879C1B22F871F600C4D6B3 /* 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.SelectablePeerNode;
+ 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;
+ };
+ D0879C1C22F871F600C4D6B3 /* 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.SelectablePeerNode;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SKIP_INSTALL = YES;
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = ReleaseAppStoreLLC;
+ };
+ D0879C1D22F8721000C4D6B3 /* 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;
+ };
+ D0879C1E22F8721000C4D6B3 /* 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.SelectablePeerNode;
+ 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;
+ };
+ D0879C1F22F8721C00C4D6B3 /* 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;
+ };
+ D0879C2022F8721C00C4D6B3 /* 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.SelectablePeerNode;
+ 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 */
+ D0879C0C22F871F600C4D6B3 /* Build configuration list for PBXProject "SelectablePeerNode_Xcode" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D0879C1822F871F600C4D6B3 /* DebugAppStoreLLC */,
+ D0879C1D22F8721000C4D6B3 /* DebugHockeyapp */,
+ D0879C1922F871F600C4D6B3 /* ReleaseAppStoreLLC */,
+ D0879C1F22F8721C00C4D6B3 /* ReleaseHockeyappInternal */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = ReleaseAppStoreLLC;
+ };
+ D0879C1A22F871F600C4D6B3 /* Build configuration list for PBXNativeTarget "SelectablePeerNode" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D0879C1B22F871F600C4D6B3 /* DebugAppStoreLLC */,
+ D0879C1E22F8721000C4D6B3 /* DebugHockeyapp */,
+ D0879C1C22F871F600C4D6B3 /* ReleaseAppStoreLLC */,
+ D0879C2022F8721C00C4D6B3 /* ReleaseHockeyappInternal */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = ReleaseAppStoreLLC;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = D0879C0922F871F600C4D6B3 /* Project object */;
+}
diff --git a/submodules/SelectablePeerNode/Sources/SelectablePeerNode.h b/submodules/SelectablePeerNode/Sources/SelectablePeerNode.h
new file mode 100644
index 0000000000..47645060ac
--- /dev/null
+++ b/submodules/SelectablePeerNode/Sources/SelectablePeerNode.h
@@ -0,0 +1,19 @@
+//
+// SelectablePeerNode.h
+// SelectablePeerNode
+//
+// Created by Peter on 8/5/19.
+// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
+//
+
+#import
+
+//! Project version number for SelectablePeerNode.
+FOUNDATION_EXPORT double SelectablePeerNodeVersionNumber;
+
+//! Project version string for SelectablePeerNode.
+FOUNDATION_EXPORT const unsigned char SelectablePeerNodeVersionString[];
+
+// In this header, you should import all the public headers of your framework using statements like #import
+
+
diff --git a/submodules/TelegramUI/TelegramUI/SelectablePeerNode.swift b/submodules/SelectablePeerNode/Sources/SelectablePeerNode.swift
similarity index 88%
rename from submodules/TelegramUI/TelegramUI/SelectablePeerNode.swift
rename to submodules/SelectablePeerNode/Sources/SelectablePeerNode.swift
index 31e227b43a..4806d1be05 100644
--- a/submodules/TelegramUI/TelegramUI/SelectablePeerNode.swift
+++ b/submodules/SelectablePeerNode/Sources/SelectablePeerNode.swift
@@ -7,13 +7,13 @@ import TelegramCore
import SwiftSignalKit
import TelegramPresentationData
import AvatarNode
-
+import PeerOnlineMarkerNode
import LegacyComponents
private let avatarFont = UIFont(name: ".SFCompactRounded-Semibold", size: 24.0)!
private let textFont = Font.regular(11.0)
-final class SelectablePeerNodeTheme {
+public final class SelectablePeerNodeTheme {
let textColor: UIColor
let secretTextColor: UIColor
let selectedTextColor: UIColor
@@ -22,7 +22,7 @@ final class SelectablePeerNodeTheme {
let checkColor: UIColor
let avatarPlaceholderColor: UIColor
- init(textColor: UIColor, secretTextColor: UIColor, selectedTextColor: UIColor, checkBackgroundColor: UIColor, checkFillColor: UIColor, checkColor: UIColor, avatarPlaceholderColor: UIColor) {
+ public init(textColor: UIColor, secretTextColor: UIColor, selectedTextColor: UIColor, checkBackgroundColor: UIColor, checkFillColor: UIColor, checkColor: UIColor, avatarPlaceholderColor: UIColor) {
self.textColor = textColor
self.secretTextColor = secretTextColor
self.selectedTextColor = selectedTextColor
@@ -32,7 +32,7 @@ final class SelectablePeerNodeTheme {
self.avatarPlaceholderColor = avatarPlaceholderColor
}
- func isEqual(to: SelectablePeerNodeTheme) -> Bool {
+ public func isEqual(to: SelectablePeerNodeTheme) -> Bool {
if self === to {
return true
}
@@ -61,22 +61,22 @@ final class SelectablePeerNodeTheme {
}
}
-final class SelectablePeerNode: ASDisplayNode {
+public final class SelectablePeerNode: ASDisplayNode {
private let avatarSelectionNode: ASImageNode
private let avatarNodeContainer: ASDisplayNode
private let avatarNode: AvatarNode
- private let onlineNode: ChatListOnlineNode
+ private let onlineNode: PeerOnlineMarkerNode
private var checkView: TGCheckButtonView?
private let textNode: ASTextNode
- var toggleSelection: (() -> Void)?
- var longTapAction: (() -> Void)?
+ public var toggleSelection: (() -> Void)?
+ public var longTapAction: (() -> Void)?
private var currentSelected = false
private var peer: RenderedPeer?
- var theme: SelectablePeerNodeTheme = SelectablePeerNodeTheme(textColor: .black, secretTextColor: .green, selectedTextColor: .blue, checkBackgroundColor: .white, checkFillColor: .blue, checkColor: .white, avatarPlaceholderColor: .white) {
+ public var theme: SelectablePeerNodeTheme = SelectablePeerNodeTheme(textColor: .black, secretTextColor: .green, selectedTextColor: .blue, checkBackgroundColor: .white, checkFillColor: .blue, checkColor: .white, avatarPlaceholderColor: .white) {
didSet {
if !self.theme.isEqual(to: oldValue) {
if let peer = self.peer, let mainPeer = peer.chatMainPeer {
@@ -86,7 +86,7 @@ final class SelectablePeerNode: ASDisplayNode {
}
}
- override init() {
+ override public init() {
self.avatarNodeContainer = ASDisplayNode()
self.avatarSelectionNode = ASImageNode()
@@ -104,7 +104,7 @@ final class SelectablePeerNode: ASDisplayNode {
self.textNode.isUserInteractionEnabled = false
self.textNode.displaysAsynchronously = true
- self.onlineNode = ChatListOnlineNode()
+ self.onlineNode = PeerOnlineMarkerNode()
super.init()
@@ -115,7 +115,7 @@ final class SelectablePeerNode: ASDisplayNode {
self.addSubnode(self.onlineNode)
}
- func setup(account: Account, theme: PresentationTheme, strings: PresentationStrings, peer: RenderedPeer, online: Bool = false, numberOfLines: Int = 2, synchronousLoad: Bool) {
+ public func setup(account: Account, theme: PresentationTheme, strings: PresentationStrings, peer: RenderedPeer, online: Bool = false, numberOfLines: Int = 2, synchronousLoad: Bool) {
self.peer = peer
guard let mainPeer = peer.chatMainPeer else {
return
@@ -148,7 +148,7 @@ final class SelectablePeerNode: ASDisplayNode {
self.setNeedsLayout()
}
- func updateSelection(selected: Bool, animated: Bool) {
+ public func updateSelection(selected: Bool, animated: Bool) {
if selected != self.currentSelected {
self.currentSelected = selected
@@ -206,7 +206,7 @@ final class SelectablePeerNode: ASDisplayNode {
}
}
- override func didLoad() {
+ override public func didLoad() {
super.didLoad()
self.view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(self.tapGesture(_:))))
@@ -216,19 +216,19 @@ final class SelectablePeerNode: ASDisplayNode {
self.view.addGestureRecognizer(longTapRecognizer)
}
- @objc func longTapGesture(_ recognizer: UILongPressGestureRecognizer) {
+ @objc private func longTapGesture(_ recognizer: UILongPressGestureRecognizer) {
if case .began = recognizer.state {
self.longTapAction?()
}
}
- @objc func tapGesture(_ recognizer: UITapGestureRecognizer) {
+ @objc private func tapGesture(_ recognizer: UITapGestureRecognizer) {
if case .ended = recognizer.state {
self.toggleSelection?()
}
}
- override func layout() {
+ override public func layout() {
super.layout()
let bounds = self.bounds
diff --git a/submodules/ShareController/Info.plist b/submodules/ShareController/Info.plist
new file mode 100644
index 0000000000..e1fe4cfb7b
--- /dev/null
+++ b/submodules/ShareController/Info.plist
@@ -0,0 +1,22 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ $(DEVELOPMENT_LANGUAGE)
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ $(CURRENT_PROJECT_VERSION)
+
+
diff --git a/submodules/ShareController/ShareController_Xcode.xcodeproj/project.pbxproj b/submodules/ShareController/ShareController_Xcode.xcodeproj/project.pbxproj
new file mode 100644
index 0000000000..5b756903dd
--- /dev/null
+++ b/submodules/ShareController/ShareController_Xcode.xcodeproj/project.pbxproj
@@ -0,0 +1,645 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 50;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ D038AC4F22F8883700320981 /* SaveToCameraRoll.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D038AC4E22F8883700320981 /* SaveToCameraRoll.framework */; };
+ D0879B9822F8537800C4D6B3 /* ShareController.h in Headers */ = {isa = PBXBuildFile; fileRef = D0879B9622F8537800C4D6B3 /* ShareController.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0879BA822F854C700C4D6B3 /* ShareControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879BA222F854C600C4D6B3 /* ShareControllerNode.swift */; };
+ D0879BA922F854C700C4D6B3 /* ShareController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879BA322F854C600C4D6B3 /* ShareController.swift */; };
+ D0879BAA22F854C700C4D6B3 /* ShareContentContainerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879BA422F854C700C4D6B3 /* ShareContentContainerNode.swift */; };
+ D0879BAB22F854C700C4D6B3 /* ShareActionButtonNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879BA522F854C700C4D6B3 /* ShareActionButtonNode.swift */; };
+ D0879BAC22F854C700C4D6B3 /* ShareControllerRecentPeersGridItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879BA622F854C700C4D6B3 /* ShareControllerRecentPeersGridItem.swift */; };
+ D0879BAD22F854C700C4D6B3 /* ShareControllerPeerGridItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879BA722F854C700C4D6B3 /* ShareControllerPeerGridItem.swift */; };
+ D0879BB022F854D200C4D6B3 /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879BAF22F854D200C4D6B3 /* SwiftSignalKit.framework */; };
+ D0879BB222F854D700C4D6B3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879BB122F854D700C4D6B3 /* Foundation.framework */; };
+ D0879BB422F854DC00C4D6B3 /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879BB322F854DC00C4D6B3 /* TelegramCore.framework */; };
+ D0879BB622F854E000C4D6B3 /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879BB522F854E000C4D6B3 /* Postbox.framework */; };
+ D0879BB822F854E400C4D6B3 /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879BB722F854E400C4D6B3 /* Display.framework */; };
+ D0879BBA22F854E900C4D6B3 /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879BB922F854E900C4D6B3 /* AsyncDisplayKit.framework */; };
+ D0879BC222F857E600C4D6B3 /* SharePeersContainerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879BBD22F857E600C4D6B3 /* SharePeersContainerNode.swift */; };
+ D0879BC322F857E600C4D6B3 /* ShareLoadingContainerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879BBE22F857E600C4D6B3 /* ShareLoadingContainerNode.swift */; };
+ D0879BC422F857E600C4D6B3 /* ShareInputFieldNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879BBF22F857E600C4D6B3 /* ShareInputFieldNode.swift */; };
+ D0879BC522F857E600C4D6B3 /* ShareSearchContainerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879BC022F857E600C4D6B3 /* ShareSearchContainerNode.swift */; };
+ D0879BC622F857E600C4D6B3 /* ShareSearchBarNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879BC122F857E600C4D6B3 /* ShareSearchBarNode.swift */; };
+ D0879BEC22F85F8500C4D6B3 /* RadialStatusNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879BEB22F85F8500C4D6B3 /* RadialStatusNode.framework */; };
+ D0879C0722F8636500C4D6B3 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879C0622F8636500C4D6B3 /* FrameworkBundle.swift */; };
+ D0879C3722F8733500C4D6B3 /* SelectablePeerNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879C3622F8733500C4D6B3 /* SelectablePeerNode.framework */; };
+ D0879C9422F875B900C4D6B3 /* PeerPresenceStatusManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879C9322F875B900C4D6B3 /* PeerPresenceStatusManager.framework */; };
+ D0879CCA22F876D700C4D6B3 /* ChatListSearchRecentPeersNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879CC922F876D700C4D6B3 /* ChatListSearchRecentPeersNode.framework */; };
+ D0879D7522F87D6100C4D6B3 /* ActionSheetPeerItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879D7422F87D6100C4D6B3 /* ActionSheetPeerItem.framework */; };
+ D0879D9D22F87E7F00C4D6B3 /* LocalizedPeerData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879D9C22F87E7F00C4D6B3 /* LocalizedPeerData.framework */; };
+ D0879DBB22F87F2700C4D6B3 /* UrlEscaping.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879DBA22F87F2700C4D6B3 /* UrlEscaping.framework */; };
+ D0879DE822F8819E00C4D6B3 /* StickerResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879DE722F8819E00C4D6B3 /* StickerResources.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ D038AC4E22F8883700320981 /* SaveToCameraRoll.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SaveToCameraRoll.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D038AC5022F889E600320981 /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; };
+ D0879B9322F8537800C4D6B3 /* ShareController.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ShareController.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879B9622F8537800C4D6B3 /* ShareController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ShareController.h; sourceTree = ""; };
+ D0879B9722F8537800C4D6B3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ D0879BA222F854C600C4D6B3 /* ShareControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShareControllerNode.swift; sourceTree = ""; };
+ D0879BA322F854C600C4D6B3 /* ShareController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShareController.swift; sourceTree = ""; };
+ D0879BA422F854C700C4D6B3 /* ShareContentContainerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShareContentContainerNode.swift; sourceTree = ""; };
+ D0879BA522F854C700C4D6B3 /* ShareActionButtonNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShareActionButtonNode.swift; sourceTree = ""; };
+ D0879BA622F854C700C4D6B3 /* ShareControllerRecentPeersGridItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShareControllerRecentPeersGridItem.swift; sourceTree = ""; };
+ D0879BA722F854C700C4D6B3 /* ShareControllerPeerGridItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShareControllerPeerGridItem.swift; sourceTree = ""; };
+ D0879BAF22F854D200C4D6B3 /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879BB122F854D700C4D6B3 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ D0879BB322F854DC00C4D6B3 /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879BB522F854E000C4D6B3 /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879BB722F854E400C4D6B3 /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879BB922F854E900C4D6B3 /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879BBD22F857E600C4D6B3 /* SharePeersContainerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SharePeersContainerNode.swift; sourceTree = ""; };
+ D0879BBE22F857E600C4D6B3 /* ShareLoadingContainerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShareLoadingContainerNode.swift; sourceTree = ""; };
+ D0879BBF22F857E600C4D6B3 /* ShareInputFieldNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShareInputFieldNode.swift; sourceTree = ""; };
+ D0879BC022F857E600C4D6B3 /* ShareSearchContainerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShareSearchContainerNode.swift; sourceTree = ""; };
+ D0879BC122F857E600C4D6B3 /* ShareSearchBarNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShareSearchBarNode.swift; sourceTree = ""; };
+ D0879BEB22F85F8500C4D6B3 /* RadialStatusNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = RadialStatusNode.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879C0622F8636500C4D6B3 /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; };
+ D0879C3622F8733500C4D6B3 /* SelectablePeerNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SelectablePeerNode.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879C9322F875B900C4D6B3 /* PeerPresenceStatusManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PeerPresenceStatusManager.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879CC922F876D700C4D6B3 /* ChatListSearchRecentPeersNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ChatListSearchRecentPeersNode.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879D7422F87D6100C4D6B3 /* ActionSheetPeerItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ActionSheetPeerItem.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879D9C22F87E7F00C4D6B3 /* LocalizedPeerData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LocalizedPeerData.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879DBA22F87F2700C4D6B3 /* UrlEscaping.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = UrlEscaping.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879DE722F8819E00C4D6B3 /* StickerResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = StickerResources.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ D0879B9022F8537800C4D6B3 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D038AC4F22F8883700320981 /* SaveToCameraRoll.framework in Frameworks */,
+ D0879DE822F8819E00C4D6B3 /* StickerResources.framework in Frameworks */,
+ D0879DBB22F87F2700C4D6B3 /* UrlEscaping.framework in Frameworks */,
+ D0879D9D22F87E7F00C4D6B3 /* LocalizedPeerData.framework in Frameworks */,
+ D0879D7522F87D6100C4D6B3 /* ActionSheetPeerItem.framework in Frameworks */,
+ D0879CCA22F876D700C4D6B3 /* ChatListSearchRecentPeersNode.framework in Frameworks */,
+ D0879C9422F875B900C4D6B3 /* PeerPresenceStatusManager.framework in Frameworks */,
+ D0879C3722F8733500C4D6B3 /* SelectablePeerNode.framework in Frameworks */,
+ D0879BEC22F85F8500C4D6B3 /* RadialStatusNode.framework in Frameworks */,
+ D0879BBA22F854E900C4D6B3 /* AsyncDisplayKit.framework in Frameworks */,
+ D0879BB822F854E400C4D6B3 /* Display.framework in Frameworks */,
+ D0879BB622F854E000C4D6B3 /* Postbox.framework in Frameworks */,
+ D0879BB422F854DC00C4D6B3 /* TelegramCore.framework in Frameworks */,
+ D0879BB222F854D700C4D6B3 /* Foundation.framework in Frameworks */,
+ D0879BB022F854D200C4D6B3 /* SwiftSignalKit.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ D0879B8922F8537800C4D6B3 = {
+ isa = PBXGroup;
+ children = (
+ D0879B9722F8537800C4D6B3 /* Info.plist */,
+ D0879B9522F8537800C4D6B3 /* Sources */,
+ D0879B9422F8537800C4D6B3 /* Products */,
+ D0879BAE22F854D200C4D6B3 /* Frameworks */,
+ );
+ sourceTree = "";
+ };
+ D0879B9422F8537800C4D6B3 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ D0879B9322F8537800C4D6B3 /* ShareController.framework */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ D0879B9522F8537800C4D6B3 /* Sources */ = {
+ isa = PBXGroup;
+ children = (
+ D0879BBF22F857E600C4D6B3 /* ShareInputFieldNode.swift */,
+ D0879BBE22F857E600C4D6B3 /* ShareLoadingContainerNode.swift */,
+ D0879BBD22F857E600C4D6B3 /* SharePeersContainerNode.swift */,
+ D0879BC122F857E600C4D6B3 /* ShareSearchBarNode.swift */,
+ D0879BC022F857E600C4D6B3 /* ShareSearchContainerNode.swift */,
+ D0879BA522F854C700C4D6B3 /* ShareActionButtonNode.swift */,
+ D0879BA422F854C700C4D6B3 /* ShareContentContainerNode.swift */,
+ D0879BA322F854C600C4D6B3 /* ShareController.swift */,
+ D0879BA222F854C600C4D6B3 /* ShareControllerNode.swift */,
+ D0879BA722F854C700C4D6B3 /* ShareControllerPeerGridItem.swift */,
+ D0879BA622F854C700C4D6B3 /* ShareControllerRecentPeersGridItem.swift */,
+ D0879C0622F8636500C4D6B3 /* FrameworkBundle.swift */,
+ D0879B9622F8537800C4D6B3 /* ShareController.h */,
+ );
+ path = Sources;
+ sourceTree = "";
+ };
+ D0879BAE22F854D200C4D6B3 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ D038AC5022F889E600320981 /* libc++.tbd */,
+ D038AC4E22F8883700320981 /* SaveToCameraRoll.framework */,
+ D0879DE722F8819E00C4D6B3 /* StickerResources.framework */,
+ D0879DBA22F87F2700C4D6B3 /* UrlEscaping.framework */,
+ D0879D9C22F87E7F00C4D6B3 /* LocalizedPeerData.framework */,
+ D0879D7422F87D6100C4D6B3 /* ActionSheetPeerItem.framework */,
+ D0879CC922F876D700C4D6B3 /* ChatListSearchRecentPeersNode.framework */,
+ D0879C9322F875B900C4D6B3 /* PeerPresenceStatusManager.framework */,
+ D0879C3622F8733500C4D6B3 /* SelectablePeerNode.framework */,
+ D0879BEB22F85F8500C4D6B3 /* RadialStatusNode.framework */,
+ D0879BB922F854E900C4D6B3 /* AsyncDisplayKit.framework */,
+ D0879BB722F854E400C4D6B3 /* Display.framework */,
+ D0879BB522F854E000C4D6B3 /* Postbox.framework */,
+ D0879BB322F854DC00C4D6B3 /* TelegramCore.framework */,
+ D0879BB122F854D700C4D6B3 /* Foundation.framework */,
+ D0879BAF22F854D200C4D6B3 /* SwiftSignalKit.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ D0879B8E22F8537800C4D6B3 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879B9822F8537800C4D6B3 /* ShareController.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ D0879B9222F8537800C4D6B3 /* ShareController */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = D0879B9B22F8537800C4D6B3 /* Build configuration list for PBXNativeTarget "ShareController" */;
+ buildPhases = (
+ D0879B8E22F8537800C4D6B3 /* Headers */,
+ D0879B8F22F8537800C4D6B3 /* Sources */,
+ D0879B9022F8537800C4D6B3 /* Frameworks */,
+ D0879B9122F8537800C4D6B3 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = ShareController;
+ productName = ShareController;
+ productReference = D0879B9322F8537800C4D6B3 /* ShareController.framework */;
+ productType = "com.apple.product-type.framework";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ D0879B8A22F8537800C4D6B3 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ DefaultBuildSystemTypeForWorkspace = Latest;
+ LastUpgradeCheck = 1030;
+ ORGANIZATIONNAME = "Telegram Messenger LLP";
+ TargetAttributes = {
+ D0879B9222F8537800C4D6B3 = {
+ CreatedOnToolsVersion = 10.3;
+ LastSwiftMigration = 1030;
+ };
+ };
+ };
+ buildConfigurationList = D0879B8D22F8537800C4D6B3 /* Build configuration list for PBXProject "ShareController_Xcode" */;
+ compatibilityVersion = "Xcode 9.3";
+ developmentRegion = en;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ );
+ mainGroup = D0879B8922F8537800C4D6B3;
+ productRefGroup = D0879B9422F8537800C4D6B3 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ D0879B9222F8537800C4D6B3 /* ShareController */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ D0879B9122F8537800C4D6B3 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ D0879B8F22F8537800C4D6B3 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879BA822F854C700C4D6B3 /* ShareControllerNode.swift in Sources */,
+ D0879BAB22F854C700C4D6B3 /* ShareActionButtonNode.swift in Sources */,
+ D0879BAC22F854C700C4D6B3 /* ShareControllerRecentPeersGridItem.swift in Sources */,
+ D0879BC222F857E600C4D6B3 /* SharePeersContainerNode.swift in Sources */,
+ D0879BC422F857E600C4D6B3 /* ShareInputFieldNode.swift in Sources */,
+ D0879BC522F857E600C4D6B3 /* ShareSearchContainerNode.swift in Sources */,
+ D0879BC622F857E600C4D6B3 /* ShareSearchBarNode.swift in Sources */,
+ D0879BC322F857E600C4D6B3 /* ShareLoadingContainerNode.swift in Sources */,
+ D0879C0722F8636500C4D6B3 /* FrameworkBundle.swift in Sources */,
+ D0879BA922F854C700C4D6B3 /* ShareController.swift in Sources */,
+ D0879BAD22F854C700C4D6B3 /* ShareControllerPeerGridItem.swift in Sources */,
+ D0879BAA22F854C700C4D6B3 /* ShareContentContainerNode.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+ D0879B9922F8537800C4D6B3 /* 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;
+ };
+ D0879B9A22F8537800C4D6B3 /* 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;
+ };
+ D0879B9C22F8537800C4D6B3 /* 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.ShareController;
+ 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;
+ };
+ D0879B9D22F8537800C4D6B3 /* 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.ShareController;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SKIP_INSTALL = YES;
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = ReleaseAppStoreLLC;
+ };
+ D0879B9E22F8541700C4D6B3 /* 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;
+ };
+ D0879B9F22F8541700C4D6B3 /* 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.ShareController;
+ 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;
+ };
+ D0879BA022F8542400C4D6B3 /* 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;
+ };
+ D0879BA122F8542400C4D6B3 /* 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.ShareController;
+ 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 */
+ D0879B8D22F8537800C4D6B3 /* Build configuration list for PBXProject "ShareController_Xcode" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D0879B9922F8537800C4D6B3 /* DebugAppStoreLLC */,
+ D0879B9E22F8541700C4D6B3 /* DebugHockeyapp */,
+ D0879B9A22F8537800C4D6B3 /* ReleaseAppStoreLLC */,
+ D0879BA022F8542400C4D6B3 /* ReleaseHockeyappInternal */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = ReleaseAppStoreLLC;
+ };
+ D0879B9B22F8537800C4D6B3 /* Build configuration list for PBXNativeTarget "ShareController" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D0879B9C22F8537800C4D6B3 /* DebugAppStoreLLC */,
+ D0879B9F22F8541700C4D6B3 /* DebugHockeyapp */,
+ D0879B9D22F8537800C4D6B3 /* ReleaseAppStoreLLC */,
+ D0879BA122F8542400C4D6B3 /* ReleaseHockeyappInternal */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = ReleaseAppStoreLLC;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = D0879B8A22F8537800C4D6B3 /* Project object */;
+}
diff --git a/submodules/ShareController/Sources/FrameworkBundle.swift b/submodules/ShareController/Sources/FrameworkBundle.swift
new file mode 100644
index 0000000000..8ca13d7d92
--- /dev/null
+++ b/submodules/ShareController/Sources/FrameworkBundle.swift
@@ -0,0 +1,13 @@
+import Foundation
+import UIKit
+
+private class FrameworkBundleClass: NSObject {
+}
+
+let frameworkBundle: Bundle = Bundle(for: FrameworkBundleClass.self)
+
+extension UIImage {
+ convenience init?(bundleImageName: String) {
+ self.init(named: bundleImageName, in: frameworkBundle, compatibleWith: nil)
+ }
+}
diff --git a/submodules/TelegramUI/TelegramUI/ShareActionButtonNode.swift b/submodules/ShareController/Sources/ShareActionButtonNode.swift
similarity index 90%
rename from submodules/TelegramUI/TelegramUI/ShareActionButtonNode.swift
rename to submodules/ShareController/Sources/ShareActionButtonNode.swift
index 071309fea9..d8d7535589 100644
--- a/submodules/TelegramUI/TelegramUI/ShareActionButtonNode.swift
+++ b/submodules/ShareController/Sources/ShareActionButtonNode.swift
@@ -3,24 +3,24 @@ import UIKit
import AsyncDisplayKit
import Display
-final class ShareActionButtonNode: HighlightTrackingButtonNode {
+public final class ShareActionButtonNode: HighlightTrackingButtonNode {
private let badgeLabel: TextNode
private var badgeText: NSAttributedString?
private let badgeBackground: ASImageNode
- var badgeBackgroundColor: UIColor {
+ public var badgeBackgroundColor: UIColor {
didSet {
self.badgeBackground.image = generateStretchableFilledCircleImage(diameter: 22.0, color: self.badgeBackgroundColor)
}
}
- var badgeTextColor: UIColor {
+ public var badgeTextColor: UIColor {
didSet {
self.setNeedsLayout()
}
}
- var badge: String? {
+ public var badge: String? {
didSet {
if self.badge != oldValue {
if let badge = self.badge {
@@ -38,7 +38,7 @@ final class ShareActionButtonNode: HighlightTrackingButtonNode {
}
}
- init(badgeBackgroundColor: UIColor, badgeTextColor: UIColor) {
+ public init(badgeBackgroundColor: UIColor, badgeTextColor: UIColor) {
self.badgeBackgroundColor = badgeBackgroundColor
self.badgeTextColor = badgeTextColor
@@ -61,7 +61,7 @@ final class ShareActionButtonNode: HighlightTrackingButtonNode {
self.addSubnode(self.badgeLabel)
}
- override func layout() {
+ override public func layout() {
super.layout()
if !self.badgeLabel.isHidden {
diff --git a/submodules/TelegramUI/TelegramUI/ShareContentContainerNode.swift b/submodules/ShareController/Sources/ShareContentContainerNode.swift
similarity index 88%
rename from submodules/TelegramUI/TelegramUI/ShareContentContainerNode.swift
rename to submodules/ShareController/Sources/ShareContentContainerNode.swift
index b556c2c222..e3e7a612a9 100644
--- a/submodules/TelegramUI/TelegramUI/ShareContentContainerNode.swift
+++ b/submodules/ShareController/Sources/ShareContentContainerNode.swift
@@ -3,7 +3,7 @@ import UIKit
import Display
import Postbox
-protocol ShareContentContainerNode: class {
+public protocol ShareContentContainerNode: class {
func activate()
func deactivate()
func setEnsurePeerVisibleOnLayout(_ peerId: PeerId?)
diff --git a/submodules/ShareController/Sources/ShareController.h b/submodules/ShareController/Sources/ShareController.h
new file mode 100644
index 0000000000..8e0e68b552
--- /dev/null
+++ b/submodules/ShareController/Sources/ShareController.h
@@ -0,0 +1,19 @@
+//
+// ShareController.h
+// ShareController
+//
+// Created by Peter on 8/5/19.
+// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
+//
+
+#import
+
+//! Project version number for ShareController.
+FOUNDATION_EXPORT double ShareControllerVersionNumber;
+
+//! Project version string for ShareController.
+FOUNDATION_EXPORT const unsigned char ShareControllerVersionString[];
+
+// In this header, you should import all the public headers of your framework using statements like #import
+
+
diff --git a/submodules/TelegramUI/TelegramUI/ShareController.swift b/submodules/ShareController/Sources/ShareController.swift
similarity index 98%
rename from submodules/TelegramUI/TelegramUI/ShareController.swift
rename to submodules/ShareController/Sources/ShareController.swift
index 2ab5df6924..0f1d4a7e5b 100644
--- a/submodules/TelegramUI/TelegramUI/ShareController.swift
+++ b/submodules/ShareController/Sources/ShareController.swift
@@ -8,10 +8,20 @@ import SwiftSignalKit
import TelegramPresentationData
import TextFormat
import AccountContext
+import ActionSheetPeerItem
+import LocalizedPeerData
+import UrlEscaping
+import StickerResources
+import SaveToCameraRoll
public struct ShareControllerAction {
let title: String
let action: () -> Void
+
+ public init(title: String, action: @escaping () -> Void) {
+ self.title = title
+ self.action = action
+ }
}
public enum ShareControllerPreferredAction {
@@ -663,7 +673,7 @@ public final class ShareController: ViewController {
} else {
context = self.sharedContext.makeTempAccountContext(account: self.currentAccount)
}
- return TelegramUI.saveToCameraRoll(context: context, postbox: postbox, mediaReference: .message(message: MessageReference(message), media: media))
+ return SaveToCameraRoll.saveToCameraRoll(context: context, postbox: postbox, mediaReference: .message(message: MessageReference(message), media: media))
} else {
return nil
}
@@ -690,7 +700,7 @@ public final class ShareController: ViewController {
} else {
context = self.sharedContext.makeTempAccountContext(account: self.currentAccount)
}
- self.controllerNode.transitionToProgressWithValue(signal: TelegramUI.saveToCameraRoll(context: context, postbox: context.account.postbox, mediaReference: .standalone(media: media)) |> map(Optional.init))
+ self.controllerNode.transitionToProgressWithValue(signal: SaveToCameraRoll.saveToCameraRoll(context: context, postbox: context.account.postbox, mediaReference: .standalone(media: media)) |> map(Optional.init))
}
private func saveToCameraRoll(mediaReference: AnyMediaReference) {
@@ -700,7 +710,7 @@ public final class ShareController: ViewController {
} else {
context = self.sharedContext.makeTempAccountContext(account: self.currentAccount)
}
- self.controllerNode.transitionToProgressWithValue(signal: TelegramUI.saveToCameraRoll(context: context, postbox: context.account.postbox, mediaReference: mediaReference) |> map(Optional.init))
+ self.controllerNode.transitionToProgressWithValue(signal: SaveToCameraRoll.saveToCameraRoll(context: context, postbox: context.account.postbox, mediaReference: mediaReference) |> map(Optional.init))
}
private func switchToAccount(account: Account, animateIn: Bool) {
diff --git a/submodules/TelegramUI/TelegramUI/ShareControllerNode.swift b/submodules/ShareController/Sources/ShareControllerNode.swift
similarity index 100%
rename from submodules/TelegramUI/TelegramUI/ShareControllerNode.swift
rename to submodules/ShareController/Sources/ShareControllerNode.swift
diff --git a/submodules/TelegramUI/TelegramUI/ShareControllerPeerGridItem.swift b/submodules/ShareController/Sources/ShareControllerPeerGridItem.swift
similarity index 99%
rename from submodules/TelegramUI/TelegramUI/ShareControllerPeerGridItem.swift
rename to submodules/ShareController/Sources/ShareControllerPeerGridItem.swift
index 9daffe4840..f31e4213b5 100644
--- a/submodules/TelegramUI/TelegramUI/ShareControllerPeerGridItem.swift
+++ b/submodules/ShareController/Sources/ShareControllerPeerGridItem.swift
@@ -7,6 +7,8 @@ import AsyncDisplayKit
import Postbox
import TelegramPresentationData
import TelegramStringFormatting
+import SelectablePeerNode
+import PeerPresenceStatusManager
final class ShareControllerInteraction {
var foundPeers: [RenderedPeer] = []
diff --git a/submodules/TelegramUI/TelegramUI/ShareControllerRecentPeersGridItem.swift b/submodules/ShareController/Sources/ShareControllerRecentPeersGridItem.swift
similarity index 98%
rename from submodules/TelegramUI/TelegramUI/ShareControllerRecentPeersGridItem.swift
rename to submodules/ShareController/Sources/ShareControllerRecentPeersGridItem.swift
index 6fac827f77..2b2153982c 100644
--- a/submodules/TelegramUI/TelegramUI/ShareControllerRecentPeersGridItem.swift
+++ b/submodules/ShareController/Sources/ShareControllerRecentPeersGridItem.swift
@@ -6,6 +6,7 @@ import SwiftSignalKit
import AsyncDisplayKit
import Postbox
import TelegramPresentationData
+import ChatListSearchRecentPeersNode
final class ShareControllerRecentPeersGridItem: GridItem {
let account: Account
diff --git a/submodules/TelegramUI/TelegramUI/ShareInputFieldNode.swift b/submodules/ShareController/Sources/ShareInputFieldNode.swift
similarity index 100%
rename from submodules/TelegramUI/TelegramUI/ShareInputFieldNode.swift
rename to submodules/ShareController/Sources/ShareInputFieldNode.swift
diff --git a/submodules/TelegramUI/TelegramUI/ShareLoadingContainerNode.swift b/submodules/ShareController/Sources/ShareLoadingContainerNode.swift
similarity index 81%
rename from submodules/TelegramUI/TelegramUI/ShareLoadingContainerNode.swift
rename to submodules/ShareController/Sources/ShareLoadingContainerNode.swift
index 9b2f0fb320..3fd7bdff58 100644
--- a/submodules/TelegramUI/TelegramUI/ShareLoadingContainerNode.swift
+++ b/submodules/ShareController/Sources/ShareLoadingContainerNode.swift
@@ -5,14 +5,16 @@ import Display
import Postbox
import TelegramPresentationData
import ActivityIndicator
+import RadialStatusNode
+import RadialStatusNode
-enum ShareLoadingState {
+public enum ShareLoadingState {
case preparing
case progress(Float)
case done
}
-final class ShareLoadingContainerNode: ASDisplayNode, ShareContentContainerNode {
+public final class ShareLoadingContainerNode: ASDisplayNode, ShareContentContainerNode {
private var contentOffsetUpdated: ((CGFloat, ContainedViewLayoutTransition) -> Void)?
private let theme: PresentationTheme
@@ -20,7 +22,7 @@ final class ShareLoadingContainerNode: ASDisplayNode, ShareContentContainerNode
private let statusNode: RadialStatusNode
private let doneStatusNode: RadialStatusNode
- var state: ShareLoadingState = .preparing {
+ public var state: ShareLoadingState = .preparing {
didSet {
switch self.state {
case .preparing:
@@ -39,7 +41,7 @@ final class ShareLoadingContainerNode: ASDisplayNode, ShareContentContainerNode
}
}
- init(theme: PresentationTheme, forceNativeAppearance: Bool) {
+ public init(theme: PresentationTheme, forceNativeAppearance: Bool) {
self.theme = theme
self.activityIndicator = ActivityIndicator(type: .custom(theme.actionSheet.controlAccentColor, !forceNativeAppearance ? 22.0 : 50.0, 2.0, forceNativeAppearance))
self.statusNode = RadialStatusNode(backgroundNodeColor: .clear)
@@ -53,20 +55,20 @@ final class ShareLoadingContainerNode: ASDisplayNode, ShareContentContainerNode
self.doneStatusNode.transitionToState(.progress(color: self.theme.actionSheet.controlAccentColor, lineWidth: 2.0, value: 0.0, cancelEnabled: false), completion: {})
}
- func activate() {
+ public func activate() {
}
- func deactivate() {
+ public func deactivate() {
}
- func setEnsurePeerVisibleOnLayout(_ peerId: PeerId?) {
+ public func setEnsurePeerVisibleOnLayout(_ peerId: PeerId?) {
}
- func setContentOffsetUpdated(_ f: ((CGFloat, ContainedViewLayoutTransition) -> Void)?) {
+ public func setContentOffsetUpdated(_ f: ((CGFloat, ContainedViewLayoutTransition) -> Void)?) {
self.contentOffsetUpdated = f
}
- func updateLayout(size: CGSize, bottomInset: CGFloat, transition: ContainedViewLayoutTransition) {
+ public func updateLayout(size: CGSize, bottomInset: CGFloat, transition: ContainedViewLayoutTransition) {
let nodeHeight: CGFloat = 125.0
let indicatorSize = self.activityIndicator.calculateSizeThatFits(size)
@@ -79,6 +81,6 @@ final class ShareLoadingContainerNode: ASDisplayNode, ShareContentContainerNode
self.contentOffsetUpdated?(-size.height + 64.0, transition)
}
- func updateSelectedPeers() {
+ public func updateSelectedPeers() {
}
}
diff --git a/submodules/TelegramUI/TelegramUI/SharePeersContainerNode.swift b/submodules/ShareController/Sources/SharePeersContainerNode.swift
similarity index 99%
rename from submodules/TelegramUI/TelegramUI/SharePeersContainerNode.swift
rename to submodules/ShareController/Sources/SharePeersContainerNode.swift
index ecab274e46..14bc1bff93 100644
--- a/submodules/TelegramUI/TelegramUI/SharePeersContainerNode.swift
+++ b/submodules/ShareController/Sources/SharePeersContainerNode.swift
@@ -9,6 +9,7 @@ import TelegramPresentationData
import MergeLists
import AvatarNode
import AccountContext
+import PeerPresenceStatusManager
private let subtitleFont = Font.regular(12.0)
diff --git a/submodules/TelegramUI/TelegramUI/ShareSearchBarNode.swift b/submodules/ShareController/Sources/ShareSearchBarNode.swift
similarity index 100%
rename from submodules/TelegramUI/TelegramUI/ShareSearchBarNode.swift
rename to submodules/ShareController/Sources/ShareSearchBarNode.swift
diff --git a/submodules/TelegramUI/TelegramUI/ShareSearchContainerNode.swift b/submodules/ShareController/Sources/ShareSearchContainerNode.swift
similarity index 100%
rename from submodules/TelegramUI/TelegramUI/ShareSearchContainerNode.swift
rename to submodules/ShareController/Sources/ShareSearchContainerNode.swift
diff --git a/submodules/StickerResources/Info.plist b/submodules/StickerResources/Info.plist
new file mode 100644
index 0000000000..e1fe4cfb7b
--- /dev/null
+++ b/submodules/StickerResources/Info.plist
@@ -0,0 +1,22 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ $(DEVELOPMENT_LANGUAGE)
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ $(CURRENT_PROJECT_VERSION)
+
+
diff --git a/submodules/StickerResources/Sources/StickerResources.h b/submodules/StickerResources/Sources/StickerResources.h
new file mode 100644
index 0000000000..065427c0c8
--- /dev/null
+++ b/submodules/StickerResources/Sources/StickerResources.h
@@ -0,0 +1,19 @@
+//
+// StickerResources.h
+// StickerResources
+//
+// Created by Peter on 8/5/19.
+// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
+//
+
+#import
+
+//! Project version number for StickerResources.
+FOUNDATION_EXPORT double StickerResourcesVersionNumber;
+
+//! Project version string for StickerResources.
+FOUNDATION_EXPORT const unsigned char StickerResourcesVersionString[];
+
+// In this header, you should import all the public headers of your framework using statements like #import
+
+
diff --git a/submodules/TelegramUI/TelegramUI/StickerResources.swift b/submodules/StickerResources/Sources/StickerResources.swift
similarity index 97%
rename from submodules/TelegramUI/TelegramUI/StickerResources.swift
rename to submodules/StickerResources/Sources/StickerResources.swift
index f8239df0b8..59b4c7ed9f 100644
--- a/submodules/TelegramUI/TelegramUI/StickerResources.swift
+++ b/submodules/StickerResources/Sources/StickerResources.swift
@@ -3,9 +3,10 @@ import UIKit
import Postbox
import SwiftSignalKit
import Display
-import TelegramUIPrivateModule
import TelegramCore
import MediaResources
+import Tuples
+import ImageBlur
private func imageFromAJpeg(data: Data) -> (UIImage, UIImage)? {
if let (colorData, alphaData) = data.withUnsafeBytes({ (bytes: UnsafePointer) -> (Data, Data)? in
@@ -36,7 +37,7 @@ private func imageFromAJpeg(data: Data) -> (UIImage, UIImage)? {
return nil
}
-func chatMessageStickerResource(file: TelegramMediaFile, small: Bool) -> MediaResource {
+public func chatMessageStickerResource(file: TelegramMediaFile, small: Bool) -> MediaResource {
let resource: MediaResource
if small, let smallest = largestImageRepresentation(file.previewRepresentations) {
resource = smallest.resource
@@ -97,7 +98,7 @@ private func chatMessageStickerDatas(postbox: Postbox, file: TelegramMediaFile,
}
}
-func chatMessageAnimatedStickerDatas(postbox: Postbox, file: TelegramMediaFile, small: Bool, size: CGSize, fetched: Bool, onlyFullSize: Bool, synchronousLoad: Bool) -> Signal, NoError> {
+public func chatMessageAnimatedStickerDatas(postbox: Postbox, file: TelegramMediaFile, small: Bool, size: CGSize, fetched: Bool, onlyFullSize: Bool, synchronousLoad: Bool) -> Signal, NoError> {
let thumbnailResource = chatMessageStickerResource(file: file, small: true)
let resource = chatMessageStickerResource(file: file, small: small)
@@ -226,7 +227,7 @@ private func chatMessageStickerPackThumbnailData(postbox: Postbox, resource: Med
}
}
-func chatMessageAnimationData(postbox: Postbox, resource: MediaResource, width: Int, height: Int, synchronousLoad: Bool) -> Signal {
+public func chatMessageAnimationData(postbox: Postbox, resource: MediaResource, width: Int, height: Int, synchronousLoad: Bool) -> Signal {
let maybeFetched = postbox.mediaBox.cachedResourceRepresentation(resource, representation: CachedAnimatedStickerRepresentation(width: Int32(width), height: Int32(height)), complete: false, fetch: false, attemptSynchronously: synchronousLoad)
return maybeFetched
@@ -240,7 +241,7 @@ func chatMessageAnimationData(postbox: Postbox, resource: MediaResource, width:
}
}
-func chatMessageAnimatedStrickerBackingData(postbox: Postbox, fileReference: FileMediaReference, synchronousLoad: Bool) -> Signal, NoError> {
+public func chatMessageAnimatedStrickerBackingData(postbox: Postbox, fileReference: FileMediaReference, synchronousLoad: Bool) -> Signal, NoError> {
let resource = fileReference.media.resource
let maybeFetched = postbox.mediaBox.resourceData(resource, option: .complete(waitUntilFetchStatus: false), attemptSynchronously: synchronousLoad)
@@ -261,7 +262,7 @@ func chatMessageAnimatedStrickerBackingData(postbox: Postbox, fileReference: Fil
}
}
-func chatMessageLegacySticker(account: Account, file: TelegramMediaFile, small: Bool, fitSize: CGSize, fetched: Bool = false, onlyFullSize: Bool = false) -> Signal<(TransformImageArguments) -> DrawingContext?, NoError> {
+public func chatMessageLegacySticker(account: Account, file: TelegramMediaFile, small: Bool, fitSize: CGSize, fetched: Bool = false, onlyFullSize: Bool = false) -> Signal<(TransformImageArguments) -> DrawingContext?, NoError> {
let signal = chatMessageStickerDatas(postbox: account.postbox, file: file, small: small, fetched: fetched, onlyFullSize: onlyFullSize, synchronousLoad: false)
return signal |> map { value in
let thumbnailData = value._0
diff --git a/submodules/StickerResources/StickerResources_Xcode.xcodeproj/project.pbxproj b/submodules/StickerResources/StickerResources_Xcode.xcodeproj/project.pbxproj
new file mode 100644
index 0000000000..f8f498d08b
--- /dev/null
+++ b/submodules/StickerResources/StickerResources_Xcode.xcodeproj/project.pbxproj
@@ -0,0 +1,575 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 50;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ D038AC1922F8867900320981 /* ImageBlur.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D038AC1822F8867900320981 /* ImageBlur.framework */; };
+ D0879DCC22F8801400C4D6B3 /* StickerResources.h in Headers */ = {isa = PBXBuildFile; fileRef = D0879DCA22F8801400C4D6B3 /* StickerResources.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0879DD722F8808900C4D6B3 /* StickerResources.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879DD622F8808800C4D6B3 /* StickerResources.swift */; };
+ D0879DDA22F8809800C4D6B3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879DD922F8809800C4D6B3 /* Foundation.framework */; };
+ D0879DDC22F8809C00C4D6B3 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879DDB22F8809C00C4D6B3 /* UIKit.framework */; };
+ D0879DDE22F8809F00C4D6B3 /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879DDD22F8809F00C4D6B3 /* Postbox.framework */; };
+ D0879DE022F880A300C4D6B3 /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879DDF22F880A300C4D6B3 /* SwiftSignalKit.framework */; };
+ D0879DE222F880A900C4D6B3 /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879DE122F880A900C4D6B3 /* Display.framework */; };
+ D0879DE422F880C400C4D6B3 /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879DE322F880C400C4D6B3 /* TelegramCore.framework */; };
+ D0879DE622F880CC00C4D6B3 /* MediaResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879DE522F880CC00C4D6B3 /* MediaResources.framework */; };
+ D0879E0722F8854E00C4D6B3 /* Tuples.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879E0622F8854E00C4D6B3 /* Tuples.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ D038AC1822F8867900320981 /* ImageBlur.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ImageBlur.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879DC722F8801400C4D6B3 /* StickerResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = StickerResources.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879DCA22F8801400C4D6B3 /* StickerResources.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StickerResources.h; sourceTree = ""; };
+ D0879DCB22F8801400C4D6B3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ D0879DD622F8808800C4D6B3 /* StickerResources.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StickerResources.swift; sourceTree = ""; };
+ D0879DD922F8809800C4D6B3 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ D0879DDB22F8809C00C4D6B3 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+ D0879DDD22F8809F00C4D6B3 /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879DDF22F880A300C4D6B3 /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879DE122F880A900C4D6B3 /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879DE322F880C400C4D6B3 /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879DE522F880CC00C4D6B3 /* MediaResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MediaResources.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0879E0622F8854E00C4D6B3 /* Tuples.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Tuples.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ D0879DC422F8801400C4D6B3 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D038AC1922F8867900320981 /* ImageBlur.framework in Frameworks */,
+ D0879E0722F8854E00C4D6B3 /* Tuples.framework in Frameworks */,
+ D0879DE622F880CC00C4D6B3 /* MediaResources.framework in Frameworks */,
+ D0879DE422F880C400C4D6B3 /* TelegramCore.framework in Frameworks */,
+ D0879DE222F880A900C4D6B3 /* Display.framework in Frameworks */,
+ D0879DE022F880A300C4D6B3 /* SwiftSignalKit.framework in Frameworks */,
+ D0879DDE22F8809F00C4D6B3 /* Postbox.framework in Frameworks */,
+ D0879DDC22F8809C00C4D6B3 /* UIKit.framework in Frameworks */,
+ D0879DDA22F8809800C4D6B3 /* Foundation.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ D0879DBD22F8801400C4D6B3 = {
+ isa = PBXGroup;
+ children = (
+ D0879DCB22F8801400C4D6B3 /* Info.plist */,
+ D0879DC922F8801400C4D6B3 /* Sources */,
+ D0879DC822F8801400C4D6B3 /* Products */,
+ D0879DD822F8809800C4D6B3 /* Frameworks */,
+ );
+ sourceTree = "";
+ };
+ D0879DC822F8801400C4D6B3 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ D0879DC722F8801400C4D6B3 /* StickerResources.framework */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ D0879DC922F8801400C4D6B3 /* Sources */ = {
+ isa = PBXGroup;
+ children = (
+ D0879DD622F8808800C4D6B3 /* StickerResources.swift */,
+ D0879DCA22F8801400C4D6B3 /* StickerResources.h */,
+ );
+ path = Sources;
+ sourceTree = "";
+ };
+ D0879DD822F8809800C4D6B3 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ D038AC1822F8867900320981 /* ImageBlur.framework */,
+ D0879E0622F8854E00C4D6B3 /* Tuples.framework */,
+ D0879DE522F880CC00C4D6B3 /* MediaResources.framework */,
+ D0879DE322F880C400C4D6B3 /* TelegramCore.framework */,
+ D0879DE122F880A900C4D6B3 /* Display.framework */,
+ D0879DDF22F880A300C4D6B3 /* SwiftSignalKit.framework */,
+ D0879DDD22F8809F00C4D6B3 /* Postbox.framework */,
+ D0879DDB22F8809C00C4D6B3 /* UIKit.framework */,
+ D0879DD922F8809800C4D6B3 /* Foundation.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ D0879DC222F8801400C4D6B3 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879DCC22F8801400C4D6B3 /* StickerResources.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ D0879DC622F8801400C4D6B3 /* StickerResources */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = D0879DCF22F8801400C4D6B3 /* Build configuration list for PBXNativeTarget "StickerResources" */;
+ buildPhases = (
+ D0879DC222F8801400C4D6B3 /* Headers */,
+ D0879DC322F8801400C4D6B3 /* Sources */,
+ D0879DC422F8801400C4D6B3 /* Frameworks */,
+ D0879DC522F8801400C4D6B3 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = StickerResources;
+ productName = StickerResources;
+ productReference = D0879DC722F8801400C4D6B3 /* StickerResources.framework */;
+ productType = "com.apple.product-type.framework";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ D0879DBE22F8801400C4D6B3 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ DefaultBuildSystemTypeForWorkspace = Latest;
+ LastUpgradeCheck = 1030;
+ ORGANIZATIONNAME = "Telegram Messenger LLP";
+ TargetAttributes = {
+ D0879DC622F8801400C4D6B3 = {
+ CreatedOnToolsVersion = 10.3;
+ LastSwiftMigration = 1030;
+ };
+ };
+ };
+ buildConfigurationList = D0879DC122F8801400C4D6B3 /* Build configuration list for PBXProject "StickerResources_Xcode" */;
+ compatibilityVersion = "Xcode 9.3";
+ developmentRegion = en;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ );
+ mainGroup = D0879DBD22F8801400C4D6B3;
+ productRefGroup = D0879DC822F8801400C4D6B3 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ D0879DC622F8801400C4D6B3 /* StickerResources */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ D0879DC522F8801400C4D6B3 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ D0879DC322F8801400C4D6B3 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0879DD722F8808900C4D6B3 /* StickerResources.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+ D0879DCD22F8801400C4D6B3 /* 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;
+ };
+ D0879DCE22F8801400C4D6B3 /* 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;
+ };
+ D0879DD022F8801400C4D6B3 /* 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.StickerResources;
+ 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;
+ };
+ D0879DD122F8801400C4D6B3 /* 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.StickerResources;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SKIP_INSTALL = YES;
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = ReleaseAppStoreLLC;
+ };
+ D0879DD222F8804100C4D6B3 /* 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;
+ };
+ D0879DD322F8804100C4D6B3 /* 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.StickerResources;
+ 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;
+ };
+ D0879DD422F8804C00C4D6B3 /* 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;
+ };
+ D0879DD522F8804C00C4D6B3 /* 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.StickerResources;
+ 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 */
+ D0879DC122F8801400C4D6B3 /* Build configuration list for PBXProject "StickerResources_Xcode" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D0879DCD22F8801400C4D6B3 /* DebugAppStoreLLC */,
+ D0879DD222F8804100C4D6B3 /* DebugHockeyapp */,
+ D0879DCE22F8801400C4D6B3 /* ReleaseAppStoreLLC */,
+ D0879DD422F8804C00C4D6B3 /* ReleaseHockeyappInternal */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = ReleaseAppStoreLLC;
+ };
+ D0879DCF22F8801400C4D6B3 /* Build configuration list for PBXNativeTarget "StickerResources" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D0879DD022F8801400C4D6B3 /* DebugAppStoreLLC */,
+ D0879DD322F8804100C4D6B3 /* DebugHockeyapp */,
+ D0879DD122F8801400C4D6B3 /* ReleaseAppStoreLLC */,
+ D0879DD522F8804C00C4D6B3 /* ReleaseHockeyappInternal */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = ReleaseAppStoreLLC;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = D0879DBE22F8801400C4D6B3 /* Project object */;
+}
diff --git a/submodules/TelegramCore/TelegramCore/ImageRepresentationWithReference.swift b/submodules/TelegramCore/TelegramCore/ImageRepresentationWithReference.swift
new file mode 100644
index 0000000000..f69c62bfbf
--- /dev/null
+++ b/submodules/TelegramCore/TelegramCore/ImageRepresentationWithReference.swift
@@ -0,0 +1,11 @@
+import Foundation
+
+public struct ImageRepresentationWithReference: Equatable {
+ public let representation: TelegramMediaImageRepresentation
+ public let reference: MediaResourceReference
+
+ public init(representation: TelegramMediaImageRepresentation, reference: MediaResourceReference) {
+ self.representation = representation
+ self.reference = reference
+ }
+}
diff --git a/submodules/TelegramCore/TelegramCore/PeerUtils.swift b/submodules/TelegramCore/TelegramCore/PeerUtils.swift
index 2a2e6ed8e7..136def1d25 100644
--- a/submodules/TelegramCore/TelegramCore/PeerUtils.swift
+++ b/submodules/TelegramCore/TelegramCore/PeerUtils.swift
@@ -1,101 +1,101 @@
import Foundation
#if os(macOS)
- import PostboxMac
+import PostboxMac
#else
- import Postbox
+import Postbox
#endif
public extension Peer {
- public var debugDisplayTitle: String {
+ var debugDisplayTitle: String {
switch self {
- case let user as TelegramUser:
- return user.name
- case let group as TelegramGroup:
- return group.title
- case let channel as TelegramChannel:
- return channel.title
- default:
- return ""
+ case let user as TelegramUser:
+ return user.name
+ case let group as TelegramGroup:
+ return group.title
+ case let channel as TelegramChannel:
+ return channel.title
+ default:
+ return ""
}
}
- public var displayTitle: String {
+ var displayTitle: String {
return self.debugDisplayTitle
}
- public var compactDisplayTitle: String {
+ var compactDisplayTitle: String {
switch self {
- case let user as TelegramUser:
- if let firstName = user.firstName {
- return firstName
- } else if let lastName = user.lastName {
- return lastName
- } else {
- return ""
- }
- case let group as TelegramGroup:
- return group.title
- case let channel as TelegramChannel:
- return channel.title
- default:
+ case let user as TelegramUser:
+ if let firstName = user.firstName {
+ return firstName
+ } else if let lastName = user.lastName {
+ return lastName
+ } else {
return ""
+ }
+ case let group as TelegramGroup:
+ return group.title
+ case let channel as TelegramChannel:
+ return channel.title
+ default:
+ return ""
}
}
- public var restrictionText: String? {
+ var restrictionText: String? {
switch self {
- case let user as TelegramUser:
- return user.restrictionInfo?.reason
- case let channel as TelegramChannel:
- return channel.restrictionInfo?.reason
- default:
- return nil
+ case let user as TelegramUser:
+ return user.restrictionInfo?.reason
+ case let channel as TelegramChannel:
+ return channel.restrictionInfo?.reason
+ default:
+ return nil
}
}
- public var addressName: String? {
+ var addressName: String? {
switch self {
- case let user as TelegramUser:
- return user.username
- case _ as TelegramGroup:
- return nil
- case let channel as TelegramChannel:
- return channel.username
- default:
- return nil
+ case let user as TelegramUser:
+ return user.username
+ case _ as TelegramGroup:
+ return nil
+ case let channel as TelegramChannel:
+ return channel.username
+ default:
+ return nil
}
}
- public var displayLetters: [String] {
+ var displayLetters: [String] {
switch self {
- case let user as TelegramUser:
- if let firstName = user.firstName, let lastName = user.lastName, !firstName.isEmpty && !lastName.isEmpty {
- return [firstName.substring(to: firstName.index(after: firstName.startIndex)).uppercased(), lastName.substring(to: lastName.index(after: lastName.startIndex)).uppercased()]
- } else if let firstName = user.firstName, !firstName.isEmpty {
- return [firstName.substring(to: firstName.index(after: firstName.startIndex)).uppercased()]
- } else if let lastName = user.lastName, !lastName.isEmpty {
- return [lastName.substring(to: lastName.index(after: lastName.startIndex)).uppercased()]
- }
-
+ case let user as TelegramUser:
+ if let firstName = user.firstName, let lastName = user.lastName, !firstName.isEmpty && !lastName.isEmpty {
+ return [firstName.substring(to: firstName.index(after: firstName.startIndex)).uppercased(), lastName.substring(to: lastName.index(after: lastName.startIndex)).uppercased()]
+ } else if let firstName = user.firstName, !firstName.isEmpty {
+ return [firstName.substring(to: firstName.index(after: firstName.startIndex)).uppercased()]
+ } else if let lastName = user.lastName, !lastName.isEmpty {
+ return [lastName.substring(to: lastName.index(after: lastName.startIndex)).uppercased()]
+ }
+
+ return []
+ case let group as TelegramGroup:
+ if group.title.startIndex != group.title.endIndex {
+ return [group.title.substring(to: group.title.index(after: group.title.startIndex)).uppercased()]
+ } else {
return []
- case let group as TelegramGroup:
- if group.title.startIndex != group.title.endIndex {
- return [group.title.substring(to: group.title.index(after: group.title.startIndex)).uppercased()]
- } else {
- return []
- }
- case let channel as TelegramChannel:
- if channel.title.startIndex != channel.title.endIndex {
- return [channel.title.substring(to: channel.title.index(after: channel.title.startIndex)).uppercased()]
- } else {
- return []
- }
- default:
+ }
+ case let channel as TelegramChannel:
+ if channel.title.startIndex != channel.title.endIndex {
+ return [channel.title.substring(to: channel.title.index(after: channel.title.startIndex)).uppercased()]
+ } else {
return []
+ }
+ default:
+ return []
}
}
- public var profileImageRepresentations: [TelegramMediaImageRepresentation] {
+ var profileImageRepresentations: [TelegramMediaImageRepresentation] {
if let user = self as? TelegramUser {
return user.photo
} else if let group = self as? TelegramGroup {
@@ -106,53 +106,53 @@ public extension Peer {
return []
}
- public var smallProfileImage: TelegramMediaImageRepresentation? {
+ var smallProfileImage: TelegramMediaImageRepresentation? {
return smallestImageRepresentation(self.profileImageRepresentations)
}
- public var largeProfileImage: TelegramMediaImageRepresentation? {
+ var largeProfileImage: TelegramMediaImageRepresentation? {
return largestImageRepresentation(self.profileImageRepresentations)
}
- public var isDeleted: Bool {
+ var isDeleted: Bool {
switch self {
- case let user as TelegramUser:
- return user.firstName == nil && user.lastName == nil
- default:
- return false
+ case let user as TelegramUser:
+ return user.firstName == nil && user.lastName == nil
+ default:
+ return false
}
}
- public var isScam: Bool {
+ var isScam: Bool {
switch self {
- case let user as TelegramUser:
- return user.flags.contains(.isScam)
- case let channel as TelegramChannel:
- return channel.flags.contains(.isScam)
- default:
- return false
+ case let user as TelegramUser:
+ return user.flags.contains(.isScam)
+ case let channel as TelegramChannel:
+ return channel.flags.contains(.isScam)
+ default:
+ return false
}
}
- public var isVerified: Bool {
+ var isVerified: Bool {
switch self {
- case let user as TelegramUser:
- return user.flags.contains(.isVerified)
- case let channel as TelegramChannel:
- return channel.flags.contains(.isVerified)
- default:
- return false
+ case let user as TelegramUser:
+ return user.flags.contains(.isVerified)
+ case let channel as TelegramChannel:
+ return channel.flags.contains(.isVerified)
+ default:
+ return false
}
}
}
public extension PeerId {
- public var isGroupOrChannel: Bool {
+ var isGroupOrChannel: Bool {
switch self.namespace {
- case Namespaces.Peer.CloudGroup, Namespaces.Peer.CloudChannel:
- return true
- default:
- return false
+ case Namespaces.Peer.CloudGroup, Namespaces.Peer.CloudChannel:
+ return true
+ default:
+ return false
}
}
}
@@ -210,7 +210,7 @@ public func peerViewMainPeer(_ view: PeerView) -> Peer? {
}
public extension RenderedPeer {
- public convenience init(message: Message) {
+ convenience init(message: Message) {
var peers = SimpleDictionary()
let peerId = message.id.peerId
if let peer = message.peers[peerId] {
@@ -224,7 +224,7 @@ public extension RenderedPeer {
self.init(peerId: message.id.peerId, peers: peers)
}
- public var chatMainPeer: Peer? {
+ var chatMainPeer: Peer? {
if let peer = self.peers[self.peerId] {
if let peer = peer as? TelegramSecretChat {
return self.peers[peer.regularPeerId]
@@ -237,3 +237,9 @@ public extension RenderedPeer {
}
}
+public func isServicePeer(_ peer: Peer) -> Bool {
+ if let peer = peer as? TelegramUser {
+ return (peer.id.namespace == Namespaces.Peer.CloudUser && (peer.id.id == 777000 || peer.id.id == 333000))
+ }
+ return false
+}
diff --git a/submodules/TelegramCore/TelegramCore_Xcode.xcodeproj/project.pbxproj b/submodules/TelegramCore/TelegramCore_Xcode.xcodeproj/project.pbxproj
index e91615e7ef..0f29a052f2 100644
--- a/submodules/TelegramCore/TelegramCore_Xcode.xcodeproj/project.pbxproj
+++ b/submodules/TelegramCore/TelegramCore_Xcode.xcodeproj/project.pbxproj
@@ -467,6 +467,8 @@
D081E10B217F5ADE003CD921 /* LocalizationPreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = D081E109217F5ADE003CD921 /* LocalizationPreview.swift */; };
D08774FC1E3E39F600A97350 /* ManagedGlobalNotificationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08774FB1E3E39F600A97350 /* ManagedGlobalNotificationSettings.swift */; };
D08774FE1E3E3A3500A97350 /* GlobalNotificationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08774FD1E3E3A3500A97350 /* GlobalNotificationSettings.swift */; };
+ D0879BC822F85A3E00C4D6B3 /* ImageRepresentationWithReference.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879BC722F85A3E00C4D6B3 /* ImageRepresentationWithReference.swift */; };
+ D0879BC922F85A3E00C4D6B3 /* ImageRepresentationWithReference.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879BC722F85A3E00C4D6B3 /* ImageRepresentationWithReference.swift */; };
D08984F22114B97400918162 /* ClearCloudDrafts.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08984F12114B97400918162 /* ClearCloudDrafts.swift */; };
D08984F32114B97400918162 /* ClearCloudDrafts.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08984F12114B97400918162 /* ClearCloudDrafts.swift */; };
D08984F521187ECA00918162 /* NetworkType.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08984F421187ECA00918162 /* NetworkType.swift */; };
@@ -1070,6 +1072,7 @@
D081E109217F5ADE003CD921 /* LocalizationPreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalizationPreview.swift; sourceTree = ""; };
D08774FB1E3E39F600A97350 /* ManagedGlobalNotificationSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedGlobalNotificationSettings.swift; sourceTree = ""; };
D08774FD1E3E3A3500A97350 /* GlobalNotificationSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GlobalNotificationSettings.swift; sourceTree = ""; };
+ D0879BC722F85A3E00C4D6B3 /* ImageRepresentationWithReference.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageRepresentationWithReference.swift; sourceTree = ""; };
D08984F12114B97400918162 /* ClearCloudDrafts.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClearCloudDrafts.swift; sourceTree = ""; };
D08984F421187ECA00918162 /* NetworkType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkType.swift; sourceTree = ""; };
D08984F72118816900918162 /* Reachability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Reachability.h; sourceTree = ""; };
@@ -1594,6 +1597,7 @@
children = (
D03B0D121D62257600955575 /* Resources */,
D0DFD5DE1FCDBCFD0039B3B1 /* CachedSentMediaReferences.swift */,
+ D0879BC722F85A3E00C4D6B3 /* ImageRepresentationWithReference.swift */,
);
name = Media;
sourceTree = "";
@@ -2572,6 +2576,7 @@
D0528E601E65B94E00E2FEF5 /* SingleMessageView.swift in Sources */,
D08CAA841ED8164B0000FDA8 /* Localization.swift in Sources */,
D0528E5A1E658B3600E2FEF5 /* ManagedLocalInputActivities.swift in Sources */,
+ D0879BC822F85A3E00C4D6B3 /* ImageRepresentationWithReference.swift in Sources */,
D0FA8BA41E1FA341001E855B /* SecretChatKeychain.swift in Sources */,
D01749601E118FC30057C89A /* AccountIntermediateState.swift in Sources */,
D0E412EE206AF65500BEE4A2 /* GrantSecureIdAccess.swift in Sources */,
@@ -2744,6 +2749,7 @@
D0F3CC7B1DDE2859008148FA /* RequestEditMessage.swift in Sources */,
D049EAEC1E44B71B00A2CD3A /* RecentlySearchedPeerIds.swift in Sources */,
D0F19F6720E6621000EEC860 /* MultiplexedRequestManager.swift in Sources */,
+ D0879BC922F85A3E00C4D6B3 /* ImageRepresentationWithReference.swift in Sources */,
D02D60A8206BA5F900FEFE1E /* SecureIdValue.swift in Sources */,
D0FA8B991E1E955C001E855B /* SecretChatOutgoingOperation.swift in Sources */,
D001F3F01E128A1C007A8C60 /* AccountStateManagementUtils.swift in Sources */,
diff --git a/submodules/TelegramUI/TelegramUI/AnimatedStickerNode.swift b/submodules/TelegramUI/TelegramUI/AnimatedStickerNode.swift
index 9c47e568ee..be875994d8 100644
--- a/submodules/TelegramUI/TelegramUI/AnimatedStickerNode.swift
+++ b/submodules/TelegramUI/TelegramUI/AnimatedStickerNode.swift
@@ -7,6 +7,8 @@ import Display
import AsyncDisplayKit
import RLottie
import GZip
+import Tuples
+import StickerResources
private final class AnimationFrameCache {
private var cache: [Int: NSPurgeableData] = [:]
diff --git a/submodules/TelegramUI/TelegramUI/AvatarGalleryController.swift b/submodules/TelegramUI/TelegramUI/AvatarGalleryController.swift
index d12ead6ad1..ad7db693d3 100644
--- a/submodules/TelegramUI/TelegramUI/AvatarGalleryController.swift
+++ b/submodules/TelegramUI/TelegramUI/AvatarGalleryController.swift
@@ -9,16 +9,6 @@ import TelegramCore
import TelegramPresentationData
import AccountContext
-public struct ImageRepresentationWithReference: Equatable {
- public let representation: TelegramMediaImageRepresentation
- public let reference: MediaResourceReference
-
- public init(representation: TelegramMediaImageRepresentation, reference: MediaResourceReference) {
- self.representation = representation
- self.reference = reference
- }
-}
-
enum AvatarGalleryEntry: Equatable {
case topImage([ImageRepresentationWithReference], GalleryItemIndexData?)
case image(TelegramMediaImageReference?, [ImageRepresentationWithReference], Peer, Int32, GalleryItemIndexData?, MessageId?)
diff --git a/submodules/TelegramUI/TelegramUI/CallControllerNode.swift b/submodules/TelegramUI/TelegramUI/CallControllerNode.swift
index a8026659dc..51e0dd25d3 100644
--- a/submodules/TelegramUI/TelegramUI/CallControllerNode.swift
+++ b/submodules/TelegramUI/TelegramUI/CallControllerNode.swift
@@ -11,6 +11,7 @@ import TelegramPresentationData
import TelegramUIPreferences
import TelegramAudio
import AccountContext
+import LocalizedPeerData
final class CallControllerNode: ASDisplayNode {
private let sharedContext: SharedAccountContext
diff --git a/submodules/TelegramUI/TelegramUI/ChannelInfoController.swift b/submodules/TelegramUI/TelegramUI/ChannelInfoController.swift
index f0f6f0b0cb..e1aa3d8747 100644
--- a/submodules/TelegramUI/TelegramUI/ChannelInfoController.swift
+++ b/submodules/TelegramUI/TelegramUI/ChannelInfoController.swift
@@ -12,6 +12,7 @@ import AccountContext
import TextFormat
import OverlayStatusController
import TelegramStringFormatting
+import ShareController
private final class ChannelInfoControllerArguments {
let account: Account
diff --git a/submodules/TelegramUI/TelegramUI/ChannelVisibilityController.swift b/submodules/TelegramUI/TelegramUI/ChannelVisibilityController.swift
index 241a727a4b..fb9e121bfd 100644
--- a/submodules/TelegramUI/TelegramUI/ChannelVisibilityController.swift
+++ b/submodules/TelegramUI/TelegramUI/ChannelVisibilityController.swift
@@ -9,6 +9,7 @@ import TelegramUIPreferences
import ItemListUI
import OverlayStatusController
import AccountContext
+import ShareController
private final class ChannelVisibilityControllerArguments {
let account: Account
diff --git a/submodules/TelegramUI/TelegramUI/ChatAnimationGalleryItem.swift b/submodules/TelegramUI/TelegramUI/ChatAnimationGalleryItem.swift
index 68750e6171..be9f81d49b 100644
--- a/submodules/TelegramUI/TelegramUI/ChatAnimationGalleryItem.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatAnimationGalleryItem.swift
@@ -9,6 +9,8 @@ import Lottie
import TelegramPresentationData
import AnimationUI
import AccountContext
+import RadialStatusNode
+import StickerResources
class ChatAnimationGalleryItem: GalleryItem {
let context: AccountContext
diff --git a/submodules/TelegramUI/TelegramUI/ChatBotInfoItem.swift b/submodules/TelegramUI/TelegramUI/ChatBotInfoItem.swift
index d99aa273e8..f307665b24 100644
--- a/submodules/TelegramUI/TelegramUI/ChatBotInfoItem.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatBotInfoItem.swift
@@ -7,6 +7,7 @@ import Postbox
import TelegramCore
import TelegramPresentationData
import TextFormat
+import UrlEscaping
private let messageFont = Font.regular(17.0)
private let messageBoldFont = Font.semibold(17.0)
diff --git a/submodules/TelegramUI/TelegramUI/ChatController.swift b/submodules/TelegramUI/TelegramUI/ChatController.swift
index 58e2baae9a..9a3585c9e1 100644
--- a/submodules/TelegramUI/TelegramUI/ChatController.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatController.swift
@@ -18,6 +18,8 @@ import AccountContext
import TelegramStringFormatting
import OverlayStatusController
import DeviceLocationManager
+import ShareController
+import UrlEscaping
public enum ChatControllerPeekActions {
case standard
diff --git a/submodules/TelegramUI/TelegramUI/ChatDocumentGalleryItem.swift b/submodules/TelegramUI/TelegramUI/ChatDocumentGalleryItem.swift
index 71cd735363..8ba9fbb487 100644
--- a/submodules/TelegramUI/TelegramUI/ChatDocumentGalleryItem.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatDocumentGalleryItem.swift
@@ -8,6 +8,7 @@ import WebKit
import TelegramCore
import TelegramPresentationData
import AccountContext
+import RadialStatusNode
class ChatDocumentGalleryItem: GalleryItem {
let context: AccountContext
diff --git a/submodules/TelegramUI/TelegramUI/ChatExternalFileGalleryItem.swift b/submodules/TelegramUI/TelegramUI/ChatExternalFileGalleryItem.swift
index 49fa601902..c36903b223 100644
--- a/submodules/TelegramUI/TelegramUI/ChatExternalFileGalleryItem.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatExternalFileGalleryItem.swift
@@ -8,6 +8,8 @@ import WebKit
import TelegramCore
import TelegramPresentationData
import AccountContext
+import RadialStatusNode
+import ShareController
class ChatExternalFileGalleryItem: GalleryItem {
let context: AccountContext
diff --git a/submodules/TelegramUI/TelegramUI/ChatImageGalleryItem.swift b/submodules/TelegramUI/TelegramUI/ChatImageGalleryItem.swift
index 60c9719169..9f531c9092 100644
--- a/submodules/TelegramUI/TelegramUI/ChatImageGalleryItem.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatImageGalleryItem.swift
@@ -7,6 +7,7 @@ import Postbox
import TelegramCore
import TelegramPresentationData
import AccountContext
+import RadialStatusNode
enum ChatMediaGalleryThumbnail: Equatable {
case image(ImageMediaReference)
diff --git a/submodules/TelegramUI/TelegramUI/ChatItemGalleryFooterContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatItemGalleryFooterContentNode.swift
index 7737f70ea5..aee828460d 100644
--- a/submodules/TelegramUI/TelegramUI/ChatItemGalleryFooterContentNode.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatItemGalleryFooterContentNode.swift
@@ -10,6 +10,8 @@ import TelegramPresentationData
import TextFormat
import TelegramStringFormatting
import AccountContext
+import RadialStatusNode
+import ShareController
private let deleteImage = generateTintedImage(image: UIImage(bundleImageName: "Chat/Input/Accessory Panels/MessageSelectionThrash"), color: .white)
private let actionImage = generateTintedImage(image: UIImage(bundleImageName: "Chat/Input/Accessory Panels/MessageSelectionAction"), color: .white)
diff --git a/submodules/TelegramUI/TelegramUI/ChatListArchiveInfoItem.swift b/submodules/TelegramUI/TelegramUI/ChatListArchiveInfoItem.swift
index 69508d3d36..b6c9defbd5 100644
--- a/submodules/TelegramUI/TelegramUI/ChatListArchiveInfoItem.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatListArchiveInfoItem.swift
@@ -5,6 +5,7 @@ import Postbox
import Display
import SwiftSignalKit
import TelegramPresentationData
+import ListSectionHeaderNode
class ChatListArchiveInfoItem: ListViewItem {
let theme: PresentationTheme
diff --git a/submodules/TelegramUI/TelegramUI/ChatListController.swift b/submodules/TelegramUI/TelegramUI/ChatListController.swift
index 3a14b3ee49..e9ae5fcd73 100644
--- a/submodules/TelegramUI/TelegramUI/ChatListController.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatListController.swift
@@ -795,8 +795,6 @@ public class ChatListController: TelegramBaseController, UIViewControllerPreview
if let strongSelf = self {
let _ = removeRecentPeer(account: strongSelf.context.account, peerId: peer.id).start()
- let searchContainer = strongSelf.chatListDisplayNode.searchDisplayController?.contentNode as? ChatListSearchContainerNode
- searchContainer?.removePeerFromTopPeers(peer.id)
}
})
]),
diff --git a/submodules/TelegramUI/TelegramUI/ChatListItem.swift b/submodules/TelegramUI/TelegramUI/ChatListItem.swift
index 092a43552c..45c48ad9f1 100644
--- a/submodules/TelegramUI/TelegramUI/ChatListItem.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatListItem.swift
@@ -10,6 +10,9 @@ import ItemListUI
import AvatarNode
import TelegramStringFormatting
import AccountContext
+import PeerOnlineMarkerNode
+import LocalizedPeerData
+import PeerPresenceStatusManager
enum ChatListItemContent {
case peer(message: Message?, peer: RenderedPeer, combinedReadState: CombinedPeerReadState?, notificationSettings: PeerNotificationSettings?, presence: PeerPresence?, summaryInfo: ChatListMessageTagSummaryInfo, embeddedState: PeerChatListEmbeddedInterfaceState?, inputActivities: [(Peer, PeerInputActivity)]?, isAd: Bool, ignoreUnreadBadge: Bool)
@@ -297,7 +300,7 @@ class ChatListItemNode: ItemListRevealOptionsItemNode {
let statusNode: ChatListStatusNode
let badgeNode: ChatListBadgeNode
let mentionBadgeNode: ChatListBadgeNode
- let onlineNode: ChatListOnlineNode
+ let onlineNode: PeerOnlineMarkerNode
let pinnedIconNode: ASImageNode
var secretIconNode: ASImageNode?
var credibilityIconNode: ASImageNode?
@@ -428,7 +431,7 @@ class ChatListItemNode: ItemListRevealOptionsItemNode {
self.statusNode = ChatListStatusNode()
self.badgeNode = ChatListBadgeNode()
self.mentionBadgeNode = ChatListBadgeNode()
- self.onlineNode = ChatListOnlineNode()
+ self.onlineNode = PeerOnlineMarkerNode()
self.pinnedIconNode = ASImageNode()
self.pinnedIconNode.isLayerBacked = true
diff --git a/submodules/TelegramUI/TelegramUI/ChatListRecentPeersListItem.swift b/submodules/TelegramUI/TelegramUI/ChatListRecentPeersListItem.swift
index ab54168d86..3a6723d9fe 100644
--- a/submodules/TelegramUI/TelegramUI/ChatListRecentPeersListItem.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatListRecentPeersListItem.swift
@@ -6,6 +6,7 @@ import Display
import SwiftSignalKit
import TelegramCore
import TelegramPresentationData
+import ChatListSearchRecentPeersNode
class ChatListRecentPeersListItem: ListViewItem {
let theme: PresentationTheme
@@ -161,8 +162,4 @@ class ChatListRecentPeersListItemNode: ListViewItemNode {
}
return nil
}
-
- func removePeer(_ peerId: PeerId) {
- self.peersNode?.removePeer(peerId)
- }
}
diff --git a/submodules/TelegramUI/TelegramUI/ChatListSearchContainerNode.swift b/submodules/TelegramUI/TelegramUI/ChatListSearchContainerNode.swift
index 0f484cad55..87e2f8a9a3 100644
--- a/submodules/TelegramUI/TelegramUI/ChatListSearchContainerNode.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatListSearchContainerNode.swift
@@ -9,6 +9,7 @@ import TelegramPresentationData
import TelegramUIPreferences
import MergeLists
import AccountContext
+import UnreadSearchBadge
private enum ChatListRecentEntryStableId: Hashable {
case topPeers
@@ -1180,14 +1181,6 @@ final class ChatListSearchContainerNode: SearchDisplayControllerContentNode {
|> deliverOnMainQueue).start()
}
- func removePeerFromTopPeers(_ peerId: PeerId) {
- self.recentListNode.forEachItemNode { itemNode in
- if let itemNode = itemNode as? ChatListRecentPeersListItemNode {
- itemNode.removePeer(peerId)
- }
- }
- }
-
override func scrollToTop() {
if !self.listNode.isHidden {
self.listNode.transaction(deleteIndices: [], insertIndicesAndItems: [], updateIndicesAndItems: [], options: [.Synchronous, .LowLatency], scrollToItem: ListViewScrollToItem(index: 0, position: .top(0.0), animated: true, curve: .Default(duration: nil), directionHint: .Up), updateSizeAndInsets: nil, stationaryItemRange: nil, updateOpaqueState: nil, completion: { _ in })
diff --git a/submodules/TelegramUI/TelegramUI/ChatListSearchItemHeader.swift b/submodules/TelegramUI/TelegramUI/ChatListSearchItemHeader.swift
index a581b2a08f..ce948fa196 100644
--- a/submodules/TelegramUI/TelegramUI/ChatListSearchItemHeader.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatListSearchItemHeader.swift
@@ -2,6 +2,7 @@ import Foundation
import UIKit
import Display
import TelegramPresentationData
+import ListSectionHeaderNode
enum ChatListSearchItemHeaderType: Int32 {
case localPeers
diff --git a/submodules/TelegramUI/TelegramUI/ChatListStatusNode.swift b/submodules/TelegramUI/TelegramUI/ChatListStatusNode.swift
index 841e985785..9611158562 100644
--- a/submodules/TelegramUI/TelegramUI/ChatListStatusNode.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatListStatusNode.swift
@@ -3,6 +3,7 @@ import UIKit
import AsyncDisplayKit
import Display
import LegacyComponents
+import RadialStatusNode
enum ChatListStatusNodeState: Equatable {
case none
diff --git a/submodules/TelegramUI/TelegramUI/ChatMediaInputStickerGridItem.swift b/submodules/TelegramUI/TelegramUI/ChatMediaInputStickerGridItem.swift
index 32fb9fdb8c..f11eea712f 100644
--- a/submodules/TelegramUI/TelegramUI/ChatMediaInputStickerGridItem.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatMediaInputStickerGridItem.swift
@@ -6,6 +6,7 @@ import SwiftSignalKit
import AsyncDisplayKit
import Postbox
import TelegramPresentationData
+import StickerResources
enum ChatMediaInputStickerGridSectionAccessory {
case none
diff --git a/submodules/TelegramUI/TelegramUI/ChatMediaInputStickerPackItem.swift b/submodules/TelegramUI/TelegramUI/ChatMediaInputStickerPackItem.swift
index f3472d94f9..e95b29b651 100644
--- a/submodules/TelegramUI/TelegramUI/ChatMediaInputStickerPackItem.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatMediaInputStickerPackItem.swift
@@ -6,6 +6,7 @@ import TelegramCore
import SwiftSignalKit
import Postbox
import TelegramPresentationData
+import StickerResources
final class ChatMediaInputStickerPackItem: ListViewItem {
let account: Account
diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageActionItemNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageActionItemNode.swift
index 27168747ad..85f8f9814d 100644
--- a/submodules/TelegramUI/TelegramUI/ChatMessageActionItemNode.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatMessageActionItemNode.swift
@@ -8,6 +8,8 @@ import TelegramCore
import TelegramPresentationData
import TelegramUIPreferences
import TextFormat
+import LocalizedPeerData
+import UrlEscaping
private let titleFont = Font.regular(13.0)
private let titleBoldFont = Font.bold(13.0)
diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageAnimatedStickerItemNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageAnimatedStickerItemNode.swift
index 92f05cc5a7..2fa6428596 100644
--- a/submodules/TelegramUI/TelegramUI/ChatMessageAnimatedStickerItemNode.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatMessageAnimatedStickerItemNode.swift
@@ -10,6 +10,7 @@ import TelegramPresentationData
import Compression
import TextFormat
import AccountContext
+import StickerResources
private let nameFont = Font.medium(14.0)
private let inlineBotPrefixFont = Font.regular(14.0)
diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageAttachedContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageAttachedContentNode.swift
index 296b850d18..928a1c8605 100644
--- a/submodules/TelegramUI/TelegramUI/ChatMessageAttachedContentNode.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatMessageAttachedContentNode.swift
@@ -10,6 +10,7 @@ import TelegramPresentationData
import TelegramUIPreferences
import TextFormat
import AccountContext
+import UrlEscaping
private let titleFont = Font.semibold(15.0)
private let textFont = Font.regular(15.0)
diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift
index c347b94226..aa60aa715b 100644
--- a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift
@@ -9,6 +9,7 @@ import TelegramUIPreferences
import TextFormat
import AccountContext
import TemporaryCachedPeerDataManager
+import LocalizedPeerData
private func contentNodeMessagesAndClassesForItem(_ item: ChatMessageItem) -> [(Message, AnyClass)] {
var result: [(Message, AnyClass)] = []
diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageForwardInfoNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageForwardInfoNode.swift
index 5477304e76..23bfb7462d 100644
--- a/submodules/TelegramUI/TelegramUI/ChatMessageForwardInfoNode.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatMessageForwardInfoNode.swift
@@ -5,6 +5,7 @@ import Display
import Postbox
import TelegramCore
import TelegramPresentationData
+import LocalizedPeerData
private let prefixFont = Font.regular(13.0)
private let peerFont = Font.medium(13.0)
diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageInstantVideoItemNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageInstantVideoItemNode.swift
index 58830a2d43..2736a1d81d 100644
--- a/submodules/TelegramUI/TelegramUI/ChatMessageInstantVideoItemNode.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatMessageInstantVideoItemNode.swift
@@ -9,6 +9,7 @@ import TelegramPresentationData
import TelegramUIPreferences
import TextFormat
import AccountContext
+import LocalizedPeerData
private let nameFont = Font.medium(14.0)
diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveFileNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveFileNode.swift
index d07e1eb221..b049b6377a 100644
--- a/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveFileNode.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveFileNode.swift
@@ -8,6 +8,7 @@ import TelegramCore
import UniversalMediaPlayer
import TelegramPresentationData
import AccountContext
+import RadialStatusNode
private struct FetchControls {
let fetch: () -> Void
diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveInstantVideoNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveInstantVideoNode.swift
index 0f7ca428ff..221ade0c91 100644
--- a/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveInstantVideoNode.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveInstantVideoNode.swift
@@ -8,6 +8,7 @@ import TelegramCore
import UniversalMediaPlayer
import TelegramPresentationData
import AccountContext
+import RadialStatusNode
struct ChatMessageInstantVideoItemLayoutResult {
let contentSize: CGSize
diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveMediaBadge.swift b/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveMediaBadge.swift
index 97dd146bdf..70f5a39887 100644
--- a/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveMediaBadge.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveMediaBadge.swift
@@ -4,6 +4,7 @@ import Display
import AsyncDisplayKit
import TelegramPresentationData
import TextFormat
+import RadialStatusNode
enum ChatMessageInteractiveMediaDownloadState: Equatable {
case remote
diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveMediaNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveMediaNode.swift
index 2dababfa93..1b8e33e938 100644
--- a/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveMediaNode.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveMediaNode.swift
@@ -10,6 +10,8 @@ import TelegramUIPreferences
import UniversalMediaPlayer
import TextFormat
import AccountContext
+import RadialStatusNode
+import StickerResources
private struct FetchControls {
let fetch: (Bool) -> Void
diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageItemView.swift b/submodules/TelegramUI/TelegramUI/ChatMessageItemView.swift
index 76f4c4e8dc..35f5ce0414 100644
--- a/submodules/TelegramUI/TelegramUI/ChatMessageItemView.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatMessageItemView.swift
@@ -5,6 +5,7 @@ import Display
import Postbox
import TelegramCore
import AccountContext
+import LocalizedPeerData
struct ChatMessageItemWidthFill {
let compactInset: CGFloat
diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageNotificationItem.swift b/submodules/TelegramUI/TelegramUI/ChatMessageNotificationItem.swift
index 4e5d45eca8..56190ac9d4 100644
--- a/submodules/TelegramUI/TelegramUI/ChatMessageNotificationItem.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatMessageNotificationItem.swift
@@ -9,6 +9,8 @@ import TelegramPresentationData
import TelegramUIPreferences
import AvatarNode
import AccountContext
+import LocalizedPeerData
+import StickerResources
public final class ChatMessageNotificationItem: NotificationItem {
let context: AccountContext
diff --git a/submodules/TelegramUI/TelegramUI/ChatMessagePhoneNumberRequestContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessagePhoneNumberRequestContentNode.swift
index 3465a9b9c2..225ac8a0fa 100644
--- a/submodules/TelegramUI/TelegramUI/ChatMessagePhoneNumberRequestContentNode.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatMessagePhoneNumberRequestContentNode.swift
@@ -6,6 +6,7 @@ import SwiftSignalKit
import Postbox
import TelegramCore
import TelegramPresentationData
+import UrlEscaping
private let avatarFont = UIFont(name: ".SFCompactRounded-Semibold", size: 16.0)!
diff --git a/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift
index fbe7b5b754..97b35afb97 100644
--- a/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift
@@ -5,6 +5,7 @@ import Display
import TelegramCore
import Postbox
import TextFormat
+import UrlEscaping
struct PercentCounterItem: Comparable {
var index: Int = 0
diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageReplyInfoNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageReplyInfoNode.swift
index 7cd6983b75..baedb480e8 100644
--- a/submodules/TelegramUI/TelegramUI/ChatMessageReplyInfoNode.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatMessageReplyInfoNode.swift
@@ -7,6 +7,7 @@ import TelegramCore
import SwiftSignalKit
import TelegramPresentationData
import AccountContext
+import LocalizedPeerData
private let titleFont = Font.medium(14.0)
private let textFont = Font.regular(14.0)
diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageStickerItemNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageStickerItemNode.swift
index f7d51055a3..4ceb94f8d9 100644
--- a/submodules/TelegramUI/TelegramUI/ChatMessageStickerItemNode.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatMessageStickerItemNode.swift
@@ -8,6 +8,7 @@ import TelegramCore
import TelegramPresentationData
import TextFormat
import AccountContext
+import StickerResources
private let nameFont = Font.medium(14.0)
private let inlineBotPrefixFont = Font.regular(14.0)
diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageTextBubbleContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageTextBubbleContentNode.swift
index 92d7a8f88b..cd01ce2b4c 100644
--- a/submodules/TelegramUI/TelegramUI/ChatMessageTextBubbleContentNode.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatMessageTextBubbleContentNode.swift
@@ -5,6 +5,7 @@ import Display
import TelegramCore
import Postbox
import TextFormat
+import UrlEscaping
private final class CachedChatMessageText {
let text: String
diff --git a/submodules/TelegramUI/TelegramUI/ChatPinnedMessageTitlePanelNode.swift b/submodules/TelegramUI/TelegramUI/ChatPinnedMessageTitlePanelNode.swift
index d45c99d556..14cee5249f 100644
--- a/submodules/TelegramUI/TelegramUI/ChatPinnedMessageTitlePanelNode.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatPinnedMessageTitlePanelNode.swift
@@ -8,6 +8,7 @@ import SwiftSignalKit
import TelegramPresentationData
import TelegramUIPreferences
import AccountContext
+import StickerResources
final class ChatPinnedMessageTitlePanelNode: ChatTitleAccessoryPanelNode {
private let context: AccountContext
diff --git a/submodules/TelegramUI/TelegramUI/ChatTextLinkEditController.swift b/submodules/TelegramUI/TelegramUI/ChatTextLinkEditController.swift
index e33d462d61..dd29ba6193 100644
--- a/submodules/TelegramUI/TelegramUI/ChatTextLinkEditController.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatTextLinkEditController.swift
@@ -7,6 +7,7 @@ import Postbox
import TelegramCore
import TelegramPresentationData
import AccountContext
+import UrlEscaping
private final class ChatTextLinkEditInputFieldNode: ASDisplayNode, ASEditableTextNodeDelegate {
private var theme: PresentationTheme
diff --git a/submodules/TelegramUI/TelegramUI/ChatTitleView.swift b/submodules/TelegramUI/TelegramUI/ChatTitleView.swift
index 839f2fc34a..73046b280e 100644
--- a/submodules/TelegramUI/TelegramUI/ChatTitleView.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatTitleView.swift
@@ -10,6 +10,7 @@ import TelegramPresentationData
import TelegramUIPreferences
import ActivityIndicator
import TelegramStringFormatting
+import PeerPresenceStatusManager
enum ChatTitleContent {
case peer(peerView: PeerView, onlineMemberCount: Int32?)
diff --git a/submodules/TelegramUI/TelegramUI/ContactListNameIndexHeader.swift b/submodules/TelegramUI/TelegramUI/ContactListNameIndexHeader.swift
index e641f2788b..69da8ed11c 100644
--- a/submodules/TelegramUI/TelegramUI/ContactListNameIndexHeader.swift
+++ b/submodules/TelegramUI/TelegramUI/ContactListNameIndexHeader.swift
@@ -2,6 +2,7 @@ import Foundation
import Display
import UIKit
import TelegramPresentationData
+import ListSectionHeaderNode
final class ContactListNameIndexHeader: Equatable, ListViewItemHeader {
let id: Int64
diff --git a/submodules/TelegramUI/TelegramUI/ContactsPeerItem.swift b/submodules/TelegramUI/TelegramUI/ContactsPeerItem.swift
index f59d089d54..57a1ac712e 100644
--- a/submodules/TelegramUI/TelegramUI/ContactsPeerItem.swift
+++ b/submodules/TelegramUI/TelegramUI/ContactsPeerItem.swift
@@ -12,6 +12,7 @@ import CheckNode
import AvatarNode
import TelegramStringFormatting
import AccountContext
+import PeerPresenceStatusManager
private let titleFont = Font.regular(17.0)
private let titleBoldFont = Font.medium(17.0)
diff --git a/submodules/TelegramUI/TelegramUI/ContactsSectionHeaderAccessoryItem.swift b/submodules/TelegramUI/TelegramUI/ContactsSectionHeaderAccessoryItem.swift
index 7726fbef2f..d6f5b3f6c2 100644
--- a/submodules/TelegramUI/TelegramUI/ContactsSectionHeaderAccessoryItem.swift
+++ b/submodules/TelegramUI/TelegramUI/ContactsSectionHeaderAccessoryItem.swift
@@ -3,6 +3,7 @@ import UIKit
import AsyncDisplayKit
import Display
import TelegramPresentationData
+import ListSectionHeaderNode
enum ContactsSectionHeader: Equatable {
case letter(String)
diff --git a/submodules/TelegramUI/TelegramUI/EditAccessoryPanelNode.swift b/submodules/TelegramUI/TelegramUI/EditAccessoryPanelNode.swift
index b7d7fc965b..cdadc61ef8 100644
--- a/submodules/TelegramUI/TelegramUI/EditAccessoryPanelNode.swift
+++ b/submodules/TelegramUI/TelegramUI/EditAccessoryPanelNode.swift
@@ -9,6 +9,7 @@ import TelegramPresentationData
import TelegramUIPreferences
import ActivityIndicator
import AccountContext
+import RadialStatusNode
final class EditAccessoryPanelNode: AccessoryPanelNode {
let messageId: MessageId
diff --git a/submodules/TelegramUI/TelegramUI/GameControllerNode.swift b/submodules/TelegramUI/TelegramUI/GameControllerNode.swift
index 82825076a6..a5c1fc7559 100644
--- a/submodules/TelegramUI/TelegramUI/GameControllerNode.swift
+++ b/submodules/TelegramUI/TelegramUI/GameControllerNode.swift
@@ -8,6 +8,7 @@ import Postbox
import SwiftSignalKit
import TelegramPresentationData
import AccountContext
+import ShareController
private class WeakGameScriptMessageHandler: NSObject, WKScriptMessageHandler {
private let f: (WKScriptMessage) -> ()
diff --git a/submodules/TelegramUI/TelegramUI/GridMessageItem.swift b/submodules/TelegramUI/TelegramUI/GridMessageItem.swift
index 292803a2a3..e1728c7d42 100644
--- a/submodules/TelegramUI/TelegramUI/GridMessageItem.swift
+++ b/submodules/TelegramUI/TelegramUI/GridMessageItem.swift
@@ -8,6 +8,7 @@ import SwiftSignalKit
import TelegramPresentationData
import TelegramStringFormatting
import AccountContext
+import RadialStatusNode
private func mediaForMessage(_ message: Message) -> Media? {
for media in message.media {
diff --git a/submodules/TelegramUI/TelegramUI/GroupInfoController.swift b/submodules/TelegramUI/TelegramUI/GroupInfoController.swift
index b8c53ae207..20b969b0c7 100644
--- a/submodules/TelegramUI/TelegramUI/GroupInfoController.swift
+++ b/submodules/TelegramUI/TelegramUI/GroupInfoController.swift
@@ -14,6 +14,7 @@ import TextFormat
import AccountContext
import TelegramStringFormatting
import TemporaryCachedPeerDataManager
+import ShareController
private final class GroupInfoArguments {
let context: AccountContext
diff --git a/submodules/TelegramUI/TelegramUI/GroupStickerPackCurrentItem.swift b/submodules/TelegramUI/TelegramUI/GroupStickerPackCurrentItem.swift
index a22d770210..afd9cfd188 100644
--- a/submodules/TelegramUI/TelegramUI/GroupStickerPackCurrentItem.swift
+++ b/submodules/TelegramUI/TelegramUI/GroupStickerPackCurrentItem.swift
@@ -8,6 +8,7 @@ import TelegramCore
import TelegramPresentationData
import ItemListUI
import ActivityIndicator
+import StickerResources
enum GroupStickerPackCurrentItemContent: Equatable {
case notFound
diff --git a/submodules/TelegramUI/TelegramUI/HorizontalListContextResultsChatInputPanelItem.swift b/submodules/TelegramUI/TelegramUI/HorizontalListContextResultsChatInputPanelItem.swift
index a189395b04..01ca861661 100644
--- a/submodules/TelegramUI/TelegramUI/HorizontalListContextResultsChatInputPanelItem.swift
+++ b/submodules/TelegramUI/TelegramUI/HorizontalListContextResultsChatInputPanelItem.swift
@@ -6,6 +6,8 @@ import TelegramCore
import SwiftSignalKit
import Postbox
import AVFoundation
+import RadialStatusNode
+import StickerResources
final class HorizontalListContextResultsChatInputPanelItem: ListViewItem {
let account: Account
diff --git a/submodules/TelegramUI/TelegramUI/HorizontalStickerGridItem.swift b/submodules/TelegramUI/TelegramUI/HorizontalStickerGridItem.swift
index f081f0bf7b..5364e290e0 100755
--- a/submodules/TelegramUI/TelegramUI/HorizontalStickerGridItem.swift
+++ b/submodules/TelegramUI/TelegramUI/HorizontalStickerGridItem.swift
@@ -5,6 +5,7 @@ import TelegramCore
import SwiftSignalKit
import AsyncDisplayKit
import Postbox
+import StickerResources
final class HorizontalStickerGridItem: GridItem {
let account: Account
diff --git a/submodules/TelegramUI/TelegramUI/InstantPageAudioNode.swift b/submodules/TelegramUI/TelegramUI/InstantPageAudioNode.swift
index a529218f55..06a061f61c 100644
--- a/submodules/TelegramUI/TelegramUI/InstantPageAudioNode.swift
+++ b/submodules/TelegramUI/TelegramUI/InstantPageAudioNode.swift
@@ -8,6 +8,7 @@ import Display
import TelegramPresentationData
import UniversalMediaPlayer
import AccountContext
+import RadialStatusNode
private func generatePlayButton(color: UIColor) -> UIImage? {
return generateImage(CGSize(width: 48.0, height: 48.0), rotatedContext: { size, context in
diff --git a/submodules/TelegramUI/TelegramUI/InstantPageControllerNode.swift b/submodules/TelegramUI/TelegramUI/InstantPageControllerNode.swift
index e187377103..8ab4935618 100644
--- a/submodules/TelegramUI/TelegramUI/InstantPageControllerNode.swift
+++ b/submodules/TelegramUI/TelegramUI/InstantPageControllerNode.swift
@@ -9,6 +9,8 @@ import SafariServices
import TelegramPresentationData
import TelegramUIPreferences
import AccountContext
+import ShareController
+import SaveToCameraRoll
final class InstantPageControllerNode: ASDisplayNode, UIScrollViewDelegate {
private let context: AccountContext
diff --git a/submodules/TelegramUI/TelegramUI/InstantPageGalleryFooterContentNode.swift b/submodules/TelegramUI/TelegramUI/InstantPageGalleryFooterContentNode.swift
index 08da327d59..c1acf31c41 100644
--- a/submodules/TelegramUI/TelegramUI/InstantPageGalleryFooterContentNode.swift
+++ b/submodules/TelegramUI/TelegramUI/InstantPageGalleryFooterContentNode.swift
@@ -9,6 +9,7 @@ import Photos
import TelegramPresentationData
import TextFormat
import AccountContext
+import ShareController
private let actionImage = generateTintedImage(image: UIImage(bundleImageName: "Chat/Input/Accessory Panels/MessageSelectionAction"), color: .white)
diff --git a/submodules/TelegramUI/TelegramUI/InstantPageImageNode.swift b/submodules/TelegramUI/TelegramUI/InstantPageImageNode.swift
index bc182217da..89167cc387 100644
--- a/submodules/TelegramUI/TelegramUI/InstantPageImageNode.swift
+++ b/submodules/TelegramUI/TelegramUI/InstantPageImageNode.swift
@@ -7,6 +7,7 @@ import TelegramCore
import SwiftSignalKit
import TelegramPresentationData
import AccountContext
+import RadialStatusNode
private struct FetchControls {
let fetch: (Bool) -> Void
diff --git a/submodules/TelegramUI/TelegramUI/InstantPagePlayableVideoNode.swift b/submodules/TelegramUI/TelegramUI/InstantPagePlayableVideoNode.swift
index 36185ee686..b5baba74a5 100644
--- a/submodules/TelegramUI/TelegramUI/InstantPagePlayableVideoNode.swift
+++ b/submodules/TelegramUI/TelegramUI/InstantPagePlayableVideoNode.swift
@@ -7,6 +7,7 @@ import TelegramCore
import SwiftSignalKit
import TelegramPresentationData
import AccountContext
+import RadialStatusNode
private struct FetchControls {
let fetch: (Bool) -> Void
diff --git a/submodules/TelegramUI/TelegramUI/InstantPageReferenceControllerNode.swift b/submodules/TelegramUI/TelegramUI/InstantPageReferenceControllerNode.swift
index de9f2d38f8..e8b7dd9917 100644
--- a/submodules/TelegramUI/TelegramUI/InstantPageReferenceControllerNode.swift
+++ b/submodules/TelegramUI/TelegramUI/InstantPageReferenceControllerNode.swift
@@ -7,6 +7,7 @@ import TelegramCore
import SafariServices
import TelegramPresentationData
import AccountContext
+import ShareController
class InstantPageReferenceControllerNode: ViewControllerTracingNode, UIScrollViewDelegate {
private let context: AccountContext
diff --git a/submodules/TelegramUI/TelegramUI/InviteContactsController.swift b/submodules/TelegramUI/TelegramUI/InviteContactsController.swift
index 3c98c29bca..a5fdff3841 100644
--- a/submodules/TelegramUI/TelegramUI/InviteContactsController.swift
+++ b/submodules/TelegramUI/TelegramUI/InviteContactsController.swift
@@ -8,6 +8,7 @@ import TelegramCore
import MessageUI
import TelegramPresentationData
import AccountContext
+import ShareController
public class InviteContactsController: ViewController, MFMessageComposeViewControllerDelegate, UINavigationControllerDelegate {
private let context: AccountContext
diff --git a/submodules/TelegramUI/TelegramUI/ItemListAvatarAndNameItem.swift b/submodules/TelegramUI/TelegramUI/ItemListAvatarAndNameItem.swift
index 3886ed1adb..475bdaefba 100644
--- a/submodules/TelegramUI/TelegramUI/ItemListAvatarAndNameItem.swift
+++ b/submodules/TelegramUI/TelegramUI/ItemListAvatarAndNameItem.swift
@@ -10,6 +10,7 @@ import ItemListUI
import ActivityIndicator
import AvatarNode
import TelegramStringFormatting
+import PeerPresenceStatusManager
private let updatingAvatarOverlayImage = generateFilledCircleImage(diameter: 66.0, color: UIColor(white: 0.0, alpha: 0.4), backgroundColor: nil)
diff --git a/submodules/TelegramUI/TelegramUI/ItemListPeerItem.swift b/submodules/TelegramUI/TelegramUI/ItemListPeerItem.swift
index 029860019b..d0ddac02eb 100644
--- a/submodules/TelegramUI/TelegramUI/ItemListPeerItem.swift
+++ b/submodules/TelegramUI/TelegramUI/ItemListPeerItem.swift
@@ -10,6 +10,7 @@ import TelegramUIPreferences
import ItemListUI
import AvatarNode
import TelegramStringFormatting
+import PeerPresenceStatusManager
struct ItemListPeerItemEditing: Equatable {
let editable: Bool
diff --git a/submodules/TelegramUI/TelegramUI/ItemListStickerPackItem.swift b/submodules/TelegramUI/TelegramUI/ItemListStickerPackItem.swift
index c7cfa58cfb..c0ebed6aba 100644
--- a/submodules/TelegramUI/TelegramUI/ItemListStickerPackItem.swift
+++ b/submodules/TelegramUI/TelegramUI/ItemListStickerPackItem.swift
@@ -7,6 +7,7 @@ import Postbox
import TelegramCore
import TelegramPresentationData
import ItemListUI
+import StickerResources
struct ItemListStickerPackItemEditing: Equatable {
let editable: Bool
diff --git a/submodules/TelegramUI/TelegramUI/ItemListWebsiteItem.swift b/submodules/TelegramUI/TelegramUI/ItemListWebsiteItem.swift
index b89384eeb0..c9cda1517b 100644
--- a/submodules/TelegramUI/TelegramUI/ItemListWebsiteItem.swift
+++ b/submodules/TelegramUI/TelegramUI/ItemListWebsiteItem.swift
@@ -10,6 +10,7 @@ import TelegramUIPreferences
import ItemListUI
import AvatarNode
import TelegramStringFormatting
+import LocalizedPeerData
struct ItemListWebsiteItemEditing: Equatable {
let editing: Bool
diff --git a/submodules/TelegramUI/TelegramUI/JoinLinkPreviewControllerNode.swift b/submodules/TelegramUI/TelegramUI/JoinLinkPreviewControllerNode.swift
index 5e3e93a66b..6cba602e6a 100644
--- a/submodules/TelegramUI/TelegramUI/JoinLinkPreviewControllerNode.swift
+++ b/submodules/TelegramUI/TelegramUI/JoinLinkPreviewControllerNode.swift
@@ -7,6 +7,7 @@ import Postbox
import TelegramCore
import TelegramPresentationData
import AccountContext
+import ShareController
struct JoinLinkPreviewData {
let isGroup: Bool
diff --git a/submodules/TelegramUI/TelegramUI/JoinLinkPreviewPeerContentNode.swift b/submodules/TelegramUI/TelegramUI/JoinLinkPreviewPeerContentNode.swift
index 0fac128fce..073c484ec2 100644
--- a/submodules/TelegramUI/TelegramUI/JoinLinkPreviewPeerContentNode.swift
+++ b/submodules/TelegramUI/TelegramUI/JoinLinkPreviewPeerContentNode.swift
@@ -7,6 +7,8 @@ import TelegramCore
import TelegramPresentationData
import AvatarNode
import AccountContext
+import SelectablePeerNode
+import ShareController
private let avatarFont = UIFont(name: ".SFCompactRounded-Semibold", size: 26.0)!
diff --git a/submodules/TelegramUI/TelegramUI/LanguageLinkPreviewContentNode.swift b/submodules/TelegramUI/TelegramUI/LanguageLinkPreviewContentNode.swift
index 9c10f9d082..d7dd9e0a88 100644
--- a/submodules/TelegramUI/TelegramUI/LanguageLinkPreviewContentNode.swift
+++ b/submodules/TelegramUI/TelegramUI/LanguageLinkPreviewContentNode.swift
@@ -7,6 +7,7 @@ import TelegramCore
import TelegramPresentationData
import TextFormat
import AccountContext
+import ShareController
final class LanguageLinkPreviewContentNode: ASDisplayNode, ShareContentContainerNode {
private var contentOffsetUpdated: ((CGFloat, ContainedViewLayoutTransition) -> Void)?
diff --git a/submodules/TelegramUI/TelegramUI/LanguageLinkPreviewControllerNode.swift b/submodules/TelegramUI/TelegramUI/LanguageLinkPreviewControllerNode.swift
index 69acbe8383..c00b384e56 100644
--- a/submodules/TelegramUI/TelegramUI/LanguageLinkPreviewControllerNode.swift
+++ b/submodules/TelegramUI/TelegramUI/LanguageLinkPreviewControllerNode.swift
@@ -8,6 +8,7 @@ import TelegramCore
import TelegramPresentationData
import ActivityIndicator
import AccountContext
+import ShareController
final class LanguageLinkPreviewControllerNode: ViewControllerTracingNode, UIScrollViewDelegate {
private let context: AccountContext
diff --git a/submodules/TelegramUI/TelegramUI/LegacyCamera.swift b/submodules/TelegramUI/TelegramUI/LegacyCamera.swift
index 8f37802de1..629f579189 100644
--- a/submodules/TelegramUI/TelegramUI/LegacyCamera.swift
+++ b/submodules/TelegramUI/TelegramUI/LegacyCamera.swift
@@ -6,6 +6,7 @@ import TelegramCore
import Postbox
import SwiftSignalKit
import AccountContext
+import ShareController
func presentedLegacyCamera(context: AccountContext, peer: Peer, cameraView: TGAttachmentCameraView?, menuController: TGMenuSheetController?, parentController: ViewController, editingMedia: Bool, saveCapturedPhotos: Bool, mediaGrouping: Bool, initialCaption: String, sendMessagesWithSignals: @escaping ([Any]?) -> Void, recognizedQRCode: @escaping (String) -> Void = { _ in }) {
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
diff --git a/submodules/TelegramUI/TelegramUI/LegacyComponentsStickers.swift b/submodules/TelegramUI/TelegramUI/LegacyComponentsStickers.swift
index 67cba82663..9978c8e8ba 100644
--- a/submodules/TelegramUI/TelegramUI/LegacyComponentsStickers.swift
+++ b/submodules/TelegramUI/TelegramUI/LegacyComponentsStickers.swift
@@ -5,6 +5,7 @@ import Postbox
import TelegramCore
import SwiftSignalKit
import Display
+import StickerResources
func stickerFromLegacyDocument(_ documentAttachment: TGDocumentMediaAttachment) -> TelegramMediaFile? {
if documentAttachment.isSticker() {
diff --git a/submodules/TelegramUI/TelegramUI/LegacyDataImportSplash.swift b/submodules/TelegramUI/TelegramUI/LegacyDataImportSplash.swift
index 1b1cf3642c..72c8cb3abe 100644
--- a/submodules/TelegramUI/TelegramUI/LegacyDataImportSplash.swift
+++ b/submodules/TelegramUI/TelegramUI/LegacyDataImportSplash.swift
@@ -2,6 +2,7 @@ import Foundation
import Display
import AsyncDisplayKit
import TelegramPresentationData
+import RadialStatusNode
final class LegacyDataImportSplash: WindowCoveringView {
private let theme: PresentationTheme?
diff --git a/submodules/TelegramUI/TelegramUI/LegacyLocationController.swift b/submodules/TelegramUI/TelegramUI/LegacyLocationController.swift
index 648f2efd10..c9c4541122 100644
--- a/submodules/TelegramUI/TelegramUI/LegacyLocationController.swift
+++ b/submodules/TelegramUI/TelegramUI/LegacyLocationController.swift
@@ -6,6 +6,7 @@ import TelegramCore
import Postbox
import TelegramPresentationData
import AccountContext
+import ShareController
private func generateClearIcon(color: UIColor) -> UIImage? {
return generateTintedImage(image: UIImage(bundleImageName: "Components/Search Bar/Clear"), color: color)
diff --git a/submodules/TelegramUI/TelegramUI/ListMessageFileItemNode.swift b/submodules/TelegramUI/TelegramUI/ListMessageFileItemNode.swift
index 8a311ec852..0c0012a6c5 100644
--- a/submodules/TelegramUI/TelegramUI/ListMessageFileItemNode.swift
+++ b/submodules/TelegramUI/TelegramUI/ListMessageFileItemNode.swift
@@ -10,6 +10,7 @@ import ItemListUI
import AccountContext
import TelegramStringFormatting
import AccountContext
+import RadialStatusNode
private let extensionImageCache = Atomic<[UInt32: UIImage]>(value: [:])
diff --git a/submodules/TelegramUI/TelegramUI/LocalizationListControllerNode.swift b/submodules/TelegramUI/TelegramUI/LocalizationListControllerNode.swift
index d68e6e1e99..4812ec5537 100644
--- a/submodules/TelegramUI/TelegramUI/LocalizationListControllerNode.swift
+++ b/submodules/TelegramUI/TelegramUI/LocalizationListControllerNode.swift
@@ -9,6 +9,7 @@ import TelegramPresentationData
import MergeLists
import ItemListUI
import AccountContext
+import ShareController
private enum LanguageListSection: ItemListSectionId {
case official
diff --git a/submodules/TelegramUI/TelegramUI/MediaInputPaneTrendingItem.swift b/submodules/TelegramUI/TelegramUI/MediaInputPaneTrendingItem.swift
index 278ba25185..6eceadb467 100644
--- a/submodules/TelegramUI/TelegramUI/MediaInputPaneTrendingItem.swift
+++ b/submodules/TelegramUI/TelegramUI/MediaInputPaneTrendingItem.swift
@@ -6,6 +6,7 @@ import SwiftSignalKit
import Postbox
import TelegramCore
import TelegramPresentationData
+import StickerResources
class MediaInputPaneTrendingItem: ListViewItem {
let account: Account
diff --git a/submodules/TelegramUI/TelegramUI/NotificationContentContext.swift b/submodules/TelegramUI/TelegramUI/NotificationContentContext.swift
index 719f5b43a5..c53799330a 100644
--- a/submodules/TelegramUI/TelegramUI/NotificationContentContext.swift
+++ b/submodules/TelegramUI/TelegramUI/NotificationContentContext.swift
@@ -9,6 +9,8 @@ import TelegramPresentationData
import TelegramUIPreferences
import TelegramUIPrivateModule
import AccountContext
+import Tuples
+import StickerResources
private enum NotificationContentAuthorizationError {
case unauthorized
diff --git a/submodules/TelegramUI/TelegramUI/NotificationExceptionSettingsController.swift b/submodules/TelegramUI/TelegramUI/NotificationExceptionSettingsController.swift
index 490b6ab286..7a39a0f840 100644
--- a/submodules/TelegramUI/TelegramUI/NotificationExceptionSettingsController.swift
+++ b/submodules/TelegramUI/TelegramUI/NotificationExceptionSettingsController.swift
@@ -8,6 +8,7 @@ import SwiftSignalKit
import TelegramPresentationData
import ItemListUI
import AccountContext
+import LocalizedPeerData
private enum NotificationPeerExceptionSection: Int32 {
case remove
diff --git a/submodules/TelegramUI/TelegramUI/OpenInOptions.swift b/submodules/TelegramUI/TelegramUI/OpenInOptions.swift
index b778a07726..2bca820ecc 100644
--- a/submodules/TelegramUI/TelegramUI/OpenInOptions.swift
+++ b/submodules/TelegramUI/TelegramUI/OpenInOptions.swift
@@ -4,6 +4,7 @@ import TelegramCore
import CoreLocation
import MapKit
import AccountContext
+import UrlEscaping
enum OpenInItem {
case url(url: String)
diff --git a/submodules/TelegramUI/TelegramUI/OpenUrl.swift b/submodules/TelegramUI/TelegramUI/OpenUrl.swift
index 3eae0242b1..b2ffe26ff3 100644
--- a/submodules/TelegramUI/TelegramUI/OpenUrl.swift
+++ b/submodules/TelegramUI/TelegramUI/OpenUrl.swift
@@ -11,6 +11,7 @@ import MtProtoKitDynamic
#endif
import TelegramPresentationData
import AccountContext
+import UrlEscaping
public struct ParsedSecureIdUrl {
public let peerId: PeerId
diff --git a/submodules/TelegramUI/TelegramUI/OverlayAudioPlayerController.swift b/submodules/TelegramUI/TelegramUI/OverlayAudioPlayerController.swift
index 32ea5cc2b6..22ebc5062e 100644
--- a/submodules/TelegramUI/TelegramUI/OverlayAudioPlayerController.swift
+++ b/submodules/TelegramUI/TelegramUI/OverlayAudioPlayerController.swift
@@ -6,6 +6,7 @@ import Display
import SwiftSignalKit
import TelegramUIPreferences
import AccountContext
+import ShareController
final class OverlayAudioPlayerControllerImpl: ViewController, OverlayAudioPlayerController {
private let context: AccountContext
diff --git a/submodules/TelegramUI/TelegramUI/OverlayVideoDecoration.swift b/submodules/TelegramUI/TelegramUI/OverlayVideoDecoration.swift
index 616942cc8d..d262909b31 100644
--- a/submodules/TelegramUI/TelegramUI/OverlayVideoDecoration.swift
+++ b/submodules/TelegramUI/TelegramUI/OverlayVideoDecoration.swift
@@ -6,6 +6,7 @@ import SwiftSignalKit
import UniversalMediaPlayer
import LegacyComponents
import AccountContext
+import RadialStatusNode
private func setupArrowFrame(size: CGSize, edge: OverlayMediaItemMinimizationEdge, view: TGEmbedPIPPullArrowView) {
let arrowX: CGFloat
diff --git a/submodules/TelegramUI/TelegramUI/PasscodeBackground.swift b/submodules/TelegramUI/TelegramUI/PasscodeBackground.swift
index 5ace21fe21..333b85273f 100644
--- a/submodules/TelegramUI/TelegramUI/PasscodeBackground.swift
+++ b/submodules/TelegramUI/TelegramUI/PasscodeBackground.swift
@@ -1,7 +1,7 @@
import Foundation
import UIKit
import Display
-
+import ImageBlur
import TelegramUIPrivateModule
protocol PasscodeBackground {
diff --git a/submodules/TelegramUI/TelegramUI/PeerAvatarImageGalleryItem.swift b/submodules/TelegramUI/TelegramUI/PeerAvatarImageGalleryItem.swift
index 41e8895051..439b25a0ea 100644
--- a/submodules/TelegramUI/TelegramUI/PeerAvatarImageGalleryItem.swift
+++ b/submodules/TelegramUI/TelegramUI/PeerAvatarImageGalleryItem.swift
@@ -7,6 +7,8 @@ import Postbox
import TelegramCore
import TelegramPresentationData
import AccountContext
+import RadialStatusNode
+import ShareController
private struct PeerAvatarImageGalleryThumbnailItem: GalleryThumbnailItem {
let account: Account
diff --git a/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift b/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift
index fad3135ce5..3a8078a77f 100644
--- a/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift
+++ b/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift
@@ -11,6 +11,7 @@ import TelegramUIPreferences
import TelegramBaseController
import OverlayStatusController
import AccountContext
+import ShareController
public class PeerMediaCollectionController: TelegramBaseController {
private var validLayout: ContainerViewLayout?
diff --git a/submodules/TelegramUI/TelegramUI/PeerPresenceStatusManager.swift b/submodules/TelegramUI/TelegramUI/PeerPresenceStatusManager.swift
deleted file mode 100644
index d0d4d2b277..0000000000
--- a/submodules/TelegramUI/TelegramUI/PeerPresenceStatusManager.swift
+++ /dev/null
@@ -1,33 +0,0 @@
-import Foundation
-import SwiftSignalKit
-import TelegramCore
-import TelegramStringFormatting
-
-final class PeerPresenceStatusManager {
- private let update: () -> Void
- private var timer: SwiftSignalKit.Timer?
-
- init(update: @escaping () -> Void) {
- self.update = update
- }
-
- deinit {
- self.timer?.invalidate()
- }
-
- func reset(presence: TelegramUserPresence) {
- self.timer?.invalidate()
- self.timer = nil
-
- let timestamp = CFAbsoluteTimeGetCurrent() + NSTimeIntervalSince1970
- let timeout = userPresenceStringRefreshTimeout(presence, relativeTo: Int32(timestamp))
- if timeout.isFinite {
- self.timer = SwiftSignalKit.Timer(timeout: timeout, repeat: false, completion: { [weak self] in
- if let strongSelf = self {
- strongSelf.update()
- }
- }, queue: Queue.mainQueue())
- self.timer?.start()
- }
- }
-}
diff --git a/submodules/TelegramUI/TelegramUI/PeerType.swift b/submodules/TelegramUI/TelegramUI/PeerType.swift
deleted file mode 100644
index 2dcddb3a46..0000000000
--- a/submodules/TelegramUI/TelegramUI/PeerType.swift
+++ /dev/null
@@ -1,10 +0,0 @@
-import Foundation
-import Postbox
-import TelegramCore
-
-func isServicePeer(_ peer: Peer) -> Bool {
- if let peer = peer as? TelegramUser {
- return (peer.id.namespace == Namespaces.Peer.CloudUser && (peer.id.id == 777000 || peer.id.id == 333000))
- }
- return false
-}
diff --git a/submodules/TelegramUI/TelegramUI/PhotoResources.swift b/submodules/TelegramUI/TelegramUI/PhotoResources.swift
index 718fe2d4a1..d6d448de67 100644
--- a/submodules/TelegramUI/TelegramUI/PhotoResources.swift
+++ b/submodules/TelegramUI/TelegramUI/PhotoResources.swift
@@ -15,6 +15,8 @@ import WebP
import TelegramUIPreferences
import MediaResources
import AccountContext
+import Tuples
+import ImageBlur
private enum ResourceFileData {
case data(Data)
diff --git a/submodules/TelegramUI/TelegramUI/ProxyListSettingsController.swift b/submodules/TelegramUI/TelegramUI/ProxyListSettingsController.swift
index be56355b28..05d4320b44 100644
--- a/submodules/TelegramUI/TelegramUI/ProxyListSettingsController.swift
+++ b/submodules/TelegramUI/TelegramUI/ProxyListSettingsController.swift
@@ -8,6 +8,7 @@ import TelegramPresentationData
import MtProtoKitDynamic
import ItemListUI
import AccountContext
+import UrlEscaping
private final class ProxySettingsControllerArguments {
let toggleEnabled: (Bool) -> Void
diff --git a/submodules/TelegramUI/TelegramUI/ProxyServerSettingsController.swift b/submodules/TelegramUI/TelegramUI/ProxyServerSettingsController.swift
index 2b470b9f59..e72a7dfab3 100644
--- a/submodules/TelegramUI/TelegramUI/ProxyServerSettingsController.swift
+++ b/submodules/TelegramUI/TelegramUI/ProxyServerSettingsController.swift
@@ -12,6 +12,7 @@ import MtProtoKitDynamic
import TelegramPresentationData
import ItemListUI
import AccountContext
+import UrlEscaping
private func shareLink(for server: ProxyServerSettings) -> String {
var link: String
diff --git a/submodules/TelegramUI/TelegramUI/ReplyAccessoryPanelNode.swift b/submodules/TelegramUI/TelegramUI/ReplyAccessoryPanelNode.swift
index d484e08401..7ff854ab68 100644
--- a/submodules/TelegramUI/TelegramUI/ReplyAccessoryPanelNode.swift
+++ b/submodules/TelegramUI/TelegramUI/ReplyAccessoryPanelNode.swift
@@ -8,6 +8,7 @@ import Display
import TelegramPresentationData
import TelegramUIPreferences
import AccountContext
+import LocalizedPeerData
final class ReplyAccessoryPanelNode: AccessoryPanelNode {
private let messageDisposable = MetaDisposable()
diff --git a/submodules/TelegramUI/TelegramUI/SecretMediaPreviewController.swift b/submodules/TelegramUI/TelegramUI/SecretMediaPreviewController.swift
index a2d74f04a3..17ab4b4e25 100644
--- a/submodules/TelegramUI/TelegramUI/SecretMediaPreviewController.swift
+++ b/submodules/TelegramUI/TelegramUI/SecretMediaPreviewController.swift
@@ -7,6 +7,7 @@ import TelegramCore
import SwiftSignalKit
import TelegramPresentationData
import AccountContext
+import RadialStatusNode
private func galleryMediaForMedia(media: Media) -> Media? {
if let media = media as? TelegramMediaImage {
diff --git a/submodules/TelegramUI/TelegramUI/SecureIdValueFormFileItem.swift b/submodules/TelegramUI/TelegramUI/SecureIdValueFormFileItem.swift
index a29e038cbe..2207349b41 100644
--- a/submodules/TelegramUI/TelegramUI/SecureIdValueFormFileItem.swift
+++ b/submodules/TelegramUI/TelegramUI/SecureIdValueFormFileItem.swift
@@ -6,6 +6,7 @@ import TelegramCore
import TelegramPresentationData
import ItemListUI
import TelegramStringFormatting
+import RadialStatusNode
private let textFont = Font.regular(16.0)
private let labelFont = Font.regular(13.0)
diff --git a/submodules/TelegramUI/TelegramUI/SettingsThemeWallpaperNode.swift b/submodules/TelegramUI/TelegramUI/SettingsThemeWallpaperNode.swift
index a203b043fe..ad27e97209 100644
--- a/submodules/TelegramUI/TelegramUI/SettingsThemeWallpaperNode.swift
+++ b/submodules/TelegramUI/TelegramUI/SettingsThemeWallpaperNode.swift
@@ -7,6 +7,7 @@ import Postbox
import SwiftSignalKit
import TelegramPresentationData
import AccountContext
+import RadialStatusNode
private func whiteColorImage(theme: PresentationTheme) -> Signal<(TransformImageArguments) -> DrawingContext?, NoError> {
return .single({ arguments in
diff --git a/submodules/TelegramUI/TelegramUI/ShareExtensionContext.swift b/submodules/TelegramUI/TelegramUI/ShareExtensionContext.swift
index f9319e36cd..d749e430b2 100644
--- a/submodules/TelegramUI/TelegramUI/ShareExtensionContext.swift
+++ b/submodules/TelegramUI/TelegramUI/ShareExtensionContext.swift
@@ -7,6 +7,7 @@ import TelegramPresentationData
import TelegramUIPreferences
import TelegramUIPrivateModule
import AccountContext
+import ShareController
private let inForeground = ValuePromise(false, ignoreRepeated: true)
diff --git a/submodules/TelegramUI/TelegramUI/StickerPackPreviewController.swift b/submodules/TelegramUI/TelegramUI/StickerPackPreviewController.swift
index aac91c0319..ba26977ccf 100644
--- a/submodules/TelegramUI/TelegramUI/StickerPackPreviewController.swift
+++ b/submodules/TelegramUI/TelegramUI/StickerPackPreviewController.swift
@@ -7,6 +7,8 @@ import TelegramCore
import SwiftSignalKit
import TelegramUIPreferences
import AccountContext
+import ShareController
+import StickerResources
enum StickerPackPreviewControllerMode {
case `default`
diff --git a/submodules/TelegramUI/TelegramUI/StickerPackPreviewGridItem.swift b/submodules/TelegramUI/TelegramUI/StickerPackPreviewGridItem.swift
index 693c1cbd18..2273ee3733 100644
--- a/submodules/TelegramUI/TelegramUI/StickerPackPreviewGridItem.swift
+++ b/submodules/TelegramUI/TelegramUI/StickerPackPreviewGridItem.swift
@@ -5,6 +5,7 @@ import TelegramCore
import SwiftSignalKit
import AsyncDisplayKit
import Postbox
+import StickerResources
final class StickerPackPreviewInteraction {
var previewedItem: StickerPreviewPeekItem?
diff --git a/submodules/TelegramUI/TelegramUI/StickerPaneSearchStickerItem.swift b/submodules/TelegramUI/TelegramUI/StickerPaneSearchStickerItem.swift
index 82abfd0722..52b4a044ac 100644
--- a/submodules/TelegramUI/TelegramUI/StickerPaneSearchStickerItem.swift
+++ b/submodules/TelegramUI/TelegramUI/StickerPaneSearchStickerItem.swift
@@ -6,6 +6,7 @@ import SwiftSignalKit
import AsyncDisplayKit
import Postbox
import TelegramPresentationData
+import StickerResources
final class StickerPaneSearchStickerSection: GridSection {
let code: String
diff --git a/submodules/TelegramUI/TelegramUI/StickerPreviewControllerNode.swift b/submodules/TelegramUI/TelegramUI/StickerPreviewControllerNode.swift
index df1c461e2a..fc51082eb6 100644
--- a/submodules/TelegramUI/TelegramUI/StickerPreviewControllerNode.swift
+++ b/submodules/TelegramUI/TelegramUI/StickerPreviewControllerNode.swift
@@ -7,6 +7,7 @@ import Postbox
import TelegramCore
import TelegramPresentationData
import AccountContext
+import StickerResources
final class StickerPreviewControllerNode: ASDisplayNode, UIScrollViewDelegate {
private let context: AccountContext
diff --git a/submodules/TelegramUI/TelegramUI/StickerPreviewPeekContent.swift b/submodules/TelegramUI/TelegramUI/StickerPreviewPeekContent.swift
index 736885ee4a..98b0827b4c 100644
--- a/submodules/TelegramUI/TelegramUI/StickerPreviewPeekContent.swift
+++ b/submodules/TelegramUI/TelegramUI/StickerPreviewPeekContent.swift
@@ -5,6 +5,7 @@ import AsyncDisplayKit
import Postbox
import TelegramCore
import SwiftSignalKit
+import StickerResources
enum StickerPreviewPeekItem: Equatable {
case pack(StickerPackItem)
diff --git a/submodules/TelegramUI/TelegramUI/StickersChatInputContextPanelItem.swift b/submodules/TelegramUI/TelegramUI/StickersChatInputContextPanelItem.swift
index d72915f971..02be966b82 100644
--- a/submodules/TelegramUI/TelegramUI/StickersChatInputContextPanelItem.swift
+++ b/submodules/TelegramUI/TelegramUI/StickersChatInputContextPanelItem.swift
@@ -6,6 +6,7 @@ import TelegramCore
import SwiftSignalKit
import Postbox
import TelegramPresentationData
+import StickerResources
final class StickersChatInputContextPanelItem: ListViewItem {
let account: Account
diff --git a/submodules/TelegramUI/TelegramUI/StringForMessageTimestampStatus.swift b/submodules/TelegramUI/TelegramUI/StringForMessageTimestampStatus.swift
index 9511a6c3bc..d0b08152fa 100644
--- a/submodules/TelegramUI/TelegramUI/StringForMessageTimestampStatus.swift
+++ b/submodules/TelegramUI/TelegramUI/StringForMessageTimestampStatus.swift
@@ -4,6 +4,7 @@ import TelegramCore
import TelegramPresentationData
import TelegramUIPreferences
import TelegramStringFormatting
+import LocalizedPeerData
enum MessageTimestampStatusFormat {
case regular
diff --git a/submodules/TelegramUI/TelegramUI/TabBarAccountSwitchControllerNode.swift b/submodules/TelegramUI/TelegramUI/TabBarAccountSwitchControllerNode.swift
index 2dd73f8d7a..2ad472985b 100644
--- a/submodules/TelegramUI/TelegramUI/TabBarAccountSwitchControllerNode.swift
+++ b/submodules/TelegramUI/TelegramUI/TabBarAccountSwitchControllerNode.swift
@@ -7,6 +7,7 @@ import TelegramCore
import TelegramPresentationData
import AvatarNode
import AccountContext
+import LocalizedPeerData
private let avatarFont = UIFont(name: ".SFCompactRounded-Semibold", size: 16.0)!
diff --git a/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap b/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap
index d42155914f..d97deded31 100644
--- a/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap
+++ b/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap
@@ -1,7 +1,6 @@
module TelegramUIPrivateModule {
header "../../third-party/opusenc/opusenc.h"
header "../TGDataItem.h"
- header "../FastBlur.h"
header "../STPPaymentCardTextField.h"
header "../STPAPIClient.h"
header "../STPAPIClient+ApplePay.h"
diff --git a/submodules/TelegramUI/TelegramUI/ThemeGridController.swift b/submodules/TelegramUI/TelegramUI/ThemeGridController.swift
index 88ca4491f6..2107d4390a 100644
--- a/submodules/TelegramUI/TelegramUI/ThemeGridController.swift
+++ b/submodules/TelegramUI/TelegramUI/ThemeGridController.swift
@@ -10,6 +10,7 @@ import TelegramPresentationData
import TelegramUIPreferences
import OverlayStatusController
import AccountContext
+import ShareController
final class ThemeGridController: ViewController {
private var controllerNode: ThemeGridControllerNode {
diff --git a/submodules/TelegramUI/TelegramUI/ThemeGridSearchColorsItem.swift b/submodules/TelegramUI/TelegramUI/ThemeGridSearchColorsItem.swift
index ecb131a46d..2001873591 100644
--- a/submodules/TelegramUI/TelegramUI/ThemeGridSearchColorsItem.swift
+++ b/submodules/TelegramUI/TelegramUI/ThemeGridSearchColorsItem.swift
@@ -6,6 +6,7 @@ import Display
import SwiftSignalKit
import TelegramCore
import TelegramPresentationData
+import ListSectionHeaderNode
private func nodeColor(for color: WallpaperSearchColor) -> UIColor {
switch color {
diff --git a/submodules/TelegramUI/TelegramUI/ThemePreviewController.swift b/submodules/TelegramUI/TelegramUI/ThemePreviewController.swift
index 9bd15e83ca..05d3bc15ca 100644
--- a/submodules/TelegramUI/TelegramUI/ThemePreviewController.swift
+++ b/submodules/TelegramUI/TelegramUI/ThemePreviewController.swift
@@ -8,6 +8,7 @@ import TelegramCore
import TelegramPresentationData
import TelegramUIPreferences
import AccountContext
+import ShareController
final class ThemePreviewController: ViewController {
private let context: AccountContext
diff --git a/submodules/TelegramUI/TelegramUI/UndoOverlayControllerNode.swift b/submodules/TelegramUI/TelegramUI/UndoOverlayControllerNode.swift
index 36f116f13e..392331bb42 100644
--- a/submodules/TelegramUI/TelegramUI/UndoOverlayControllerNode.swift
+++ b/submodules/TelegramUI/TelegramUI/UndoOverlayControllerNode.swift
@@ -6,6 +6,7 @@ import SwiftSignalKit
import TelegramPresentationData
import AnimationUI
import TextFormat
+import RadialStatusNode
final class UndoOverlayControllerNode: ViewControllerTracingNode {
private let elevatedLayout: Bool
diff --git a/submodules/TelegramUI/TelegramUI/UniversalVideoGalleryItem.swift b/submodules/TelegramUI/TelegramUI/UniversalVideoGalleryItem.swift
index 6eab52d795..0176cd3ca2 100644
--- a/submodules/TelegramUI/TelegramUI/UniversalVideoGalleryItem.swift
+++ b/submodules/TelegramUI/TelegramUI/UniversalVideoGalleryItem.swift
@@ -8,6 +8,7 @@ import Postbox
import TelegramPresentationData
import UniversalMediaPlayer
import AccountContext
+import RadialStatusNode
enum UniversalVideoGalleryItemContentInfo {
case message(Message)
diff --git a/submodules/TelegramUI/TelegramUI/UserInfoController.swift b/submodules/TelegramUI/TelegramUI/UserInfoController.swift
index 5cab3cb95f..127d7d29c7 100644
--- a/submodules/TelegramUI/TelegramUI/UserInfoController.swift
+++ b/submodules/TelegramUI/TelegramUI/UserInfoController.swift
@@ -13,6 +13,7 @@ import TextFormat
import OverlayStatusController
import TelegramStringFormatting
import AccountContext
+import ShareController
private final class UserInfoControllerArguments {
let account: Account
diff --git a/submodules/TelegramUI/TelegramUI/UsernameSetupController.swift b/submodules/TelegramUI/TelegramUI/UsernameSetupController.swift
index 1209d1a81f..b50a79fb84 100644
--- a/submodules/TelegramUI/TelegramUI/UsernameSetupController.swift
+++ b/submodules/TelegramUI/TelegramUI/UsernameSetupController.swift
@@ -7,6 +7,7 @@ import TelegramCore
import TelegramPresentationData
import ItemListUI
import AccountContext
+import ShareController
private final class UsernameSetupControllerArguments {
let account: Account
diff --git a/submodules/TelegramUI/TelegramUI/VerticalListContextResultsChatInputPanelItem.swift b/submodules/TelegramUI/TelegramUI/VerticalListContextResultsChatInputPanelItem.swift
index 8eb1b92ebc..97234b8926 100644
--- a/submodules/TelegramUI/TelegramUI/VerticalListContextResultsChatInputPanelItem.swift
+++ b/submodules/TelegramUI/TelegramUI/VerticalListContextResultsChatInputPanelItem.swift
@@ -6,6 +6,7 @@ import TelegramCore
import SwiftSignalKit
import Postbox
import TelegramPresentationData
+import RadialStatusNode
final class VerticalListContextResultsChatInputPanelItem: ListViewItem {
fileprivate let account: Account
diff --git a/submodules/TelegramUI/TelegramUI/WallpaperGalleryController.swift b/submodules/TelegramUI/TelegramUI/WallpaperGalleryController.swift
index b652636268..d872bea902 100644
--- a/submodules/TelegramUI/TelegramUI/WallpaperGalleryController.swift
+++ b/submodules/TelegramUI/TelegramUI/WallpaperGalleryController.swift
@@ -11,6 +11,7 @@ import TelegramPresentationData
import TelegramUIPreferences
import MediaResources
import AccountContext
+import ShareController
enum WallpaperListType {
case wallpapers(WallpaperPresentationOptions?)
diff --git a/submodules/TelegramUI/TelegramUI/WallpaperGalleryItem.swift b/submodules/TelegramUI/TelegramUI/WallpaperGalleryItem.swift
index 7cd575a05a..2a64d2289d 100644
--- a/submodules/TelegramUI/TelegramUI/WallpaperGalleryItem.swift
+++ b/submodules/TelegramUI/TelegramUI/WallpaperGalleryItem.swift
@@ -11,6 +11,7 @@ import TelegramUIPreferences
import ProgressNavigationButtonNode
import MediaResources
import AccountContext
+import RadialStatusNode
struct WallpaperGalleryItemArguments {
let colorPreview: Bool
diff --git a/submodules/TelegramUI/TelegramUI/WallpaperResources.swift b/submodules/TelegramUI/TelegramUI/WallpaperResources.swift
index 29c35e580a..57ff3902b0 100644
--- a/submodules/TelegramUI/TelegramUI/WallpaperResources.swift
+++ b/submodules/TelegramUI/TelegramUI/WallpaperResources.swift
@@ -6,6 +6,7 @@ import Postbox
import TelegramCore
import TelegramUIPrivateModule
import MediaResources
+import ImageBlur
private func wallpaperDatas(account: Account, accountManager: AccountManager, fileReference: FileMediaReference? = nil, representations: [ImageRepresentationWithReference], alwaysShowThumbnailFirst: Bool = false, thumbnail: Bool = false, autoFetchFullSize: Bool = false, synchronousLoad: Bool = false) -> Signal<(Data?, Data?, Bool), NoError> {
if let smallestRepresentation = smallestImageRepresentation(representations.map({ $0.representation })), let largestRepresentation = largestImageRepresentation(representations.map({ $0.representation })), let smallestIndex = representations.index(where: { $0.representation == smallestRepresentation }), let largestIndex = representations.index(where: { $0.representation == largestRepresentation }) {
diff --git a/submodules/TelegramUI/TelegramUI/WatchRequestHandlers.swift b/submodules/TelegramUI/TelegramUI/WatchRequestHandlers.swift
index d53860ecac..4000c4c9bb 100644
--- a/submodules/TelegramUI/TelegramUI/WatchRequestHandlers.swift
+++ b/submodules/TelegramUI/TelegramUI/WatchRequestHandlers.swift
@@ -7,6 +7,7 @@ import LegacyComponents
import WatchCommon
import TelegramPresentationData
import AvatarNode
+import StickerResources
let allWatchRequestHandlers: [AnyClass] = [
WatchChatListHandler.self,
diff --git a/submodules/TelegramUI/TelegramUI/WebSearchVideoGalleryItem.swift b/submodules/TelegramUI/TelegramUI/WebSearchVideoGalleryItem.swift
index 445d09105a..0e2dfea1b3 100644
--- a/submodules/TelegramUI/TelegramUI/WebSearchVideoGalleryItem.swift
+++ b/submodules/TelegramUI/TelegramUI/WebSearchVideoGalleryItem.swift
@@ -7,6 +7,7 @@ import Display
import Postbox
import TelegramPresentationData
import AccountContext
+import RadialStatusNode
class WebSearchVideoGalleryItem: GalleryItem {
let context: AccountContext
diff --git a/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj b/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj
index ba9a408703..1d40d87941 100644
--- a/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj
+++ b/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj
@@ -98,7 +98,6 @@
099529AA21CDB27900805E13 /* ShareProxyServerActionSheetController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 099529A921CDB27900805E13 /* ShareProxyServerActionSheetController.swift */; };
099529AC21CDBBB200805E13 /* QRCode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 099529AB21CDBBB200805E13 /* QRCode.swift */; };
099529B021D2123E00805E13 /* ChatMessageUnsupportedBubbleContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 099529AF21D2123E00805E13 /* ChatMessageUnsupportedBubbleContentNode.swift */; };
- 099529B221D24F5800805E13 /* RadialDownloadContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 099529B121D24F5800805E13 /* RadialDownloadContentNode.swift */; };
099529B421D3E5D800805E13 /* CheckDiskSpace.swift in Sources */ = {isa = PBXBuildFile; fileRef = 099529B321D3E5D800805E13 /* CheckDiskSpace.swift */; };
099529FA21DD8A3100805E13 /* NavigationBarSearchContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 099529F921DD8A3100805E13 /* NavigationBarSearchContentNode.swift */; };
09A218D9229EE1B600DE6898 /* HorizontalStickerGridItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09A218D7229EE1B500DE6898 /* HorizontalStickerGridItem.swift */; };
@@ -149,7 +148,6 @@
09E2D9EF226F1AFA00EA0AA4 /* Emoji.mapping in Resources */ = {isa = PBXBuildFile; fileRef = 09E2D9ED226F1AF300EA0AA4 /* Emoji.mapping */; };
09E2D9F1226F214000EA0AA4 /* EmojiResources.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09E2D9F0226F214000EA0AA4 /* EmojiResources.swift */; };
09E2DA132273367900EA0AA4 /* anim_archiveAvatar.json in Resources */ = {isa = PBXBuildFile; fileRef = 09E2DA122273367900EA0AA4 /* anim_archiveAvatar.json */; };
- 09E4A801223AE1B30038140F /* PeerType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09E4A800223AE1B30038140F /* PeerType.swift */; };
09E4A803223B833B0038140F /* ForwardPrivacyChatPreviewItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09E4A802223B833B0038140F /* ForwardPrivacyChatPreviewItem.swift */; };
09E4A805223D4A5A0038140F /* OpenSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09E4A804223D4A5A0038140F /* OpenSettings.swift */; };
09E4A807223D4B860038140F /* AccountUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09E4A806223D4B860038140F /* AccountUtils.swift */; };
@@ -162,7 +160,6 @@
09EDAD30221164530012A50B /* AutodownloadDataUsagePickerItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09EDAD2F221164530012A50B /* AutodownloadDataUsagePickerItem.swift */; };
09F21563225C776100AEDF6D /* ChatListBadgeNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09F21562225C776000AEDF6D /* ChatListBadgeNode.swift */; };
09F21565225C83E100AEDF6D /* ChatListStatusNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09F21564225C83E100AEDF6D /* ChatListStatusNode.swift */; };
- 09F21567225C8EF500AEDF6D /* ChatListOnlineNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09F21566225C8EF500AEDF6D /* ChatListOnlineNode.swift */; };
09F2158D225CF5BC00AEDF6D /* Pasteboard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09F2158C225CF5BC00AEDF6D /* Pasteboard.swift */; };
09F2159A2263E62900AEDF6D /* PasscodeEntryController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09F215992263E62900AEDF6D /* PasscodeEntryController.swift */; };
09F2159C2263E63200AEDF6D /* PasscodeEntryControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09F2159B2263E63200AEDF6D /* PasscodeEntryControllerNode.swift */; };
@@ -208,7 +205,6 @@
D007019E2029EFDD006B9E34 /* ICloudResources.swift in Sources */ = {isa = PBXBuildFile; fileRef = D007019D2029EFDD006B9E34 /* ICloudResources.swift */; };
D00701A12029F6D0006B9E34 /* TGMimeTypeMap.h in Headers */ = {isa = PBXBuildFile; fileRef = D007019F2029F6D0006B9E34 /* TGMimeTypeMap.h */; };
D00701A22029F6D0006B9E34 /* TGMimeTypeMap.m in Sources */ = {isa = PBXBuildFile; fileRef = D00701A02029F6D0006B9E34 /* TGMimeTypeMap.m */; };
- D00781052084DFB100369A39 /* UrlEscaping.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00781042084DFB100369A39 /* UrlEscaping.swift */; };
D008177922B46B7E008A895F /* ShareItems.swift in Sources */ = {isa = PBXBuildFile; fileRef = D008177222B46B7D008A895F /* ShareItems.swift */; };
D008177A22B46B7E008A895F /* TGShareLocationSignals.h in Headers */ = {isa = PBXBuildFile; fileRef = D008177322B46B7E008A895F /* TGShareLocationSignals.h */; };
D008177B22B46B7E008A895F /* TGContactModel.h in Headers */ = {isa = PBXBuildFile; fileRef = D008177422B46B7E008A895F /* TGContactModel.h */; };
@@ -247,8 +243,6 @@
D00ACA4B20222C280045D427 /* libtgvoip.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00ACA4C20222C280045D427 /* libtgvoip.framework */; };
D00ACA5A2022897D0045D427 /* ProcessedPeerRestrictionText.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00ACA592022897D0045D427 /* ProcessedPeerRestrictionText.swift */; };
D00BDA1F1EE5B69200C64C5E /* ChannelAdminController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00BDA1E1EE5B69200C64C5E /* ChannelAdminController.swift */; };
- D00BED201F73F60F00922292 /* ShareSearchContainerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00BED1F1F73F60F00922292 /* ShareSearchContainerNode.swift */; };
- D00BED221F73F82400922292 /* SharePeersContainerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00BED211F73F82400922292 /* SharePeersContainerNode.swift */; };
D00FF2091F4E2414006FA332 /* InstantPageSettingsNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00FF2081F4E2414006FA332 /* InstantPageSettingsNode.swift */; };
D0104F281F47171F004E4881 /* InstantPageGalleryController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0104F271F47171F004E4881 /* InstantPageGalleryController.swift */; };
D0104F2A1F471DA6004E4881 /* InstantImageGalleryItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0104F291F471DA6004E4881 /* InstantImageGalleryItem.swift */; };
@@ -279,11 +273,6 @@
D01590C922BE62C40017C33E /* TextureCompression.h in Headers */ = {isa = PBXBuildFile; fileRef = D01590C822BE62C40017C33E /* TextureCompression.h */; };
D015E04F225D2E5900CB9E8A /* WebP.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D015E04E225D2E5900CB9E8A /* WebP.framework */; };
D017734C22049BF800DA06A7 /* UpgradedAccounts.swift in Sources */ = {isa = PBXBuildFile; fileRef = D017734B22049BF800DA06A7 /* UpgradedAccounts.swift */; };
- D01776B31F1D69A80044446D /* RadialStatusNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01776B21F1D69A80044446D /* RadialStatusNode.swift */; };
- D01776B51F1D6CCC0044446D /* RadialStatusContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01776B41F1D6CCC0044446D /* RadialStatusContentNode.swift */; };
- D01776B81F1D6FB30044446D /* RadialProgressContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01776B71F1D6FB30044446D /* RadialProgressContentNode.swift */; };
- D01776BA1F1D704F0044446D /* RadialStatusIconContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01776B91F1D704F0044446D /* RadialStatusIconContentNode.swift */; };
- D01776BC1F1E21AF0044446D /* RadialStatusBackgroundNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01776BB1F1E21AF0044446D /* RadialStatusBackgroundNode.swift */; };
D01776BE1F1E76920044446D /* PeerMediaCollectionSectionsNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01776BD1F1E76920044446D /* PeerMediaCollectionSectionsNode.swift */; };
D01847801FFBD12E00075256 /* ChatListPresentationData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D018477F1FFBD12E00075256 /* ChatListPresentationData.swift */; };
D01848E821A03BDA00B6DEBD /* ChatSearchState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01848E721A03BDA00B6DEBD /* ChatSearchState.swift */; };
@@ -339,13 +328,12 @@
D02F4AF01FD4C46D004DFBAE /* SystemVideoContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = D02F4AEF1FD4C46D004DFBAE /* SystemVideoContent.swift */; };
D035734B22B5CCCA00F0920D /* LegacyBuffer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D035734A22B5CCCA00F0920D /* LegacyBuffer.swift */; };
D0380DA9204E9C81000414AB /* SecretMediaPreviewFooterContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0380DA8204E9C81000414AB /* SecretMediaPreviewFooterContentNode.swift */; };
- D0380DAB204EA72F000414AB /* RadialStatusSecretTimeoutContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0380DAA204EA72F000414AB /* RadialStatusSecretTimeoutContentNode.swift */; };
D0380DAD204ED434000414AB /* LegacyLiveUploadInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0380DAC204ED434000414AB /* LegacyLiveUploadInterface.swift */; };
D0380DB8204EE0A5000414AB /* ChatInstantVideoMessageDurationNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0380DB7204EE0A5000414AB /* ChatInstantVideoMessageDurationNode.swift */; };
D0383ED4207CFBB900C45548 /* GalleryThumbnailContainerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0383ED3207CFBB900C45548 /* GalleryThumbnailContainerNode.swift */; };
D0383EE4207D292800C45548 /* EmojisChatInputContextPanelNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0383EE3207D292800C45548 /* EmojisChatInputContextPanelNode.swift */; };
D0383EE6207D299600C45548 /* EmojisChatInputPanelItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0383EE5207D299600C45548 /* EmojisChatInputPanelItem.swift */; };
- D039FB152170D99D00BD1BAD /* RadialCloudProgressContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D039FB142170D99D00BD1BAD /* RadialCloudProgressContentNode.swift */; };
+ D038AC5322F88A3600320981 /* ImageBlur.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D038AC5222F88A3600320981 /* ImageBlur.framework */; };
D039FB1921711B5D00BD1BAD /* PlatformVideoContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = D039FB1821711B5D00BD1BAD /* PlatformVideoContent.swift */; };
D03AA4DF202DBF6F0056C405 /* ChatContextResultPeekContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03AA4DE202DBF6F0056C405 /* ChatContextResultPeekContentNode.swift */; };
D03AA4E5202DF8840056C405 /* StickerPreviewPeekContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03AA4E4202DF8840056C405 /* StickerPreviewPeekContent.swift */; };
@@ -420,7 +408,6 @@
D064EF871F69A06F00AC0398 /* MessageContentKind.swift in Sources */ = {isa = PBXBuildFile; fileRef = D064EF861F69A06F00AC0398 /* MessageContentKind.swift */; };
D0671F2D2145AB28000A8AE7 /* LegacyAvatarPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0671F2C2145AB28000A8AE7 /* LegacyAvatarPicker.swift */; };
D0684A041F6C3AD50059F570 /* ChatListTypingNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0684A031F6C3AD50059F570 /* ChatListTypingNode.swift */; };
- D06887F01F72DEE6000AB936 /* ShareInputFieldNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06887EF1F72DEE6000AB936 /* ShareInputFieldNode.swift */; };
D069F5D0212700B90000565A /* StickerPanePeerSpecificSetupGridItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D069F5CF212700B90000565A /* StickerPanePeerSpecificSetupGridItem.swift */; };
D06BB8821F58994B0084FC30 /* LegacyInstantVideoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06BB8811F58994B0084FC30 /* LegacyInstantVideoController.swift */; };
D06BEC771F62F68B0035A545 /* OverlayUniversalVideoNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06BEC761F62F68B0035A545 /* OverlayUniversalVideoNode.swift */; };
@@ -453,7 +440,6 @@
D079FCDF1F05C9280038FADE /* BotReceiptController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D079FCDE1F05C9280038FADE /* BotReceiptController.swift */; };
D079FCE11F05C9380038FADE /* BotReceiptControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D079FCE01F05C9380038FADE /* BotReceiptControllerNode.swift */; };
D079FCE91F06A76C0038FADE /* Notices.swift in Sources */ = {isa = PBXBuildFile; fileRef = D079FCE81F06A76C0038FADE /* Notices.swift */; };
- D07A33B722C578AC00F6D622 /* Tuple.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07A33B622C578AC00F6D622 /* Tuple.swift */; };
D07ABBA5202A14BC003671DE /* LegacyImagePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07ABBA4202A14BC003671DE /* LegacyImagePicker.swift */; };
D07ABBAB202A1BD1003671DE /* LegacyWallpaperPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07ABBAA202A1BD1003671DE /* LegacyWallpaperPicker.swift */; };
D07BCBFE1F2B792300ED97AA /* LegacyComponents.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D07BCBFD1F2B792300ED97AA /* LegacyComponents.framework */; };
@@ -475,10 +461,11 @@
D0879B2522F7198400C4D6B3 /* LiveLocationManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879B2422F7198400C4D6B3 /* LiveLocationManager.framework */; };
D0879B2722F7198900C4D6B3 /* LiveLocationTimerNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879B2622F7198900C4D6B3 /* LiveLocationTimerNode.framework */; };
D0879B5B22F79EEF00C4D6B3 /* TemporaryCachedPeerDataManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879B5A22F79EEF00C4D6B3 /* TemporaryCachedPeerDataManager.framework */; };
- D087BFAD1F741B9D003FD209 /* ShareContentContainerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D087BFAC1F741B9D003FD209 /* ShareContentContainerNode.swift */; };
- D087BFAF1F741BB7003FD209 /* ShareLoadingContainerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D087BFAE1F741BB7003FD209 /* ShareLoadingContainerNode.swift */; };
- D087BFB11F745483003FD209 /* ShareSearchBarNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D087BFB01F745483003FD209 /* ShareSearchBarNode.swift */; };
- D087BFB31F748752003FD209 /* ShareControllerRecentPeersGridItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D087BFB21F748752003FD209 /* ShareControllerRecentPeersGridItem.swift */; };
+ D0879BBC22F8550500C4D6B3 /* ShareController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879BBB22F8550500C4D6B3 /* ShareController.framework */; };
+ D0879BEE22F85F8E00C4D6B3 /* RadialStatusNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879BED22F85F8E00C4D6B3 /* RadialStatusNode.framework */; };
+ D0879C7422F874E100C4D6B3 /* PeerOnlineMarkerNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879C7322F874E100C4D6B3 /* PeerOnlineMarkerNode.framework */; };
+ D0879C9622F875C000C4D6B3 /* PeerPresenceStatusManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879C9522F875C000C4D6B3 /* PeerPresenceStatusManager.framework */; };
+ D0879CCC22F876DD00C4D6B3 /* ChatListSearchRecentPeersNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879CCB22F876DD00C4D6B3 /* ChatListSearchRecentPeersNode.framework */; };
D08803C51F6064CF00DD7951 /* TelegramUI.h in Headers */ = {isa = PBXBuildFile; fileRef = D0FC40821D5B8E7400261D9D /* TelegramUI.h */; settings = {ATTRIBUTES = (Public, ); }; };
D08984EE2114964700918162 /* GroupPreHistorySetupController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08984ED2114964700918162 /* GroupPreHistorySetupController.swift */; };
D08984F02114AE0C00918162 /* DataPrivacySettingsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08984EF2114AE0C00918162 /* DataPrivacySettingsController.swift */; };
@@ -519,7 +506,6 @@
D09E63B01F1010FE003444CD /* Contacts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D09E63AF1F1010FE003444CD /* Contacts.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
D09E63B21F11289A003444CD /* PassKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D09E63B11F11289A003444CD /* PassKit.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
D09F9DCF20768DAF00DB4DE1 /* SecureIdLocalResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D09F9DCE20768DAF00DB4DE1 /* SecureIdLocalResource.swift */; };
- D0A723541FC3B40E0094D167 /* RadialCheckContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0A723531FC3B40E0094D167 /* RadialCheckContentNode.swift */; };
D0A8998D217A294100759EE6 /* SaveIncomingMediaController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0A8998C217A294100759EE6 /* SaveIncomingMediaController.swift */; };
D0A8BBA11F61EE83000F03FD /* UniversalVideoGalleryItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0A8BBA01F61EE83000F03FD /* UniversalVideoGalleryItem.swift */; };
D0AA29AE1F72770D00C050AC /* ChatListItemStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AA29AD1F72770D00C050AC /* ChatListItemStrings.swift */; };
@@ -585,7 +571,6 @@
D0AF79A322C2E36400CECCB8 /* astc.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF79A222C2E36400CECCB8 /* astc.h */; };
D0AFCC791F4C8D2C000720C6 /* InstantPageSlideshowItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AFCC781F4C8D2C000720C6 /* InstantPageSlideshowItem.swift */; };
D0AFCC7B1F4C8D39000720C6 /* InstantPageSlideshowItemNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AFCC7A1F4C8D39000720C6 /* InstantPageSlideshowItemNode.swift */; };
- D0B21B13220D6E8C003F741D /* ActionSheetPeerItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B21B12220D6E8C003F741D /* ActionSheetPeerItem.swift */; };
D0B21B15220D85DD003F741D /* TabBarAccountSwitchController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B21B14220D85DD003F741D /* TabBarAccountSwitchController.swift */; };
D0B21B17220D85E7003F741D /* TabBarAccountSwitchControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B21B16220D85E7003F741D /* TabBarAccountSwitchControllerNode.swift */; };
D0B21B1F22156D92003F741D /* LegacyCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B21B1E22156D92003F741D /* LegacyCache.swift */; };
@@ -610,7 +595,6 @@
D0BCC3D2203F0A6C008126C2 /* StringForMessageTimestampStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BCC3D1203F0A6C008126C2 /* StringForMessageTimestampStatus.swift */; };
D0BCC3D420404CC7008126C2 /* ChatMessageActionSheetController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BCC3D320404CC7008126C2 /* ChatMessageActionSheetController.swift */; };
D0BCC3D620404CD8008126C2 /* ChatMessageActionSheetControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BCC3D520404CD8008126C2 /* ChatMessageActionSheetControllerNode.swift */; };
- D0BDB09B1F79C658002ABF2F /* SaveToCameraRoll.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BDB09A1F79C658002ABF2F /* SaveToCameraRoll.swift */; };
D0BE3037206139F500FBE6D8 /* ImageCompression.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BE3036206139F500FBE6D8 /* ImageCompression.swift */; };
D0BE30412061B80100FBE6D8 /* SecureIdAuthController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BE30402061B80100FBE6D8 /* SecureIdAuthController.swift */; };
D0BE30432061B80B00FBE6D8 /* SecureIdAuthControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BE30422061B80B00FBE6D8 /* SecureIdAuthControllerNode.swift */; };
@@ -620,7 +604,6 @@
D0BFAE4620AB04FB00793CF2 /* ChatRestrictedInputPanelNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BFAE4520AB04FB00793CF2 /* ChatRestrictedInputPanelNode.swift */; };
D0BFAE4E20AB1D7B00793CF2 /* DisabledContextResultsChatInputContextPanelNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BFAE4D20AB1D7B00793CF2 /* DisabledContextResultsChatInputContextPanelNode.swift */; };
D0BFAE5020AB2A1300793CF2 /* PeerBanTimeoutController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BFAE4F20AB2A1300793CF2 /* PeerBanTimeoutController.swift */; };
- D0BFAE5D20AB426300793CF2 /* PeerTitle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BFAE5C20AB426300793CF2 /* PeerTitle.swift */; };
D0C0B59B1EE019E5000F4D2C /* ChatSearchNavigationContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C0B59A1EE019E5000F4D2C /* ChatSearchNavigationContentNode.swift */; };
D0C0B59F1EE082F5000F4D2C /* ChatSearchInputPanelNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C0B59E1EE082F5000F4D2C /* ChatSearchInputPanelNode.swift */; };
D0C0B5B11EE1C421000F4D2C /* ChatDateSelectionSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C0B5B01EE1C421000F4D2C /* ChatDateSelectionSheet.swift */; };
@@ -815,7 +798,6 @@
D0EC6CC71EB9F58800EBF1C3 /* PeerNotificationSoundStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08775081E3E59DE00A97350 /* PeerNotificationSoundStrings.swift */; };
D0EC6CC81EB9F58800EBF1C3 /* ProgressiveImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69E931D6B8C9B0046BCD6 /* ProgressiveImage.swift */; };
D0EC6CC91EB9F58800EBF1C3 /* WebP.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69E941D6B8C9B0046BCD6 /* WebP.swift */; };
- D0EC6CCA1EB9F58800EBF1C3 /* PeerPresenceStatusManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B844571DAC44E8005F29E1 /* PeerPresenceStatusManager.swift */; };
D0EC6CCC1EB9F58800EBF1C3 /* ServiceSoundManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D073CE641DCBC26B007511FD /* ServiceSoundManager.swift */; };
D0EC6CCD1EB9F58800EBF1C3 /* DeclareEncodables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D073CE701DCBF23F007511FD /* DeclareEncodables.swift */; };
D0EC6CCE1EB9F58800EBF1C3 /* AccountContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05811931DD5F9380057C769 /* AccountContext.swift */; };
@@ -845,7 +827,6 @@
D0EC6D0B1EB9F58800EBF1C3 /* opusfile.c in Sources */ = {isa = PBXBuildFile; fileRef = D0D03B051DECB0FE00220C46 /* opusfile.c */; };
D0EC6D0C1EB9F58800EBF1C3 /* stream.c in Sources */ = {isa = PBXBuildFile; fileRef = D0D03B071DECB0FE00220C46 /* stream.c */; };
D0EC6D221EB9F58800EBF1C3 /* PhotoResources.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69E9F1D6B8E380046BCD6 /* PhotoResources.swift */; };
- D0EC6D231EB9F58800EBF1C3 /* StickerResources.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69EA01D6B8E380046BCD6 /* StickerResources.swift */; };
D0EC6D251EB9F58800EBF1C3 /* FetchCachedRepresentations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06879561DB8F22200424BBD /* FetchCachedRepresentations.swift */; };
D0EC6D261EB9F58800EBF1C3 /* TransformOutgoingMessageMedia.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04662801E68BA64006FAFC4 /* TransformOutgoingMessageMedia.swift */; };
D0EC6D271EB9F58800EBF1C3 /* FetchResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F3A8B51E83120A00B4C64C /* FetchResource.swift */; };
@@ -858,7 +839,6 @@
D0EC6D301EB9F58800EBF1C3 /* RadialProgressNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69DC41D6B89E10046BCD6 /* RadialProgressNode.swift */; };
D0EC6D311EB9F58800EBF1C3 /* RadialTimeoutNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00C7CE51E378FD00080C3D5 /* RadialTimeoutNode.swift */; };
D0EC6D321EB9F58800EBF1C3 /* TextNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69DC21D6B89DA0046BCD6 /* TextNode.swift */; };
- D0EC6D331EB9F58800EBF1C3 /* ListSectionHeaderNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69DC01D6B89D30046BCD6 /* ListSectionHeaderNode.swift */; };
D0EC6D351EB9F58800EBF1C3 /* SearchBarNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69DCB1D6B8A0D0046BCD6 /* SearchBarNode.swift */; };
D0EC6D361EB9F58800EBF1C3 /* SearchBarPlaceholderNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69DCC1D6B8A0D0046BCD6 /* SearchBarPlaceholderNode.swift */; };
D0EC6D371EB9F58800EBF1C3 /* SearchDisplayController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69DCD1D6B8A0D0046BCD6 /* SearchDisplayController.swift */; };
@@ -913,8 +893,6 @@
D0EC6D791EB9F58800EBF1C3 /* ChatListTitleLockView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0575AEA1E9FD579006F2541 /* ChatListTitleLockView.swift */; };
D0EC6D7A1EB9F58800EBF1C3 /* ChatListSearchContainerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69E071D6B8A9C0046BCD6 /* ChatListSearchContainerNode.swift */; };
D0EC6D7B1EB9F58800EBF1C3 /* ChatListRecentPeersListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D049EAED1E44BB3200A2CD3A /* ChatListRecentPeersListItem.swift */; };
- D0EC6D7C1EB9F58800EBF1C3 /* HorizontalPeerItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69E0B1D6B8AB10046BCD6 /* HorizontalPeerItem.swift */; };
- D0EC6D7D1EB9F58800EBF1C3 /* ChatListSearchRecentPeersNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69E091D6B8AA60046BCD6 /* ChatListSearchRecentPeersNode.swift */; };
D0EC6D7E1EB9F58800EBF1C3 /* ChatListSearchItemHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07827BC1E004A3400071108 /* ChatListSearchItemHeader.swift */; };
D0EC6D7F1EB9F58800EBF1C3 /* HashtagSearchController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01749501E1067E40057C89A /* HashtagSearchController.swift */; };
D0EC6D801EB9F58800EBF1C3 /* HashtagSearchControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01749521E1068820057C89A /* HashtagSearchControllerNode.swift */; };
@@ -1022,10 +1000,6 @@
D0EC6DEB1EB9F58900EBF1C3 /* ChatRequestInProgressTitlePanelNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D02383781DDF1A4D004018B6 /* ChatRequestInProgressTitlePanelNode.swift */; };
D0EC6DEC1EB9F58900EBF1C3 /* ChatToastAlertPanelNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D023837D1DDF50FD004018B6 /* ChatToastAlertPanelNode.swift */; };
D0EC6DED1EB9F58900EBF1C3 /* ChatHistoryNavigationButtonNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69E451D6B8B950046BCD6 /* ChatHistoryNavigationButtonNode.swift */; };
- D0EC6DF11EB9F58900EBF1C3 /* ShareController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00DE6971E8E8E33003F0D76 /* ShareController.swift */; };
- D0EC6DF21EB9F58900EBF1C3 /* ShareControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00DE6991E8E8E43003F0D76 /* ShareControllerNode.swift */; };
- D0EC6DF31EB9F58900EBF1C3 /* ShareControllerPeerGridItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00DE69B1E8E8E97003F0D76 /* ShareControllerPeerGridItem.swift */; };
- D0EC6DF41EB9F58900EBF1C3 /* ShareActionButtonNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00DE6AC1E8EB2D4003F0D76 /* ShareActionButtonNode.swift */; };
D0EC6DF51EB9F58900EBF1C3 /* PeerMediaCollectionController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B7F8E11D8A18070045D939 /* PeerMediaCollectionController.swift */; };
D0EC6DF61EB9F58900EBF1C3 /* PeerMediaCollectionControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B7F8E71D8A1F5F0045D939 /* PeerMediaCollectionControllerNode.swift */; };
D0EC6DF81EB9F58900EBF1C3 /* PeerMediaCollectionInterfaceState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DE77221D932043002B8809 /* PeerMediaCollectionInterfaceState.swift */; };
@@ -1138,7 +1112,6 @@
D0EC6E831EB9F58900EBF1C3 /* NotificationItemContainerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C50E3D1E93D09200F62E39 /* NotificationItemContainerNode.swift */; };
D0EC6E841EB9F58900EBF1C3 /* NotificationItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C50E3B1E93CC2600F62E39 /* NotificationItem.swift */; };
D0EC6E851EB9F58900EBF1C3 /* ChatMessageNotificationItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C50E3F1E93D3B000F62E39 /* ChatMessageNotificationItem.swift */; };
- D0EC6E871EB9F58900EBF1C3 /* FastBlur.m in Sources */ = {isa = PBXBuildFile; fileRef = D0F69E801D6B8C850046BCD6 /* FastBlur.m */; };
D0EC6E891EB9F58900EBF1C3 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69E831D6B8C850046BCD6 /* FrameworkBundle.swift */; };
D0EC6E8D1EB9F58900EBF1C3 /* SecretChatKeyVisualization.m in Sources */ = {isa = PBXBuildFile; fileRef = D00C7CF61E37BF680080C3D5 /* SecretChatKeyVisualization.m */; };
D0EC6E8F1EB9F5B200EBF1C3 /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D08D45291D5E340300A7428A /* AsyncDisplayKit.framework */; };
@@ -1177,7 +1150,6 @@
D0FBE84F2273395C00B33B52 /* ChatListArchiveInfoItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FBE84E2273395C00B33B52 /* ChatListArchiveInfoItem.swift */; };
D0FC194D201F82A000FEDBB2 /* OpenResolvedUrl.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FC194C201F82A000FEDBB2 /* OpenResolvedUrl.swift */; };
D0FC408E1D5B8E7500261D9D /* TelegramUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FC408D1D5B8E7500261D9D /* TelegramUITests.swift */; };
- D0FC4FBB1F751E8900B7443F /* SelectablePeerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FC4FBA1F751E8900B7443F /* SelectablePeerNode.swift */; };
D0FE4DDC1F09AD0400E8A0B3 /* PresentationSurfaceLevels.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FE4DDB1F09AD0400E8A0B3 /* PresentationSurfaceLevels.swift */; };
D0FE4DE41F0AEBB900E8A0B3 /* SharedVideoContextManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FE4DE31F0AEBB900E8A0B3 /* SharedVideoContextManager.swift */; };
D0FFF7F61F55B82500BEBC01 /* InstantPageAudioItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FFF7F51F55B82500BEBC01 /* InstantPageAudioItem.swift */; };
@@ -1275,7 +1247,6 @@
099529A921CDB27900805E13 /* ShareProxyServerActionSheetController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareProxyServerActionSheetController.swift; sourceTree = ""; };
099529AB21CDBBB200805E13 /* QRCode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QRCode.swift; sourceTree = ""; };
099529AF21D2123E00805E13 /* ChatMessageUnsupportedBubbleContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageUnsupportedBubbleContentNode.swift; sourceTree = ""; };
- 099529B121D24F5800805E13 /* RadialDownloadContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadialDownloadContentNode.swift; sourceTree = ""; };
099529B321D3E5D800805E13 /* CheckDiskSpace.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckDiskSpace.swift; sourceTree = ""; };
099529F921DD8A3100805E13 /* NavigationBarSearchContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationBarSearchContentNode.swift; sourceTree = ""; };
09A218D7229EE1B500DE6898 /* HorizontalStickerGridItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HorizontalStickerGridItem.swift; sourceTree = ""; };
@@ -1326,7 +1297,6 @@
09E2D9ED226F1AF300EA0AA4 /* Emoji.mapping */ = {isa = PBXFileReference; lastKnownFileType = file; name = Emoji.mapping; path = TelegramUI/Resources/Emoji.mapping; sourceTree = ""; };
09E2D9F0226F214000EA0AA4 /* EmojiResources.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiResources.swift; sourceTree = ""; };
09E2DA122273367900EA0AA4 /* anim_archiveAvatar.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_archiveAvatar.json; sourceTree = ""; };
- 09E4A800223AE1B30038140F /* PeerType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerType.swift; sourceTree = ""; };
09E4A802223B833B0038140F /* ForwardPrivacyChatPreviewItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ForwardPrivacyChatPreviewItem.swift; sourceTree = ""; };
09E4A804223D4A5A0038140F /* OpenSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenSettings.swift; sourceTree = ""; };
09E4A806223D4B860038140F /* AccountUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountUtils.swift; sourceTree = ""; };
@@ -1339,7 +1309,6 @@
09EDAD2F221164530012A50B /* AutodownloadDataUsagePickerItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutodownloadDataUsagePickerItem.swift; sourceTree = ""; };
09F21562225C776000AEDF6D /* ChatListBadgeNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatListBadgeNode.swift; sourceTree = ""; };
09F21564225C83E100AEDF6D /* ChatListStatusNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatListStatusNode.swift; sourceTree = ""; };
- 09F21566225C8EF500AEDF6D /* ChatListOnlineNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatListOnlineNode.swift; sourceTree = ""; };
09F2158C225CF5BC00AEDF6D /* Pasteboard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Pasteboard.swift; sourceTree = ""; };
09F215992263E62900AEDF6D /* PasscodeEntryController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeEntryController.swift; sourceTree = ""; };
09F2159B2263E63200AEDF6D /* PasscodeEntryControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeEntryControllerNode.swift; sourceTree = ""; };
@@ -1392,7 +1361,6 @@
D007019D2029EFDD006B9E34 /* ICloudResources.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudResources.swift; sourceTree = ""; };
D007019F2029F6D0006B9E34 /* TGMimeTypeMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGMimeTypeMap.h; sourceTree = ""; };
D00701A02029F6D0006B9E34 /* TGMimeTypeMap.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGMimeTypeMap.m; sourceTree = ""; };
- D00781042084DFB100369A39 /* UrlEscaping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UrlEscaping.swift; sourceTree = ""; };
D008177222B46B7D008A895F /* ShareItems.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShareItems.swift; sourceTree = ""; };
D008177322B46B7E008A895F /* TGShareLocationSignals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGShareLocationSignals.h; sourceTree = ""; };
D008177422B46B7E008A895F /* TGContactModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGContactModel.h; sourceTree = ""; };
@@ -1432,8 +1400,6 @@
D00ACA592022897D0045D427 /* ProcessedPeerRestrictionText.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProcessedPeerRestrictionText.swift; sourceTree = ""; };
D00B3F9D1E3A4847003872C3 /* ItemListSectionHeaderItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemListSectionHeaderItem.swift; sourceTree = ""; };
D00BDA1E1EE5B69200C64C5E /* ChannelAdminController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelAdminController.swift; sourceTree = ""; };
- D00BED1F1F73F60F00922292 /* ShareSearchContainerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareSearchContainerNode.swift; sourceTree = ""; };
- D00BED211F73F82400922292 /* SharePeersContainerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SharePeersContainerNode.swift; sourceTree = ""; };
D00C7CD81E36B2DB0080C3D5 /* ContactListNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContactListNode.swift; sourceTree = ""; };
D00C7CDB1E3776E50080C3D5 /* SecretMediaPreviewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretMediaPreviewController.swift; sourceTree = ""; };
D00C7CE51E378FD00080C3D5 /* RadialTimeoutNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadialTimeoutNode.swift; sourceTree = ""; };
@@ -1442,10 +1408,6 @@
D00C7CF61E37BF680080C3D5 /* SecretChatKeyVisualization.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SecretChatKeyVisualization.m; sourceTree = ""; };
D00D34361E6E14E30057B307 /* ChatMessageThrottledProcessingManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageThrottledProcessingManager.swift; sourceTree = ""; };
D00DBBDC1E65650800DB5485 /* ChatReportPeerTitlePanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatReportPeerTitlePanelNode.swift; sourceTree = ""; };
- D00DE6971E8E8E33003F0D76 /* ShareController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShareController.swift; sourceTree = ""; };
- D00DE6991E8E8E43003F0D76 /* ShareControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShareControllerNode.swift; sourceTree = ""; };
- D00DE69B1E8E8E97003F0D76 /* ShareControllerPeerGridItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShareControllerPeerGridItem.swift; sourceTree = ""; };
- D00DE6AC1E8EB2D4003F0D76 /* ShareActionButtonNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShareActionButtonNode.swift; sourceTree = ""; };
D00E15251DDBD4E700ACF65C /* LegacyCamera.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyCamera.swift; sourceTree = ""; };
D00FF2081F4E2414006FA332 /* InstantPageSettingsNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InstantPageSettingsNode.swift; sourceTree = ""; };
D0104F271F47171F004E4881 /* InstantPageGalleryController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InstantPageGalleryController.swift; sourceTree = ""; };
@@ -1484,11 +1446,6 @@
D01749561E1087CC0057C89A /* ChatBotStartInputPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatBotStartInputPanelNode.swift; sourceTree = ""; };
D01749611E11DB240057C89A /* ChatListTitleView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListTitleView.swift; sourceTree = ""; };
D017734B22049BF800DA06A7 /* UpgradedAccounts.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpgradedAccounts.swift; sourceTree = ""; };
- D01776B21F1D69A80044446D /* RadialStatusNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadialStatusNode.swift; sourceTree = ""; };
- D01776B41F1D6CCC0044446D /* RadialStatusContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadialStatusContentNode.swift; sourceTree = ""; };
- D01776B71F1D6FB30044446D /* RadialProgressContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadialProgressContentNode.swift; sourceTree = ""; };
- D01776B91F1D704F0044446D /* RadialStatusIconContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadialStatusIconContentNode.swift; sourceTree = ""; };
- D01776BB1F1E21AF0044446D /* RadialStatusBackgroundNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadialStatusBackgroundNode.swift; sourceTree = ""; };
D01776BD1F1E76920044446D /* PeerMediaCollectionSectionsNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerMediaCollectionSectionsNode.swift; sourceTree = ""; };
D0177B831DFB095000A5083A /* FileMediaResourceStatus.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FileMediaResourceStatus.swift; sourceTree = ""; };
D018477F1FFBD12E00075256 /* ChatListPresentationData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatListPresentationData.swift; sourceTree = ""; };
@@ -1595,16 +1552,15 @@
D02F4AEF1FD4C46D004DFBAE /* SystemVideoContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SystemVideoContent.swift; sourceTree = ""; };
D035734A22B5CCCA00F0920D /* LegacyBuffer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyBuffer.swift; sourceTree = ""; };
D0380DA8204E9C81000414AB /* SecretMediaPreviewFooterContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretMediaPreviewFooterContentNode.swift; sourceTree = ""; };
- D0380DAA204EA72F000414AB /* RadialStatusSecretTimeoutContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadialStatusSecretTimeoutContentNode.swift; sourceTree = ""; };
D0380DAC204ED434000414AB /* LegacyLiveUploadInterface.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyLiveUploadInterface.swift; sourceTree = ""; };
D0380DB7204EE0A5000414AB /* ChatInstantVideoMessageDurationNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatInstantVideoMessageDurationNode.swift; sourceTree = ""; };
D0383ED3207CFBB900C45548 /* GalleryThumbnailContainerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GalleryThumbnailContainerNode.swift; sourceTree = ""; };
D0383EE3207D292800C45548 /* EmojisChatInputContextPanelNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojisChatInputContextPanelNode.swift; sourceTree = ""; };
D0383EE5207D299600C45548 /* EmojisChatInputPanelItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojisChatInputPanelItem.swift; sourceTree = ""; };
+ D038AC5222F88A3600320981 /* ImageBlur.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ImageBlur.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D039EB021DEAEFEE00886EBC /* ChatTextInputAudioRecordingOverlayButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatTextInputAudioRecordingOverlayButton.swift; sourceTree = ""; };
D039EB071DEC725600886EBC /* ChatTextInputAudioRecordingTimeNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatTextInputAudioRecordingTimeNode.swift; sourceTree = ""; };
D039EB091DEC7A8700886EBC /* ChatTextInputAudioRecordingCancelIndicator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatTextInputAudioRecordingCancelIndicator.swift; sourceTree = ""; };
- D039FB142170D99D00BD1BAD /* RadialCloudProgressContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadialCloudProgressContentNode.swift; sourceTree = ""; };
D039FB1821711B5D00BD1BAD /* PlatformVideoContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlatformVideoContent.swift; sourceTree = ""; };
D03AA4DE202DBF6F0056C405 /* ChatContextResultPeekContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatContextResultPeekContentNode.swift; sourceTree = ""; };
D03AA4E4202DF8840056C405 /* StickerPreviewPeekContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StickerPreviewPeekContent.swift; sourceTree = ""; };
@@ -1735,7 +1691,6 @@
D0671F2C2145AB28000A8AE7 /* LegacyAvatarPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyAvatarPicker.swift; sourceTree = ""; };
D0684A031F6C3AD50059F570 /* ChatListTypingNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatListTypingNode.swift; sourceTree = ""; };
D06879561DB8F22200424BBD /* FetchCachedRepresentations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FetchCachedRepresentations.swift; sourceTree = ""; };
- D06887EF1F72DEE6000AB936 /* ShareInputFieldNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareInputFieldNode.swift; sourceTree = ""; };
D069F5CF212700B90000565A /* StickerPanePeerSpecificSetupGridItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StickerPanePeerSpecificSetupGridItem.swift; sourceTree = ""; };
D06BB8811F58994B0084FC30 /* LegacyInstantVideoController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyInstantVideoController.swift; sourceTree = ""; };
D06BEC761F62F68B0035A545 /* OverlayUniversalVideoNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverlayUniversalVideoNode.swift; sourceTree = ""; };
@@ -1781,7 +1736,6 @@
D079FCDE1F05C9280038FADE /* BotReceiptController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BotReceiptController.swift; sourceTree = ""; };
D079FCE01F05C9380038FADE /* BotReceiptControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BotReceiptControllerNode.swift; sourceTree = ""; };
D079FCE81F06A76C0038FADE /* Notices.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Notices.swift; sourceTree = ""; };
- D07A33B622C578AC00F6D622 /* Tuple.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Tuple.swift; sourceTree = ""; };
D07A7DA21D957671005BCD27 /* ListMessageSnippetItemNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ListMessageSnippetItemNode.swift; sourceTree = ""; };
D07A7DA41D95783C005BCD27 /* ListMessageNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ListMessageNode.swift; sourceTree = ""; };
D07ABBA4202A14BC003671DE /* LegacyImagePicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyImagePicker.swift; sourceTree = ""; };
@@ -1820,10 +1774,11 @@
D0879B2422F7198400C4D6B3 /* LiveLocationManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LiveLocationManager.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D0879B2622F7198900C4D6B3 /* LiveLocationTimerNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LiveLocationTimerNode.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D0879B5A22F79EEF00C4D6B3 /* TemporaryCachedPeerDataManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TemporaryCachedPeerDataManager.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- D087BFAC1F741B9D003FD209 /* ShareContentContainerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareContentContainerNode.swift; sourceTree = ""; };
- D087BFAE1F741BB7003FD209 /* ShareLoadingContainerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareLoadingContainerNode.swift; sourceTree = ""; };
- D087BFB01F745483003FD209 /* ShareSearchBarNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareSearchBarNode.swift; sourceTree = ""; };
- D087BFB21F748752003FD209 /* ShareControllerRecentPeersGridItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareControllerRecentPeersGridItem.swift; sourceTree = "