From 191090f578e5eb4b5cc4758220691766c7dfb98d Mon Sep 17 00:00:00 2001 From: Peter <> Date: Wed, 14 Aug 2019 23:25:37 +0300 Subject: [PATCH 01/11] Display restricted messages --- .../contents.xcworkspacedata | 3 + .../PlatformRestrictionMatching/Info.plist | 22 + .../project.pbxproj | 547 ++++++++++++++++++ .../Sources/PlatformRestrictionMatching.h | 19 + .../Sources/PlatformRestrictionMatching.swift | 8 + .../Sources/MessageContentKind.swift | 15 + .../project.pbxproj | 4 + .../ChatMessageBubbleItemNode.swift | 8 + ...atMessageRestrictedBubbleContentNode.swift | 233 ++++++++ .../project.pbxproj | 8 + 10 files changed, 867 insertions(+) create mode 100644 submodules/PlatformRestrictionMatching/Info.plist create mode 100644 submodules/PlatformRestrictionMatching/PlatformRestrictionMatching_Xcode.xcodeproj/project.pbxproj create mode 100644 submodules/PlatformRestrictionMatching/Sources/PlatformRestrictionMatching.h create mode 100644 submodules/PlatformRestrictionMatching/Sources/PlatformRestrictionMatching.swift create mode 100644 submodules/TelegramUI/TelegramUI/ChatMessageRestrictedBubbleContentNode.swift diff --git a/Telegram-iOS.xcworkspace/contents.xcworkspacedata b/Telegram-iOS.xcworkspace/contents.xcworkspacedata index 5a635e9d0e..45460afba4 100644 --- a/Telegram-iOS.xcworkspace/contents.xcworkspacedata +++ b/Telegram-iOS.xcworkspace/contents.xcworkspacedata @@ -121,6 +121,9 @@ + + + + + + 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/PlatformRestrictionMatching/PlatformRestrictionMatching_Xcode.xcodeproj/project.pbxproj b/submodules/PlatformRestrictionMatching/PlatformRestrictionMatching_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..5b46efb30e --- /dev/null +++ b/submodules/PlatformRestrictionMatching/PlatformRestrictionMatching_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,547 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E3D3B23045BF60049C28B /* PlatformRestrictionMatching.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E3D3923045BF60049C28B /* PlatformRestrictionMatching.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E3D4223045C200049C28B /* PlatformRestrictionMatching.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3D4123045C200049C28B /* PlatformRestrictionMatching.swift */; }; + D03E3D4523045C6A0049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3D4423045C6A0049C28B /* Foundation.framework */; }; + D03E3D4723045C720049C28B /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3D4623045C720049C28B /* TelegramCore.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E3D3623045BF60049C28B /* PlatformRestrictionMatching.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PlatformRestrictionMatching.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3D3923045BF60049C28B /* PlatformRestrictionMatching.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PlatformRestrictionMatching.h; sourceTree = ""; }; + D03E3D3A23045BF60049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E3D4123045C200049C28B /* PlatformRestrictionMatching.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlatformRestrictionMatching.swift; sourceTree = ""; }; + D03E3D4423045C6A0049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E3D4623045C720049C28B /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E3D3323045BF60049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3D4723045C720049C28B /* TelegramCore.framework in Frameworks */, + D03E3D4523045C6A0049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E3D2C23045BF60049C28B = { + isa = PBXGroup; + children = ( + D03E3D3A23045BF60049C28B /* Info.plist */, + D03E3D3823045BF60049C28B /* Sources */, + D03E3D3723045BF60049C28B /* Products */, + D03E3D4323045C690049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E3D3723045BF60049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E3D3623045BF60049C28B /* PlatformRestrictionMatching.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E3D3823045BF60049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E3D4123045C200049C28B /* PlatformRestrictionMatching.swift */, + D03E3D3923045BF60049C28B /* PlatformRestrictionMatching.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E3D4323045C690049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E3D4623045C720049C28B /* TelegramCore.framework */, + D03E3D4423045C6A0049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E3D3123045BF60049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3D3B23045BF60049C28B /* PlatformRestrictionMatching.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E3D3523045BF60049C28B /* PlatformRestrictionMatching */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E3D3E23045BF60049C28B /* Build configuration list for PBXNativeTarget "PlatformRestrictionMatching" */; + buildPhases = ( + D03E3D3123045BF60049C28B /* Headers */, + D03E3D3223045BF60049C28B /* Sources */, + D03E3D3323045BF60049C28B /* Frameworks */, + D03E3D3423045BF60049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = PlatformRestrictionMatching; + productName = PlatformRestrictionMatching; + productReference = D03E3D3623045BF60049C28B /* PlatformRestrictionMatching.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E3D2D23045BF60049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E3D3523045BF60049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E3D3023045BF60049C28B /* Build configuration list for PBXProject "PlatformRestrictionMatching_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E3D2C23045BF60049C28B; + productRefGroup = D03E3D3723045BF60049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E3D3523045BF60049C28B /* PlatformRestrictionMatching */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E3D3423045BF60049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E3D3223045BF60049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3D4223045C200049C28B /* PlatformRestrictionMatching.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E3D3C23045BF60049C28B /* 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; + }; + D03E3D3D23045BF60049C28B /* 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; + }; + D03E3D3F23045BF60049C28B /* 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.PlatformRestrictionMatching; + 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; + }; + D03E3D4023045BF60049C28B /* 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.PlatformRestrictionMatching; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E3D4823045E0E0049C28B /* 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; + }; + D03E3D4923045E0E0049C28B /* 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.PlatformRestrictionMatching; + 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; + }; + D03E3D4A23045E170049C28B /* 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; + }; + D03E3D4B23045E170049C28B /* 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.PlatformRestrictionMatching; + 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 */ + D03E3D3023045BF60049C28B /* Build configuration list for PBXProject "PlatformRestrictionMatching_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E3D3C23045BF60049C28B /* DebugAppStoreLLC */, + D03E3D4823045E0E0049C28B /* DebugHockeyapp */, + D03E3D3D23045BF60049C28B /* ReleaseAppStoreLLC */, + D03E3D4A23045E170049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E3D3E23045BF60049C28B /* Build configuration list for PBXNativeTarget "PlatformRestrictionMatching" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E3D3F23045BF60049C28B /* DebugAppStoreLLC */, + D03E3D4923045E0E0049C28B /* DebugHockeyapp */, + D03E3D4023045BF60049C28B /* ReleaseAppStoreLLC */, + D03E3D4B23045E170049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E3D2D23045BF60049C28B /* Project object */; +} diff --git a/submodules/PlatformRestrictionMatching/Sources/PlatformRestrictionMatching.h b/submodules/PlatformRestrictionMatching/Sources/PlatformRestrictionMatching.h new file mode 100644 index 0000000000..8cd2d309f1 --- /dev/null +++ b/submodules/PlatformRestrictionMatching/Sources/PlatformRestrictionMatching.h @@ -0,0 +1,19 @@ +// +// PlatformRestrictionMatching.h +// PlatformRestrictionMatching +// +// Created by Peter on 8/14/19. +// Copyright © 2019 Telegram Messenger LLP. All rights reserved. +// + +#import + +//! Project version number for PlatformRestrictionMatching. +FOUNDATION_EXPORT double PlatformRestrictionMatchingVersionNumber; + +//! Project version string for PlatformRestrictionMatching. +FOUNDATION_EXPORT const unsigned char PlatformRestrictionMatchingVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/submodules/PlatformRestrictionMatching/Sources/PlatformRestrictionMatching.swift b/submodules/PlatformRestrictionMatching/Sources/PlatformRestrictionMatching.swift new file mode 100644 index 0000000000..c6d500c400 --- /dev/null +++ b/submodules/PlatformRestrictionMatching/Sources/PlatformRestrictionMatching.swift @@ -0,0 +1,8 @@ +import Foundation +import TelegramCore + +public extension RestrictedContentMessageAttribute { + func matchesPlatform() -> Bool { + return self.platformSelector == "ios" + } +} diff --git a/submodules/TelegramStringFormatting/Sources/MessageContentKind.swift b/submodules/TelegramStringFormatting/Sources/MessageContentKind.swift index b606c8ebbd..432b0b68fe 100644 --- a/submodules/TelegramStringFormatting/Sources/MessageContentKind.swift +++ b/submodules/TelegramStringFormatting/Sources/MessageContentKind.swift @@ -3,6 +3,7 @@ import Postbox import TelegramCore import TelegramPresentationData import TelegramUIPreferences +import PlatformRestrictionMatching public enum MessageContentKindKey { case text @@ -20,6 +21,7 @@ public enum MessageContentKindKey { case expiredImage case expiredVideo case poll + case restricted } public enum MessageContentKind: Equatable { @@ -38,6 +40,7 @@ public enum MessageContentKind: Equatable { case expiredImage case expiredVideo case poll(String) + case restricted(String) public var key: MessageContentKindKey { switch self { @@ -71,11 +74,21 @@ public enum MessageContentKind: Equatable { return .expiredVideo case .poll: return .poll + case .restricted: + return .restricted } } } public func messageContentKind(_ message: Message, strings: PresentationStrings, nameDisplayOrder: PresentationPersonNameOrder, accountPeerId: PeerId) -> MessageContentKind { + for attribute in message.attributes { + if let attribute = attribute as? RestrictedContentMessageAttribute { + if attribute.matchesPlatform() { + return .restricted(attribute.text) + } + break + } + } for media in message.media { if let kind = mediaContentKind(media, message: message, strings: strings, nameDisplayOrder: nameDisplayOrder, accountPeerId: accountPeerId) { return kind @@ -196,6 +209,8 @@ public func stringForMediaKind(_ kind: MessageContentKind, strings: Presentation return (strings.Message_VideoExpired, true) case let .poll(text): return ("📊 \(text)", false) + case let .restricted(text): + return (text, false) } } diff --git a/submodules/TelegramStringFormatting/TelegramStringFormatting_Xcode.xcodeproj/project.pbxproj b/submodules/TelegramStringFormatting/TelegramStringFormatting_Xcode.xcodeproj/project.pbxproj index 9b75caa1b8..a078c688a8 100644 --- a/submodules/TelegramStringFormatting/TelegramStringFormatting_Xcode.xcodeproj/project.pbxproj +++ b/submodules/TelegramStringFormatting/TelegramStringFormatting_Xcode.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + D03E3D4F23045E510049C28B /* PlatformRestrictionMatching.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3D4E23045E510049C28B /* PlatformRestrictionMatching.framework */; }; D0879AB222F7021000C4D6B3 /* TelegramStringFormatting.h in Headers */ = {isa = PBXBuildFile; fileRef = D0879AB022F7021000C4D6B3 /* TelegramStringFormatting.h */; settings = {ATTRIBUTES = (Public, ); }; }; D0879ABD22F705AE00C4D6B3 /* PresenceStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879ABC22F705AE00C4D6B3 /* PresenceStrings.swift */; }; D0879AC022F705B800C4D6B3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879ABF22F705B800C4D6B3 /* Foundation.framework */; }; @@ -28,6 +29,7 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + D03E3D4E23045E510049C28B /* PlatformRestrictionMatching.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PlatformRestrictionMatching.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0879AAD22F7021000C4D6B3 /* TelegramStringFormatting.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = TelegramStringFormatting.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0879AB022F7021000C4D6B3 /* TelegramStringFormatting.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TelegramStringFormatting.h; sourceTree = ""; }; D0879AB122F7021000C4D6B3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -55,6 +57,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D03E3D4F23045E510049C28B /* PlatformRestrictionMatching.framework in Frameworks */, D0C9C35E2300AEF100FAB518 /* Display.framework in Frameworks */, D0C9C35C2300AEBA00FAB518 /* LocalizedPeerData.framework in Frameworks */, D0C9C35A2300AE7200FAB518 /* TextFormat.framework in Frameworks */, @@ -107,6 +110,7 @@ D0879ABE22F705B700C4D6B3 /* Frameworks */ = { isa = PBXGroup; children = ( + D03E3D4E23045E510049C28B /* PlatformRestrictionMatching.framework */, D0C9C35D2300AEF100FAB518 /* Display.framework */, D0C9C35B2300AEBA00FAB518 /* LocalizedPeerData.framework */, D0C9C3592300AE7200FAB518 /* TextFormat.framework */, diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift index 4b34033935..2768a4c63d 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift @@ -14,6 +14,7 @@ import ContextUI import TelegramUniversalVideoContent import MosaicLayout import TextSelectionNode +import PlatformRestrictionMatching private func contentNodeMessagesAndClassesForItem(_ item: ChatMessageItem) -> [(Message, AnyClass)] { var result: [(Message, AnyClass)] = [] @@ -22,6 +23,13 @@ private func contentNodeMessagesAndClassesForItem(_ item: ChatMessageItem) -> [( var isUnsupportedMedia = false outer: for message in item.content { + for attribute in message.attributes { + if let attribute = attribute as? RestrictedContentMessageAttribute, attribute.matchesPlatform() { + result.append((message, ChatMessageRestrictedBubbleContentNode.self)) + break outer + } + } + inner: for media in message.media { if let _ = media as? TelegramMediaImage { result.append((message, ChatMessageMediaBubbleContentNode.self)) diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageRestrictedBubbleContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageRestrictedBubbleContentNode.swift new file mode 100644 index 0000000000..9a78830bf5 --- /dev/null +++ b/submodules/TelegramUI/TelegramUI/ChatMessageRestrictedBubbleContentNode.swift @@ -0,0 +1,233 @@ +import Foundation +import UIKit +import Postbox +import Display +import AsyncDisplayKit +import SwiftSignalKit +import TelegramCore +import TelegramPresentationData +import TextFormat + +class ChatMessageRestrictedBubbleContentNode: ChatMessageBubbleContentNode { + private let textNode: TextNode + private let statusNode: ChatMessageDateAndStatusNode + + required init() { + self.textNode = TextNode() + self.statusNode = ChatMessageDateAndStatusNode() + + super.init() + + self.textNode.isUserInteractionEnabled = false + self.textNode.contentMode = .topLeft + self.textNode.contentsScale = UIScreenScale + self.textNode.displaysAsynchronously = true + self.addSubnode(self.textNode) + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + override func asyncLayoutContent() -> (_ item: ChatMessageBubbleContentItem, _ layoutConstants: ChatMessageItemLayoutConstants, _ preparePosition: ChatMessageBubblePreparePosition, _ messageSelection: Bool?, _ constrainedSize: CGSize) -> (ChatMessageBubbleContentProperties, CGSize?, CGFloat, (CGSize, ChatMessageBubbleContentPosition) -> (CGFloat, (CGFloat) -> (CGSize, (ListViewItemUpdateAnimation, Bool) -> Void))) { + let textLayout = TextNode.asyncLayout(self.textNode) + let statusLayout = self.statusNode.asyncLayout() + + return { item, layoutConstants, _, _, _ in + let contentProperties = ChatMessageBubbleContentProperties(hidesSimpleAuthorHeader: false, headerSpacing: 0.0, hidesBackground: .never, forceFullCorners: false, forceAlignment: .none) + + return (contentProperties, nil, CGFloat.greatestFiniteMagnitude, { constrainedSize, position in + let message = item.message + + let incoming = item.message.effectivelyIncoming(item.context.account.peerId) + + let maxTextWidth = CGFloat.greatestFiniteMagnitude + + let horizontalInset = layoutConstants.text.bubbleInsets.left + layoutConstants.text.bubbleInsets.right + let textConstrainedSize = CGSize(width: min(maxTextWidth, constrainedSize.width - horizontalInset), height: constrainedSize.height) + + var edited = false + var viewCount: Int? + var rawText = "" + for attribute in item.message.attributes { + if let attribute = attribute as? EditedMessageAttribute { + edited = !attribute.isHidden + } else if let attribute = attribute as? ViewCountMessageAttribute { + viewCount = attribute.count + } else if let attribute = attribute as? RestrictedContentMessageAttribute { + rawText = attribute.text + } + } + + let dateText = stringForMessageTimestampStatus(accountPeerId: item.context.account.peerId, message: item.message, dateTimeFormat: item.presentationData.dateTimeFormat, nameDisplayOrder: item.presentationData.nameDisplayOrder, strings: item.presentationData.strings) + + let statusType: ChatMessageDateAndStatusType? + switch position { + case .linear(_, .None): + if incoming { + statusType = .BubbleIncoming + } else { + if message.flags.contains(.Failed) { + statusType = .BubbleOutgoing(.Failed) + } else if message.flags.isSending && !message.isSentOrAcknowledged { + statusType = .BubbleOutgoing(.Sending) + } else { + statusType = .BubbleOutgoing(.Sent(read: item.read)) + } + } + default: + statusType = nil + } + + var statusSize: CGSize? + var statusApply: ((Bool) -> Void)? + + if let statusType = statusType { + let (size, apply) = statusLayout(item.context, item.presentationData, edited, viewCount, dateText, statusType, textConstrainedSize) + statusSize = size + statusApply = apply + } + + let entities = [MessageTextEntity(range: 0.. Date: Thu, 15 Aug 2019 00:56:18 +0300 Subject: [PATCH 02/11] Refactor HashtagSearchUI, StickerPackPreviewUI and related modules [skip ci] --- .../contents.xcworkspacedata | 15 + .../Sources/ChatController.swift | 2 + .../project.pbxproj | 64 ++ .../Sources}/AnimatedStickerNode.swift | 58 +- .../Sources}/AnimatedStickerUtils.swift | 6 +- .../Sources}/AnimationRenderer.swift | 0 .../Sources}/SoftwareAnimationRenderer.swift | 2 +- .../project.pbxproj | 587 ++++++++++++++++ submodules/HashtagSearchUI/Info.plist | 22 + .../Sources}/HashtagSearchController.swift | 6 +- .../HashtagSearchControllerNode.swift | 4 +- .../HashtagSearchUI/Sources/HashtagSearchUI.h | 19 + .../ItemListAvatarAndNameInfoItem/Info.plist | 22 + .../project.pbxproj | 595 +++++++++++++++++ .../Sources/FrameworkBundle.swift | 13 + .../Sources/ItemListAvatarAndNameInfoItem.h | 19 + .../Sources}/ItemListAvatarAndNameItem.swift | 206 +++--- submodules/ItemListPeerActionItem/Info.plist | 22 + .../project.pbxproj | 567 ++++++++++++++++ .../Sources/ItemListPeerActionItem.h | 19 + .../Sources}/ItemListPeerActionItem.swift | 18 +- submodules/StickerPackPreviewUI/Info.plist | 22 + .../StickerPackPreviewController.swift | 22 +- .../StickerPackPreviewControllerNode.swift | 0 .../Sources}/StickerPackPreviewGridItem.swift | 1 + .../Sources/StickerPackPreviewUI.h | 19 + .../Sources}/StickerPreviewController.swift | 20 +- .../StickerPreviewControllerNode.swift | 0 .../Sources}/StickerPreviewPeekContent.swift | 31 +- .../project.pbxproj | 627 ++++++++++++++++++ .../ArchivedStickerPacksController.swift | 1 + .../TelegramUI/BlockedPeersController.swift | 1 + .../TelegramUI/ChannelAdminController.swift | 1 + .../TelegramUI/ChannelAdminsController.swift | 1 + .../ChannelBannedMemberController.swift | 1 + ...hannelDiscussionGroupSetupController.swift | 1 + .../TelegramUI/ChannelInfoController.swift | 1 + .../ChannelPermissionsController.swift | 1 + .../TelegramUI/ChatController.swift | 3 +- .../TelegramUI/ChatMediaInputNode.swift | 1 + .../ChatMediaInputStickerGridItem.swift | 1 + .../ChatMediaInputStickerPackItem.swift | 1 + .../ChatMediaInputTrendingPane.swift | 1 + .../ChatMessageAnimatedStickerItemNode.swift | 1 + .../ChatMessageInteractiveMediaNode.swift | 1 + .../ChatMultipleAvatarsNavigationNode.swift | 60 -- .../ChatRecentActionsControllerNode.swift | 2 + .../TelegramUI/CreateChannelController.swift | 1 + .../TelegramUI/CreateGroupController.swift | 1 + .../DeviceContactInfoController.swift | 1 + .../TelegramUI/EditSettingsController.swift | 1 + .../FeaturedStickerPacksController.swift | 1 + .../FetchCachedRepresentations.swift | 1 + .../TelegramUI/GroupInfoController.swift | 2 + .../GroupStickerPackSetupController.swift | 1 + ...textResultsChatInputContextPanelNode.swift | 1 + ...ListContextResultsChatInputPanelItem.swift | 1 + .../HorizontalStickerGridItem.swift | 1 + ...rizontalStickersChatContextPanelNode.swift | 1 + .../InstalledStickerPacksController.swift | 1 + .../TelegramUI/ItemListStickerPackItem.swift | 1 + .../MediaInputPaneTrendingItem.swift | 1 + .../TelegramUI/MetalAnimationRenderer.swift | 178 ----- .../TelegramUI/MultipleAvatarsNode.swift | 95 --- .../NotificationContentContext.swift | 1 + .../NotificationExceptionControllerNode.swift | 1 + .../TelegramUI/OpenChatMessage.swift | 1 + .../TelegramUI/OpenResolvedUrl.swift | 1 + .../TelegramUI/PeersNearbyController.swift | 1 + ...ectivePrivacySettingsPeersController.swift | 1 + .../TelegramUI/SettingsController.swift | 2 + .../StickerPaneSearchContentNode.swift | 1 + .../StickerPaneSearchStickerItem.swift | 1 + .../StickersChatInputContextPanelNode.swift | 1 + .../TelegramUIPrivate/module.modulemap | 2 - .../TelegramUI/TextLinkHandling.swift | 2 + .../TelegramUI/UserInfoController.swift | 1 + .../project.pbxproj | 393 +---------- .../third-party/astc/astc/bitmanip.h | 168 ----- .../TelegramUI/third-party/astc/astc/colors.h | 132 ---- .../third-party/astc/astc/compress_block.cc | 155 ----- .../third-party/astc/astc/compress_block.h | 12 - .../third-party/astc/astc/compress_texture.cc | 68 -- .../third-party/astc/astc/compress_texture.h | 16 - .../third-party/astc/astc/constants.h | 18 - .../third-party/astc/astc/data_size.h | 21 - .../TelegramUI/third-party/astc/astc/dcheck.h | 7 - .../third-party/astc/astc/endpoints.h | 24 - .../astc/astc/endpoints_bounding_box.h | 32 - .../third-party/astc/astc/endpoints_encode.h | 63 -- .../third-party/astc/astc/endpoints_min_max.h | 47 -- .../astc/endpoints_principal_components.cc | 59 -- .../astc/endpoints_principal_components.h | 22 - .../astc/astc/endpoints_quantize.h | 37 -- .../astc/astc/integer_sequence_encoding.h | 212 ------ .../third-party/astc/astc/matrix.cc | 10 - .../TelegramUI/third-party/astc/astc/matrix.h | 45 -- .../third-party/astc/astc/meson.build | 57 -- .../TelegramUI/third-party/astc/astc/misc.h | 23 - .../TelegramUI/third-party/astc/astc/range.h | 42 -- .../third-party/astc/astc/store_block.h | 113 ---- .../astc/astc/tables_color_quantization.h | 7 - .../third-party/astc/astc/tables_data_size.h | 6 - .../astc/tables_integer_sequence_encoding.h | 7 - .../TelegramUI/third-party/astc/astc/vector.h | 148 ----- .../third-party/astc/astc/weights_quantize.h | 88 --- .../astc/astc/weights_quantize_table.h | 566 ---------------- .../third-party/astc/compress/astc.cc | 74 --- .../third-party/astc/compress/astc.h | 9 - .../TelegramUI/third-party/astc/image/bgra.cc | 18 - .../TelegramUI/third-party/astc/image/bgra.h | 38 -- .../TelegramUI/third-party/astc/image/color.h | 37 -- .../third-party/astc/image/compressed.cc | 44 -- .../third-party/astc/image/compressed.h | 61 -- .../pybits/__pycache__/bise.cpython-37.pyc | Bin 6318 -> 0 bytes .../pybits/__pycache__/bitset.cpython-37.pyc | Bin 3152 -> 0 bytes .../__pycache__/datasize.cpython-37.pyc | Bin 3140 -> 0 bytes .../__pycache__/endpointmodes.cpython-37.pyc | Bin 753 -> 0 bytes .../__pycache__/partitions.cpython-37.pyc | Bin 7628 -> 0 bytes .../__pycache__/quantize.cpython-37.pyc | Bin 4559 -> 0 bytes .../pybits/__pycache__/range.cpython-37.pyc | Bin 1113 -> 0 bytes .../third-party/astc/pybits/bise.py | 229 ------- .../third-party/astc/pybits/bitset.py | 77 --- .../third-party/astc/pybits/codegen.py | 154 ----- .../third-party/astc/pybits/datainfo.py | 46 -- .../third-party/astc/pybits/datasize.py | 137 ---- .../third-party/astc/pybits/endpointmodes.py | 17 - .../astc/pybits/partition-images.py | 59 -- .../third-party/astc/pybits/partitions.py | 289 -------- .../third-party/astc/pybits/quantize.py | 123 ---- .../third-party/astc/pybits/range.py | 67 -- .../third-party/bc1/BC1Compression.cpp | 301 --------- .../third-party/bc1/BC1Compression.h | 51 -- .../TelegramUI/third-party/bc1/BMPImage.cpp | 213 ------ .../TelegramUI/third-party/bc1/BMPImage.h | 59 -- .../TelegramUI/third-party/bc1/ColorVec.h | 103 --- .../TelegramUI/third-party/bc1/DDSImage.cpp | 222 ------- .../TelegramUI/third-party/bc1/DDSImage.h | 51 -- .../TelegramUI/third-party/bc1/Image.cpp | 43 -- submodules/TelegramUI/third-party/bc1/Image.h | 79 --- .../third-party/bc1/TextureCompression.cpp | 37 -- .../third-party/bc1/TextureCompression.h | 13 - .../third-party/bc1/TypeDefinitions.h | 126 ---- submodules/YuvConversion/Info.plist | 22 + .../Sources}/YUV.h | 0 .../Sources}/YUV.m | 0 .../YuvConversion/Sources/YuvConversion.h | 11 + .../YuvConversion.xcodeproj/project.pbxproj | 532 +++++++++++++++ 148 files changed, 3421 insertions(+), 5911 deletions(-) rename submodules/{TelegramUI/TelegramUI => AnimationUI/Sources}/AnimatedStickerNode.swift (93%) rename submodules/{TelegramUI/TelegramUI => AnimationUI/Sources}/AnimatedStickerUtils.swift (97%) rename submodules/{TelegramUI/TelegramUI => AnimationUI/Sources}/AnimationRenderer.swift (100%) rename submodules/{TelegramUI/TelegramUI => AnimationUI/Sources}/SoftwareAnimationRenderer.swift (97%) create mode 100644 submodules/HashtagSearchUI/HashtagSearchUI_Xcode.xcodeproj/project.pbxproj create mode 100644 submodules/HashtagSearchUI/Info.plist rename submodules/{TelegramUI/TelegramUI => HashtagSearchUI/Sources}/HashtagSearchController.swift (96%) rename submodules/{TelegramUI/TelegramUI => HashtagSearchUI/Sources}/HashtagSearchControllerNode.swift (97%) create mode 100644 submodules/HashtagSearchUI/Sources/HashtagSearchUI.h create mode 100644 submodules/ItemListAvatarAndNameInfoItem/Info.plist create mode 100644 submodules/ItemListAvatarAndNameInfoItem/ItemListAvatarAndNameInfoItem_Xcode.xcodeproj/project.pbxproj create mode 100644 submodules/ItemListAvatarAndNameInfoItem/Sources/FrameworkBundle.swift create mode 100644 submodules/ItemListAvatarAndNameInfoItem/Sources/ItemListAvatarAndNameInfoItem.h rename submodules/{TelegramUI/TelegramUI => ItemListAvatarAndNameInfoItem/Sources}/ItemListAvatarAndNameItem.swift (89%) create mode 100644 submodules/ItemListPeerActionItem/Info.plist create mode 100644 submodules/ItemListPeerActionItem/ItemListPeerActionItem_Xcode.xcodeproj/project.pbxproj create mode 100644 submodules/ItemListPeerActionItem/Sources/ItemListPeerActionItem.h rename submodules/{TelegramUI/TelegramUI => ItemListPeerActionItem/Sources}/ItemListPeerActionItem.swift (91%) create mode 100644 submodules/StickerPackPreviewUI/Info.plist rename submodules/{TelegramUI/TelegramUI => StickerPackPreviewUI/Sources}/StickerPackPreviewController.swift (90%) rename submodules/{TelegramUI/TelegramUI => StickerPackPreviewUI/Sources}/StickerPackPreviewControllerNode.swift (100%) rename submodules/{TelegramUI/TelegramUI => StickerPackPreviewUI/Sources}/StickerPackPreviewGridItem.swift (99%) create mode 100644 submodules/StickerPackPreviewUI/Sources/StickerPackPreviewUI.h rename submodules/{TelegramUI/TelegramUI => StickerPackPreviewUI/Sources}/StickerPreviewController.swift (75%) rename submodules/{TelegramUI/TelegramUI => StickerPackPreviewUI/Sources}/StickerPreviewControllerNode.swift (100%) rename submodules/{TelegramUI/TelegramUI => StickerPackPreviewUI/Sources}/StickerPreviewPeekContent.swift (83%) create mode 100644 submodules/StickerPackPreviewUI/StickerPackPreviewUI_Xcode.xcodeproj/project.pbxproj delete mode 100644 submodules/TelegramUI/TelegramUI/ChatMultipleAvatarsNavigationNode.swift delete mode 100644 submodules/TelegramUI/TelegramUI/MetalAnimationRenderer.swift delete mode 100644 submodules/TelegramUI/TelegramUI/MultipleAvatarsNode.swift delete mode 100644 submodules/TelegramUI/third-party/astc/astc/bitmanip.h delete mode 100644 submodules/TelegramUI/third-party/astc/astc/colors.h delete mode 100644 submodules/TelegramUI/third-party/astc/astc/compress_block.cc delete mode 100644 submodules/TelegramUI/third-party/astc/astc/compress_block.h delete mode 100644 submodules/TelegramUI/third-party/astc/astc/compress_texture.cc delete mode 100644 submodules/TelegramUI/third-party/astc/astc/compress_texture.h delete mode 100644 submodules/TelegramUI/third-party/astc/astc/constants.h delete mode 100644 submodules/TelegramUI/third-party/astc/astc/data_size.h delete mode 100644 submodules/TelegramUI/third-party/astc/astc/dcheck.h delete mode 100644 submodules/TelegramUI/third-party/astc/astc/endpoints.h delete mode 100644 submodules/TelegramUI/third-party/astc/astc/endpoints_bounding_box.h delete mode 100644 submodules/TelegramUI/third-party/astc/astc/endpoints_encode.h delete mode 100644 submodules/TelegramUI/third-party/astc/astc/endpoints_min_max.h delete mode 100644 submodules/TelegramUI/third-party/astc/astc/endpoints_principal_components.cc delete mode 100644 submodules/TelegramUI/third-party/astc/astc/endpoints_principal_components.h delete mode 100644 submodules/TelegramUI/third-party/astc/astc/endpoints_quantize.h delete mode 100644 submodules/TelegramUI/third-party/astc/astc/integer_sequence_encoding.h delete mode 100644 submodules/TelegramUI/third-party/astc/astc/matrix.cc delete mode 100644 submodules/TelegramUI/third-party/astc/astc/matrix.h delete mode 100644 submodules/TelegramUI/third-party/astc/astc/meson.build delete mode 100644 submodules/TelegramUI/third-party/astc/astc/misc.h delete mode 100644 submodules/TelegramUI/third-party/astc/astc/range.h delete mode 100644 submodules/TelegramUI/third-party/astc/astc/store_block.h delete mode 100644 submodules/TelegramUI/third-party/astc/astc/tables_color_quantization.h delete mode 100644 submodules/TelegramUI/third-party/astc/astc/tables_data_size.h delete mode 100644 submodules/TelegramUI/third-party/astc/astc/tables_integer_sequence_encoding.h delete mode 100644 submodules/TelegramUI/third-party/astc/astc/vector.h delete mode 100644 submodules/TelegramUI/third-party/astc/astc/weights_quantize.h delete mode 100644 submodules/TelegramUI/third-party/astc/astc/weights_quantize_table.h delete mode 100644 submodules/TelegramUI/third-party/astc/compress/astc.cc delete mode 100644 submodules/TelegramUI/third-party/astc/compress/astc.h delete mode 100644 submodules/TelegramUI/third-party/astc/image/bgra.cc delete mode 100644 submodules/TelegramUI/third-party/astc/image/bgra.h delete mode 100644 submodules/TelegramUI/third-party/astc/image/color.h delete mode 100644 submodules/TelegramUI/third-party/astc/image/compressed.cc delete mode 100644 submodules/TelegramUI/third-party/astc/image/compressed.h delete mode 100644 submodules/TelegramUI/third-party/astc/pybits/__pycache__/bise.cpython-37.pyc delete mode 100644 submodules/TelegramUI/third-party/astc/pybits/__pycache__/bitset.cpython-37.pyc delete mode 100644 submodules/TelegramUI/third-party/astc/pybits/__pycache__/datasize.cpython-37.pyc delete mode 100644 submodules/TelegramUI/third-party/astc/pybits/__pycache__/endpointmodes.cpython-37.pyc delete mode 100644 submodules/TelegramUI/third-party/astc/pybits/__pycache__/partitions.cpython-37.pyc delete mode 100644 submodules/TelegramUI/third-party/astc/pybits/__pycache__/quantize.cpython-37.pyc delete mode 100644 submodules/TelegramUI/third-party/astc/pybits/__pycache__/range.cpython-37.pyc delete mode 100644 submodules/TelegramUI/third-party/astc/pybits/bise.py delete mode 100644 submodules/TelegramUI/third-party/astc/pybits/bitset.py delete mode 100644 submodules/TelegramUI/third-party/astc/pybits/codegen.py delete mode 100644 submodules/TelegramUI/third-party/astc/pybits/datainfo.py delete mode 100644 submodules/TelegramUI/third-party/astc/pybits/datasize.py delete mode 100644 submodules/TelegramUI/third-party/astc/pybits/endpointmodes.py delete mode 100644 submodules/TelegramUI/third-party/astc/pybits/partition-images.py delete mode 100644 submodules/TelegramUI/third-party/astc/pybits/partitions.py delete mode 100644 submodules/TelegramUI/third-party/astc/pybits/quantize.py delete mode 100644 submodules/TelegramUI/third-party/astc/pybits/range.py delete mode 100644 submodules/TelegramUI/third-party/bc1/BC1Compression.cpp delete mode 100644 submodules/TelegramUI/third-party/bc1/BC1Compression.h delete mode 100644 submodules/TelegramUI/third-party/bc1/BMPImage.cpp delete mode 100644 submodules/TelegramUI/third-party/bc1/BMPImage.h delete mode 100644 submodules/TelegramUI/third-party/bc1/ColorVec.h delete mode 100644 submodules/TelegramUI/third-party/bc1/DDSImage.cpp delete mode 100644 submodules/TelegramUI/third-party/bc1/DDSImage.h delete mode 100644 submodules/TelegramUI/third-party/bc1/Image.cpp delete mode 100644 submodules/TelegramUI/third-party/bc1/Image.h delete mode 100644 submodules/TelegramUI/third-party/bc1/TextureCompression.cpp delete mode 100644 submodules/TelegramUI/third-party/bc1/TextureCompression.h delete mode 100644 submodules/TelegramUI/third-party/bc1/TypeDefinitions.h create mode 100644 submodules/YuvConversion/Info.plist rename submodules/{TelegramUI/TelegramUI => YuvConversion/Sources}/YUV.h (100%) rename submodules/{TelegramUI/TelegramUI => YuvConversion/Sources}/YUV.m (100%) create mode 100644 submodules/YuvConversion/Sources/YuvConversion.h create mode 100644 submodules/YuvConversion/YuvConversion.xcodeproj/project.pbxproj diff --git a/Telegram-iOS.xcworkspace/contents.xcworkspacedata b/Telegram-iOS.xcworkspace/contents.xcworkspacedata index 45460afba4..78ab735223 100644 --- a/Telegram-iOS.xcworkspace/contents.xcworkspacedata +++ b/Telegram-iOS.xcworkspace/contents.xcworkspacedata @@ -89,6 +89,9 @@ + + @@ -278,6 +281,12 @@ + + + + + + + + diff --git a/submodules/AccountContext/Sources/ChatController.swift b/submodules/AccountContext/Sources/ChatController.swift index 598493f70c..080957b67e 100644 --- a/submodules/AccountContext/Sources/ChatController.swift +++ b/submodules/AccountContext/Sources/ChatController.swift @@ -277,6 +277,8 @@ public final class ChatEmbeddedInterfaceState: PeerChatListEmbeddedInterfaceStat public protocol ChatController: ViewController { var chatLocation: ChatLocation { get } var canReadHistory: ValuePromise { get } + var parentController: ViewController? { get set } func updatePresentationMode(_ mode: ChatControllerPresentationMode) + func beginMessageSearch(_ query: String) } diff --git a/submodules/AnimationUI/AnimationUI_Xcode.xcodeproj/project.pbxproj b/submodules/AnimationUI/AnimationUI_Xcode.xcodeproj/project.pbxproj index b19efa1d83..495c71077b 100644 --- a/submodules/AnimationUI/AnimationUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/AnimationUI/AnimationUI_Xcode.xcodeproj/project.pbxproj @@ -7,6 +7,22 @@ objects = { /* Begin PBXBuildFile section */ + D03E3E4A2304B4CC0049C28B /* RLottie.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E492304B4CC0049C28B /* RLottie.framework */; }; + D03E3E4F2304B50A0049C28B /* AnimatedStickerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3E4D2304B50A0049C28B /* AnimatedStickerNode.swift */; }; + D03E3E502304B50A0049C28B /* AnimatedStickerUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3E4E2304B50A0049C28B /* AnimatedStickerUtils.swift */; }; + D03E3E522304B51A0049C28B /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E512304B51A0049C28B /* Postbox.framework */; }; + D03E3E542304B51E0049C28B /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E532304B51E0049C28B /* TelegramCore.framework */; }; + D03E3E562304B52F0049C28B /* libcompression.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E552304B52F0049C28B /* libcompression.tbd */; }; + D03E3E582304B53B0049C28B /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E572304B53B0049C28B /* Display.framework */; }; + D03E3E5A2304B5400049C28B /* GZip.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E592304B5400049C28B /* GZip.framework */; }; + D03E3E5C2304B5450049C28B /* Tuples.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E5B2304B5450049C28B /* Tuples.framework */; }; + D03E3E5E2304B5490049C28B /* MediaResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E5D2304B5490049C28B /* MediaResources.framework */; }; + D03E3E602304B54E0049C28B /* StickerResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E5F2304B54E0049C28B /* StickerResources.framework */; }; + D03E3E622304B55F0049C28B /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E612304B55F0049C28B /* SwiftSignalKit.framework */; }; + D03E3E642304B5640049C28B /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E632304B5640049C28B /* MobileCoreServices.framework */; }; + D03E3E672304B61A0049C28B /* AnimationRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3E652304B61A0049C28B /* AnimationRenderer.swift */; }; + D03E3E682304B61A0049C28B /* SoftwareAnimationRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3E662304B61A0049C28B /* SoftwareAnimationRenderer.swift */; }; + D03E3E8E2304B6EC0049C28B /* YuvConversion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E8D2304B6EC0049C28B /* YuvConversion.framework */; }; D060187122F35FCD00796784 /* AnimationUI.h in Headers */ = {isa = PBXBuildFile; fileRef = D060186F22F35FCD00796784 /* AnimationUI.h */; settings = {ATTRIBUTES = (Public, ); }; }; D06018A422F361E800796784 /* AnimationNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06018A322F361E800796784 /* AnimationNode.swift */; }; D06018A722F361F400796784 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D06018A622F361F400796784 /* Foundation.framework */; }; @@ -17,6 +33,22 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + D03E3E492304B4CC0049C28B /* RLottie.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = RLottie.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3E4D2304B50A0049C28B /* AnimatedStickerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AnimatedStickerNode.swift; sourceTree = ""; }; + D03E3E4E2304B50A0049C28B /* AnimatedStickerUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AnimatedStickerUtils.swift; sourceTree = ""; }; + D03E3E512304B51A0049C28B /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3E532304B51E0049C28B /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3E552304B52F0049C28B /* libcompression.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libcompression.tbd; path = usr/lib/libcompression.tbd; sourceTree = SDKROOT; }; + D03E3E572304B53B0049C28B /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3E592304B5400049C28B /* GZip.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = GZip.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3E5B2304B5450049C28B /* Tuples.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Tuples.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3E5D2304B5490049C28B /* MediaResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MediaResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3E5F2304B54E0049C28B /* StickerResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = StickerResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3E612304B55F0049C28B /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3E632304B5640049C28B /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; }; + D03E3E652304B61A0049C28B /* AnimationRenderer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AnimationRenderer.swift; sourceTree = ""; }; + D03E3E662304B61A0049C28B /* SoftwareAnimationRenderer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SoftwareAnimationRenderer.swift; sourceTree = ""; }; + D03E3E8D2304B6EC0049C28B /* YuvConversion.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = YuvConversion.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D060186C22F35FCD00796784 /* AnimationUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = AnimationUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D060186F22F35FCD00796784 /* AnimationUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AnimationUI.h; sourceTree = ""; }; D060187022F35FCD00796784 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -33,6 +65,18 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D03E3E8E2304B6EC0049C28B /* YuvConversion.framework in Frameworks */, + D03E3E642304B5640049C28B /* MobileCoreServices.framework in Frameworks */, + D03E3E622304B55F0049C28B /* SwiftSignalKit.framework in Frameworks */, + D03E3E602304B54E0049C28B /* StickerResources.framework in Frameworks */, + D03E3E5E2304B5490049C28B /* MediaResources.framework in Frameworks */, + D03E3E5C2304B5450049C28B /* Tuples.framework in Frameworks */, + D03E3E5A2304B5400049C28B /* GZip.framework in Frameworks */, + D03E3E582304B53B0049C28B /* Display.framework in Frameworks */, + D03E3E562304B52F0049C28B /* libcompression.tbd in Frameworks */, + D03E3E542304B51E0049C28B /* TelegramCore.framework in Frameworks */, + D03E3E522304B51A0049C28B /* Postbox.framework in Frameworks */, + D03E3E4A2304B4CC0049C28B /* RLottie.framework in Frameworks */, D06018AD22F361FF00796784 /* Lottie.framework in Frameworks */, D06018AB22F361FC00796784 /* AsyncDisplayKit.framework in Frameworks */, D06018A922F361F900796784 /* UIKit.framework in Frameworks */, @@ -64,6 +108,10 @@ D060186E22F35FCD00796784 /* Sources */ = { isa = PBXGroup; children = ( + D03E3E652304B61A0049C28B /* AnimationRenderer.swift */, + D03E3E662304B61A0049C28B /* SoftwareAnimationRenderer.swift */, + D03E3E4D2304B50A0049C28B /* AnimatedStickerNode.swift */, + D03E3E4E2304B50A0049C28B /* AnimatedStickerUtils.swift */, D06018A322F361E800796784 /* AnimationNode.swift */, D060186F22F35FCD00796784 /* AnimationUI.h */, D06018AE22F3641F00796784 /* FrameworkBundle.swift */, @@ -74,6 +122,18 @@ D06018A522F361F400796784 /* Frameworks */ = { isa = PBXGroup; children = ( + D03E3E8D2304B6EC0049C28B /* YuvConversion.framework */, + D03E3E632304B5640049C28B /* MobileCoreServices.framework */, + D03E3E612304B55F0049C28B /* SwiftSignalKit.framework */, + D03E3E5F2304B54E0049C28B /* StickerResources.framework */, + D03E3E5D2304B5490049C28B /* MediaResources.framework */, + D03E3E5B2304B5450049C28B /* Tuples.framework */, + D03E3E592304B5400049C28B /* GZip.framework */, + D03E3E572304B53B0049C28B /* Display.framework */, + D03E3E552304B52F0049C28B /* libcompression.tbd */, + D03E3E532304B51E0049C28B /* TelegramCore.framework */, + D03E3E512304B51A0049C28B /* Postbox.framework */, + D03E3E492304B4CC0049C28B /* RLottie.framework */, D06018AC22F361FF00796784 /* Lottie.framework */, D06018AA22F361FC00796784 /* AsyncDisplayKit.framework */, D06018A822F361F800796784 /* UIKit.framework */, @@ -162,7 +222,11 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + D03E3E672304B61A0049C28B /* AnimationRenderer.swift in Sources */, + D03E3E4F2304B50A0049C28B /* AnimatedStickerNode.swift in Sources */, D06018AF22F3641F00796784 /* FrameworkBundle.swift in Sources */, + D03E3E502304B50A0049C28B /* AnimatedStickerUtils.swift in Sources */, + D03E3E682304B61A0049C28B /* SoftwareAnimationRenderer.swift in Sources */, D06018A422F361E800796784 /* AnimationNode.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/submodules/TelegramUI/TelegramUI/AnimatedStickerNode.swift b/submodules/AnimationUI/Sources/AnimatedStickerNode.swift similarity index 93% rename from submodules/TelegramUI/TelegramUI/AnimatedStickerNode.swift rename to submodules/AnimationUI/Sources/AnimatedStickerNode.swift index da8e1d3c37..460ca98e2c 100644 --- a/submodules/TelegramUI/TelegramUI/AnimatedStickerNode.swift +++ b/submodules/AnimationUI/Sources/AnimatedStickerNode.swift @@ -11,34 +11,6 @@ import Tuples import MediaResources import StickerResources -private final class AnimationFrameCache { - private var cache: [Int: NSPurgeableData] = [:] - - func get(index: Int, _ f: (NSPurgeableData?) -> Void) { - guard let data = self.cache[index] else { - f(nil) - return - } - if data.beginContentAccess() { - f(data) - data.endContentAccess() - } else { - self.cache.removeValue(forKey: index) - f(nil) - } - } - - func set(index: Int, bytes: UnsafeRawPointer, length: Int) { - let data = NSPurgeableData(bytes: bytes, length: length) - data.endContentAccess() - self.cache[index] = data - } - - func removeAll() { - self.cache.removeAll() - } -} - private let sharedQueue = Queue() private class AnimatedStickerNodeDisplayEvents: ASDisplayNode { @@ -70,12 +42,12 @@ private class AnimatedStickerNodeDisplayEvents: ASDisplayNode { } } -enum AnimatedStickerMode { +public enum AnimatedStickerMode { case cached case direct } -enum AnimatedStickerPlaybackMode { +public enum AnimatedStickerPlaybackMode { case once case loop } @@ -329,7 +301,7 @@ public struct AnimatedStickerStatus: Equatable { } } -final class AnimatedStickerNode: ASDisplayNode { +public final class AnimatedStickerNode: ASDisplayNode { private let queue: Queue private var account: Account? private var fileReference: FileMediaReference? @@ -337,8 +309,8 @@ final class AnimatedStickerNode: ASDisplayNode { private let fetchDisposable = MetaDisposable() private let eventsNode: AnimatedStickerNodeDisplayEvents - var started: () -> Void = {} - var reportedStarted = false + public var started: () -> Void = {} + private var reportedStarted = false private let timer = Atomic(value: nil) @@ -355,7 +327,7 @@ final class AnimatedStickerNode: ASDisplayNode { return self.playbackStatus.get() } - var visibility = false { + public var visibility = false { didSet { if self.visibility != oldValue { self.updateIsPlaying() @@ -371,7 +343,7 @@ final class AnimatedStickerNode: ASDisplayNode { } } - override init() { + override public init() { self.queue = sharedQueue self.eventsNode = AnimatedStickerNodeDisplayEvents() @@ -392,7 +364,7 @@ final class AnimatedStickerNode: ASDisplayNode { self.timer.swap(nil)?.invalidate() } - override func didLoad() { + override public func didLoad() { super.didLoad() #if targetEnvironment(simulator) @@ -405,7 +377,7 @@ final class AnimatedStickerNode: ASDisplayNode { self.addSubnode(self.renderer!) } - func setup(account: Account, resource: MediaResource, fitzModifier: EmojiFitzModifier? = nil, width: Int, height: Int, playbackMode: AnimatedStickerPlaybackMode = .loop, mode: AnimatedStickerMode) { + public func setup(account: Account, resource: MediaResource, fitzModifier: EmojiFitzModifier? = nil, width: Int, height: Int, playbackMode: AnimatedStickerPlaybackMode = .loop, mode: AnimatedStickerMode) { if width < 2 || height < 2 { return } @@ -437,7 +409,7 @@ final class AnimatedStickerNode: ASDisplayNode { } } - func reset() { + public func reset() { self.disposable.set(nil) self.fetchDisposable.set(nil) } @@ -454,7 +426,7 @@ final class AnimatedStickerNode: ASDisplayNode { } } - func play() { + public func play() { let directData = self.directData let cachedData = self.cachedData let queue = self.queue @@ -517,12 +489,12 @@ final class AnimatedStickerNode: ASDisplayNode { } } - func stop() { + public func stop() { self.reportedStarted = false self.timer.swap(nil)?.invalidate() } - func seekToStart() { + public func seekToStart() { self.isPlaying = false let directData = self.directData @@ -576,7 +548,7 @@ final class AnimatedStickerNode: ASDisplayNode { } } - func playIfNeeded() -> Bool { + public func playIfNeeded() -> Bool { if !self.isPlaying { self.isPlaying = true self.play() @@ -585,7 +557,7 @@ final class AnimatedStickerNode: ASDisplayNode { return false } - func updateLayout(size: CGSize) { + public func updateLayout(size: CGSize) { self.renderer?.frame = CGRect(origin: CGPoint(), size: size) } } diff --git a/submodules/TelegramUI/TelegramUI/AnimatedStickerUtils.swift b/submodules/AnimationUI/Sources/AnimatedStickerUtils.swift similarity index 97% rename from submodules/TelegramUI/TelegramUI/AnimatedStickerUtils.swift rename to submodules/AnimationUI/Sources/AnimatedStickerUtils.swift index 9d8aeb6d23..5d9c5a81b7 100644 --- a/submodules/TelegramUI/TelegramUI/AnimatedStickerUtils.swift +++ b/submodules/AnimationUI/Sources/AnimatedStickerUtils.swift @@ -4,13 +4,13 @@ import SwiftSignalKit import Postbox import Display import TelegramCore -import TelegramUIPrivateModule import Compression import GZip import RLottie import MediaResources import MobileCoreServices import MediaResources +import YuvConversion let colorKeyRegex = try? NSRegularExpression(pattern: "\"k\":\\[[\\d\\.]+\\,[\\d\\.]+\\,[\\d\\.]+\\,[\\d\\.]+\\]") @@ -85,7 +85,7 @@ private func transformedWithFitzModifier(data: Data, fitzModifier: EmojiFitzModi } } -func fetchCompressedLottieFirstFrameAJpeg(data: Data, size: CGSize, fitzModifier: EmojiFitzModifier? = nil, cacheKey: String) -> Signal { +public func fetchCompressedLottieFirstFrameAJpeg(data: Data, size: CGSize, fitzModifier: EmojiFitzModifier? = nil, cacheKey: String) -> Signal { return Signal({ subscriber in let queue = Queue() @@ -182,7 +182,7 @@ private let threadPool: ThreadPool = { }() @available(iOS 9.0, *) -func experimentalConvertCompressedLottieToCombinedMp4(data: Data, size: CGSize, fitzModifier: EmojiFitzModifier? = nil, cacheKey: String) -> Signal { +public func experimentalConvertCompressedLottieToCombinedMp4(data: Data, size: CGSize, fitzModifier: EmojiFitzModifier? = nil, cacheKey: String) -> Signal { return Signal({ subscriber in let cancelled = Atomic(value: false) diff --git a/submodules/TelegramUI/TelegramUI/AnimationRenderer.swift b/submodules/AnimationUI/Sources/AnimationRenderer.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/AnimationRenderer.swift rename to submodules/AnimationUI/Sources/AnimationRenderer.swift diff --git a/submodules/TelegramUI/TelegramUI/SoftwareAnimationRenderer.swift b/submodules/AnimationUI/Sources/SoftwareAnimationRenderer.swift similarity index 97% rename from submodules/TelegramUI/TelegramUI/SoftwareAnimationRenderer.swift rename to submodules/AnimationUI/Sources/SoftwareAnimationRenderer.swift index f13c50adea..252cd89ae3 100644 --- a/submodules/TelegramUI/TelegramUI/SoftwareAnimationRenderer.swift +++ b/submodules/AnimationUI/Sources/SoftwareAnimationRenderer.swift @@ -3,7 +3,7 @@ import UIKit import AsyncDisplayKit import Display import SwiftSignalKit -import TelegramUIPrivateModule +import YuvConversion final class SoftwareAnimationRenderer: ASDisplayNode, AnimationRenderer { func render(queue: Queue, width: Int, height: Int, bytesPerRow: Int, data: Data, type: AnimationRendererFrameType, completion: @escaping () -> Void) { diff --git a/submodules/HashtagSearchUI/HashtagSearchUI_Xcode.xcodeproj/project.pbxproj b/submodules/HashtagSearchUI/HashtagSearchUI_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..e65fb58175 --- /dev/null +++ b/submodules/HashtagSearchUI/HashtagSearchUI_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,587 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E3D742304AC350049C28B /* HashtagSearchUI.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E3D722304AC350049C28B /* HashtagSearchUI.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E3D822304ACD90049C28B /* HashtagSearchControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3D802304ACD80049C28B /* HashtagSearchControllerNode.swift */; }; + D03E3D832304ACD90049C28B /* HashtagSearchController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3D812304ACD80049C28B /* HashtagSearchController.swift */; }; + D03E3D862304ACE80049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3D852304ACE80049C28B /* Foundation.framework */; }; + D03E3D882304ACEC0049C28B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3D872304ACEC0049C28B /* UIKit.framework */; }; + D03E3D8A2304ACEF0049C28B /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3D892304ACEF0049C28B /* Display.framework */; }; + D03E3D8C2304ACF30049C28B /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3D8B2304ACF30049C28B /* TelegramCore.framework */; }; + D03E3D8E2304ACF70049C28B /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3D8D2304ACF70049C28B /* Postbox.framework */; }; + D03E3D902304ACFB0049C28B /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3D8F2304ACFB0049C28B /* SwiftSignalKit.framework */; }; + D03E3D922304ACFF0049C28B /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3D912304ACFF0049C28B /* TelegramPresentationData.framework */; }; + D03E3D942304AD040049C28B /* TelegramBaseController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3D932304AD040049C28B /* TelegramBaseController.framework */; }; + D03E3D962304AD090049C28B /* AccountContext.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3D952304AD090049C28B /* AccountContext.framework */; }; + D03E3D982304AD0E0049C28B /* ChatListUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3D972304AD0E0049C28B /* ChatListUI.framework */; }; + D03E3D9A2304AD1B0049C28B /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3D992304AD1B0049C28B /* AsyncDisplayKit.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E3D6F2304AC350049C28B /* HashtagSearchUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = HashtagSearchUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3D722304AC350049C28B /* HashtagSearchUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HashtagSearchUI.h; sourceTree = ""; }; + D03E3D732304AC350049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E3D802304ACD80049C28B /* HashtagSearchControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HashtagSearchControllerNode.swift; sourceTree = ""; }; + D03E3D812304ACD80049C28B /* HashtagSearchController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HashtagSearchController.swift; sourceTree = ""; }; + D03E3D852304ACE80049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E3D872304ACEC0049C28B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D03E3D892304ACEF0049C28B /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3D8B2304ACF30049C28B /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3D8D2304ACF70049C28B /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3D8F2304ACFB0049C28B /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3D912304ACFF0049C28B /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3D932304AD040049C28B /* TelegramBaseController.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramBaseController.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3D952304AD090049C28B /* AccountContext.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AccountContext.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3D972304AD0E0049C28B /* ChatListUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ChatListUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3D992304AD1B0049C28B /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E3D6C2304AC350049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3D9A2304AD1B0049C28B /* AsyncDisplayKit.framework in Frameworks */, + D03E3D982304AD0E0049C28B /* ChatListUI.framework in Frameworks */, + D03E3D962304AD090049C28B /* AccountContext.framework in Frameworks */, + D03E3D942304AD040049C28B /* TelegramBaseController.framework in Frameworks */, + D03E3D922304ACFF0049C28B /* TelegramPresentationData.framework in Frameworks */, + D03E3D902304ACFB0049C28B /* SwiftSignalKit.framework in Frameworks */, + D03E3D8E2304ACF70049C28B /* Postbox.framework in Frameworks */, + D03E3D8C2304ACF30049C28B /* TelegramCore.framework in Frameworks */, + D03E3D8A2304ACEF0049C28B /* Display.framework in Frameworks */, + D03E3D882304ACEC0049C28B /* UIKit.framework in Frameworks */, + D03E3D862304ACE80049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E3D652304AC350049C28B = { + isa = PBXGroup; + children = ( + D03E3D732304AC350049C28B /* Info.plist */, + D03E3D712304AC350049C28B /* Sources */, + D03E3D702304AC350049C28B /* Products */, + D03E3D842304ACE70049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E3D702304AC350049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E3D6F2304AC350049C28B /* HashtagSearchUI.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E3D712304AC350049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E3D812304ACD80049C28B /* HashtagSearchController.swift */, + D03E3D802304ACD80049C28B /* HashtagSearchControllerNode.swift */, + D03E3D722304AC350049C28B /* HashtagSearchUI.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E3D842304ACE70049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E3D992304AD1B0049C28B /* AsyncDisplayKit.framework */, + D03E3D972304AD0E0049C28B /* ChatListUI.framework */, + D03E3D952304AD090049C28B /* AccountContext.framework */, + D03E3D932304AD040049C28B /* TelegramBaseController.framework */, + D03E3D912304ACFF0049C28B /* TelegramPresentationData.framework */, + D03E3D8F2304ACFB0049C28B /* SwiftSignalKit.framework */, + D03E3D8D2304ACF70049C28B /* Postbox.framework */, + D03E3D8B2304ACF30049C28B /* TelegramCore.framework */, + D03E3D892304ACEF0049C28B /* Display.framework */, + D03E3D872304ACEC0049C28B /* UIKit.framework */, + D03E3D852304ACE80049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E3D6A2304AC350049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3D742304AC350049C28B /* HashtagSearchUI.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E3D6E2304AC350049C28B /* HashtagSearchUI */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E3D772304AC350049C28B /* Build configuration list for PBXNativeTarget "HashtagSearchUI" */; + buildPhases = ( + D03E3D6A2304AC350049C28B /* Headers */, + D03E3D6B2304AC350049C28B /* Sources */, + D03E3D6C2304AC350049C28B /* Frameworks */, + D03E3D6D2304AC350049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = HashtagSearchUI; + productName = HashtagSearchUI; + productReference = D03E3D6F2304AC350049C28B /* HashtagSearchUI.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E3D662304AC350049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E3D6E2304AC350049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E3D692304AC350049C28B /* Build configuration list for PBXProject "HashtagSearchUI_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E3D652304AC350049C28B; + productRefGroup = D03E3D702304AC350049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E3D6E2304AC350049C28B /* HashtagSearchUI */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E3D6D2304AC350049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E3D6B2304AC350049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3D832304ACD90049C28B /* HashtagSearchController.swift in Sources */, + D03E3D822304ACD90049C28B /* HashtagSearchControllerNode.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E3D752304AC350049C28B /* 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; + }; + D03E3D762304AC350049C28B /* 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; + }; + D03E3D782304AC350049C28B /* 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.HashtagSearchUI; + 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; + }; + D03E3D792304AC350049C28B /* 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.HashtagSearchUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E3D7A2304AC5C0049C28B /* 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; + }; + D03E3D7B2304AC5C0049C28B /* 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.HashtagSearchUI; + 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; + }; + D03E3D7C2304AC660049C28B /* 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; + }; + D03E3D7D2304AC660049C28B /* 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.HashtagSearchUI; + 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 */ + D03E3D692304AC350049C28B /* Build configuration list for PBXProject "HashtagSearchUI_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E3D752304AC350049C28B /* DebugAppStoreLLC */, + D03E3D7A2304AC5C0049C28B /* DebugHockeyapp */, + D03E3D762304AC350049C28B /* ReleaseAppStoreLLC */, + D03E3D7C2304AC660049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E3D772304AC350049C28B /* Build configuration list for PBXNativeTarget "HashtagSearchUI" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E3D782304AC350049C28B /* DebugAppStoreLLC */, + D03E3D7B2304AC5C0049C28B /* DebugHockeyapp */, + D03E3D792304AC350049C28B /* ReleaseAppStoreLLC */, + D03E3D7D2304AC660049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E3D662304AC350049C28B /* Project object */; +} diff --git a/submodules/HashtagSearchUI/Info.plist b/submodules/HashtagSearchUI/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/HashtagSearchUI/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/HashtagSearchController.swift b/submodules/HashtagSearchUI/Sources/HashtagSearchController.swift similarity index 96% rename from submodules/TelegramUI/TelegramUI/HashtagSearchController.swift rename to submodules/HashtagSearchUI/Sources/HashtagSearchController.swift index 46acae68f3..602e896b6a 100644 --- a/submodules/TelegramUI/TelegramUI/HashtagSearchController.swift +++ b/submodules/HashtagSearchUI/Sources/HashtagSearchController.swift @@ -9,7 +9,7 @@ import TelegramBaseController import AccountContext import ChatListUI -final class HashtagSearchController: TelegramBaseController { +public final class HashtagSearchController: TelegramBaseController { private let queue = Queue() private let context: AccountContext @@ -24,7 +24,7 @@ final class HashtagSearchController: TelegramBaseController { return self.displayNode as! HashtagSearchControllerNode } - init(context: AccountContext, peer: Peer?, query: String) { + public init(context: AccountContext, peer: Peer?, query: String) { self.context = context self.peer = peer self.query = query @@ -91,7 +91,7 @@ final class HashtagSearchController: TelegramBaseController { self.openMessageFromSearchDisposable.dispose() } - override func loadDisplayNode() { + override public func loadDisplayNode() { self.displayNode = HashtagSearchControllerNode(context: self.context, peer: self.peer, query: self.query, theme: self.presentationData.theme, strings: self.presentationData.strings) if let chatController = self.controllerNode.chatController { chatController.parentController = self diff --git a/submodules/TelegramUI/TelegramUI/HashtagSearchControllerNode.swift b/submodules/HashtagSearchUI/Sources/HashtagSearchControllerNode.swift similarity index 97% rename from submodules/TelegramUI/TelegramUI/HashtagSearchControllerNode.swift rename to submodules/HashtagSearchUI/Sources/HashtagSearchControllerNode.swift index 7fa785a382..163b06c1e8 100644 --- a/submodules/TelegramUI/TelegramUI/HashtagSearchControllerNode.swift +++ b/submodules/HashtagSearchUI/Sources/HashtagSearchControllerNode.swift @@ -13,7 +13,7 @@ final class HashtagSearchControllerNode: ASDisplayNode { private let segmentedControl: UISegmentedControl let listNode: ListView - var chatController: ChatControllerImpl? + var chatController: ChatController? private let context: AccountContext private let query: String @@ -40,7 +40,7 @@ final class HashtagSearchControllerNode: ASDisplayNode { self.segmentedControl.selectedSegmentIndex = 0 if let peer = peer { - self.chatController = ChatControllerImpl(context: context, chatLocation: .peer(peer.id), botStart: nil, mode: .inline) + self.chatController = context.sharedContext.makeChatController(context: context, chatLocation: .peer(peer.id), subject: nil, botStart: nil, mode: .inline) } else { self.chatController = nil } diff --git a/submodules/HashtagSearchUI/Sources/HashtagSearchUI.h b/submodules/HashtagSearchUI/Sources/HashtagSearchUI.h new file mode 100644 index 0000000000..c5be233f9a --- /dev/null +++ b/submodules/HashtagSearchUI/Sources/HashtagSearchUI.h @@ -0,0 +1,19 @@ +// +// HashtagSearchUI.h +// HashtagSearchUI +// +// Created by Peter on 8/14/19. +// Copyright © 2019 Telegram Messenger LLP. All rights reserved. +// + +#import + +//! Project version number for HashtagSearchUI. +FOUNDATION_EXPORT double HashtagSearchUIVersionNumber; + +//! Project version string for HashtagSearchUI. +FOUNDATION_EXPORT const unsigned char HashtagSearchUIVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/submodules/ItemListAvatarAndNameInfoItem/Info.plist b/submodules/ItemListAvatarAndNameInfoItem/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/ItemListAvatarAndNameInfoItem/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/ItemListAvatarAndNameInfoItem/ItemListAvatarAndNameInfoItem_Xcode.xcodeproj/project.pbxproj b/submodules/ItemListAvatarAndNameInfoItem/ItemListAvatarAndNameInfoItem_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..de2f1b650f --- /dev/null +++ b/submodules/ItemListAvatarAndNameInfoItem/ItemListAvatarAndNameInfoItem_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,595 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E3DAA2304AEDD0049C28B /* ItemListAvatarAndNameInfoItem.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E3DA82304AEDD0049C28B /* ItemListAvatarAndNameInfoItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E3DB52304AF2E0049C28B /* ItemListAvatarAndNameItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3DB42304AF2E0049C28B /* ItemListAvatarAndNameItem.swift */; }; + D03E3DB82304AF3B0049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3DB72304AF3A0049C28B /* Foundation.framework */; }; + D03E3DBA2304AF3E0049C28B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3DB92304AF3E0049C28B /* UIKit.framework */; }; + D03E3DBC2304AF410049C28B /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3DBB2304AF410049C28B /* Display.framework */; }; + D03E3DBE2304AF450049C28B /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3DBD2304AF450049C28B /* AsyncDisplayKit.framework */; }; + D03E3DC02304AF490049C28B /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3DBF2304AF490049C28B /* Postbox.framework */; }; + D03E3DC22304AF4D0049C28B /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3DC12304AF4D0049C28B /* TelegramCore.framework */; }; + D03E3DC42304AF5B0049C28B /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3DC32304AF5B0049C28B /* SwiftSignalKit.framework */; }; + D03E3DC62304AF5F0049C28B /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3DC52304AF5F0049C28B /* TelegramPresentationData.framework */; }; + D03E3DC82304AF640049C28B /* ItemListUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3DC72304AF640049C28B /* ItemListUI.framework */; }; + D03E3DCA2304AF670049C28B /* ActivityIndicator.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3DC92304AF670049C28B /* ActivityIndicator.framework */; }; + D03E3DCC2304AF6D0049C28B /* AvatarNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3DCB2304AF6D0049C28B /* AvatarNode.framework */; }; + D03E3DCE2304AF720049C28B /* TelegramStringFormatting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3DCD2304AF720049C28B /* TelegramStringFormatting.framework */; }; + D03E3DD02304AF760049C28B /* PeerPresenceStatusManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3DCF2304AF760049C28B /* PeerPresenceStatusManager.framework */; }; + D03E3DD42304AFE80049C28B /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3DD32304AFE80049C28B /* FrameworkBundle.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E3DA52304AEDD0049C28B /* ItemListAvatarAndNameInfoItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ItemListAvatarAndNameInfoItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3DA82304AEDD0049C28B /* ItemListAvatarAndNameInfoItem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ItemListAvatarAndNameInfoItem.h; sourceTree = ""; }; + D03E3DA92304AEDD0049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E3DB42304AF2E0049C28B /* ItemListAvatarAndNameItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemListAvatarAndNameItem.swift; sourceTree = ""; }; + D03E3DB72304AF3A0049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E3DB92304AF3E0049C28B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D03E3DBB2304AF410049C28B /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3DBD2304AF450049C28B /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3DBF2304AF490049C28B /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3DC12304AF4D0049C28B /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3DC32304AF5B0049C28B /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3DC52304AF5F0049C28B /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3DC72304AF640049C28B /* ItemListUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3DC92304AF670049C28B /* ActivityIndicator.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ActivityIndicator.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3DCB2304AF6D0049C28B /* AvatarNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AvatarNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3DCD2304AF720049C28B /* TelegramStringFormatting.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramStringFormatting.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3DCF2304AF760049C28B /* PeerPresenceStatusManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PeerPresenceStatusManager.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3DD32304AFE80049C28B /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E3DA22304AEDD0049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3DD02304AF760049C28B /* PeerPresenceStatusManager.framework in Frameworks */, + D03E3DCE2304AF720049C28B /* TelegramStringFormatting.framework in Frameworks */, + D03E3DCC2304AF6D0049C28B /* AvatarNode.framework in Frameworks */, + D03E3DCA2304AF670049C28B /* ActivityIndicator.framework in Frameworks */, + D03E3DC82304AF640049C28B /* ItemListUI.framework in Frameworks */, + D03E3DC62304AF5F0049C28B /* TelegramPresentationData.framework in Frameworks */, + D03E3DC42304AF5B0049C28B /* SwiftSignalKit.framework in Frameworks */, + D03E3DC22304AF4D0049C28B /* TelegramCore.framework in Frameworks */, + D03E3DC02304AF490049C28B /* Postbox.framework in Frameworks */, + D03E3DBE2304AF450049C28B /* AsyncDisplayKit.framework in Frameworks */, + D03E3DBC2304AF410049C28B /* Display.framework in Frameworks */, + D03E3DBA2304AF3E0049C28B /* UIKit.framework in Frameworks */, + D03E3DB82304AF3B0049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E3D9B2304AEDD0049C28B = { + isa = PBXGroup; + children = ( + D03E3DA92304AEDD0049C28B /* Info.plist */, + D03E3DA72304AEDD0049C28B /* Sources */, + D03E3DA62304AEDD0049C28B /* Products */, + D03E3DB62304AF3A0049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E3DA62304AEDD0049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E3DA52304AEDD0049C28B /* ItemListAvatarAndNameInfoItem.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E3DA72304AEDD0049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E3DB42304AF2E0049C28B /* ItemListAvatarAndNameItem.swift */, + D03E3DA82304AEDD0049C28B /* ItemListAvatarAndNameInfoItem.h */, + D03E3DD32304AFE80049C28B /* FrameworkBundle.swift */, + ); + path = Sources; + sourceTree = ""; + }; + D03E3DB62304AF3A0049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E3DCF2304AF760049C28B /* PeerPresenceStatusManager.framework */, + D03E3DCD2304AF720049C28B /* TelegramStringFormatting.framework */, + D03E3DCB2304AF6D0049C28B /* AvatarNode.framework */, + D03E3DC92304AF670049C28B /* ActivityIndicator.framework */, + D03E3DC72304AF640049C28B /* ItemListUI.framework */, + D03E3DC52304AF5F0049C28B /* TelegramPresentationData.framework */, + D03E3DC32304AF5B0049C28B /* SwiftSignalKit.framework */, + D03E3DC12304AF4D0049C28B /* TelegramCore.framework */, + D03E3DBF2304AF490049C28B /* Postbox.framework */, + D03E3DBD2304AF450049C28B /* AsyncDisplayKit.framework */, + D03E3DBB2304AF410049C28B /* Display.framework */, + D03E3DB92304AF3E0049C28B /* UIKit.framework */, + D03E3DB72304AF3A0049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E3DA02304AEDD0049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3DAA2304AEDD0049C28B /* ItemListAvatarAndNameInfoItem.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E3DA42304AEDD0049C28B /* ItemListAvatarAndNameInfoItem */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E3DAD2304AEDD0049C28B /* Build configuration list for PBXNativeTarget "ItemListAvatarAndNameInfoItem" */; + buildPhases = ( + D03E3DA02304AEDD0049C28B /* Headers */, + D03E3DA12304AEDD0049C28B /* Sources */, + D03E3DA22304AEDD0049C28B /* Frameworks */, + D03E3DA32304AEDD0049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = ItemListAvatarAndNameInfoItem; + productName = ItemListAvatarAndNameInfoItem; + productReference = D03E3DA52304AEDD0049C28B /* ItemListAvatarAndNameInfoItem.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E3D9C2304AEDD0049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E3DA42304AEDD0049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E3D9F2304AEDD0049C28B /* Build configuration list for PBXProject "ItemListAvatarAndNameInfoItem_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E3D9B2304AEDD0049C28B; + productRefGroup = D03E3DA62304AEDD0049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E3DA42304AEDD0049C28B /* ItemListAvatarAndNameInfoItem */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E3DA32304AEDD0049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E3DA12304AEDD0049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3DD42304AFE80049C28B /* FrameworkBundle.swift in Sources */, + D03E3DB52304AF2E0049C28B /* ItemListAvatarAndNameItem.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E3DAB2304AEDD0049C28B /* 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; + }; + D03E3DAC2304AEDD0049C28B /* 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; + }; + D03E3DAE2304AEDD0049C28B /* 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.ItemListAvatarAndNameInfoItem; + 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; + }; + D03E3DAF2304AEDD0049C28B /* 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.ItemListAvatarAndNameInfoItem; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E3DB02304AF000049C28B /* 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; + }; + D03E3DB12304AF000049C28B /* 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.ItemListAvatarAndNameInfoItem; + 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; + }; + D03E3DB22304AF080049C28B /* 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; + }; + D03E3DB32304AF080049C28B /* 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.ItemListAvatarAndNameInfoItem; + 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 */ + D03E3D9F2304AEDD0049C28B /* Build configuration list for PBXProject "ItemListAvatarAndNameInfoItem_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E3DAB2304AEDD0049C28B /* DebugAppStoreLLC */, + D03E3DB02304AF000049C28B /* DebugHockeyapp */, + D03E3DAC2304AEDD0049C28B /* ReleaseAppStoreLLC */, + D03E3DB22304AF080049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E3DAD2304AEDD0049C28B /* Build configuration list for PBXNativeTarget "ItemListAvatarAndNameInfoItem" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E3DAE2304AEDD0049C28B /* DebugAppStoreLLC */, + D03E3DB12304AF000049C28B /* DebugHockeyapp */, + D03E3DAF2304AEDD0049C28B /* ReleaseAppStoreLLC */, + D03E3DB32304AF080049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E3D9C2304AEDD0049C28B /* Project object */; +} diff --git a/submodules/ItemListAvatarAndNameInfoItem/Sources/FrameworkBundle.swift b/submodules/ItemListAvatarAndNameInfoItem/Sources/FrameworkBundle.swift new file mode 100644 index 0000000000..8ca13d7d92 --- /dev/null +++ b/submodules/ItemListAvatarAndNameInfoItem/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/ItemListAvatarAndNameInfoItem/Sources/ItemListAvatarAndNameInfoItem.h b/submodules/ItemListAvatarAndNameInfoItem/Sources/ItemListAvatarAndNameInfoItem.h new file mode 100644 index 0000000000..9335e2fb22 --- /dev/null +++ b/submodules/ItemListAvatarAndNameInfoItem/Sources/ItemListAvatarAndNameInfoItem.h @@ -0,0 +1,19 @@ +// +// ItemListAvatarAndNameInfoItem.h +// ItemListAvatarAndNameInfoItem +// +// Created by Peter on 8/15/19. +// Copyright © 2019 Telegram Messenger LLP. All rights reserved. +// + +#import + +//! Project version number for ItemListAvatarAndNameInfoItem. +FOUNDATION_EXPORT double ItemListAvatarAndNameInfoItemVersionNumber; + +//! Project version string for ItemListAvatarAndNameInfoItem. +FOUNDATION_EXPORT const unsigned char ItemListAvatarAndNameInfoItemVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/submodules/TelegramUI/TelegramUI/ItemListAvatarAndNameItem.swift b/submodules/ItemListAvatarAndNameInfoItem/Sources/ItemListAvatarAndNameItem.swift similarity index 89% rename from submodules/TelegramUI/TelegramUI/ItemListAvatarAndNameItem.swift rename to submodules/ItemListAvatarAndNameInfoItem/Sources/ItemListAvatarAndNameItem.swift index 475bdaefba..432d266f93 100644 --- a/submodules/TelegramUI/TelegramUI/ItemListAvatarAndNameItem.swift +++ b/submodules/ItemListAvatarAndNameInfoItem/Sources/ItemListAvatarAndNameItem.swift @@ -18,148 +18,108 @@ private func generateClearIcon(color: UIColor) -> UIImage? { return generateTintedImage(image: UIImage(bundleImageName: "Components/Search Bar/Clear"), color: color) } -enum ItemListAvatarAndNameInfoItemTitleType { +public enum ItemListAvatarAndNameInfoItemTitleType { case group case channel } -enum ItemListAvatarAndNameInfoItemName: Equatable { +public enum ItemListAvatarAndNameInfoItemName: Equatable { case personName(firstName: String, lastName: String) case title(title: String, type: ItemListAvatarAndNameInfoItemTitleType) - init(_ peer: Peer) { + public init(_ peer: Peer) { switch peer.indexName { - case let .personName(first, last, _, _): - self = .personName(firstName: first, lastName: last) - case let .title(title, _): - let type: ItemListAvatarAndNameInfoItemTitleType - if let peer = peer as? TelegramChannel, case .broadcast = peer.info { - type = .channel - } else { - type = .group - } - self = .title(title: title, type: type) + case let .personName(first, last, _, _): + self = .personName(firstName: first, lastName: last) + case let .title(title, _): + let type: ItemListAvatarAndNameInfoItemTitleType + if let peer = peer as? TelegramChannel, case .broadcast = peer.info { + type = .channel + } else { + type = .group + } + self = .title(title: title, type: type) } } - var composedTitle: String { + public var composedTitle: String { switch self { - case let .personName(firstName, lastName): - if !firstName.isEmpty && !lastName.isEmpty { - return firstName + " " + lastName - } else if !firstName.isEmpty { - return firstName - } else { - return lastName - } - case let .title(title, _): - return title + case let .personName(firstName, lastName): + if !firstName.isEmpty && !lastName.isEmpty { + return firstName + " " + lastName + } else if !firstName.isEmpty { + return firstName + } else { + return lastName + } + case let .title(title, _): + return title } } - func composedDisplayTitle(strings: PresentationStrings) -> String { + public func composedDisplayTitle(strings: PresentationStrings) -> String { switch self { - case let .personName(firstName, lastName): - if !firstName.isEmpty && !lastName.isEmpty { - return firstName + " " + lastName - } else if !firstName.isEmpty { - return firstName - } else if !lastName.isEmpty { - return lastName - } else { - return strings.User_DeletedAccount - } - case let .title(title, _): - return title + case let .personName(firstName, lastName): + if !firstName.isEmpty && !lastName.isEmpty { + return firstName + " " + lastName + } else if !firstName.isEmpty { + return firstName + } else if !lastName.isEmpty { + return lastName + } else { + return strings.User_DeletedAccount + } + case let .title(title, _): + return title } } - var isEmpty: Bool { + public var isEmpty: Bool { switch self { - case let .personName(firstName, _): - return firstName.isEmpty - case let .title(title, _): - return title.isEmpty - } - } - - static func ==(lhs: ItemListAvatarAndNameInfoItemName, rhs: ItemListAvatarAndNameInfoItemName) -> Bool { - switch lhs { - case let .personName(firstName, lastName): - if case .personName(firstName, lastName) = rhs { - return true - } else { - return false - } - case let .title(title, type): - if case .title(title, type) = rhs { - return true - } else { - return false - } + case let .personName(firstName, _): + return firstName.isEmpty + case let .title(title, _): + return title.isEmpty } } } -struct ItemListAvatarAndNameInfoItemState: Equatable { - let editingName: ItemListAvatarAndNameInfoItemName? - let updatingName: ItemListAvatarAndNameInfoItemName? +public struct ItemListAvatarAndNameInfoItemState: Equatable { + public var editingName: ItemListAvatarAndNameInfoItemName? + public var updatingName: ItemListAvatarAndNameInfoItemName? - init(editingName: ItemListAvatarAndNameInfoItemName? = nil, updatingName: ItemListAvatarAndNameInfoItemName? = nil) { + public init(editingName: ItemListAvatarAndNameInfoItemName? = nil, updatingName: ItemListAvatarAndNameInfoItemName? = nil) { self.editingName = editingName self.updatingName = updatingName } +} + +public final class ItemListAvatarAndNameInfoItemContext { + public var hiddenAvatarRepresentation: TelegramMediaImageRepresentation? - static func ==(lhs: ItemListAvatarAndNameInfoItemState, rhs: ItemListAvatarAndNameInfoItemState) -> Bool { - if lhs.editingName != rhs.editingName { - return false - } - if lhs.updatingName != rhs.updatingName { - return false - } - return true + public init(hiddenAvatarRepresentation: TelegramMediaImageRepresentation? = nil) { + self.hiddenAvatarRepresentation = hiddenAvatarRepresentation } } -final class ItemListAvatarAndNameInfoItemContext { - var hiddenAvatarRepresentation: TelegramMediaImageRepresentation? -} - -enum ItemListAvatarAndNameInfoItemStyle { +public enum ItemListAvatarAndNameInfoItemStyle { case plain case blocks(withTopInset: Bool, withExtendedBottomInset: Bool) } -enum ItemListAvatarAndNameInfoItemUpdatingAvatar: Equatable { +public enum ItemListAvatarAndNameInfoItemUpdatingAvatar: Equatable { case image(TelegramMediaImageRepresentation, Bool) case none - - static func ==(lhs: ItemListAvatarAndNameInfoItemUpdatingAvatar, rhs: ItemListAvatarAndNameInfoItemUpdatingAvatar) -> Bool { - switch lhs { - case let .image(representation, activity): - if case .image(representation, activity) = rhs { - return true - } else { - return false - } - case .none: - if case .none = rhs { - return true - } else { - return false - } - } - } } -enum ItemListAvatarAndNameInfoItemMode { +public enum ItemListAvatarAndNameInfoItemMode { case generic case contact case settings case editSettings } -class ItemListAvatarAndNameInfoItem: ListViewItem, ItemListItem { +public class ItemListAvatarAndNameInfoItem: ListViewItem, ItemListItem { let account: Account let theme: PresentationTheme let strings: PresentationStrings @@ -170,7 +130,7 @@ class ItemListAvatarAndNameInfoItem: ListViewItem, ItemListItem { let label: String? let cachedData: CachedPeerData? let state: ItemListAvatarAndNameInfoItemState - let sectionId: ItemListSectionId + public let sectionId: ItemListSectionId let style: ItemListAvatarAndNameInfoItemStyle let editingNameUpdated: (ItemListAvatarAndNameInfoItemName) -> Void let editingNameCompleted: () -> Void @@ -180,11 +140,11 @@ class ItemListAvatarAndNameInfoItem: ListViewItem, ItemListItem { let call: (() -> Void)? let action: (() -> Void)? let longTapAction: (() -> Void)? - let tag: ItemListItemTag? + public let tag: ItemListItemTag? - let selectable: Bool + public let selectable: Bool - init(account: Account, theme: PresentationTheme, strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat, mode: ItemListAvatarAndNameInfoItemMode, peer: Peer?, presence: PeerPresence?, label: String? = nil, cachedData: CachedPeerData?, state: ItemListAvatarAndNameInfoItemState, sectionId: ItemListSectionId, style: ItemListAvatarAndNameInfoItemStyle, editingNameUpdated: @escaping (ItemListAvatarAndNameInfoItemName) -> Void, editingNameCompleted: @escaping () -> Void = {}, avatarTapped: @escaping () -> Void, context: ItemListAvatarAndNameInfoItemContext? = nil, updatingImage: ItemListAvatarAndNameInfoItemUpdatingAvatar? = nil, call: (() -> Void)? = nil, action: (() -> Void)? = nil, longTapAction: (() -> Void)? = nil, tag: ItemListItemTag? = nil) { + public init(account: Account, theme: PresentationTheme, strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat, mode: ItemListAvatarAndNameInfoItemMode, peer: Peer?, presence: PeerPresence?, label: String? = nil, cachedData: CachedPeerData?, state: ItemListAvatarAndNameInfoItemState, sectionId: ItemListSectionId, style: ItemListAvatarAndNameInfoItemStyle, editingNameUpdated: @escaping (ItemListAvatarAndNameInfoItemName) -> Void, editingNameCompleted: @escaping () -> Void = {}, avatarTapped: @escaping () -> Void, context: ItemListAvatarAndNameInfoItemContext? = nil, updatingImage: ItemListAvatarAndNameInfoItemUpdatingAvatar? = nil, call: (() -> Void)? = nil, action: (() -> Void)? = nil, longTapAction: (() -> Void)? = nil, tag: ItemListItemTag? = nil) { self.account = account self.theme = theme self.strings = strings @@ -214,7 +174,7 @@ class ItemListAvatarAndNameInfoItem: ListViewItem, ItemListItem { } } - 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 = ItemListAvatarAndNameInfoItemNode() let (layout, apply) = node.asyncLayout()(self, params, itemListNeighbors(item: self, topItem: previousItem as? ItemListItem, bottomItem: nextItem as? ItemListItem)) @@ -228,7 +188,7 @@ class ItemListAvatarAndNameInfoItem: ListViewItem, ItemListItem { } } - func updateNode(async: @escaping (@escaping () -> Void) -> Void, node: @escaping () -> ListViewItemNode, params: ListViewItemLayoutParams, previousItem: ListViewItem?, nextItem: ListViewItem?, animation: ListViewItemUpdateAnimation, completion: @escaping (ListViewItemNodeLayout, @escaping (ListViewItemApply) -> Void) -> Void) { + public func updateNode(async: @escaping (@escaping () -> Void) -> Void, node: @escaping () -> ListViewItemNode, params: ListViewItemLayoutParams, previousItem: ListViewItem?, nextItem: ListViewItem?, animation: ListViewItemUpdateAnimation, completion: @escaping (ListViewItemNodeLayout, @escaping (ListViewItemApply) -> Void) -> Void) { Queue.mainQueue().async { if let nodeValue = node() as? ItemListAvatarAndNameInfoItemNode { var animated = true @@ -249,7 +209,7 @@ class ItemListAvatarAndNameInfoItem: ListViewItem, ItemListItem { } } - func selected(listView: ListView){ + public func selected(listView: ListView){ listView.clearHighlightAnimated(true) self.action?() } @@ -259,7 +219,7 @@ private let avatarFont = UIFont(name: ".SFCompactRounded-Semibold", size: 28.0)! private let nameFont = Font.medium(19.0) private let statusFont = Font.regular(15.0) -class ItemListAvatarAndNameInfoItemNode: ListViewItemNode, ItemListItemNode, ItemListItemFocusableNode, UITextFieldDelegate { +public class ItemListAvatarAndNameInfoItemNode: ListViewItemNode, ItemListItemNode, ItemListItemFocusableNode, UITextFieldDelegate { private let backgroundNode: ASDisplayNode private let highlightedBackgroundNode: ASDisplayNode private let topStripeNode: ASDisplayNode @@ -290,11 +250,11 @@ class ItemListAvatarAndNameInfoItemNode: ListViewItemNode, ItemListItemNode, Ite private let hiddenAvatarRepresentationDisposable = MetaDisposable() - var tag: ItemListItemTag? { + public var tag: ItemListItemTag? { return self.item?.tag } - var callButtonFrame: CGRect? { + public var callButtonFrame: CGRect? { if !self.callButton.alpha.isZero && self.callButton.supernode != nil { return self.callButton.frame } else { @@ -302,7 +262,7 @@ class ItemListAvatarAndNameInfoItemNode: ListViewItemNode, ItemListItemNode, Ite } } - init() { + public init() { self.backgroundNode = ASDisplayNode() self.backgroundNode.isLayerBacked = true @@ -365,13 +325,13 @@ class ItemListAvatarAndNameInfoItemNode: ListViewItemNode, ItemListItemNode, Ite self.hiddenAvatarRepresentationDisposable.dispose() } - override func didLoad() { + override public func didLoad() { super.didLoad() self.avatarNode.view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(self.avatarTapGesture(_:)))) } - func asyncLayout() -> (_ item: ItemListAvatarAndNameInfoItem, _ params: ListViewItemLayoutParams, _ neighbors: ItemListNeighbors) -> (ListViewItemNodeLayout, (Bool, Bool) -> Void) { + public func asyncLayout() -> (_ item: ItemListAvatarAndNameInfoItem, _ params: ListViewItemLayoutParams, _ neighbors: ItemListNeighbors) -> (ListViewItemNodeLayout, (Bool, Bool) -> Void) { let layoutNameNode = TextNode.asyncLayout(self.nameNode) let layoutStatusNode = TextNode.asyncLayout(self.statusNode) let currentOverlayImage = self.updatingAvatarOverlay.image @@ -976,7 +936,7 @@ class ItemListAvatarAndNameInfoItemNode: ListViewItemNode, ItemListItemNode, Ite } } - override func setHighlighted(_ highlighted: Bool, at point: CGPoint, animated: Bool) { + override public func setHighlighted(_ highlighted: Bool, at point: CGPoint, animated: Bool) { super.setHighlighted(highlighted, at: point, animated: animated) if highlighted { @@ -1021,7 +981,7 @@ class ItemListAvatarAndNameInfoItemNode: ListViewItemNode, ItemListItemNode, Ite button.isHidden = !textField.isFirstResponder || (textField.text?.isEmpty ?? true) } - @objc func textFieldDidChange(_ inputField: UITextField) { + @objc private func textFieldDidChange(_ inputField: UITextField) { if let item = self.item, let currentEditingName = item.state.editingName { var editingName: ItemListAvatarAndNameInfoItemName? if let inputFirstField = self.inputFirstField, let inputSecondField = self.inputSecondField { @@ -1043,7 +1003,7 @@ class ItemListAvatarAndNameInfoItemNode: ListViewItemNode, ItemListItemNode, Ite } } - func textFieldDidBeginEditing(_ textField: UITextField) { + public func textFieldDidBeginEditing(_ textField: UITextField) { if textField == self.inputFirstField { self.updateClearButtonVisibility(self.inputFirstClearButton, textField: textField) } else if textField == self.inputSecondField { @@ -1051,7 +1011,7 @@ class ItemListAvatarAndNameInfoItemNode: ListViewItemNode, ItemListItemNode, Ite } } - func textFieldDidEndEditing(_ textField: UITextField) { + public func textFieldDidEndEditing(_ textField: UITextField) { if textField == self.inputFirstField { self.updateClearButtonVisibility(self.inputFirstClearButton, textField: textField) } else if textField == self.inputSecondField { @@ -1059,7 +1019,7 @@ class ItemListAvatarAndNameInfoItemNode: ListViewItemNode, ItemListItemNode, Ite } } - func textFieldShouldReturn(_ textField: UITextField) -> Bool { + public func textFieldShouldReturn(_ textField: UITextField) -> Bool { if textField == self.inputFirstField { if let inputSecondField = self.inputSecondField { inputSecondField.becomeFirstResponder() @@ -1072,20 +1032,20 @@ class ItemListAvatarAndNameInfoItemNode: ListViewItemNode, ItemListItemNode, Ite return true } - @objc func avatarTapGesture(_ recognizer: UITapGestureRecognizer) { + @objc private func avatarTapGesture(_ recognizer: UITapGestureRecognizer) { if let item = self.item { item.avatarTapped() } } - func avatarTransitionNode() -> ((ASDisplayNode, () -> (UIView?, UIView?)), CGRect) { + public func avatarTransitionNode() -> ((ASDisplayNode, () -> (UIView?, UIView?)), CGRect) { let avatarNode = self.avatarNode return ((self.avatarNode, { [weak avatarNode] in return (avatarNode?.view.snapshotContentTree(unhide: true), nil) }), self.avatarNode.bounds) } - func updateAvatarHidden() { + public func updateAvatarHidden() { var hidden = false if let item = self.item, let context = item.context, let peer = item.peer, let hiddenAvatarRepresentation = context.hiddenAvatarRepresentation { for representation in peer.profileImageRepresentations { @@ -1099,29 +1059,29 @@ class ItemListAvatarAndNameInfoItemNode: ListViewItemNode, ItemListItemNode, Ite } } - @objc func callButtonPressed() { + @objc private func callButtonPressed() { self.item?.call?() } - @objc func firstClearPressed() { + @objc private func firstClearPressed() { self.inputFirstField?.text = nil self.updateClearButtonVisibility(self.inputFirstClearButton, textField: self.inputFirstField) } - @objc func secondClearPressed() { + @objc private func secondClearPressed() { self.inputSecondField?.text = nil self.updateClearButtonVisibility(self.inputSecondClearButton, textField: self.inputSecondField) } - func focus() { + public func focus() { self.inputFirstField?.becomeFirstResponder() } - override func longTapped() { + override public func longTapped() { self.item?.longTapAction?() } - override var canBeLongTapped: Bool { + override public var canBeLongTapped: Bool { return self.item?.longTapAction != nil } } diff --git a/submodules/ItemListPeerActionItem/Info.plist b/submodules/ItemListPeerActionItem/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/ItemListPeerActionItem/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/ItemListPeerActionItem/ItemListPeerActionItem_Xcode.xcodeproj/project.pbxproj b/submodules/ItemListPeerActionItem/ItemListPeerActionItem_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..54daf2b2ea --- /dev/null +++ b/submodules/ItemListPeerActionItem/ItemListPeerActionItem_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,567 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E3DE42304B2030049C28B /* ItemListPeerActionItem.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E3DE22304B2030049C28B /* ItemListPeerActionItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E3DEF2304B25E0049C28B /* ItemListPeerActionItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3DEE2304B25E0049C28B /* ItemListPeerActionItem.swift */; }; + D03E3DF22304B2700049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3DF12304B2700049C28B /* Foundation.framework */; }; + D03E3DF42304B2740049C28B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3DF32304B2740049C28B /* UIKit.framework */; }; + D03E3DF62304B2770049C28B /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3DF52304B2770049C28B /* Display.framework */; }; + D03E3DF82304B27A0049C28B /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3DF72304B27A0049C28B /* AsyncDisplayKit.framework */; }; + D03E3DFA2304B2800049C28B /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3DF92304B2800049C28B /* SwiftSignalKit.framework */; }; + D03E3DFC2304B2850049C28B /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3DFB2304B2850049C28B /* TelegramPresentationData.framework */; }; + D03E3DFE2304B2890049C28B /* ItemListUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3DFD2304B2890049C28B /* ItemListUI.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E3DDF2304B2030049C28B /* ItemListPeerActionItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ItemListPeerActionItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3DE22304B2030049C28B /* ItemListPeerActionItem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ItemListPeerActionItem.h; sourceTree = ""; }; + D03E3DE32304B2030049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E3DEE2304B25E0049C28B /* ItemListPeerActionItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemListPeerActionItem.swift; sourceTree = ""; }; + D03E3DF12304B2700049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E3DF32304B2740049C28B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D03E3DF52304B2770049C28B /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3DF72304B27A0049C28B /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3DF92304B2800049C28B /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3DFB2304B2850049C28B /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3DFD2304B2890049C28B /* ItemListUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E3DDC2304B2030049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3DFE2304B2890049C28B /* ItemListUI.framework in Frameworks */, + D03E3DFC2304B2850049C28B /* TelegramPresentationData.framework in Frameworks */, + D03E3DFA2304B2800049C28B /* SwiftSignalKit.framework in Frameworks */, + D03E3DF82304B27A0049C28B /* AsyncDisplayKit.framework in Frameworks */, + D03E3DF62304B2770049C28B /* Display.framework in Frameworks */, + D03E3DF42304B2740049C28B /* UIKit.framework in Frameworks */, + D03E3DF22304B2700049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E3DD52304B2030049C28B = { + isa = PBXGroup; + children = ( + D03E3DE32304B2030049C28B /* Info.plist */, + D03E3DE12304B2030049C28B /* Sources */, + D03E3DE02304B2030049C28B /* Products */, + D03E3DF02304B2700049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E3DE02304B2030049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E3DDF2304B2030049C28B /* ItemListPeerActionItem.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E3DE12304B2030049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E3DEE2304B25E0049C28B /* ItemListPeerActionItem.swift */, + D03E3DE22304B2030049C28B /* ItemListPeerActionItem.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E3DF02304B2700049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E3DFD2304B2890049C28B /* ItemListUI.framework */, + D03E3DFB2304B2850049C28B /* TelegramPresentationData.framework */, + D03E3DF92304B2800049C28B /* SwiftSignalKit.framework */, + D03E3DF72304B27A0049C28B /* AsyncDisplayKit.framework */, + D03E3DF52304B2770049C28B /* Display.framework */, + D03E3DF32304B2740049C28B /* UIKit.framework */, + D03E3DF12304B2700049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E3DDA2304B2030049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3DE42304B2030049C28B /* ItemListPeerActionItem.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E3DDE2304B2030049C28B /* ItemListPeerActionItem */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E3DE72304B2030049C28B /* Build configuration list for PBXNativeTarget "ItemListPeerActionItem" */; + buildPhases = ( + D03E3DDA2304B2030049C28B /* Headers */, + D03E3DDB2304B2030049C28B /* Sources */, + D03E3DDC2304B2030049C28B /* Frameworks */, + D03E3DDD2304B2030049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = ItemListPeerActionItem; + productName = ItemListPeerActionItem; + productReference = D03E3DDF2304B2030049C28B /* ItemListPeerActionItem.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E3DD62304B2030049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E3DDE2304B2030049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E3DD92304B2030049C28B /* Build configuration list for PBXProject "ItemListPeerActionItem_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E3DD52304B2030049C28B; + productRefGroup = D03E3DE02304B2030049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E3DDE2304B2030049C28B /* ItemListPeerActionItem */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E3DDD2304B2030049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E3DDB2304B2030049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3DEF2304B25E0049C28B /* ItemListPeerActionItem.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E3DE52304B2030049C28B /* 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; + }; + D03E3DE62304B2030049C28B /* 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; + }; + D03E3DE82304B2030049C28B /* 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.ItemListPeerActionItem; + 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; + }; + D03E3DE92304B2030049C28B /* 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.ItemListPeerActionItem; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E3DEA2304B22D0049C28B /* 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; + }; + D03E3DEB2304B22D0049C28B /* 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.ItemListPeerActionItem; + 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; + }; + D03E3DEC2304B2350049C28B /* 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; + }; + D03E3DED2304B2350049C28B /* 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.ItemListPeerActionItem; + 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 */ + D03E3DD92304B2030049C28B /* Build configuration list for PBXProject "ItemListPeerActionItem_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E3DE52304B2030049C28B /* DebugAppStoreLLC */, + D03E3DEA2304B22D0049C28B /* DebugHockeyapp */, + D03E3DE62304B2030049C28B /* ReleaseAppStoreLLC */, + D03E3DEC2304B2350049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E3DE72304B2030049C28B /* Build configuration list for PBXNativeTarget "ItemListPeerActionItem" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E3DE82304B2030049C28B /* DebugAppStoreLLC */, + D03E3DEB2304B22D0049C28B /* DebugHockeyapp */, + D03E3DE92304B2030049C28B /* ReleaseAppStoreLLC */, + D03E3DED2304B2350049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E3DD62304B2030049C28B /* Project object */; +} diff --git a/submodules/ItemListPeerActionItem/Sources/ItemListPeerActionItem.h b/submodules/ItemListPeerActionItem/Sources/ItemListPeerActionItem.h new file mode 100644 index 0000000000..7cc56b137b --- /dev/null +++ b/submodules/ItemListPeerActionItem/Sources/ItemListPeerActionItem.h @@ -0,0 +1,19 @@ +// +// ItemListPeerActionItem.h +// ItemListPeerActionItem +// +// Created by Peter on 8/15/19. +// Copyright © 2019 Telegram Messenger LLP. All rights reserved. +// + +#import + +//! Project version number for ItemListPeerActionItem. +FOUNDATION_EXPORT double ItemListPeerActionItemVersionNumber; + +//! Project version string for ItemListPeerActionItem. +FOUNDATION_EXPORT const unsigned char ItemListPeerActionItemVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/submodules/TelegramUI/TelegramUI/ItemListPeerActionItem.swift b/submodules/ItemListPeerActionItem/Sources/ItemListPeerActionItem.swift similarity index 91% rename from submodules/TelegramUI/TelegramUI/ItemListPeerActionItem.swift rename to submodules/ItemListPeerActionItem/Sources/ItemListPeerActionItem.swift index eac6c36800..4d763c81a9 100644 --- a/submodules/TelegramUI/TelegramUI/ItemListPeerActionItem.swift +++ b/submodules/ItemListPeerActionItem/Sources/ItemListPeerActionItem.swift @@ -6,22 +6,22 @@ import SwiftSignalKit import TelegramPresentationData import ItemListUI -enum ItemListPeerActionItemHeight { +public enum ItemListPeerActionItemHeight { case generic case peerList } -class ItemListPeerActionItem: ListViewItem, ItemListItem { +public class ItemListPeerActionItem: ListViewItem, ItemListItem { let theme: PresentationTheme let icon: UIImage? let title: String - let alwaysPlain: Bool + public let alwaysPlain: Bool let editing: Bool let height: ItemListPeerActionItemHeight - let sectionId: ItemListSectionId + public let sectionId: ItemListSectionId let action: () -> Void - init(theme: PresentationTheme, icon: UIImage?, title: String, alwaysPlain: Bool = false, sectionId: ItemListSectionId, height: ItemListPeerActionItemHeight = .peerList, editing: Bool, action: @escaping () -> Void) { + public init(theme: PresentationTheme, icon: UIImage?, title: String, alwaysPlain: Bool = false, sectionId: ItemListSectionId, height: ItemListPeerActionItemHeight = .peerList, editing: Bool, action: @escaping () -> Void) { self.theme = theme self.icon = icon self.title = title @@ -32,7 +32,7 @@ class ItemListPeerActionItem: ListViewItem, ItemListItem { self.action = action } - 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 = ItemListPeerActionItemNode() var neighbors = itemListNeighbors(item: self, topItem: previousItem as? ItemListItem, bottomItem: nextItem as? ItemListItem) @@ -52,7 +52,7 @@ class ItemListPeerActionItem: ListViewItem, ItemListItem { } } - func updateNode(async: @escaping (@escaping () -> Void) -> Void, node: @escaping () -> ListViewItemNode, params: ListViewItemLayoutParams, previousItem: ListViewItem?, nextItem: ListViewItem?, animation: ListViewItemUpdateAnimation, completion: @escaping (ListViewItemNodeLayout, @escaping (ListViewItemApply) -> Void) -> Void) { + public func updateNode(async: @escaping (@escaping () -> Void) -> Void, node: @escaping () -> ListViewItemNode, params: ListViewItemLayoutParams, previousItem: ListViewItem?, nextItem: ListViewItem?, animation: ListViewItemUpdateAnimation, completion: @escaping (ListViewItemNodeLayout, @escaping (ListViewItemApply) -> Void) -> Void) { Queue.mainQueue().async { if let nodeValue = node() as? ItemListPeerActionItemNode { let makeLayout = nodeValue.asyncLayout() @@ -78,9 +78,9 @@ class ItemListPeerActionItem: ListViewItem, ItemListItem { } } - var selectable: Bool = true + public var selectable: Bool = true - func selected(listView: ListView){ + public func selected(listView: ListView){ listView.clearHighlightAnimated(true) self.action() } diff --git a/submodules/StickerPackPreviewUI/Info.plist b/submodules/StickerPackPreviewUI/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/StickerPackPreviewUI/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/StickerPackPreviewController.swift b/submodules/StickerPackPreviewUI/Sources/StickerPackPreviewController.swift similarity index 90% rename from submodules/TelegramUI/TelegramUI/StickerPackPreviewController.swift rename to submodules/StickerPackPreviewUI/Sources/StickerPackPreviewController.swift index cbeb03f226..18a1d34318 100644 --- a/submodules/TelegramUI/TelegramUI/StickerPackPreviewController.swift +++ b/submodules/StickerPackPreviewUI/Sources/StickerPackPreviewController.swift @@ -11,12 +11,12 @@ import ShareController import StickerResources import AlertUI -enum StickerPackPreviewControllerMode { +public enum StickerPackPreviewControllerMode { case `default` case settings } -final class StickerPackPreviewController: ViewController { +public final class StickerPackPreviewController: ViewController { private var controllerNode: StickerPackPreviewControllerNode { return self.displayNode as! StickerPackPreviewControllerNode } @@ -42,7 +42,7 @@ final class StickerPackPreviewController: ViewController { private var presentationDataDisposable: Disposable? - var sendSticker: ((FileMediaReference, ASDisplayNode, CGRect) -> Bool)? { + public var sendSticker: ((FileMediaReference, ASDisplayNode, CGRect) -> Bool)? { didSet { if self.isNodeLoaded { if let sendSticker = self.sendSticker { @@ -61,7 +61,7 @@ final class StickerPackPreviewController: ViewController { } } - init(context: AccountContext, stickerPack: StickerPackReference, mode: StickerPackPreviewControllerMode = .default, parentNavigationController: NavigationController?) { + public init(context: AccountContext, stickerPack: StickerPackReference, mode: StickerPackPreviewControllerMode = .default, parentNavigationController: NavigationController?) { self.context = context self.mode = mode self.parentNavigationController = parentNavigationController @@ -82,7 +82,7 @@ final class StickerPackPreviewController: ViewController { }) } - required init(coder aDecoder: NSCoder) { + required public init(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } @@ -93,7 +93,7 @@ final class StickerPackPreviewController: ViewController { self.presentationDataDisposable?.dispose() } - override func loadDisplayNode() { + override public func loadDisplayNode() { var openShareImpl: (() -> Void)? if self.mode == .settings { openShareImpl = { [weak self] in @@ -126,9 +126,9 @@ final class StickerPackPreviewController: ViewController { guard let strongSelf = self else { return } - if let peer = peer { + if let peer = peer, let parentNavigationController = strongSelf.parentNavigationController { strongSelf.dismiss() - strongSelf.parentNavigationController?.pushViewController(ChatControllerImpl(context: strongSelf.context, chatLocation: .peer(peer.id))) + strongSelf.context.sharedContext.navigateToChatController(NavigateToChatControllerParams(navigationController: parentNavigationController, context: strongSelf.context, chatLocation: .peer(peer.id), animated: true)) } })) }) @@ -217,7 +217,7 @@ final class StickerPackPreviewController: ViewController { self.ready.set(self.controllerNode.ready.get()) } - override func viewDidAppear(_ animated: Bool) { + override public func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) if !self.animatedIn { @@ -226,7 +226,7 @@ final class StickerPackPreviewController: ViewController { } } - override func dismiss(completion: (() -> Void)? = nil) { + override public func dismiss(completion: (() -> Void)? = nil) { if !self.dismissed { self.dismissed = true } else { @@ -235,7 +235,7 @@ final class StickerPackPreviewController: ViewController { self.controllerNode.animateOut(completion: completion) } - override func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) { + override public func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) { super.containerLayoutUpdated(layout, transition: transition) self.controllerNode.containerLayoutUpdated(layout, navigationBarHeight: self.navigationHeight, transition: transition) diff --git a/submodules/TelegramUI/TelegramUI/StickerPackPreviewControllerNode.swift b/submodules/StickerPackPreviewUI/Sources/StickerPackPreviewControllerNode.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/StickerPackPreviewControllerNode.swift rename to submodules/StickerPackPreviewUI/Sources/StickerPackPreviewControllerNode.swift diff --git a/submodules/TelegramUI/TelegramUI/StickerPackPreviewGridItem.swift b/submodules/StickerPackPreviewUI/Sources/StickerPackPreviewGridItem.swift similarity index 99% rename from submodules/TelegramUI/TelegramUI/StickerPackPreviewGridItem.swift rename to submodules/StickerPackPreviewUI/Sources/StickerPackPreviewGridItem.swift index b36ba0efa4..d8f5105cf4 100644 --- a/submodules/TelegramUI/TelegramUI/StickerPackPreviewGridItem.swift +++ b/submodules/StickerPackPreviewUI/Sources/StickerPackPreviewGridItem.swift @@ -7,6 +7,7 @@ import AsyncDisplayKit import Postbox import StickerResources import AccountContext +import AnimationUI final class StickerPackPreviewInteraction { var previewedItem: StickerPreviewPeekItem? diff --git a/submodules/StickerPackPreviewUI/Sources/StickerPackPreviewUI.h b/submodules/StickerPackPreviewUI/Sources/StickerPackPreviewUI.h new file mode 100644 index 0000000000..f1eca381ba --- /dev/null +++ b/submodules/StickerPackPreviewUI/Sources/StickerPackPreviewUI.h @@ -0,0 +1,19 @@ +// +// StickerPackPreviewUI.h +// StickerPackPreviewUI +// +// Created by Peter on 8/15/19. +// Copyright © 2019 Telegram Messenger LLP. All rights reserved. +// + +#import + +//! Project version number for StickerPackPreviewUI. +FOUNDATION_EXPORT double StickerPackPreviewUIVersionNumber; + +//! Project version string for StickerPackPreviewUI. +FOUNDATION_EXPORT const unsigned char StickerPackPreviewUIVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/submodules/TelegramUI/TelegramUI/StickerPreviewController.swift b/submodules/StickerPackPreviewUI/Sources/StickerPreviewController.swift similarity index 75% rename from submodules/TelegramUI/TelegramUI/StickerPreviewController.swift rename to submodules/StickerPackPreviewUI/Sources/StickerPreviewController.swift index 11521ec2a4..0f7109cd64 100644 --- a/submodules/TelegramUI/TelegramUI/StickerPreviewController.swift +++ b/submodules/StickerPackPreviewUI/Sources/StickerPreviewController.swift @@ -7,15 +7,15 @@ import TelegramCore import SwiftSignalKit import AccountContext -final class StickerPreviewControllerPresentationArguments { +public final class StickerPreviewControllerPresentationArguments { let transitionNode: (StickerPackItem) -> ASDisplayNode? - init(transitionNode: @escaping (StickerPackItem) -> ASDisplayNode?) { + public init(transitionNode: @escaping (StickerPackItem) -> ASDisplayNode?) { self.transitionNode = transitionNode } } -final class StickerPreviewController: ViewController { +public final class StickerPreviewController: ViewController { private var controllerNode: StickerPreviewControllerNode { return self.displayNode as! StickerPreviewControllerNode } @@ -25,7 +25,7 @@ final class StickerPreviewController: ViewController { private let context: AccountContext private var item: StickerPackItem - init(context: AccountContext, item: StickerPackItem) { + public init(context: AccountContext, item: StickerPackItem) { self.context = context self.item = item @@ -34,11 +34,11 @@ final class StickerPreviewController: ViewController { self.statusBar.statusBarStyle = .Ignore } - required init(coder aDecoder: NSCoder) { + required public init(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } - override func loadDisplayNode() { + override public func loadDisplayNode() { self.displayNode = StickerPreviewControllerNode(context: self.context) self.controllerNode.dismiss = { [weak self] in self?.presentingViewController?.dismiss(animated: false, completion: nil) @@ -52,7 +52,7 @@ final class StickerPreviewController: ViewController { self.ready.set(.single(true)) } - override func viewDidAppear(_ animated: Bool) { + override public func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) if !self.animatedIn { @@ -61,17 +61,17 @@ final class StickerPreviewController: ViewController { } } - override func dismiss(completion: (() -> Void)? = nil) { + override public func dismiss(completion: (() -> Void)? = nil) { self.controllerNode.animateOut(targetNode: (self.presentationArguments as? StickerPreviewControllerPresentationArguments)?.transitionNode(self.item), completion: completion) } - override func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) { + override public func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) { super.containerLayoutUpdated(layout, transition: transition) self.controllerNode.containerLayoutUpdated(layout, navigationBarHeight: self.navigationHeight, transition: transition) } - func updateItem(_ item: StickerPackItem) { + public func updateItem(_ item: StickerPackItem) { self.item = item self.controllerNode.updateItem(item) } diff --git a/submodules/TelegramUI/TelegramUI/StickerPreviewControllerNode.swift b/submodules/StickerPackPreviewUI/Sources/StickerPreviewControllerNode.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/StickerPreviewControllerNode.swift rename to submodules/StickerPackPreviewUI/Sources/StickerPreviewControllerNode.swift diff --git a/submodules/TelegramUI/TelegramUI/StickerPreviewPeekContent.swift b/submodules/StickerPackPreviewUI/Sources/StickerPreviewPeekContent.swift similarity index 83% rename from submodules/TelegramUI/TelegramUI/StickerPreviewPeekContent.swift rename to submodules/StickerPackPreviewUI/Sources/StickerPreviewPeekContent.swift index 98b0827b4c..d7ee4cdc8c 100644 --- a/submodules/TelegramUI/TelegramUI/StickerPreviewPeekContent.swift +++ b/submodules/StickerPackPreviewUI/Sources/StickerPreviewPeekContent.swift @@ -6,53 +6,54 @@ import Postbox import TelegramCore import SwiftSignalKit import StickerResources +import AnimationUI -enum StickerPreviewPeekItem: Equatable { +public enum StickerPreviewPeekItem: Equatable { case pack(StickerPackItem) case found(FoundStickerItem) - var file: TelegramMediaFile { + public var file: TelegramMediaFile { switch self { - case let .pack(item): - return item.file - case let .found(item): - return item.file + case let .pack(item): + return item.file + case let .found(item): + return item.file } } } -final class StickerPreviewPeekContent: PeekControllerContent { +public final class StickerPreviewPeekContent: PeekControllerContent { let account: Account - let item: StickerPreviewPeekItem + public let item: StickerPreviewPeekItem let menu: [PeekControllerMenuItem] - init(account: Account, item: StickerPreviewPeekItem, menu: [PeekControllerMenuItem]) { + public init(account: Account, item: StickerPreviewPeekItem, menu: [PeekControllerMenuItem]) { self.account = account self.item = item self.menu = menu } - func presentation() -> PeekControllerContentPresentation { + public func presentation() -> PeekControllerContentPresentation { return .freeform } - func menuActivation() -> PeerkControllerMenuActivation { + public func menuActivation() -> PeerkControllerMenuActivation { return .press } - func menuItems() -> [PeekControllerMenuItem] { + public func menuItems() -> [PeekControllerMenuItem] { return self.menu } - func node() -> PeekControllerContentNode & ASDisplayNode { + public func node() -> PeekControllerContentNode & ASDisplayNode { return StickerPreviewPeekContentNode(account: self.account, item: self.item) } - func topAccessoryNode() -> ASDisplayNode? { + public func topAccessoryNode() -> ASDisplayNode? { return nil } - func isEqual(to: PeekControllerContent) -> Bool { + public func isEqual(to: PeekControllerContent) -> Bool { if let to = to as? StickerPreviewPeekContent { return self.item == to.item } else { diff --git a/submodules/StickerPackPreviewUI/StickerPackPreviewUI_Xcode.xcodeproj/project.pbxproj b/submodules/StickerPackPreviewUI/StickerPackPreviewUI_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..9b6370c6be --- /dev/null +++ b/submodules/StickerPackPreviewUI/StickerPackPreviewUI_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,627 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E3E102304B3440049C28B /* StickerPackPreviewUI.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E3E0E2304B3440049C28B /* StickerPackPreviewUI.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E3E202304B39A0049C28B /* StickerPreviewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3E1A2304B3990049C28B /* StickerPreviewController.swift */; }; + D03E3E212304B39A0049C28B /* StickerPackPreviewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3E1B2304B3990049C28B /* StickerPackPreviewController.swift */; }; + D03E3E222304B39A0049C28B /* StickerPreviewPeekContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3E1C2304B3990049C28B /* StickerPreviewPeekContent.swift */; }; + D03E3E232304B39A0049C28B /* StickerPackPreviewControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3E1D2304B3990049C28B /* StickerPackPreviewControllerNode.swift */; }; + D03E3E242304B39A0049C28B /* StickerPreviewControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3E1E2304B3990049C28B /* StickerPreviewControllerNode.swift */; }; + D03E3E252304B39A0049C28B /* StickerPackPreviewGridItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3E1F2304B3990049C28B /* StickerPackPreviewGridItem.swift */; }; + D03E3E282304B3FE0049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E272304B3FE0049C28B /* Foundation.framework */; }; + D03E3E2A2304B4020049C28B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E292304B4020049C28B /* UIKit.framework */; }; + D03E3E2C2304B4040049C28B /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E2B2304B4040049C28B /* Display.framework */; }; + D03E3E2E2304B4070049C28B /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E2D2304B4070049C28B /* AsyncDisplayKit.framework */; }; + D03E3E302304B40B0049C28B /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E2F2304B40B0049C28B /* Postbox.framework */; }; + D03E3E322304B4110049C28B /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E312304B4110049C28B /* TelegramCore.framework */; }; + D03E3E342304B4150049C28B /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E332304B4150049C28B /* SwiftSignalKit.framework */; }; + D03E3E362304B41A0049C28B /* TelegramUIPreferences.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E352304B41A0049C28B /* TelegramUIPreferences.framework */; }; + D03E3E382304B41E0049C28B /* AccountContext.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E372304B41E0049C28B /* AccountContext.framework */; }; + D03E3E3A2304B4240049C28B /* ShareController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E392304B4240049C28B /* ShareController.framework */; }; + D03E3E3C2304B4290049C28B /* StickerResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E3B2304B4290049C28B /* StickerResources.framework */; }; + D03E3E3E2304B42E0049C28B /* AlertUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E3D2304B42E0049C28B /* AlertUI.framework */; }; + D03E3E402304B4360049C28B /* TextFormat.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E3F2304B4360049C28B /* TextFormat.framework */; }; + D03E3E422304B43E0049C28B /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E412304B43E0049C28B /* TelegramPresentationData.framework */; }; + D03E3E442304B4410049C28B /* MergeLists.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E432304B4410049C28B /* MergeLists.framework */; }; + D03E3E462304B4450049C28B /* ActivityIndicator.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E452304B4450049C28B /* ActivityIndicator.framework */; }; + D03E3E4C2304B4E20049C28B /* AnimationUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E4B2304B4E20049C28B /* AnimationUI.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E3E0B2304B3440049C28B /* StickerPackPreviewUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = StickerPackPreviewUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3E0E2304B3440049C28B /* StickerPackPreviewUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StickerPackPreviewUI.h; sourceTree = ""; }; + D03E3E0F2304B3440049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E3E1A2304B3990049C28B /* StickerPreviewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StickerPreviewController.swift; sourceTree = ""; }; + D03E3E1B2304B3990049C28B /* StickerPackPreviewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StickerPackPreviewController.swift; sourceTree = ""; }; + D03E3E1C2304B3990049C28B /* StickerPreviewPeekContent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StickerPreviewPeekContent.swift; sourceTree = ""; }; + D03E3E1D2304B3990049C28B /* StickerPackPreviewControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StickerPackPreviewControllerNode.swift; sourceTree = ""; }; + D03E3E1E2304B3990049C28B /* StickerPreviewControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StickerPreviewControllerNode.swift; sourceTree = ""; }; + D03E3E1F2304B3990049C28B /* StickerPackPreviewGridItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StickerPackPreviewGridItem.swift; sourceTree = ""; }; + D03E3E272304B3FE0049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E3E292304B4020049C28B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D03E3E2B2304B4040049C28B /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3E2D2304B4070049C28B /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3E2F2304B40B0049C28B /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3E312304B4110049C28B /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3E332304B4150049C28B /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3E352304B41A0049C28B /* TelegramUIPreferences.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramUIPreferences.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3E372304B41E0049C28B /* AccountContext.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AccountContext.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3E392304B4240049C28B /* ShareController.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ShareController.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3E3B2304B4290049C28B /* StickerResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = StickerResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3E3D2304B42E0049C28B /* AlertUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AlertUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3E3F2304B4360049C28B /* TextFormat.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TextFormat.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3E412304B43E0049C28B /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3E432304B4410049C28B /* MergeLists.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MergeLists.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3E452304B4450049C28B /* ActivityIndicator.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ActivityIndicator.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3E4B2304B4E20049C28B /* AnimationUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AnimationUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E3E082304B3440049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3E4C2304B4E20049C28B /* AnimationUI.framework in Frameworks */, + D03E3E462304B4450049C28B /* ActivityIndicator.framework in Frameworks */, + D03E3E442304B4410049C28B /* MergeLists.framework in Frameworks */, + D03E3E422304B43E0049C28B /* TelegramPresentationData.framework in Frameworks */, + D03E3E402304B4360049C28B /* TextFormat.framework in Frameworks */, + D03E3E3E2304B42E0049C28B /* AlertUI.framework in Frameworks */, + D03E3E3C2304B4290049C28B /* StickerResources.framework in Frameworks */, + D03E3E3A2304B4240049C28B /* ShareController.framework in Frameworks */, + D03E3E382304B41E0049C28B /* AccountContext.framework in Frameworks */, + D03E3E362304B41A0049C28B /* TelegramUIPreferences.framework in Frameworks */, + D03E3E342304B4150049C28B /* SwiftSignalKit.framework in Frameworks */, + D03E3E322304B4110049C28B /* TelegramCore.framework in Frameworks */, + D03E3E302304B40B0049C28B /* Postbox.framework in Frameworks */, + D03E3E2E2304B4070049C28B /* AsyncDisplayKit.framework in Frameworks */, + D03E3E2C2304B4040049C28B /* Display.framework in Frameworks */, + D03E3E2A2304B4020049C28B /* UIKit.framework in Frameworks */, + D03E3E282304B3FE0049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E3E012304B3440049C28B = { + isa = PBXGroup; + children = ( + D03E3E0F2304B3440049C28B /* Info.plist */, + D03E3E0D2304B3440049C28B /* Sources */, + D03E3E0C2304B3440049C28B /* Products */, + D03E3E262304B3FE0049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E3E0C2304B3440049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E3E0B2304B3440049C28B /* StickerPackPreviewUI.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E3E0D2304B3440049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E3E1B2304B3990049C28B /* StickerPackPreviewController.swift */, + D03E3E1D2304B3990049C28B /* StickerPackPreviewControllerNode.swift */, + D03E3E1F2304B3990049C28B /* StickerPackPreviewGridItem.swift */, + D03E3E1A2304B3990049C28B /* StickerPreviewController.swift */, + D03E3E1E2304B3990049C28B /* StickerPreviewControllerNode.swift */, + D03E3E1C2304B3990049C28B /* StickerPreviewPeekContent.swift */, + D03E3E0E2304B3440049C28B /* StickerPackPreviewUI.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E3E262304B3FE0049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E3E4B2304B4E20049C28B /* AnimationUI.framework */, + D03E3E452304B4450049C28B /* ActivityIndicator.framework */, + D03E3E432304B4410049C28B /* MergeLists.framework */, + D03E3E412304B43E0049C28B /* TelegramPresentationData.framework */, + D03E3E3F2304B4360049C28B /* TextFormat.framework */, + D03E3E3D2304B42E0049C28B /* AlertUI.framework */, + D03E3E3B2304B4290049C28B /* StickerResources.framework */, + D03E3E392304B4240049C28B /* ShareController.framework */, + D03E3E372304B41E0049C28B /* AccountContext.framework */, + D03E3E352304B41A0049C28B /* TelegramUIPreferences.framework */, + D03E3E332304B4150049C28B /* SwiftSignalKit.framework */, + D03E3E312304B4110049C28B /* TelegramCore.framework */, + D03E3E2F2304B40B0049C28B /* Postbox.framework */, + D03E3E2D2304B4070049C28B /* AsyncDisplayKit.framework */, + D03E3E2B2304B4040049C28B /* Display.framework */, + D03E3E292304B4020049C28B /* UIKit.framework */, + D03E3E272304B3FE0049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E3E062304B3440049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3E102304B3440049C28B /* StickerPackPreviewUI.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E3E0A2304B3440049C28B /* StickerPackPreviewUI */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E3E132304B3440049C28B /* Build configuration list for PBXNativeTarget "StickerPackPreviewUI" */; + buildPhases = ( + D03E3E062304B3440049C28B /* Headers */, + D03E3E072304B3440049C28B /* Sources */, + D03E3E082304B3440049C28B /* Frameworks */, + D03E3E092304B3440049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = StickerPackPreviewUI; + productName = StickerPackPreviewUI; + productReference = D03E3E0B2304B3440049C28B /* StickerPackPreviewUI.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E3E022304B3440049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E3E0A2304B3440049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E3E052304B3440049C28B /* Build configuration list for PBXProject "StickerPackPreviewUI_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E3E012304B3440049C28B; + productRefGroup = D03E3E0C2304B3440049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E3E0A2304B3440049C28B /* StickerPackPreviewUI */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E3E092304B3440049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E3E072304B3440049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3E202304B39A0049C28B /* StickerPreviewController.swift in Sources */, + D03E3E242304B39A0049C28B /* StickerPreviewControllerNode.swift in Sources */, + D03E3E252304B39A0049C28B /* StickerPackPreviewGridItem.swift in Sources */, + D03E3E232304B39A0049C28B /* StickerPackPreviewControllerNode.swift in Sources */, + D03E3E222304B39A0049C28B /* StickerPreviewPeekContent.swift in Sources */, + D03E3E212304B39A0049C28B /* StickerPackPreviewController.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E3E112304B3440049C28B /* 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; + }; + D03E3E122304B3440049C28B /* 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; + }; + D03E3E142304B3440049C28B /* 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.StickerPackPreviewUI; + 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; + }; + D03E3E152304B3440049C28B /* 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.StickerPackPreviewUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E3E162304B3700049C28B /* 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; + }; + D03E3E172304B3700049C28B /* 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.StickerPackPreviewUI; + 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; + }; + D03E3E182304B37D0049C28B /* 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; + }; + D03E3E192304B37D0049C28B /* 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.StickerPackPreviewUI; + 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 */ + D03E3E052304B3440049C28B /* Build configuration list for PBXProject "StickerPackPreviewUI_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E3E112304B3440049C28B /* DebugAppStoreLLC */, + D03E3E162304B3700049C28B /* DebugHockeyapp */, + D03E3E122304B3440049C28B /* ReleaseAppStoreLLC */, + D03E3E182304B37D0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E3E132304B3440049C28B /* Build configuration list for PBXNativeTarget "StickerPackPreviewUI" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E3E142304B3440049C28B /* DebugAppStoreLLC */, + D03E3E172304B3700049C28B /* DebugHockeyapp */, + D03E3E152304B3440049C28B /* ReleaseAppStoreLLC */, + D03E3E192304B37D0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E3E022304B3440049C28B /* Project object */; +} diff --git a/submodules/TelegramUI/TelegramUI/ArchivedStickerPacksController.swift b/submodules/TelegramUI/TelegramUI/ArchivedStickerPacksController.swift index 4cb56f3f09..7fd8a0a2f3 100644 --- a/submodules/TelegramUI/TelegramUI/ArchivedStickerPacksController.swift +++ b/submodules/TelegramUI/TelegramUI/ArchivedStickerPacksController.swift @@ -9,6 +9,7 @@ import TelegramUIPreferences import ItemListUI import OverlayStatusController import AccountContext +import StickerPackPreviewUI public enum ArchivedStickerPacksControllerMode { case stickers diff --git a/submodules/TelegramUI/TelegramUI/BlockedPeersController.swift b/submodules/TelegramUI/TelegramUI/BlockedPeersController.swift index 5552cd9881..87cf3fe738 100644 --- a/submodules/TelegramUI/TelegramUI/BlockedPeersController.swift +++ b/submodules/TelegramUI/TelegramUI/BlockedPeersController.swift @@ -9,6 +9,7 @@ import TelegramUIPreferences import ItemListUI import AccountContext import ItemListPeerItem +import ItemListPeerActionItem private final class BlockedPeersControllerArguments { let account: Account diff --git a/submodules/TelegramUI/TelegramUI/ChannelAdminController.swift b/submodules/TelegramUI/TelegramUI/ChannelAdminController.swift index 438a835f44..aa1f14d837 100644 --- a/submodules/TelegramUI/TelegramUI/ChannelAdminController.swift +++ b/submodules/TelegramUI/TelegramUI/ChannelAdminController.swift @@ -8,6 +8,7 @@ import TelegramPresentationData import ItemListUI import AccountContext import AlertUI +import ItemListAvatarAndNameInfoItem private let rankMaxLength: Int32 = 16 diff --git a/submodules/TelegramUI/TelegramUI/ChannelAdminsController.swift b/submodules/TelegramUI/TelegramUI/ChannelAdminsController.swift index dc234bdc4d..5cbe125deb 100644 --- a/submodules/TelegramUI/TelegramUI/ChannelAdminsController.swift +++ b/submodules/TelegramUI/TelegramUI/ChannelAdminsController.swift @@ -12,6 +12,7 @@ import TemporaryCachedPeerDataManager import AlertUI import UndoUI import ItemListPeerItem +import ItemListPeerActionItem private final class ChannelAdminsControllerArguments { let account: Account diff --git a/submodules/TelegramUI/TelegramUI/ChannelBannedMemberController.swift b/submodules/TelegramUI/TelegramUI/ChannelBannedMemberController.swift index 07d760f42c..56d02aaf79 100644 --- a/submodules/TelegramUI/TelegramUI/ChannelBannedMemberController.swift +++ b/submodules/TelegramUI/TelegramUI/ChannelBannedMemberController.swift @@ -10,6 +10,7 @@ import TelegramStringFormatting import OverlayStatusController import AccountContext import AlertUI +import ItemListAvatarAndNameInfoItem private final class ChannelBannedMemberControllerArguments { let account: Account diff --git a/submodules/TelegramUI/TelegramUI/ChannelDiscussionGroupSetupController.swift b/submodules/TelegramUI/TelegramUI/ChannelDiscussionGroupSetupController.swift index 741107be1e..cec9b12b20 100644 --- a/submodules/TelegramUI/TelegramUI/ChannelDiscussionGroupSetupController.swift +++ b/submodules/TelegramUI/TelegramUI/ChannelDiscussionGroupSetupController.swift @@ -11,6 +11,7 @@ import OverlayStatusController import AccountContext import AlertUI import ItemListPeerItem +import ItemListPeerActionItem private final class ChannelDiscussionGroupSetupControllerArguments { let account: Account diff --git a/submodules/TelegramUI/TelegramUI/ChannelInfoController.swift b/submodules/TelegramUI/TelegramUI/ChannelInfoController.swift index 7f14099b91..1e0d553f1b 100644 --- a/submodules/TelegramUI/TelegramUI/ChannelInfoController.swift +++ b/submodules/TelegramUI/TelegramUI/ChannelInfoController.swift @@ -17,6 +17,7 @@ import AlertUI import GalleryUI import LegacyUI import ChatListUI +import ItemListAvatarAndNameInfoItem private final class ChannelInfoControllerArguments { let account: Account diff --git a/submodules/TelegramUI/TelegramUI/ChannelPermissionsController.swift b/submodules/TelegramUI/TelegramUI/ChannelPermissionsController.swift index 659b16319e..bbc31cf414 100644 --- a/submodules/TelegramUI/TelegramUI/ChannelPermissionsController.swift +++ b/submodules/TelegramUI/TelegramUI/ChannelPermissionsController.swift @@ -13,6 +13,7 @@ import TemporaryCachedPeerDataManager import AlertUI import ItemListPeerItem import TelegramPermissionsUI +import ItemListPeerActionItem private final class ChannelPermissionsControllerArguments { let account: Account diff --git a/submodules/TelegramUI/TelegramUI/ChatController.swift b/submodules/TelegramUI/TelegramUI/ChatController.swift index f4b50b4c8f..0ee8253e43 100644 --- a/submodules/TelegramUI/TelegramUI/ChatController.swift +++ b/submodules/TelegramUI/TelegramUI/ChatController.swift @@ -35,6 +35,7 @@ import InstantPageUI import LocationUI import BotPaymentsUI import DeleteChatPeerActionSheetItem +import HashtagSearchUI public enum ChatControllerPeekActions { case standard @@ -120,7 +121,7 @@ let ChatControllerCount = Atomic(value: 0) public final class ChatControllerImpl: TelegramBaseController, ChatController, GalleryHiddenMediaTarget, UIDropInteractionDelegate { private var validLayout: ContainerViewLayout? - weak var parentController: ViewController? + public weak var parentController: ViewController? public var peekActions: ChatControllerPeekActions = .standard private var didSetup3dTouch: Bool = false diff --git a/submodules/TelegramUI/TelegramUI/ChatMediaInputNode.swift b/submodules/TelegramUI/TelegramUI/ChatMediaInputNode.swift index 7e7062793f..6609bc5d86 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMediaInputNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMediaInputNode.swift @@ -8,6 +8,7 @@ import SwiftSignalKit import TelegramPresentationData import MergeLists import AccountContext +import StickerPackPreviewUI private struct PeerSpecificPackData { let peer: Peer diff --git a/submodules/TelegramUI/TelegramUI/ChatMediaInputStickerGridItem.swift b/submodules/TelegramUI/TelegramUI/ChatMediaInputStickerGridItem.swift index 75b78065e9..d1b0ab25f5 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMediaInputStickerGridItem.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMediaInputStickerGridItem.swift @@ -8,6 +8,7 @@ import Postbox import TelegramPresentationData import StickerResources import AccountContext +import AnimationUI enum ChatMediaInputStickerGridSectionAccessory { case none diff --git a/submodules/TelegramUI/TelegramUI/ChatMediaInputStickerPackItem.swift b/submodules/TelegramUI/TelegramUI/ChatMediaInputStickerPackItem.swift index e95b29b651..841ba69cf5 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMediaInputStickerPackItem.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMediaInputStickerPackItem.swift @@ -7,6 +7,7 @@ import SwiftSignalKit import Postbox import TelegramPresentationData import StickerResources +import AnimationUI final class ChatMediaInputStickerPackItem: ListViewItem { let account: Account diff --git a/submodules/TelegramUI/TelegramUI/ChatMediaInputTrendingPane.swift b/submodules/TelegramUI/TelegramUI/ChatMediaInputTrendingPane.swift index fe878f5dc6..9b2568f367 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMediaInputTrendingPane.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMediaInputTrendingPane.swift @@ -9,6 +9,7 @@ import TelegramPresentationData import MergeLists import OverlayStatusController import AccountContext +import StickerPackPreviewUI final class TrendingPaneInteraction { let installPack: (ItemCollectionInfo) -> Void diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageAnimatedStickerItemNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageAnimatedStickerItemNode.swift index 6381993a97..142d556664 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageAnimatedStickerItemNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageAnimatedStickerItemNode.swift @@ -13,6 +13,7 @@ import AccountContext import MediaResources import StickerResources import ContextUI +import AnimationUI private let nameFont = Font.medium(14.0) private let inlineBotPrefixFont = Font.regular(14.0) diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveMediaNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveMediaNode.swift index 9129113bcf..92a08fded4 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveMediaNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveMediaNode.swift @@ -16,6 +16,7 @@ import PhotoResources import TelegramUniversalVideoContent import TelegramStringFormatting import GalleryUI +import AnimationUI private struct FetchControls { let fetch: (Bool) -> Void diff --git a/submodules/TelegramUI/TelegramUI/ChatMultipleAvatarsNavigationNode.swift b/submodules/TelegramUI/TelegramUI/ChatMultipleAvatarsNavigationNode.swift deleted file mode 100644 index cdaff6cf5f..0000000000 --- a/submodules/TelegramUI/TelegramUI/ChatMultipleAvatarsNavigationNode.swift +++ /dev/null @@ -1,60 +0,0 @@ -import Foundation -import UIKit -import AsyncDisplayKit -import Display -import TelegramCore -import Postbox -import TelegramPresentationData - -final class ChatMultipleAvatarsNavigationNode: ASDisplayNode { - private let multipleAvatarsNode: MultipleAvatarsNode - - private weak var account: Account? - private var theme: PresentationTheme? - private var peers: [Peer] = [] - - override init() { - self.multipleAvatarsNode = MultipleAvatarsNode() - - super.init() - - self.addSubnode(self.multipleAvatarsNode) - } - - override func calculateSizeThatFits(_ constrainedSize: CGSize) -> CGSize { - if constrainedSize.height.isLessThanOrEqualTo(32.0) { - return CGSize(width: 26.0, height: 26.0) - } else { - return CGSize(width: 37.0, height: 37.0) - } - } - - override func layout() { - super.layout() - - let bounds = self.bounds - if let account = self.account, let theme = self.theme, !bounds.width.isZero { - let avatarsLayout = MultipleAvatarsNode.asyncLayout(self.multipleAvatarsNode) - let apply = avatarsLayout(account, theme, self.peers, bounds.size) - let _ = apply(false) - } - if self.bounds.size.height.isLessThanOrEqualTo(26.0) { - self.multipleAvatarsNode.frame = bounds.offsetBy(dx: 8.0, dy: 0.0) - } else { - self.multipleAvatarsNode.frame = bounds.offsetBy(dx: 10.0, dy: 1.0) - } - } - - func setPeers(account: Account, theme: PresentationTheme, peers: [Peer], animated: Bool) { - self.account = account - self.peers = peers - - let bounds = self.bounds - if !bounds.width.isZero { - let avatarsLayout = MultipleAvatarsNode.asyncLayout(self.multipleAvatarsNode) - let apply = avatarsLayout(account, theme, peers, bounds.size) - let _ = apply(animated) - } - } -} - diff --git a/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift b/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift index 28dcdf6c74..ecf33966e7 100644 --- a/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift @@ -13,6 +13,8 @@ import TemporaryCachedPeerDataManager import AlertUI import OpenInExternalAppUI import InstantPageUI +import HashtagSearchUI +import StickerPackPreviewUI private final class ChatRecentActionsListOpaqueState { let entries: [ChatRecentActionsEntry] diff --git a/submodules/TelegramUI/TelegramUI/CreateChannelController.swift b/submodules/TelegramUI/TelegramUI/CreateChannelController.swift index 5b50078d8b..6137e54c5e 100644 --- a/submodules/TelegramUI/TelegramUI/CreateChannelController.swift +++ b/submodules/TelegramUI/TelegramUI/CreateChannelController.swift @@ -10,6 +10,7 @@ import ItemListUI import AccountContext import AlertUI import LegacyUI +import ItemListAvatarAndNameInfoItem private struct CreateChannelArguments { let account: Account diff --git a/submodules/TelegramUI/TelegramUI/CreateGroupController.swift b/submodules/TelegramUI/TelegramUI/CreateGroupController.swift index 7d0bb3f77e..039267df06 100644 --- a/submodules/TelegramUI/TelegramUI/CreateGroupController.swift +++ b/submodules/TelegramUI/TelegramUI/CreateGroupController.swift @@ -15,6 +15,7 @@ import PhotoResources import LegacyUI import LocationUI import ItemListPeerItem +import ItemListAvatarAndNameInfoItem public enum CreateGroupMode { case generic diff --git a/submodules/TelegramUI/TelegramUI/DeviceContactInfoController.swift b/submodules/TelegramUI/TelegramUI/DeviceContactInfoController.swift index ecb652b84e..9751eac50c 100644 --- a/submodules/TelegramUI/TelegramUI/DeviceContactInfoController.swift +++ b/submodules/TelegramUI/TelegramUI/DeviceContactInfoController.swift @@ -12,6 +12,7 @@ import AccountContext import AlertUI import PhotoResources import MediaResources +import ItemListAvatarAndNameInfoItem private enum DeviceContactInfoAction { case sendMessage diff --git a/submodules/TelegramUI/TelegramUI/EditSettingsController.swift b/submodules/TelegramUI/TelegramUI/EditSettingsController.swift index 1c82330411..3ad3d275c5 100644 --- a/submodules/TelegramUI/TelegramUI/EditSettingsController.swift +++ b/submodules/TelegramUI/TelegramUI/EditSettingsController.swift @@ -11,6 +11,7 @@ import ItemListUI import AccountContext import GalleryUI import LegacyUI +import ItemListAvatarAndNameInfoItem private struct EditSettingsItemArguments { let context: AccountContext diff --git a/submodules/TelegramUI/TelegramUI/FeaturedStickerPacksController.swift b/submodules/TelegramUI/TelegramUI/FeaturedStickerPacksController.swift index 09d19e9971..d3f9261d7c 100644 --- a/submodules/TelegramUI/TelegramUI/FeaturedStickerPacksController.swift +++ b/submodules/TelegramUI/TelegramUI/FeaturedStickerPacksController.swift @@ -8,6 +8,7 @@ import TelegramPresentationData import TelegramUIPreferences import ItemListUI import AccountContext +import StickerPackPreviewUI private final class FeaturedStickerPacksControllerArguments { let account: Account diff --git a/submodules/TelegramUI/TelegramUI/FetchCachedRepresentations.swift b/submodules/TelegramUI/TelegramUI/FetchCachedRepresentations.swift index 594b343e71..dcf3de2e9f 100644 --- a/submodules/TelegramUI/TelegramUI/FetchCachedRepresentations.swift +++ b/submodules/TelegramUI/TelegramUI/FetchCachedRepresentations.swift @@ -17,6 +17,7 @@ import TelegramUIPrivateModule import MediaResources import PhotoResources import ImageBlur +import AnimationUI public func fetchCachedResourceRepresentation(account: Account, resource: MediaResource, representation: CachedMediaResourceRepresentation) -> Signal { if let representation = representation as? CachedStickerAJpegRepresentation { diff --git a/submodules/TelegramUI/TelegramUI/GroupInfoController.swift b/submodules/TelegramUI/TelegramUI/GroupInfoController.swift index 77da42fb97..283267db4c 100644 --- a/submodules/TelegramUI/TelegramUI/GroupInfoController.swift +++ b/submodules/TelegramUI/TelegramUI/GroupInfoController.swift @@ -24,6 +24,8 @@ import LocationUI import ItemListPeerItem import ContactListUI import ChatListUI +import ItemListAvatarAndNameInfoItem +import ItemListPeerActionItem private final class GroupInfoArguments { let context: AccountContext diff --git a/submodules/TelegramUI/TelegramUI/GroupStickerPackSetupController.swift b/submodules/TelegramUI/TelegramUI/GroupStickerPackSetupController.swift index a516fd4ea3..5b91e6caba 100644 --- a/submodules/TelegramUI/TelegramUI/GroupStickerPackSetupController.swift +++ b/submodules/TelegramUI/TelegramUI/GroupStickerPackSetupController.swift @@ -8,6 +8,7 @@ import TelegramPresentationData import TelegramUIPreferences import ItemListUI import AccountContext +import StickerPackPreviewUI private final class GroupStickerPackSetupControllerArguments { let account: Account diff --git a/submodules/TelegramUI/TelegramUI/HorizontalListContextResultsChatInputContextPanelNode.swift b/submodules/TelegramUI/TelegramUI/HorizontalListContextResultsChatInputContextPanelNode.swift index caa47666e3..60dfca9fb6 100644 --- a/submodules/TelegramUI/TelegramUI/HorizontalListContextResultsChatInputContextPanelNode.swift +++ b/submodules/TelegramUI/TelegramUI/HorizontalListContextResultsChatInputContextPanelNode.swift @@ -8,6 +8,7 @@ import SwiftSignalKit import TelegramPresentationData import MergeLists import AccountContext +import StickerPackPreviewUI private struct ChatContextResultStableId: Hashable { let result: ChatContextResult diff --git a/submodules/TelegramUI/TelegramUI/HorizontalListContextResultsChatInputPanelItem.swift b/submodules/TelegramUI/TelegramUI/HorizontalListContextResultsChatInputPanelItem.swift index 18ca1cca26..923495c013 100644 --- a/submodules/TelegramUI/TelegramUI/HorizontalListContextResultsChatInputPanelItem.swift +++ b/submodules/TelegramUI/TelegramUI/HorizontalListContextResultsChatInputPanelItem.swift @@ -9,6 +9,7 @@ import AVFoundation import RadialStatusNode import StickerResources import PhotoResources +import AnimationUI final class HorizontalListContextResultsChatInputPanelItem: ListViewItem { let account: Account diff --git a/submodules/TelegramUI/TelegramUI/HorizontalStickerGridItem.swift b/submodules/TelegramUI/TelegramUI/HorizontalStickerGridItem.swift index bc29ecdd14..44d68c2eb5 100755 --- a/submodules/TelegramUI/TelegramUI/HorizontalStickerGridItem.swift +++ b/submodules/TelegramUI/TelegramUI/HorizontalStickerGridItem.swift @@ -7,6 +7,7 @@ import AsyncDisplayKit import Postbox import StickerResources import AccountContext +import AnimationUI final class HorizontalStickerGridItem: GridItem { let account: Account diff --git a/submodules/TelegramUI/TelegramUI/HorizontalStickersChatContextPanelNode.swift b/submodules/TelegramUI/TelegramUI/HorizontalStickersChatContextPanelNode.swift index eca241287f..b63b7ce1b7 100755 --- a/submodules/TelegramUI/TelegramUI/HorizontalStickersChatContextPanelNode.swift +++ b/submodules/TelegramUI/TelegramUI/HorizontalStickersChatContextPanelNode.swift @@ -8,6 +8,7 @@ import SwiftSignalKit import TelegramPresentationData import MergeLists import AccountContext +import StickerPackPreviewUI final class HorizontalStickersChatContextPanelInteraction { var previewedStickerItem: StickerPackItem? diff --git a/submodules/TelegramUI/TelegramUI/InstalledStickerPacksController.swift b/submodules/TelegramUI/TelegramUI/InstalledStickerPacksController.swift index 6944ff5efa..123e11d297 100644 --- a/submodules/TelegramUI/TelegramUI/InstalledStickerPacksController.swift +++ b/submodules/TelegramUI/TelegramUI/InstalledStickerPacksController.swift @@ -9,6 +9,7 @@ import TelegramUIPreferences import ItemListUI import TextFormat import AccountContext +import StickerPackPreviewUI private final class InstalledStickerPacksControllerArguments { let account: Account diff --git a/submodules/TelegramUI/TelegramUI/ItemListStickerPackItem.swift b/submodules/TelegramUI/TelegramUI/ItemListStickerPackItem.swift index c0ebed6aba..ebcb752b22 100644 --- a/submodules/TelegramUI/TelegramUI/ItemListStickerPackItem.swift +++ b/submodules/TelegramUI/TelegramUI/ItemListStickerPackItem.swift @@ -8,6 +8,7 @@ import TelegramCore import TelegramPresentationData import ItemListUI import StickerResources +import AnimationUI struct ItemListStickerPackItemEditing: Equatable { let editable: Bool diff --git a/submodules/TelegramUI/TelegramUI/MediaInputPaneTrendingItem.swift b/submodules/TelegramUI/TelegramUI/MediaInputPaneTrendingItem.swift index 46d4e54d00..ba165be0e8 100644 --- a/submodules/TelegramUI/TelegramUI/MediaInputPaneTrendingItem.swift +++ b/submodules/TelegramUI/TelegramUI/MediaInputPaneTrendingItem.swift @@ -8,6 +8,7 @@ import TelegramCore import TelegramPresentationData import StickerResources import AccountContext +import AnimationUI class MediaInputPaneTrendingItem: ListViewItem { let account: Account diff --git a/submodules/TelegramUI/TelegramUI/MetalAnimationRenderer.swift b/submodules/TelegramUI/TelegramUI/MetalAnimationRenderer.swift deleted file mode 100644 index 6bb38a85f7..0000000000 --- a/submodules/TelegramUI/TelegramUI/MetalAnimationRenderer.swift +++ /dev/null @@ -1,178 +0,0 @@ -import Foundation -import UIKit -import AsyncDisplayKit -import SwiftSignalKit -import Metal - -#if false//!targetEnvironment(simulator) - -final class MetalAnimationRenderer: ASDisplayNode, AnimationRenderer { - private let device: MTLDevice - private let pipelineState: MTLRenderPipelineState - private let commandQueue: MTLCommandQueue - private let vertexBuffer: MTLBuffer - private let colorTexture: MTLTexture - private let alphaTexture: MTLTexture - private let samplerColor: MTLSamplerState - private let samplerAlpha: MTLSamplerState - - private var metalLayer: CAMetalLayer { - return self.layer as! CAMetalLayer - } - - override init() { - let device = MTLCreateSystemDefaultDevice()! - - self.device = device - - do { - let library = try device.makeLibrary(source: - """ -using namespace metal; - -struct VertexIn { - packed_float3 position; - packed_float2 texCoord; -}; - -struct VertexOut { - float4 position [[position]]; - float2 texCoord; -}; - -vertex VertexOut basic_vertex( - const device VertexIn* vertex_array [[ buffer(0) ]], - unsigned int vid [[ vertex_id ]] -) { - VertexIn VertexIn = vertex_array[vid]; - - VertexOut VertexOut; - VertexOut.position = float4(VertexIn.position, 1.0); - VertexOut.texCoord = VertexIn.texCoord; - - return VertexOut; -} - -fragment float4 basic_fragment( - VertexOut interpolated [[stage_in]], - texture2d texColor [[ texture(0) ]], - sampler samplerColor [[ sampler(0) ]]//, - //texture2d texA [[ texture(1) ]], - //sampler samplerA [[ sampler(1) ]] -) { - float4 color = texColor.sample(samplerColor, interpolated.texCoord); - float4 alpha = 1.0;//texA.sample(samplerA, interpolated.texCoord); - return float4(color.r * alpha.a, color.g * alpha.a, color.b * alpha.a, alpha.a); -} -""", options: nil) - - let fragmentProgram = library.makeFunction(name: "basic_fragment") - let vertexProgram = library.makeFunction(name: "basic_vertex") - - let pipelineStateDescriptor = MTLRenderPipelineDescriptor() - pipelineStateDescriptor.vertexFunction = vertexProgram - pipelineStateDescriptor.fragmentFunction = fragmentProgram - pipelineStateDescriptor.colorAttachments[0].pixelFormat = .bgra8Unorm - - self.pipelineState = try! device.makeRenderPipelineState(descriptor: pipelineStateDescriptor) - - self.commandQueue = device.makeCommandQueue()! - - let vertexData: [Float] = [ - -1.0, -1.0, 0.0, 0.0, 1.0, - -1.0, 1.0, 0.0, 0.0, 0.0, - 1.0, -1.0, 0.0, 1.0, 1.0, - 1.0, -1.0, 0.0, 1.0, 1.0, - -1.0, 1.0, 0.0, 0.0, 0.0, - 1.0, 1.0, 0.0, 1.0, 0.0 - ] - - let dataSize = vertexData.count * MemoryLayout.size(ofValue: vertexData[0]) - self.vertexBuffer = device.makeBuffer(bytes: vertexData, length: dataSize, options: [])! - - let colorTextureDesc: MTLTextureDescriptor = MTLTextureDescriptor.texture2DDescriptor(pixelFormat: .pvrtc_rgb_4bpp, width: 512, height: 512, mipmapped: false) - colorTextureDesc.sampleCount = 1 - if #available(iOS 9.0, *) { - colorTextureDesc.storageMode = .private - colorTextureDesc.usage = .shaderRead - } - colorTextureDesc.textureType = .type2D - - self.colorTexture = device.makeTexture(descriptor: colorTextureDesc)! - - let alphaTextureDesc: MTLTextureDescriptor = MTLTextureDescriptor.texture2DDescriptor(pixelFormat: .a8Unorm, width: 320, height: 320, mipmapped: false) - alphaTextureDesc.sampleCount = 1 - if #available(iOS 9.0, *) { - alphaTextureDesc.storageMode = .private - alphaTextureDesc.usage = .shaderRead - } - alphaTextureDesc.textureType = .type2D - - self.alphaTexture = device.makeTexture(descriptor: alphaTextureDesc)! - - let sampler = MTLSamplerDescriptor() - sampler.minFilter = MTLSamplerMinMagFilter.nearest - sampler.magFilter = MTLSamplerMinMagFilter.nearest - sampler.mipFilter = MTLSamplerMipFilter.nearest - sampler.maxAnisotropy = 1 - sampler.sAddressMode = MTLSamplerAddressMode.clampToEdge - sampler.tAddressMode = MTLSamplerAddressMode.clampToEdge - sampler.rAddressMode = MTLSamplerAddressMode.clampToEdge - sampler.normalizedCoordinates = true - sampler.lodMinClamp = 0.0 - sampler.lodMaxClamp = .greatestFiniteMagnitude - self.samplerColor = device.makeSamplerState(descriptor: sampler)! - self.samplerAlpha = device.makeSamplerState(descriptor: sampler)! - } catch let e { - print(e) - preconditionFailure() - } - - super.init() - - self.setLayerBlock { () -> CALayer in - return CAMetalLayer() - } - - self.metalLayer.device = self.device - self.metalLayer.pixelFormat = .bgra8Unorm - self.metalLayer.framebufferOnly = true - self.metalLayer.isOpaque = false - self.metalLayer.contentsScale = 2.0 - } - - func render(queue: Queue, width: Int, height: Int, bytes: UnsafeRawPointer, length: Int, completion: @escaping () -> Void) { - if self.metalLayer.bounds.width.isZero { - return - } - - let bgrgLength = width * 2 * height - //let alphaLength = width * height - - self.colorTexture.replace(region: MTLRegionMake2D(0, 0, width, height), mipmapLevel: 0, withBytes: bytes.assumingMemoryBound(to: UInt8.self), bytesPerRow: width / 2) - //self.alphaTexture.replace(region: MTLRegionMake2D(0, 0, width, height), mipmapLevel: 0, withBytes: bytes.assumingMemoryBound(to: UInt8.self).advanced(by: bgrgLength), bytesPerRow: width) - - let renderPassDescriptor = MTLRenderPassDescriptor() - let drawable = self.metalLayer.nextDrawable()! - renderPassDescriptor.colorAttachments[0].texture = drawable.texture - renderPassDescriptor.colorAttachments[0].loadAction = .clear - renderPassDescriptor.colorAttachments[0].clearColor = MTLClearColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.0) - - let commandBuffer = commandQueue.makeCommandBuffer()! - - let renderEncoder = commandBuffer.makeRenderCommandEncoder(descriptor: renderPassDescriptor)! - renderEncoder.setRenderPipelineState(self.pipelineState) - renderEncoder.setVertexBuffer(self.vertexBuffer, offset: 0, index: 0) - renderEncoder.setFragmentTexture(self.colorTexture, index: 0) - renderEncoder.setFragmentSamplerState(self.samplerColor, index: 0) - renderEncoder.setFragmentTexture(self.alphaTexture, index: 1) - renderEncoder.setFragmentSamplerState(self.samplerAlpha, index: 1) - renderEncoder.drawPrimitives(type: .triangle, vertexStart: 0, vertexCount: 6, instanceCount: 1) - renderEncoder.endEncoding() - - commandBuffer.present(drawable) - commandBuffer.commit() - } -} - -#endif diff --git a/submodules/TelegramUI/TelegramUI/MultipleAvatarsNode.swift b/submodules/TelegramUI/TelegramUI/MultipleAvatarsNode.swift deleted file mode 100644 index aa493aabaa..0000000000 --- a/submodules/TelegramUI/TelegramUI/MultipleAvatarsNode.swift +++ /dev/null @@ -1,95 +0,0 @@ -import Foundation -import UIKit -import Display -import AsyncDisplayKit -import Postbox -import TelegramCore -import TelegramPresentationData -import AvatarNode - -private let avatarFont = UIFont(name: ".SFCompactRounded-Semibold", size: 13.0)! - -final class MultipleAvatarsNode: ASDisplayNode { - private var nodes: [(Peer, AvatarNode)] = [] - - static func asyncLayout(_ current: MultipleAvatarsNode?) -> (Account, PresentationTheme, [Peer], CGSize) -> (Bool) -> MultipleAvatarsNode { - let currentNodes: [(Peer, AvatarNode)] = current?.nodes ?? [] - return { account, theme, peers, size in - var node: MultipleAvatarsNode - if let current = current { - node = current - } else { - node = MultipleAvatarsNode() - } - - var resultNodes: [(Peer, AvatarNode)] = [] - for peer in peers { - var found = false - inner: for (currentPeer, currentNode) in currentNodes { - if currentPeer.id == peer.id { - resultNodes.append((peer, currentNode)) - found = true - break inner - } - } - if !found { - resultNodes.append((peer, AvatarNode(font: avatarFont))) - } - if resultNodes.count == 4 { - break - } - } - - return { animated in - let partitionSize = floor(size.width / 2.0) - let singleSize = partitionSize - 1.0 - - var index = 0 - for (peer, avatarNode) in resultNodes { - let xPosition: CGFloat = index % 2 == 0 ? 0.0 : size.width - singleSize - let yPosition = index / 2 == 0 ? 0.0 : size.height - singleSize - let avatarFrame = CGRect(origin: CGPoint(x: xPosition, y: yPosition), size: CGSize(width: singleSize, height: singleSize)) - if avatarNode.supernode == nil { - node.addSubnode(avatarNode) - avatarNode.frame = avatarFrame - if animated { - avatarNode.layer.animateScale(from: 0.2, to: 1.0, duration: 0.2) - avatarNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.2) - } - } else { - let distance = CGPoint(x: avatarNode.frame.midX - avatarFrame.midX, y: avatarNode.frame.midY - avatarFrame.midY) - avatarNode.frame = avatarFrame - if animated { - avatarNode.layer.animatePosition(from: distance, to: CGPoint(), duration: 0.2, timingFunction: CAMediaTimingFunctionName.easeInEaseOut.rawValue, additive: true) - } - } - avatarNode.setPeer(account: account, theme: theme, peer: peer) - index += 1 - } - index += 1 - for (_, currentNode) in node.nodes { - var found = false - inner: for (_, resultNode) in resultNodes { - if currentNode === resultNode { - found = true - break inner - } - } - if !found { - if animated { - currentNode.layer.animateScale(from: 1.0, to: 0.4, duration: 0.2, removeOnCompletion: false) - currentNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.2, removeOnCompletion: false, completion: { [weak currentNode] _ in - currentNode?.removeFromSupernode() - }) - } else { - currentNode.removeFromSupernode() - } - } - } - node.nodes = resultNodes - - return node - } - } - } -} diff --git a/submodules/TelegramUI/TelegramUI/NotificationContentContext.swift b/submodules/TelegramUI/TelegramUI/NotificationContentContext.swift index 35e9911d54..a491dea674 100644 --- a/submodules/TelegramUI/TelegramUI/NotificationContentContext.swift +++ b/submodules/TelegramUI/TelegramUI/NotificationContentContext.swift @@ -12,6 +12,7 @@ import AccountContext import Tuples import StickerResources import PhotoResources +import AnimationUI private enum NotificationContentAuthorizationError { case unauthorized diff --git a/submodules/TelegramUI/TelegramUI/NotificationExceptionControllerNode.swift b/submodules/TelegramUI/TelegramUI/NotificationExceptionControllerNode.swift index de32a97c3a..bc983464f7 100644 --- a/submodules/TelegramUI/TelegramUI/NotificationExceptionControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/NotificationExceptionControllerNode.swift @@ -16,6 +16,7 @@ import ItemListPeerItem import ContactsPeerItem import ChatListSearchItemHeader import ChatListUI +import ItemListPeerActionItem private final class NotificationExceptionState : Equatable { let mode:NotificationExceptionMode diff --git a/submodules/TelegramUI/TelegramUI/OpenChatMessage.swift b/submodules/TelegramUI/TelegramUI/OpenChatMessage.swift index c6647dc801..7d142e3a17 100644 --- a/submodules/TelegramUI/TelegramUI/OpenChatMessage.swift +++ b/submodules/TelegramUI/TelegramUI/OpenChatMessage.swift @@ -12,6 +12,7 @@ import AccountContext import GalleryUI import InstantPageUI import LocationUI +import StickerPackPreviewUI private enum ChatMessageGalleryControllerData { case url(String) diff --git a/submodules/TelegramUI/TelegramUI/OpenResolvedUrl.swift b/submodules/TelegramUI/TelegramUI/OpenResolvedUrl.swift index 25285e852c..d0b62f9c96 100644 --- a/submodules/TelegramUI/TelegramUI/OpenResolvedUrl.swift +++ b/submodules/TelegramUI/TelegramUI/OpenResolvedUrl.swift @@ -10,6 +10,7 @@ import OverlayStatusController import AlertUI import PassportUI import InstantPageUI +import StickerPackPreviewUI private func defaultNavigationForPeerId(_ peerId: PeerId?, navigation: ChatControllerInteractionNavigateToPeer) -> ChatControllerInteractionNavigateToPeer { if case .default = navigation { diff --git a/submodules/TelegramUI/TelegramUI/PeersNearbyController.swift b/submodules/TelegramUI/TelegramUI/PeersNearbyController.swift index cb519ac4f2..af1fd979d6 100644 --- a/submodules/TelegramUI/TelegramUI/PeersNearbyController.swift +++ b/submodules/TelegramUI/TelegramUI/PeersNearbyController.swift @@ -14,6 +14,7 @@ import AccountContext import AlertUI import ItemListPeerItem import TelegramPermissionsUI +import ItemListPeerActionItem private struct PeerNearbyEntry { let peer: (Peer, CachedPeerData?) diff --git a/submodules/TelegramUI/TelegramUI/SelectivePrivacySettingsPeersController.swift b/submodules/TelegramUI/TelegramUI/SelectivePrivacySettingsPeersController.swift index 4110931c60..a57298d29e 100644 --- a/submodules/TelegramUI/TelegramUI/SelectivePrivacySettingsPeersController.swift +++ b/submodules/TelegramUI/TelegramUI/SelectivePrivacySettingsPeersController.swift @@ -9,6 +9,7 @@ import TelegramUIPreferences import ItemListUI import AccountContext import ItemListPeerItem +import ItemListPeerActionItem private final class SelectivePrivacyPeersControllerArguments { let account: Account diff --git a/submodules/TelegramUI/TelegramUI/SettingsController.swift b/submodules/TelegramUI/TelegramUI/SettingsController.swift index 1e9ffb4884..fa3a56963b 100644 --- a/submodules/TelegramUI/TelegramUI/SettingsController.swift +++ b/submodules/TelegramUI/TelegramUI/SettingsController.swift @@ -27,6 +27,8 @@ import SearchUI import ItemListPeerItem import CallListUI import ChatListUI +import ItemListAvatarAndNameInfoItem +import ItemListPeerActionItem private let maximumNumberOfAccounts = 3 diff --git a/submodules/TelegramUI/TelegramUI/StickerPaneSearchContentNode.swift b/submodules/TelegramUI/TelegramUI/StickerPaneSearchContentNode.swift index a93d6abf0a..0c4a462ccc 100644 --- a/submodules/TelegramUI/TelegramUI/StickerPaneSearchContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/StickerPaneSearchContentNode.swift @@ -10,6 +10,7 @@ import LegacyComponents import TelegramUIPrivateModule import MergeLists import AccountContext +import StickerPackPreviewUI final class StickerPaneSearchInteraction { let open: (StickerPackCollectionInfo) -> Void diff --git a/submodules/TelegramUI/TelegramUI/StickerPaneSearchStickerItem.swift b/submodules/TelegramUI/TelegramUI/StickerPaneSearchStickerItem.swift index bf7412d1ed..e2aeaeed17 100644 --- a/submodules/TelegramUI/TelegramUI/StickerPaneSearchStickerItem.swift +++ b/submodules/TelegramUI/TelegramUI/StickerPaneSearchStickerItem.swift @@ -8,6 +8,7 @@ import Postbox import TelegramPresentationData import StickerResources import AccountContext +import AnimationUI final class StickerPaneSearchStickerSection: GridSection { let code: String diff --git a/submodules/TelegramUI/TelegramUI/StickersChatInputContextPanelNode.swift b/submodules/TelegramUI/TelegramUI/StickersChatInputContextPanelNode.swift index 5bceb506a0..33e5ac327a 100644 --- a/submodules/TelegramUI/TelegramUI/StickersChatInputContextPanelNode.swift +++ b/submodules/TelegramUI/TelegramUI/StickersChatInputContextPanelNode.swift @@ -8,6 +8,7 @@ import SwiftSignalKit import TelegramPresentationData import MergeLists import AccountContext +import StickerPackPreviewUI private struct StickersChatInputContextPanelEntryStableId: Hashable { let ids: [MediaId] diff --git a/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap b/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap index f861574e52..4ebced82c3 100644 --- a/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap +++ b/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap @@ -15,6 +15,4 @@ module TelegramUIPrivateModule { header "../TGPresentationAutoNightPreferences.h" header "../TGProxyItem.h" header "../UIImage+ImageEffects.h" - header "../YUV.h" - header "../../third-party/bc1/TextureCompression.h" } diff --git a/submodules/TelegramUI/TelegramUI/TextLinkHandling.swift b/submodules/TelegramUI/TelegramUI/TextLinkHandling.swift index 635c02d0e4..9464091b4f 100644 --- a/submodules/TelegramUI/TelegramUI/TextLinkHandling.swift +++ b/submodules/TelegramUI/TelegramUI/TextLinkHandling.swift @@ -10,6 +10,8 @@ import AccountContext import SafariServices import OpenInExternalAppUI import InstantPageUI +import HashtagSearchUI +import StickerPackPreviewUI func handleTextLinkActionImpl(context: AccountContext, peerId: PeerId?, navigateDisposable: MetaDisposable, controller: ViewController, action: TextLinkItemActionType, itemLink: TextLinkItem) { let presentImpl: (ViewController, Any?) -> Void = { controllerToPresent, _ in diff --git a/submodules/TelegramUI/TelegramUI/UserInfoController.swift b/submodules/TelegramUI/TelegramUI/UserInfoController.swift index 68d39a969d..f5e6f9b0dd 100644 --- a/submodules/TelegramUI/TelegramUI/UserInfoController.swift +++ b/submodules/TelegramUI/TelegramUI/UserInfoController.swift @@ -17,6 +17,7 @@ import ShareController import AlertUI import TelegramNotices import GalleryUI +import ItemListAvatarAndNameInfoItem private final class UserInfoControllerArguments { let account: Account diff --git a/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj b/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj index 32da6406ee..59bc522823 100644 --- a/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj @@ -22,7 +22,6 @@ 0910B0F121FB3DE100F8F87D /* WallpaperPatternPanelNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0910B0F021FB3DE100F8F87D /* WallpaperPatternPanelNode.swift */; }; 091417F221EF4E5D00C8325A /* WallpaperGalleryController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 091417F121EF4E5D00C8325A /* WallpaperGalleryController.swift */; }; 091417F421EF4F5F00C8325A /* WallpaperGalleryItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 091417F321EF4F5F00C8325A /* WallpaperGalleryItem.swift */; }; - 091954792294754E00E11046 /* AnimatedStickerUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 091954782294754E00E11046 /* AnimatedStickerUtils.swift */; }; 091BEAB3214552D9003AEA30 /* Vision.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D02DADBE2138D76F00116225 /* Vision.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 0921F60E228EE000001A13D7 /* ChatMessageActionUrlAuthController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0921F60D228EE000001A13D7 /* ChatMessageActionUrlAuthController.swift */; }; 092F368D2154AAEA001A9F49 /* SFCompactRounded-Semibold.otf in Resources */ = {isa = PBXBuildFile; fileRef = 092F368C2154AAE9001A9F49 /* SFCompactRounded-Semibold.otf */; }; @@ -179,23 +178,6 @@ D00ACA5A2022897D0045D427 /* ProcessedPeerRestrictionText.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00ACA592022897D0045D427 /* ProcessedPeerRestrictionText.swift */; }; D00BDA1F1EE5B69200C64C5E /* ChannelAdminController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00BDA1E1EE5B69200C64C5E /* ChannelAdminController.swift */; }; D010E17D22C238BC009324D4 /* RLottie.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D010E17C22C238BC009324D4 /* RLottie.framework */; }; - D01590A622BD460C0017C33E /* MetalAnimationRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01590A522BD460C0017C33E /* MetalAnimationRenderer.swift */; }; - D01590A822BD462C0017C33E /* SoftwareAnimationRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01590A722BD462C0017C33E /* SoftwareAnimationRenderer.swift */; }; - D01590AB22BD467B0017C33E /* AnimationRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01590AA22BD467B0017C33E /* AnimationRenderer.swift */; }; - D01590AE22BD58AD0017C33E /* YUV.h in Headers */ = {isa = PBXBuildFile; fileRef = D01590AC22BD58AD0017C33E /* YUV.h */; }; - D01590AF22BD58AD0017C33E /* YUV.m in Sources */ = {isa = PBXBuildFile; fileRef = D01590AD22BD58AD0017C33E /* YUV.m */; }; - D01590BA22BDAEBC0017C33E /* ColorVec.h in Headers */ = {isa = PBXBuildFile; fileRef = D01590B022BDAEB30017C33E /* ColorVec.h */; }; - D01590BB22BDAEBC0017C33E /* BC1Compression.h in Headers */ = {isa = PBXBuildFile; fileRef = D01590B122BDAEBB0017C33E /* BC1Compression.h */; }; - D01590BC22BDAEBC0017C33E /* BMPImage.h in Headers */ = {isa = PBXBuildFile; fileRef = D01590B222BDAEBB0017C33E /* BMPImage.h */; }; - D01590BD22BDAEBC0017C33E /* DDSImage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D01590B322BDAEBB0017C33E /* DDSImage.cpp */; }; - D01590BE22BDAEBC0017C33E /* Image.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D01590B422BDAEBB0017C33E /* Image.cpp */; }; - D01590BF22BDAEBC0017C33E /* Image.h in Headers */ = {isa = PBXBuildFile; fileRef = D01590B522BDAEBC0017C33E /* Image.h */; }; - D01590C022BDAEBC0017C33E /* BC1Compression.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D01590B622BDAEBC0017C33E /* BC1Compression.cpp */; }; - D01590C122BDAEBC0017C33E /* DDSImage.h in Headers */ = {isa = PBXBuildFile; fileRef = D01590B722BDAEBC0017C33E /* DDSImage.h */; }; - D01590C222BDAEBC0017C33E /* TypeDefinitions.h in Headers */ = {isa = PBXBuildFile; fileRef = D01590B822BDAEBC0017C33E /* TypeDefinitions.h */; }; - D01590C322BDAEBC0017C33E /* BMPImage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D01590B922BDAEBC0017C33E /* BMPImage.cpp */; }; - D01590C722BE61CB0017C33E /* TextureCompression.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D01590C522BE61CB0017C33E /* TextureCompression.cpp */; }; - 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 */; }; D01776BE1F1E76920044446D /* PeerMediaCollectionSectionsNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01776BD1F1E76920044446D /* PeerMediaCollectionSectionsNode.swift */; }; @@ -238,11 +220,15 @@ D0383EE6207D299600C45548 /* EmojisChatInputPanelItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0383EE5207D299600C45548 /* EmojisChatInputPanelItem.swift */; }; D038AC5322F88A3600320981 /* ImageBlur.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D038AC5222F88A3600320981 /* ImageBlur.framework */; }; D03AA4DF202DBF6F0056C405 /* ChatContextResultPeekContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03AA4DE202DBF6F0056C405 /* ChatContextResultPeekContentNode.swift */; }; - D03AA4E5202DF8840056C405 /* StickerPreviewPeekContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03AA4E4202DF8840056C405 /* StickerPreviewPeekContent.swift */; }; D03AE67322B9459C0078411C /* HockeySDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03AE67222B9459C0078411C /* HockeySDK.framework */; }; D03AE67522B945D30078411C /* BuildConfig.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03AE67422B945D30078411C /* BuildConfig.framework */; }; D03E3D2B23045B120049C28B /* ChatMessageRestrictedBubbleContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3D2A23045B120049C28B /* ChatMessageRestrictedBubbleContentNode.swift */; }; D03E3D4D23045E410049C28B /* PlatformRestrictionMatching.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3D4C23045E410049C28B /* PlatformRestrictionMatching.framework */; }; + D03E3D7F2304ACB40049C28B /* HashtagSearchUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3D7E2304ACB40049C28B /* HashtagSearchUI.framework */; }; + D03E3DD22304AF8E0049C28B /* ItemListAvatarAndNameInfoItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3DD12304AF8E0049C28B /* ItemListAvatarAndNameInfoItem.framework */; }; + D03E3E002304B2AC0049C28B /* ItemListPeerActionItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3DFF2304B2AC0049C28B /* ItemListPeerActionItem.framework */; }; + D03E3E482304B4670049C28B /* StickerPackPreviewUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E472304B4670049C28B /* StickerPackPreviewUI.framework */; }; + D03E3E8C2304B6E10049C28B /* YuvConversion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E8B2304B6E10049C28B /* YuvConversion.framework */; }; D04203152037162700490EA5 /* MediaInputPaneTrendingItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04203142037162700490EA5 /* MediaInputPaneTrendingItem.swift */; }; D04281EF200E3D88009DDE36 /* GroupInfoSearchItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04281EE200E3D88009DDE36 /* GroupInfoSearchItem.swift */; }; D04281F1200E4084009DDE36 /* GroupInfoSearchNavigationContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04281F0200E4084009DDE36 /* GroupInfoSearchNavigationContentNode.swift */; }; @@ -307,7 +293,6 @@ D081E108217F583F003CD921 /* LanguageLinkPreviewContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D081E107217F583F003CD921 /* LanguageLinkPreviewContentNode.swift */; }; D083491C209361DC008CFD52 /* AvatarGalleryItemFooterContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D083491B209361DC008CFD52 /* AvatarGalleryItemFooterContentNode.swift */; }; D084023420E295F000065674 /* GroupStickerPackSetupController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D084023320E295F000065674 /* GroupStickerPackSetupController.swift */; }; - D08557E722C5FEB90026D6D2 /* AnimatedStickerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08557E622C5FEB90026D6D2 /* AnimatedStickerNode.swift */; }; D08799F022F649A600C4D6B3 /* TelegramBaseController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D08799EF22F649A600C4D6B3 /* TelegramBaseController.framework */; }; D0879A0D22F64E4C00C4D6B3 /* DeviceLocationManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879A0C22F64E4C00C4D6B3 /* DeviceLocationManager.framework */; }; D0879B1F22F7189600C4D6B3 /* AvatarNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879B1E22F7189600C4D6B3 /* AvatarNode.framework */; }; @@ -329,8 +314,6 @@ D091C7A41F8EBB1E00D7DE13 /* ChatPresentationData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D091C7A31F8EBB1E00D7DE13 /* ChatPresentationData.swift */; }; D091C7A61F8ECEA300D7DE13 /* SettingsThemeWallpaperNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D091C7A51F8ECEA300D7DE13 /* SettingsThemeWallpaperNode.swift */; }; D09250061FE5371D003F693F /* GlobalExperimentalSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D09250051FE5371D003F693F /* GlobalExperimentalSettings.swift */; }; - D0943AF61FDAAE7E001522CC /* MultipleAvatarsNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0943AF51FDAAE7E001522CC /* MultipleAvatarsNode.swift */; }; - D0943AFE1FDAE454001522CC /* ChatMultipleAvatarsNavigationNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0943AFD1FDAE454001522CC /* ChatMultipleAvatarsNavigationNode.swift */; }; D0943B001FDAE852001522CC /* ChatFeedNavigationInputPanelNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0943AFF1FDAE852001522CC /* ChatFeedNavigationInputPanelNode.swift */; }; D0943B051FDDFDA0001522CC /* OverlayInstantVideoNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0943B041FDDFDA0001522CC /* OverlayInstantVideoNode.swift */; }; D0943B071FDEC529001522CC /* InstantVideoRadialStatusNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0943B061FDEC528001522CC /* InstantVideoRadialStatusNode.swift */; }; @@ -380,42 +363,6 @@ D0AEAE272080D6970013176E /* PaneSearchBarNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AEAE262080D6970013176E /* PaneSearchBarNode.swift */; }; D0AEAE292080FD660013176E /* StickerPaneSearchGlobaltem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AEAE282080FD660013176E /* StickerPaneSearchGlobaltem.swift */; }; D0AF323A1FB1D8D60097362B /* ChatOverlayNavigationBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AF32391FB1D8D60097362B /* ChatOverlayNavigationBar.swift */; }; - D0AF796E22C2E26500CECCB8 /* astc.cc in Sources */ = {isa = PBXBuildFile; fileRef = D0AF793622C2E26500CECCB8 /* astc.cc */; }; - D0AF796F22C2E26500CECCB8 /* compress_texture.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF793822C2E26500CECCB8 /* compress_texture.h */; }; - D0AF797022C2E26500CECCB8 /* integer_sequence_encoding.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF793922C2E26500CECCB8 /* integer_sequence_encoding.h */; }; - D0AF797122C2E26500CECCB8 /* range.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF793A22C2E26500CECCB8 /* range.h */; }; - D0AF797222C2E26500CECCB8 /* misc.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF793B22C2E26500CECCB8 /* misc.h */; }; - D0AF797322C2E26500CECCB8 /* tables_data_size.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF793C22C2E26500CECCB8 /* tables_data_size.h */; }; - D0AF797422C2E26500CECCB8 /* matrix.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF793D22C2E26500CECCB8 /* matrix.h */; }; - D0AF797522C2E26500CECCB8 /* colors.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF793E22C2E26500CECCB8 /* colors.h */; }; - D0AF797622C2E26500CECCB8 /* endpoints_principal_components.cc in Sources */ = {isa = PBXBuildFile; fileRef = D0AF793F22C2E26500CECCB8 /* endpoints_principal_components.cc */; }; - D0AF797722C2E26500CECCB8 /* data_size.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF794022C2E26500CECCB8 /* data_size.h */; }; - D0AF797822C2E26500CECCB8 /* meson.build in Resources */ = {isa = PBXBuildFile; fileRef = D0AF794122C2E26500CECCB8 /* meson.build */; }; - D0AF797922C2E26500CECCB8 /* endpoints_bounding_box.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF794222C2E26500CECCB8 /* endpoints_bounding_box.h */; }; - D0AF797A22C2E26500CECCB8 /* tables_color_quantization.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF794322C2E26500CECCB8 /* tables_color_quantization.h */; }; - D0AF797B22C2E26500CECCB8 /* tables_integer_sequence_encoding.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF794422C2E26500CECCB8 /* tables_integer_sequence_encoding.h */; }; - D0AF797C22C2E26500CECCB8 /* constants.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF794522C2E26500CECCB8 /* constants.h */; }; - D0AF797D22C2E26500CECCB8 /* endpoints_min_max.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF794622C2E26500CECCB8 /* endpoints_min_max.h */; }; - D0AF797E22C2E26500CECCB8 /* dcheck.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF794722C2E26500CECCB8 /* dcheck.h */; }; - D0AF797F22C2E26500CECCB8 /* weights_quantize_table.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF794822C2E26500CECCB8 /* weights_quantize_table.h */; }; - D0AF798022C2E26500CECCB8 /* compress_block.cc in Sources */ = {isa = PBXBuildFile; fileRef = D0AF794922C2E26500CECCB8 /* compress_block.cc */; }; - D0AF798122C2E26500CECCB8 /* endpoints_principal_components.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF794A22C2E26500CECCB8 /* endpoints_principal_components.h */; }; - D0AF798222C2E26500CECCB8 /* bitmanip.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF794B22C2E26500CECCB8 /* bitmanip.h */; }; - D0AF798322C2E26500CECCB8 /* endpoints.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF794C22C2E26500CECCB8 /* endpoints.h */; }; - D0AF798422C2E26500CECCB8 /* compress_block.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF794D22C2E26500CECCB8 /* compress_block.h */; }; - D0AF798522C2E26500CECCB8 /* endpoints_encode.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF794E22C2E26500CECCB8 /* endpoints_encode.h */; }; - D0AF798622C2E26500CECCB8 /* weights_quantize.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF794F22C2E26500CECCB8 /* weights_quantize.h */; }; - D0AF798722C2E26500CECCB8 /* compress_texture.cc in Sources */ = {isa = PBXBuildFile; fileRef = D0AF795022C2E26500CECCB8 /* compress_texture.cc */; }; - D0AF798822C2E26500CECCB8 /* matrix.cc in Sources */ = {isa = PBXBuildFile; fileRef = D0AF795122C2E26500CECCB8 /* matrix.cc */; }; - D0AF798922C2E26500CECCB8 /* vector.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF795222C2E26500CECCB8 /* vector.h */; }; - D0AF798A22C2E26500CECCB8 /* endpoints_quantize.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF795322C2E26500CECCB8 /* endpoints_quantize.h */; }; - D0AF798B22C2E26500CECCB8 /* store_block.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF795422C2E26500CECCB8 /* store_block.h */; }; - D0AF798C22C2E26500CECCB8 /* color.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF795622C2E26500CECCB8 /* color.h */; }; - D0AF798D22C2E26500CECCB8 /* bgra.cc in Sources */ = {isa = PBXBuildFile; fileRef = D0AF795722C2E26500CECCB8 /* bgra.cc */; }; - D0AF798E22C2E26500CECCB8 /* compressed.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF795822C2E26500CECCB8 /* compressed.h */; }; - D0AF798F22C2E26500CECCB8 /* compressed.cc in Sources */ = {isa = PBXBuildFile; fileRef = D0AF795922C2E26500CECCB8 /* compressed.cc */; }; - D0AF799022C2E26500CECCB8 /* bgra.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF795A22C2E26500CECCB8 /* bgra.h */; }; - D0AF79A322C2E36400CECCB8 /* astc.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF79A222C2E36400CECCB8 /* astc.h */; }; 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 */; }; @@ -640,8 +587,6 @@ D0EC6D731EB9F58800EBF1C3 /* AuthorizationSequenceSignUpController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F53BF61E79593500117362 /* AuthorizationSequenceSignUpController.swift */; }; D0EC6D741EB9F58800EBF1C3 /* AuthorizationSequenceSignUpControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F53BF81E79593F00117362 /* AuthorizationSequenceSignUpControllerNode.swift */; }; D0EC6D751EB9F58800EBF1C3 /* TelegramRootController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05174C21EAE583800A1BF36 /* TelegramRootController.swift */; }; - D0EC6D7F1EB9F58800EBF1C3 /* HashtagSearchController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01749501E1067E40057C89A /* HashtagSearchController.swift */; }; - D0EC6D801EB9F58800EBF1C3 /* HashtagSearchControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01749521E1068820057C89A /* HashtagSearchControllerNode.swift */; }; D0EC6D811EB9F58800EBF1C3 /* ChatController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69E0E1D6B8ACF0046BCD6 /* ChatController.swift */; }; D0EC6D821EB9F58800EBF1C3 /* ChatControllerInteraction.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69E0F1D6B8ACF0046BCD6 /* ChatControllerInteraction.swift */; }; D0EC6D831EB9F58800EBF1C3 /* ChatControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69E101D6B8ACF0046BCD6 /* ChatControllerNode.swift */; }; @@ -752,11 +697,6 @@ D0EC6DF91EB9F58900EBF1C3 /* PeerMediaCollectionInterfaceStateButtons.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DE77241D93225E002B8809 /* PeerMediaCollectionInterfaceStateButtons.swift */; }; D0EC6DFB1EB9F58900EBF1C3 /* AvatarGalleryController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0575AF91EA0FDA7006F2541 /* AvatarGalleryController.swift */; }; D0EC6E0E1EB9F58900EBF1C3 /* PeerAvatarImageGalleryItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0575AFB1EA104A6006F2541 /* PeerAvatarImageGalleryItem.swift */; }; - D0EC6E231EB9F58900EBF1C3 /* StickerPackPreviewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D748051E7AF63800F4B1F6 /* StickerPackPreviewController.swift */; }; - D0EC6E241EB9F58900EBF1C3 /* StickerPackPreviewControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D748071E7AF64400F4B1F6 /* StickerPackPreviewControllerNode.swift */; }; - D0EC6E251EB9F58900EBF1C3 /* StickerPackPreviewGridItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D7480E1E7B1BD600F4B1F6 /* StickerPackPreviewGridItem.swift */; }; - D0EC6E261EB9F58900EBF1C3 /* StickerPreviewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BE383B1E7C3E51000079AF /* StickerPreviewController.swift */; }; - D0EC6E271EB9F58900EBF1C3 /* StickerPreviewControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BE931A1E92DFBA00DCC1E6 /* StickerPreviewControllerNode.swift */; }; D0EC6E2B1EB9F58900EBF1C3 /* ComposeController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D087750F1E3F46A400A97350 /* ComposeController.swift */; }; D0EC6E2C1EB9F58900EBF1C3 /* ComposeControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08775111E3F46AB00A97350 /* ComposeControllerNode.swift */; }; D0EC6E2D1EB9F58900EBF1C3 /* CounterContollerTitleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D087751D1E3F579300A97350 /* CounterContollerTitleView.swift */; }; @@ -766,8 +706,6 @@ D0EC6E311EB9F58900EBF1C3 /* ContactSelectionControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BC38801E40F1D80044D6FE /* ContactSelectionControllerNode.swift */; }; D0EC6E321EB9F58900EBF1C3 /* CreateGroupController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BC38691E3FB94D0044D6FE /* CreateGroupController.swift */; }; D0EC6E331EB9F58900EBF1C3 /* CreateChannelController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D018D3341E6489EC00C5E089 /* CreateChannelController.swift */; }; - D0EC6E351EB9F58900EBF1C3 /* ItemListAvatarAndNameItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D003702D1DA43052004308D3 /* ItemListAvatarAndNameItem.swift */; }; - D0EC6E3C1EB9F58900EBF1C3 /* ItemListPeerActionItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B843DA1DAAB138005F29E1 /* ItemListPeerActionItem.swift */; }; D0EC6E4D1EB9F58900EBF1C3 /* PeerInfoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B843CC1DA903BB005F29E1 /* PeerInfoController.swift */; }; D0EC6E4E1EB9F58900EBF1C3 /* GroupInfoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0486F091E523C8500091F0C /* GroupInfoController.swift */; }; D0EC6E4F1EB9F58900EBF1C3 /* ChannelVisibilityController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E5E0E1E55F8B90029569A /* ChannelVisibilityController.swift */; }; @@ -867,7 +805,6 @@ 0910B0F021FB3DE100F8F87D /* WallpaperPatternPanelNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallpaperPatternPanelNode.swift; sourceTree = ""; }; 091417F121EF4E5D00C8325A /* WallpaperGalleryController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallpaperGalleryController.swift; sourceTree = ""; }; 091417F321EF4F5F00C8325A /* WallpaperGalleryItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallpaperGalleryItem.swift; sourceTree = ""; }; - 091954782294754E00E11046 /* AnimatedStickerUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnimatedStickerUtils.swift; sourceTree = ""; }; 0921F60D228EE000001A13D7 /* ChatMessageActionUrlAuthController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageActionUrlAuthController.swift; sourceTree = ""; }; 092F368C2154AAE9001A9F49 /* SFCompactRounded-Semibold.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "SFCompactRounded-Semibold.otf"; sourceTree = ""; }; 092F368F2157AB46001A9F49 /* ItemListCallListItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ItemListCallListItem.swift; sourceTree = ""; }; @@ -985,7 +922,6 @@ D002A0D81E9BEC8100A81812 /* SoftwareVideoLayerFrameManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SoftwareVideoLayerFrameManager.swift; sourceTree = ""; }; D002A0DA1E9C190700A81812 /* SoftwareVideoThumbnailLayer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SoftwareVideoThumbnailLayer.swift; sourceTree = ""; }; D002A0DC1E9CD52A00A81812 /* ChatMediaInputRecentGifsItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMediaInputRecentGifsItem.swift; sourceTree = ""; }; - D003702D1DA43052004308D3 /* ItemListAvatarAndNameItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemListAvatarAndNameItem.swift; sourceTree = ""; }; D0068FA721760FA300D1B315 /* StoreDownloadedMedia.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StoreDownloadedMedia.swift; sourceTree = ""; }; D007019B2029E8F2006B9E34 /* LegacyICloudFileController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyICloudFileController.swift; sourceTree = ""; }; D007019D2029EFDD006B9E34 /* ICloudResources.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudResources.swift; sourceTree = ""; }; @@ -1039,26 +975,7 @@ D0105D591D80B957008755D8 /* ChatChannelSubscriberInputPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatChannelSubscriberInputPanelNode.swift; sourceTree = ""; }; D010E17C22C238BC009324D4 /* RLottie.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = RLottie.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0127A0C1E6424AC003BFF2E /* ChatPinnedMessageTitlePanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatPinnedMessageTitlePanelNode.swift; sourceTree = ""; }; - D01590A522BD460C0017C33E /* MetalAnimationRenderer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MetalAnimationRenderer.swift; sourceTree = ""; }; - D01590A722BD462C0017C33E /* SoftwareAnimationRenderer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SoftwareAnimationRenderer.swift; sourceTree = ""; }; - D01590AA22BD467B0017C33E /* AnimationRenderer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnimationRenderer.swift; sourceTree = ""; }; - D01590AC22BD58AD0017C33E /* YUV.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUV.h; sourceTree = ""; }; - D01590AD22BD58AD0017C33E /* YUV.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUV.m; sourceTree = ""; }; - D01590B022BDAEB30017C33E /* ColorVec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ColorVec.h; path = "third-party/bc1/ColorVec.h"; sourceTree = SOURCE_ROOT; }; - D01590B122BDAEBB0017C33E /* BC1Compression.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BC1Compression.h; path = "third-party/bc1/BC1Compression.h"; sourceTree = SOURCE_ROOT; }; - D01590B222BDAEBB0017C33E /* BMPImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BMPImage.h; path = "third-party/bc1/BMPImage.h"; sourceTree = SOURCE_ROOT; }; - D01590B322BDAEBB0017C33E /* DDSImage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DDSImage.cpp; path = "third-party/bc1/DDSImage.cpp"; sourceTree = SOURCE_ROOT; }; - D01590B422BDAEBB0017C33E /* Image.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Image.cpp; path = "third-party/bc1/Image.cpp"; sourceTree = SOURCE_ROOT; }; - D01590B522BDAEBC0017C33E /* Image.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Image.h; path = "third-party/bc1/Image.h"; sourceTree = SOURCE_ROOT; }; - D01590B622BDAEBC0017C33E /* BC1Compression.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = BC1Compression.cpp; path = "third-party/bc1/BC1Compression.cpp"; sourceTree = SOURCE_ROOT; }; - D01590B722BDAEBC0017C33E /* DDSImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DDSImage.h; path = "third-party/bc1/DDSImage.h"; sourceTree = SOURCE_ROOT; }; - D01590B822BDAEBC0017C33E /* TypeDefinitions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TypeDefinitions.h; path = "third-party/bc1/TypeDefinitions.h"; sourceTree = SOURCE_ROOT; }; - D01590B922BDAEBC0017C33E /* BMPImage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = BMPImage.cpp; path = "third-party/bc1/BMPImage.cpp"; sourceTree = SOURCE_ROOT; }; - D01590C522BE61CB0017C33E /* TextureCompression.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = TextureCompression.cpp; path = "../third-party/bc1/TextureCompression.cpp"; sourceTree = ""; }; - D01590C822BE62C40017C33E /* TextureCompression.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TextureCompression.h; path = "third-party/bc1/TextureCompression.h"; sourceTree = SOURCE_ROOT; }; D015E04E225D2E5900CB9E8A /* WebP.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WebP.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D01749501E1067E40057C89A /* HashtagSearchController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HashtagSearchController.swift; sourceTree = ""; }; - D01749521E1068820057C89A /* HashtagSearchControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HashtagSearchControllerNode.swift; sourceTree = ""; }; D01749561E1087CC0057C89A /* ChatBotStartInputPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatBotStartInputPanelNode.swift; sourceTree = ""; }; D017734B22049BF800DA06A7 /* UpgradedAccounts.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpgradedAccounts.swift; sourceTree = ""; }; D01776BD1F1E76920044446D /* PeerMediaCollectionSectionsNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerMediaCollectionSectionsNode.swift; sourceTree = ""; }; @@ -1135,7 +1052,6 @@ 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 = ""; }; D03AA4DE202DBF6F0056C405 /* ChatContextResultPeekContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatContextResultPeekContentNode.swift; sourceTree = ""; }; - D03AA4E4202DF8840056C405 /* StickerPreviewPeekContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StickerPreviewPeekContent.swift; sourceTree = ""; }; D03ADB471D703268005A521C /* ChatInterfaceState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatInterfaceState.swift; sourceTree = ""; }; D03ADB4A1D70443F005A521C /* ReplyAccessoryPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReplyAccessoryPanelNode.swift; sourceTree = ""; }; D03ADB4C1D7045C9005A521C /* ChatInterfaceStateAccessoryPanels.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatInterfaceStateAccessoryPanels.swift; sourceTree = ""; }; @@ -1144,6 +1060,11 @@ D03AE67422B945D30078411C /* BuildConfig.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = BuildConfig.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E3D2A23045B120049C28B /* ChatMessageRestrictedBubbleContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageRestrictedBubbleContentNode.swift; sourceTree = ""; }; D03E3D4C23045E410049C28B /* PlatformRestrictionMatching.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PlatformRestrictionMatching.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3D7E2304ACB40049C28B /* HashtagSearchUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = HashtagSearchUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3DD12304AF8E0049C28B /* ItemListAvatarAndNameInfoItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListAvatarAndNameInfoItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3DFF2304B2AC0049C28B /* ItemListPeerActionItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListPeerActionItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3E472304B4670049C28B /* StickerPackPreviewUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = StickerPackPreviewUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3E8B2304B6E10049C28B /* YuvConversion.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = YuvConversion.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E5E081E55C49C0029569A /* DebugAccountsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DebugAccountsController.swift; sourceTree = ""; }; D03E5E0E1E55F8B90029569A /* ChannelVisibilityController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelVisibilityController.swift; sourceTree = ""; }; D04203142037162700490EA5 /* MediaInputPaneTrendingItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaInputPaneTrendingItem.swift; sourceTree = ""; }; @@ -1264,7 +1185,6 @@ D081E107217F583F003CD921 /* LanguageLinkPreviewContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageLinkPreviewContentNode.swift; sourceTree = ""; }; D083491B209361DC008CFD52 /* AvatarGalleryItemFooterContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AvatarGalleryItemFooterContentNode.swift; sourceTree = ""; }; D084023320E295F000065674 /* GroupStickerPackSetupController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupStickerPackSetupController.swift; sourceTree = ""; }; - D08557E622C5FEB90026D6D2 /* AnimatedStickerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnimatedStickerNode.swift; sourceTree = ""; }; D08775081E3E59DE00A97350 /* PeerNotificationSoundStrings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerNotificationSoundStrings.swift; sourceTree = ""; }; D087750F1E3F46A400A97350 /* ComposeController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ComposeController.swift; sourceTree = ""; }; D08775111E3F46AB00A97350 /* ComposeControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ComposeControllerNode.swift; sourceTree = ""; }; @@ -1299,8 +1219,6 @@ D091C7A31F8EBB1E00D7DE13 /* ChatPresentationData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatPresentationData.swift; sourceTree = ""; }; D091C7A51F8ECEA300D7DE13 /* SettingsThemeWallpaperNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsThemeWallpaperNode.swift; sourceTree = ""; }; D09250051FE5371D003F693F /* GlobalExperimentalSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GlobalExperimentalSettings.swift; sourceTree = ""; }; - D0943AF51FDAAE7E001522CC /* MultipleAvatarsNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MultipleAvatarsNode.swift; sourceTree = ""; }; - D0943AFD1FDAE454001522CC /* ChatMultipleAvatarsNavigationNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMultipleAvatarsNavigationNode.swift; sourceTree = ""; }; D0943AFF1FDAE852001522CC /* ChatFeedNavigationInputPanelNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatFeedNavigationInputPanelNode.swift; sourceTree = ""; }; D0943B041FDDFDA0001522CC /* OverlayInstantVideoNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverlayInstantVideoNode.swift; sourceTree = ""; }; D0943B061FDEC528001522CC /* InstantVideoRadialStatusNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InstantVideoRadialStatusNode.swift; sourceTree = ""; }; @@ -1363,42 +1281,6 @@ D0AEAE262080D6970013176E /* PaneSearchBarNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaneSearchBarNode.swift; sourceTree = ""; }; D0AEAE282080FD660013176E /* StickerPaneSearchGlobaltem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StickerPaneSearchGlobaltem.swift; sourceTree = ""; }; D0AF32391FB1D8D60097362B /* ChatOverlayNavigationBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatOverlayNavigationBar.swift; sourceTree = ""; }; - D0AF793622C2E26500CECCB8 /* astc.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = astc.cc; sourceTree = ""; }; - D0AF793822C2E26500CECCB8 /* compress_texture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = compress_texture.h; sourceTree = ""; }; - D0AF793922C2E26500CECCB8 /* integer_sequence_encoding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = integer_sequence_encoding.h; sourceTree = ""; }; - D0AF793A22C2E26500CECCB8 /* range.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = range.h; sourceTree = ""; }; - D0AF793B22C2E26500CECCB8 /* misc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = misc.h; sourceTree = ""; }; - D0AF793C22C2E26500CECCB8 /* tables_data_size.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tables_data_size.h; sourceTree = ""; }; - D0AF793D22C2E26500CECCB8 /* matrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = matrix.h; sourceTree = ""; }; - D0AF793E22C2E26500CECCB8 /* colors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = colors.h; sourceTree = ""; }; - D0AF793F22C2E26500CECCB8 /* endpoints_principal_components.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = endpoints_principal_components.cc; sourceTree = ""; }; - D0AF794022C2E26500CECCB8 /* data_size.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = data_size.h; sourceTree = ""; }; - D0AF794122C2E26500CECCB8 /* meson.build */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = meson.build; sourceTree = ""; }; - D0AF794222C2E26500CECCB8 /* endpoints_bounding_box.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = endpoints_bounding_box.h; sourceTree = ""; }; - D0AF794322C2E26500CECCB8 /* tables_color_quantization.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tables_color_quantization.h; sourceTree = ""; }; - D0AF794422C2E26500CECCB8 /* tables_integer_sequence_encoding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tables_integer_sequence_encoding.h; sourceTree = ""; }; - D0AF794522C2E26500CECCB8 /* constants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = constants.h; sourceTree = ""; }; - D0AF794622C2E26500CECCB8 /* endpoints_min_max.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = endpoints_min_max.h; sourceTree = ""; }; - D0AF794722C2E26500CECCB8 /* dcheck.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dcheck.h; sourceTree = ""; }; - D0AF794822C2E26500CECCB8 /* weights_quantize_table.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = weights_quantize_table.h; sourceTree = ""; }; - D0AF794922C2E26500CECCB8 /* compress_block.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = compress_block.cc; sourceTree = ""; }; - D0AF794A22C2E26500CECCB8 /* endpoints_principal_components.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = endpoints_principal_components.h; sourceTree = ""; }; - D0AF794B22C2E26500CECCB8 /* bitmanip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bitmanip.h; sourceTree = ""; }; - D0AF794C22C2E26500CECCB8 /* endpoints.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = endpoints.h; sourceTree = ""; }; - D0AF794D22C2E26500CECCB8 /* compress_block.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = compress_block.h; sourceTree = ""; }; - D0AF794E22C2E26500CECCB8 /* endpoints_encode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = endpoints_encode.h; sourceTree = ""; }; - D0AF794F22C2E26500CECCB8 /* weights_quantize.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = weights_quantize.h; sourceTree = ""; }; - D0AF795022C2E26500CECCB8 /* compress_texture.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = compress_texture.cc; sourceTree = ""; }; - D0AF795122C2E26500CECCB8 /* matrix.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = matrix.cc; sourceTree = ""; }; - D0AF795222C2E26500CECCB8 /* vector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vector.h; sourceTree = ""; }; - D0AF795322C2E26500CECCB8 /* endpoints_quantize.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = endpoints_quantize.h; sourceTree = ""; }; - D0AF795422C2E26500CECCB8 /* store_block.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = store_block.h; sourceTree = ""; }; - D0AF795622C2E26500CECCB8 /* color.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = color.h; sourceTree = ""; }; - D0AF795722C2E26500CECCB8 /* bgra.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = bgra.cc; sourceTree = ""; }; - D0AF795822C2E26500CECCB8 /* compressed.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = compressed.h; sourceTree = ""; }; - D0AF795922C2E26500CECCB8 /* compressed.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = compressed.cc; sourceTree = ""; }; - D0AF795A22C2E26500CECCB8 /* bgra.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bgra.h; sourceTree = ""; }; - D0AF79A222C2E36400CECCB8 /* astc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = astc.h; sourceTree = ""; }; D0B21B14220D85DD003F741D /* TabBarAccountSwitchController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabBarAccountSwitchController.swift; sourceTree = ""; }; D0B21B16220D85E7003F741D /* TabBarAccountSwitchControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabBarAccountSwitchControllerNode.swift; sourceTree = ""; }; D0B21B1E22156D92003F741D /* LegacyCache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyCache.swift; sourceTree = ""; }; @@ -1415,7 +1297,6 @@ D0B7F8E11D8A18070045D939 /* PeerMediaCollectionController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerMediaCollectionController.swift; sourceTree = ""; }; D0B7F8E71D8A1F5F0045D939 /* PeerMediaCollectionControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerMediaCollectionControllerNode.swift; sourceTree = ""; }; D0B843CC1DA903BB005F29E1 /* PeerInfoController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerInfoController.swift; sourceTree = ""; }; - D0B843DA1DAAB138005F29E1 /* ItemListPeerActionItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemListPeerActionItem.swift; sourceTree = ""; }; D0B85C1B1FF6F76000E795B4 /* AuthorizationSequencePasswordRecoveryController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthorizationSequencePasswordRecoveryController.swift; sourceTree = ""; }; D0B85C1D1FF6F76600E795B4 /* AuthorizationSequencePasswordRecoveryControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthorizationSequencePasswordRecoveryControllerNode.swift; sourceTree = ""; }; D0B85C201FF70BEC00E795B4 /* AuthorizationSequenceAwaitingAccountResetControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthorizationSequenceAwaitingAccountResetControllerNode.swift; sourceTree = ""; }; @@ -1431,8 +1312,6 @@ D0BCC3D1203F0A6C008126C2 /* StringForMessageTimestampStatus.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StringForMessageTimestampStatus.swift; sourceTree = ""; }; D0BCC3D320404CC7008126C2 /* ChatMessageActionSheetController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageActionSheetController.swift; sourceTree = ""; }; D0BCC3D520404CD8008126C2 /* ChatMessageActionSheetControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageActionSheetControllerNode.swift; sourceTree = ""; }; - D0BE383B1E7C3E51000079AF /* StickerPreviewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StickerPreviewController.swift; sourceTree = ""; }; - D0BE931A1E92DFBA00DCC1E6 /* StickerPreviewControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StickerPreviewControllerNode.swift; sourceTree = ""; }; D0BFAE4520AB04FB00793CF2 /* ChatRestrictedInputPanelNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatRestrictedInputPanelNode.swift; sourceTree = ""; }; D0BFAE4D20AB1D7B00793CF2 /* DisabledContextResultsChatInputContextPanelNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DisabledContextResultsChatInputContextPanelNode.swift; sourceTree = ""; }; D0BFAE4F20AB2A1300793CF2 /* PeerBanTimeoutController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerBanTimeoutController.swift; sourceTree = ""; }; @@ -1554,9 +1433,6 @@ D0D268991D79CF9F00C422DA /* ChatPanelInterfaceInteraction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatPanelInterfaceInteraction.swift; sourceTree = ""; }; D0D3281322F31B3000D07EE2 /* TelegramUpdateUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramUpdateUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0D4345B1F97CEAA00CC1806 /* ProxyServerSettingsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProxyServerSettingsController.swift; sourceTree = ""; }; - D0D748051E7AF63800F4B1F6 /* StickerPackPreviewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StickerPackPreviewController.swift; sourceTree = ""; }; - D0D748071E7AF64400F4B1F6 /* StickerPackPreviewControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StickerPackPreviewControllerNode.swift; sourceTree = ""; }; - D0D7480E1E7B1BD600F4B1F6 /* StickerPackPreviewGridItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StickerPackPreviewGridItem.swift; sourceTree = ""; }; D0DC35431DE32230000195EB /* ChatInterfaceStateContextQueries.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatInterfaceStateContextQueries.swift; sourceTree = ""; }; D0DC35451DE35805000195EB /* MentionChatInputPanelItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MentionChatInputPanelItem.swift; sourceTree = ""; }; D0DC35491DE366CD000195EB /* CommandChatInputContextPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandChatInputContextPanelNode.swift; sourceTree = ""; }; @@ -1738,6 +1614,11 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D03E3E8C2304B6E10049C28B /* YuvConversion.framework in Frameworks */, + D03E3E482304B4670049C28B /* StickerPackPreviewUI.framework in Frameworks */, + D03E3E002304B2AC0049C28B /* ItemListPeerActionItem.framework in Frameworks */, + D03E3DD22304AF8E0049C28B /* ItemListAvatarAndNameInfoItem.framework in Frameworks */, + D03E3D7F2304ACB40049C28B /* HashtagSearchUI.framework in Frameworks */, D03E3D4D23045E410049C28B /* PlatformRestrictionMatching.framework in Frameworks */, D0C9CBD72302C09000FAB518 /* TextSelectionNode.framework in Frameworks */, D0C9CBB62302B65600FAB518 /* LanguageSuggestionUI.framework in Frameworks */, @@ -1892,15 +1773,6 @@ name = "Peers Nearby"; sourceTree = ""; }; - 0919546D229458E900E11046 /* Animated Stickers */ = { - isa = PBXGroup; - children = ( - 091954782294754E00E11046 /* AnimatedStickerUtils.swift */, - D08557E622C5FEB90026D6D2 /* AnimatedStickerNode.swift */, - ); - name = "Animated Stickers"; - sourceTree = ""; - }; 092F368B2154AAD6001A9F49 /* Fonts */ = { isa = PBXGroup; children = ( @@ -1979,13 +1851,6 @@ name = "Recent Sessions"; sourceTree = ""; }; - 09CC52A7210615AA000578F8 /* Web Embed */ = { - isa = PBXGroup; - children = ( - ); - name = "Web Embed"; - sourceTree = ""; - }; 09CE950F2237F3A300A7D2C3 /* Search */ = { isa = PBXGroup; children = ( @@ -2115,44 +1980,10 @@ D01590A922BD46690017C33E /* Animation */ = { isa = PBXGroup; children = ( - D0AF793422C2E26500CECCB8 /* astc */, - D01590B622BDAEBC0017C33E /* BC1Compression.cpp */, - D01590B122BDAEBB0017C33E /* BC1Compression.h */, - D01590B922BDAEBC0017C33E /* BMPImage.cpp */, - D01590B222BDAEBB0017C33E /* BMPImage.h */, - D01590B022BDAEB30017C33E /* ColorVec.h */, - D01590B322BDAEBB0017C33E /* DDSImage.cpp */, - D01590B722BDAEBC0017C33E /* DDSImage.h */, - D01590B422BDAEBB0017C33E /* Image.cpp */, - D01590B522BDAEBC0017C33E /* Image.h */, - D01590B822BDAEBC0017C33E /* TypeDefinitions.h */, - D01590AA22BD467B0017C33E /* AnimationRenderer.swift */, - D01590A522BD460C0017C33E /* MetalAnimationRenderer.swift */, - D01590A722BD462C0017C33E /* SoftwareAnimationRenderer.swift */, - D01590AC22BD58AD0017C33E /* YUV.h */, - D01590AD22BD58AD0017C33E /* YUV.m */, - D01590C822BE62C40017C33E /* TextureCompression.h */, - D01590C522BE61CB0017C33E /* TextureCompression.cpp */, ); name = Animation; sourceTree = ""; }; - D017494F1E1067C00057C89A /* Hashtag Search */ = { - isa = PBXGroup; - children = ( - D01749501E1067E40057C89A /* HashtagSearchController.swift */, - D01749521E1068820057C89A /* HashtagSearchControllerNode.swift */, - ); - name = "Hashtag Search"; - sourceTree = ""; - }; - D01776B61F1D6CCF0044446D /* Radial Status */ = { - isa = PBXGroup; - children = ( - ); - name = "Radial Status"; - sourceTree = ""; - }; D01848F021A2323D00B6DEBD /* Strings */ = { isa = PBXGroup; children = ( @@ -2175,14 +2006,6 @@ name = "Create Channel"; sourceTree = ""; }; - D01B27931E38F3920022A4C0 /* Item List */ = { - isa = PBXGroup; - children = ( - D0E6521D1E3A2305004EEA91 /* Items */, - ); - name = "Item List"; - sourceTree = ""; - }; D01C06AD1FBB45ED001561AB /* Join Link Preview */ = { isa = PBXGroup; children = ( @@ -2386,7 +2209,6 @@ D0477D191F617E4B00412B44 /* Video */ = { isa = PBXGroup; children = ( - 09CC52A7210615AA000578F8 /* Web Embed */, D0943B041FDDFDA0001522CC /* OverlayInstantVideoNode.swift */, D0CFBB941FD8B05000B65C0D /* OverlayInstantVideoDecoration.swift */, D0943B061FDEC528001522CC /* InstantVideoRadialStatusNode.swift */, @@ -2591,6 +2413,11 @@ D08D45281D5E340200A7428A /* Frameworks */ = { isa = PBXGroup; children = ( + D03E3E8B2304B6E10049C28B /* YuvConversion.framework */, + D03E3E472304B4670049C28B /* StickerPackPreviewUI.framework */, + D03E3DFF2304B2AC0049C28B /* ItemListPeerActionItem.framework */, + D03E3DD12304AF8E0049C28B /* ItemListAvatarAndNameInfoItem.framework */, + D03E3D7E2304ACB40049C28B /* HashtagSearchUI.framework */, D03E3D4C23045E410049C28B /* PlatformRestrictionMatching.framework */, D0C9CBD62302C09000FAB518 /* TextSelectionNode.framework */, D0C9CBB52302B65600FAB518 /* LanguageSuggestionUI.framework */, @@ -2766,74 +2593,6 @@ path = "Bridge Audio"; sourceTree = ""; }; - D0AF793422C2E26500CECCB8 /* astc */ = { - isa = PBXGroup; - children = ( - D0AF793522C2E26500CECCB8 /* compress */, - D0AF793722C2E26500CECCB8 /* astc */, - D0AF795522C2E26500CECCB8 /* image */, - ); - name = astc; - path = "third-party/astc"; - sourceTree = SOURCE_ROOT; - }; - D0AF793522C2E26500CECCB8 /* compress */ = { - isa = PBXGroup; - children = ( - D0AF79A222C2E36400CECCB8 /* astc.h */, - D0AF793622C2E26500CECCB8 /* astc.cc */, - ); - path = compress; - sourceTree = ""; - }; - D0AF793722C2E26500CECCB8 /* astc */ = { - isa = PBXGroup; - children = ( - D0AF793822C2E26500CECCB8 /* compress_texture.h */, - D0AF793922C2E26500CECCB8 /* integer_sequence_encoding.h */, - D0AF793A22C2E26500CECCB8 /* range.h */, - D0AF793B22C2E26500CECCB8 /* misc.h */, - D0AF793C22C2E26500CECCB8 /* tables_data_size.h */, - D0AF793D22C2E26500CECCB8 /* matrix.h */, - D0AF793E22C2E26500CECCB8 /* colors.h */, - D0AF793F22C2E26500CECCB8 /* endpoints_principal_components.cc */, - D0AF794022C2E26500CECCB8 /* data_size.h */, - D0AF794122C2E26500CECCB8 /* meson.build */, - D0AF794222C2E26500CECCB8 /* endpoints_bounding_box.h */, - D0AF794322C2E26500CECCB8 /* tables_color_quantization.h */, - D0AF794422C2E26500CECCB8 /* tables_integer_sequence_encoding.h */, - D0AF794522C2E26500CECCB8 /* constants.h */, - D0AF794622C2E26500CECCB8 /* endpoints_min_max.h */, - D0AF794722C2E26500CECCB8 /* dcheck.h */, - D0AF794822C2E26500CECCB8 /* weights_quantize_table.h */, - D0AF794922C2E26500CECCB8 /* compress_block.cc */, - D0AF794A22C2E26500CECCB8 /* endpoints_principal_components.h */, - D0AF794B22C2E26500CECCB8 /* bitmanip.h */, - D0AF794C22C2E26500CECCB8 /* endpoints.h */, - D0AF794D22C2E26500CECCB8 /* compress_block.h */, - D0AF794E22C2E26500CECCB8 /* endpoints_encode.h */, - D0AF794F22C2E26500CECCB8 /* weights_quantize.h */, - D0AF795022C2E26500CECCB8 /* compress_texture.cc */, - D0AF795122C2E26500CECCB8 /* matrix.cc */, - D0AF795222C2E26500CECCB8 /* vector.h */, - D0AF795322C2E26500CECCB8 /* endpoints_quantize.h */, - D0AF795422C2E26500CECCB8 /* store_block.h */, - ); - path = astc; - sourceTree = ""; - }; - D0AF795522C2E26500CECCB8 /* image */ = { - isa = PBXGroup; - children = ( - D0AF795622C2E26500CECCB8 /* color.h */, - D0AF795722C2E26500CECCB8 /* bgra.cc */, - D0AF795822C2E26500CECCB8 /* compressed.h */, - D0AF795922C2E26500CECCB8 /* compressed.cc */, - D0AF795A22C2E26500CECCB8 /* bgra.h */, - ); - path = image; - sourceTree = ""; - }; D0AF7C441ED84BB000CD8E0F /* Language Selection */ = { isa = PBXGroup; children = ( @@ -3086,19 +2845,6 @@ name = "Peer Selection"; sourceTree = ""; }; - D0D748041E7AF62000F4B1F6 /* Stickers */ = { - isa = PBXGroup; - children = ( - D0D748051E7AF63800F4B1F6 /* StickerPackPreviewController.swift */, - D0D748071E7AF64400F4B1F6 /* StickerPackPreviewControllerNode.swift */, - D0D7480E1E7B1BD600F4B1F6 /* StickerPackPreviewGridItem.swift */, - D0BE383B1E7C3E51000079AF /* StickerPreviewController.swift */, - D0BE931A1E92DFBA00DCC1E6 /* StickerPreviewControllerNode.swift */, - D03AA4E4202DF8840056C405 /* StickerPreviewPeekContent.swift */, - ); - name = Stickers; - sourceTree = ""; - }; D0DC35481DE366B4000195EB /* Commands */ = { isa = PBXGroup; children = ( @@ -3183,15 +2929,6 @@ name = "Vertical List"; sourceTree = ""; }; - D0E6521D1E3A2305004EEA91 /* Items */ = { - isa = PBXGroup; - children = ( - D003702D1DA43052004308D3 /* ItemListAvatarAndNameItem.swift */, - D0B843DA1DAAB138005F29E1 /* ItemListPeerActionItem.swift */, - ); - name = Items; - sourceTree = ""; - }; D0E7A1BB1D8C17EB00C37A6F /* Chat History Node */ = { isa = PBXGroup; children = ( @@ -3332,7 +3069,6 @@ D0FE4DE31F0AEBB900E8A0B3 /* SharedVideoContextManager.swift */, D09E637D1F0E8C66003444CD /* Shared Media Player */, D0D03AE61DECB0D200220C46 /* Audio Recorder */, - 0919546D229458E900E11046 /* Animated Stickers */, D0F69E9D1D6B8E240046BCD6 /* Resources */, D0177B831DFB095000A5083A /* FileMediaResourceStatus.swift */, D0ADF965212E05A300310BBC /* TonePlayer.swift */, @@ -3345,7 +3081,6 @@ isa = PBXGroup; children = ( D0F69DBF1D6B89AE0046BCD6 /* Nodes */, - D0F69DD31D6B8A160046BCD6 /* Controllers */, D0E7A1BB1D8C17EB00C37A6F /* Chat History Node */, ); name = Components; @@ -3354,12 +3089,9 @@ D0F69DBF1D6B89AE0046BCD6 /* Nodes */ = { isa = PBXGroup; children = ( - D01776B61F1D6CCF0044446D /* Radial Status */, - D0F69DCA1D6B89F20046BCD6 /* Search */, D0477D191F617E4B00412B44 /* Video */, D0F69DC41D6B89E10046BCD6 /* RadialProgressNode.swift */, D00C7CE51E378FD00080C3D5 /* RadialTimeoutNode.swift */, - D0943AF51FDAAE7E001522CC /* MultipleAvatarsNode.swift */, D0568AAC1DF198130022E7DA /* AudioWaveformNode.swift */, D0BC38621E3F9EFA0044D6FE /* EditableTokenListNode.swift */, D0B2F76B2052A7D600D3BFB9 /* SinglePhoneInputNode.swift */, @@ -3370,27 +3102,11 @@ name = Nodes; sourceTree = ""; }; - D0F69DCA1D6B89F20046BCD6 /* Search */ = { - isa = PBXGroup; - children = ( - ); - name = Search; - sourceTree = ""; - }; - D0F69DD31D6B8A160046BCD6 /* Controllers */ = { - isa = PBXGroup; - children = ( - D01B27931E38F3920022A4C0 /* Item List */, - ); - name = Controllers; - sourceTree = ""; - }; D0F69DE61D6B8A4E0046BCD6 /* Controllers */ = { isa = PBXGroup; children = ( D0F69DE71D6B8A590046BCD6 /* Authorization */, D05174C11EAE582A00A1BF36 /* Root */, - D017494F1E1067C00057C89A /* Hashtag Search */, D0F69E0D1D6B8AB90046BCD6 /* Chat */, D04281F2200E5A70009DDE36 /* Chat Recent Actions */, D00DE6961E8E8E21003F0D76 /* Share */, @@ -3432,7 +3148,6 @@ D0F69E111D6B8ACF0046BCD6 /* ChatHistoryEntry.swift */, D0F69E121D6B8ACF0046BCD6 /* ChatHistoryLocation.swift */, D0D268681D78865300C422DA /* ChatAvatarNavigationNode.swift */, - D0943AFD1FDAE454001522CC /* ChatMultipleAvatarsNavigationNode.swift */, D0DE76FF1D92F1EB002B8809 /* ChatTitleView.swift */, D02383761DDF16B2004018B6 /* ChatControllerTitlePanelNodeContainer.swift */, D00C7CE81E379B820080C3D5 /* ChatSecretAutoremoveTimerActionSheet.swift */, @@ -3559,7 +3274,6 @@ D0575AF81EA0FD94006F2541 /* Avatar Gallery */, D0EEE99F2165583B001292A6 /* Document */, D07827CC1E03F32C00071108 /* Instant Page */, - D0D748041E7AF62000F4B1F6 /* Stickers */, D020A9D81FEAE611008C66F7 /* Player */, D01C06AD1FBB45ED001561AB /* Join Link Preview */, D081E102217F57B2003CD921 /* Language Link Preview */, @@ -3776,57 +3490,21 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - D0AF798622C2E26500CECCB8 /* weights_quantize.h in Headers */, - D0AF799022C2E26500CECCB8 /* bgra.h in Headers */, - D01590C222BDAEBC0017C33E /* TypeDefinitions.h in Headers */, D0AE303622B1D3620058D3BC /* TGBridgeAudioDecoder.h in Headers */, D0208AD51FA33D14001F0D5F /* RaiseToListenActivator.h in Headers */, D00817DA22B47A14008A895F /* TGPresentationAutoNightPreferences.h in Headers */, - D0AF797D22C2E26500CECCB8 /* endpoints_min_max.h in Headers */, - D0AF797222C2E26500CECCB8 /* misc.h in Headers */, - D0AF798222C2E26500CECCB8 /* bitmanip.h in Headers */, - D0AF797C22C2E26500CECCB8 /* constants.h in Headers */, D00817E022B47A14008A895F /* UIImage+ImageEffects.h in Headers */, - D01590BA22BDAEBC0017C33E /* ColorVec.h in Headers */, - D0AF797422C2E26500CECCB8 /* matrix.h in Headers */, - D0AF79A322C2E36400CECCB8 /* astc.h in Headers */, D08803C51F6064CF00DD7951 /* TelegramUI.h in Headers */, D0EB42001F30ED4F00838FE6 /* LegacyImageProcessors.h in Headers */, - D01590AE22BD58AD0017C33E /* YUV.h in Headers */, D008177B22B46B7E008A895F /* TGContactModel.h in Headers */, - D0AF797922C2E26500CECCB8 /* endpoints_bounding_box.h in Headers */, D00701A12029F6D0006B9E34 /* TGMimeTypeMap.h in Headers */, - D0AF798A22C2E26500CECCB8 /* endpoints_quantize.h in Headers */, - D0AF797322C2E26500CECCB8 /* tables_data_size.h in Headers */, - D0AF797E22C2E26500CECCB8 /* dcheck.h in Headers */, - D0AF797F22C2E26500CECCB8 /* weights_quantize_table.h in Headers */, D0208AD91FA34017001F0D5F /* DeviceProximityManager.h in Headers */, - D0AF798B22C2E26500CECCB8 /* store_block.h in Headers */, - D0AF797122C2E26500CECCB8 /* range.h in Headers */, - D0AF797722C2E26500CECCB8 /* data_size.h in Headers */, D0AE303722B1D3620058D3BC /* TGBridgeAudioEncoder.h in Headers */, - D0AF798422C2E26500CECCB8 /* compress_block.h in Headers */, - D0AF798E22C2E26500CECCB8 /* compressed.h in Headers */, D00817CD22B47A14008A895F /* TGAutoDownloadPreferences.h in Headers */, - D01590C122BDAEBC0017C33E /* DDSImage.h in Headers */, - D0AF798122C2E26500CECCB8 /* endpoints_principal_components.h in Headers */, D008177C22B46B7E008A895F /* TGItemProviderSignals.h in Headers */, - D0AF798322C2E26500CECCB8 /* endpoints.h in Headers */, - D01590BB22BDAEBC0017C33E /* BC1Compression.h in Headers */, - D01590BC22BDAEBC0017C33E /* BMPImage.h in Headers */, - D0AF797522C2E26500CECCB8 /* colors.h in Headers */, - D0AF797B22C2E26500CECCB8 /* tables_integer_sequence_encoding.h in Headers */, - D0AF798C22C2E26500CECCB8 /* color.h in Headers */, D00817D722B47A14008A895F /* TGBridgeServer.h in Headers */, - D0AF796F22C2E26500CECCB8 /* compress_texture.h in Headers */, - D0AF798922C2E26500CECCB8 /* vector.h in Headers */, D00817CE22B47A14008A895F /* TGProxyItem.h in Headers */, - D01590C922BE62C40017C33E /* TextureCompression.h in Headers */, - D0AF797A22C2E26500CECCB8 /* tables_color_quantization.h in Headers */, D008177A22B46B7E008A895F /* TGShareLocationSignals.h in Headers */, - D0AF798522C2E26500CECCB8 /* endpoints_encode.h in Headers */, - D01590BF22BDAEBC0017C33E /* Image.h in Headers */, - D0AF797022C2E26500CECCB8 /* integer_sequence_encoding.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3987,7 +3665,6 @@ D0E9BA981F056F4C00F079A4 /* stp_card_applepay_template@3x.png in Resources */, D0E9BAA51F056F4C00F079A4 /* stp_card_form_applepay@2x.png in Resources */, D0E9BAB81F056F4C00F079A4 /* stp_card_visa_template@3x.png in Resources */, - D0AF797822C2E26500CECCB8 /* meson.build in Resources */, D0E9BA9B1F056F4C00F079A4 /* stp_card_cvc_amex@2x.png in Resources */, D0E9BAB61F056F4C00F079A4 /* stp_card_visa@3x.png in Resources */, D0E9BAA61F056F4C00F079A4 /* stp_card_form_applepay@3x.png in Resources */, @@ -4022,7 +3699,6 @@ D04281F6200E5AC2009DDE36 /* ChatRecentActionsControllerNode.swift in Sources */, 09DD5D5221ED175300D7007A /* WallpaperColorPickerNode.swift in Sources */, D0B2F76820528E3D00D3BFB9 /* UserInfoEditingPhoneActionItem.swift in Sources */, - D0AF798D22C2E26500CECCB8 /* bgra.cc in Sources */, 09F79A0321C8225600820234 /* WebSearchVideoGalleryItem.swift in Sources */, D01848E821A03BDA00B6DEBD /* ChatSearchState.swift in Sources */, D0208ADC1FA346A4001F0D5F /* RaiseToListen.swift in Sources */, @@ -4042,7 +3718,6 @@ D00817D522B47A14008A895F /* ApplicationShortcutItem.swift in Sources */, D077C5C122B59A800097D617 /* ApplicationContext.swift in Sources */, D0EC6CC71EB9F58800EBF1C3 /* PeerNotificationSoundStrings.swift in Sources */, - D0AF798F22C2E26500CECCB8 /* compressed.cc in Sources */, D081E108217F583F003CD921 /* LanguageLinkPreviewContentNode.swift in Sources */, D0EC6CC91EB9F58800EBF1C3 /* ConvertToWebP.swift in Sources */, D09E637F1F0E8C9F003444CD /* PeerMessagesMediaPlaylist.swift in Sources */, @@ -4061,7 +3736,6 @@ D0380DB8204EE0A5000414AB /* ChatInstantVideoMessageDurationNode.swift in Sources */, D0EC6CDC1EB9F58800EBF1C3 /* TelegramAccountAuxiliaryMethods.swift in Sources */, D0642EFC1F3E1E7B00792790 /* ChatHistoryNavigationButtons.swift in Sources */, - D03AA4E5202DF8840056C405 /* StickerPreviewPeekContent.swift in Sources */, D025402322E1C92D00AC0195 /* ChatSlowmodeItem.swift in Sources */, D05D8B3F2192FC6E0064586F /* LocalizationListControllerNode.swift in Sources */, D0AA840C1FEB2BA3005C6E91 /* OverlayPlayerControlsNode.swift in Sources */, @@ -4091,7 +3765,6 @@ 0910B0EF21FA532D00F8F87D /* WallpaperResources.swift in Sources */, 09E4A807223D4B860038140F /* AccountUtils.swift in Sources */, D069F5D0212700B90000565A /* StickerPanePeerSpecificSetupGridItem.swift in Sources */, - D01590C022BDAEBC0017C33E /* BC1Compression.cpp in Sources */, D06018B522F3659900796784 /* ChatTextFormat.swift in Sources */, D0750C8322B2E4EE00BE5F6E /* SharedNotificationManager.swift in Sources */, D0EC6D041EB9F58800EBF1C3 /* opusenc.m in Sources */, @@ -4129,18 +3802,15 @@ 09749BCD21F23139008FDDE9 /* WallpaperGalleryDecorationNode.swift in Sources */, 09EDAD26220D30980012A50B /* AutodownloadConnectionTypeController.swift in Sources */, D05D8B3A2192FC460064586F /* LocalizationListController.swift in Sources */, - D0943AFE1FDAE454001522CC /* ChatMultipleAvatarsNavigationNode.swift in Sources */, D0B21B15220D85DD003F741D /* TabBarAccountSwitchController.swift in Sources */, D0ADF966212E05A300310BBC /* TonePlayer.swift in Sources */, D007019E2029EFDD006B9E34 /* ICloudResources.swift in Sources */, D0F760DD222034980074F7E5 /* ChannelStatsControllerNode.swift in Sources */, - D01590A622BD460C0017C33E /* MetalAnimationRenderer.swift in Sources */, D0EC6D251EB9F58800EBF1C3 /* FetchCachedRepresentations.swift in Sources */, D0EC6D261EB9F58800EBF1C3 /* TransformOutgoingMessageMedia.swift in Sources */, D0EC6D271EB9F58800EBF1C3 /* FetchResource.swift in Sources */, D09D88731F86D56B00BEB4C9 /* AuthorizationLayout.swift in Sources */, D0EC6D281EB9F58800EBF1C3 /* MediaResources.swift in Sources */, - D01590C722BE61CB0017C33E /* TextureCompression.cpp in Sources */, D0EC6D291EB9F58800EBF1C3 /* FetchVideoMediaResource.swift in Sources */, 09EDAD2E221164440012A50B /* AutodownloadSizeLimitItem.swift in Sources */, D008177E22B46B7E008A895F /* TGItemProviderSignals.m in Sources */, @@ -4167,7 +3837,6 @@ D0EC6D3B1EB9F58800EBF1C3 /* EditableTokenListNode.swift in Sources */, D0E2CE6C222930540084E3DD /* PrefetchManager.swift in Sources */, D0EB42011F30ED4F00838FE6 /* LegacyImageProcessors.m in Sources */, - D01590C322BDAEBC0017C33E /* BMPImage.cpp in Sources */, D0CE8CE51F6F354400AA2DB0 /* ChatTextInputAccessoryItem.swift in Sources */, D097C26820DD0A1D007BB4B8 /* PeerReportController.swift in Sources */, 09F664C621EB400A00AB7E26 /* ThemeGridSearchContentNode.swift in Sources */, @@ -4223,22 +3892,16 @@ D0EC6D701EB9F58800EBF1C3 /* AuthorizationSequenceCodeEntryControllerNode.swift in Sources */, D0EC6D711EB9F58800EBF1C3 /* AuthorizationSequencePasswordEntryController.swift in Sources */, D0EC6D721EB9F58800EBF1C3 /* AuthorizationSequencePasswordEntryControllerNode.swift in Sources */, - D0AF797622C2E26500CECCB8 /* endpoints_principal_components.cc in Sources */, D0EC6D731EB9F58800EBF1C3 /* AuthorizationSequenceSignUpController.swift in Sources */, D0C12EB01F9A8D1300600BB2 /* ListMessageDateHeader.swift in Sources */, - 091954792294754E00E11046 /* AnimatedStickerUtils.swift in Sources */, D0EC6D741EB9F58800EBF1C3 /* AuthorizationSequenceSignUpControllerNode.swift in Sources */, D0EC6D751EB9F58800EBF1C3 /* TelegramRootController.swift in Sources */, D0F6800A1EE750EE000E5906 /* ChannelBannedMemberController.swift in Sources */, D03AA4DF202DBF6F0056C405 /* ChatContextResultPeekContentNode.swift in Sources */, D00817D622B47A14008A895F /* TGProxyItem.m in Sources */, 0910B0ED21FA178C00F8F87D /* WallpaperPreviewMedia.swift in Sources */, - D0EC6D7F1EB9F58800EBF1C3 /* HashtagSearchController.swift in Sources */, - D0EC6D801EB9F58800EBF1C3 /* HashtagSearchControllerNode.swift in Sources */, D0EC6D811EB9F58800EBF1C3 /* ChatController.swift in Sources */, D0B37C5E1F8D26A8004252DF /* ThemeSettingsChatPreviewItem.swift in Sources */, - D01590A822BD462C0017C33E /* SoftwareAnimationRenderer.swift in Sources */, - D01590BE22BDAEBC0017C33E /* Image.cpp in Sources */, D0EC6D821EB9F58800EBF1C3 /* ChatControllerInteraction.swift in Sources */, D0EC6D831EB9F58800EBF1C3 /* ChatControllerNode.swift in Sources */, D0EC6D841EB9F58800EBF1C3 /* ChatHistoryEntry.swift in Sources */, @@ -4263,7 +3926,6 @@ D0F19F6420E5A15B00EEC860 /* ChatMediaInputPeerSpecificItem.swift in Sources */, D0AEAE252080D6830013176E /* PaneSearchContainerNode.swift in Sources */, D01DBA9B209CC6AD00C64E64 /* ChatLinkPreview.swift in Sources */, - D01590AF22BD58AD0017C33E /* YUV.m in Sources */, D0EC6D901EB9F58900EBF1C3 /* ChatMessageBubbleContentNode.swift in Sources */, D0EC6D911EB9F58900EBF1C3 /* ChatMessageBubbleItemNode.swift in Sources */, D0E8B8BD204479A500605593 /* SecretChatKeyController.swift in Sources */, @@ -4430,7 +4092,6 @@ 090B48C82200BCA8005083FA /* WallpaperUploadManager.swift in Sources */, D0E8B8BB2044780600605593 /* ItemListSecretChatKeyItem.swift in Sources */, D06F31E62135A41C001A0F12 /* ThemeSettingsBrightnessItem.swift in Sources */, - D01590BD22BDAEBC0017C33E /* DDSImage.cpp in Sources */, 09F2158D225CF5BC00AEDF6D /* Pasteboard.swift in Sources */, D0C26D571FDF2388004ABF18 /* OpenChatMessage.swift in Sources */, D00817CA22B47A14008A895F /* WatchRequestHandlers.swift in Sources */, @@ -4439,8 +4100,6 @@ 09B4819523028A8A00D5B32B /* ThemeAccentColorControllerNode.swift in Sources */, D000CABC21F158AD0011B15D /* PrepareSecretThumbnailData.swift in Sources */, D0208AD61FA33D14001F0D5F /* RaiseToListenActivator.m in Sources */, - D0AF798022C2E26500CECCB8 /* compress_block.cc in Sources */, - D0AF798722C2E26500CECCB8 /* compress_texture.cc in Sources */, 09DD88F321BF907C000766BC /* WebSearchRecentQueryItem.swift in Sources */, D04554A421B42982007A6DD9 /* ConfirmPhoneNumberController.swift in Sources */, D07ABBA5202A14BC003671DE /* LegacyImagePicker.swift in Sources */, @@ -4457,16 +4116,10 @@ D00817D922B47A14008A895F /* AppDelegate.swift in Sources */, D0E1199C229808B8008CAE3A /* ChannelDiscussionGroupSetupHeaderItem.swift in Sources */, 091417F221EF4E5D00C8325A /* WallpaperGalleryController.swift in Sources */, - D0EC6E231EB9F58900EBF1C3 /* StickerPackPreviewController.swift in Sources */, - D0EC6E241EB9F58900EBF1C3 /* StickerPackPreviewControllerNode.swift in Sources */, D0FC194D201F82A000FEDBB2 /* OpenResolvedUrl.swift in Sources */, - D0EC6E251EB9F58900EBF1C3 /* StickerPackPreviewGridItem.swift in Sources */, - D0EC6E261EB9F58900EBF1C3 /* StickerPreviewController.swift in Sources */, D00817D422B47A14008A895F /* LegacyUserDataImport.swift in Sources */, - D0EC6E271EB9F58900EBF1C3 /* StickerPreviewControllerNode.swift in Sources */, 09CE95062236D47F00A7D2C3 /* SettingsSearchItem.swift in Sources */, D0AF323A1FB1D8D60097362B /* ChatOverlayNavigationBar.swift in Sources */, - D0943AF61FDAAE7E001522CC /* MultipleAvatarsNode.swift in Sources */, D0EC6E2B1EB9F58900EBF1C3 /* ComposeController.swift in Sources */, 09749BCF21F236F2008FDDE9 /* ModernCheckNode.swift in Sources */, 0940932422E73DFB003846A3 /* ChatSendMessageActionSheetController.swift in Sources */, @@ -4481,18 +4134,13 @@ D0EC6E321EB9F58900EBF1C3 /* CreateGroupController.swift in Sources */, D0EC55A3210231D600D1992C /* SearchPeerMembers.swift in Sources */, D0EC6E331EB9F58900EBF1C3 /* CreateChannelController.swift in Sources */, - D0EC6E351EB9F58900EBF1C3 /* ItemListAvatarAndNameItem.swift in Sources */, D00ACA5A2022897D0045D427 /* ProcessedPeerRestrictionText.swift in Sources */, D04203152037162700490EA5 /* MediaInputPaneTrendingItem.swift in Sources */, - D0EC6E3C1EB9F58900EBF1C3 /* ItemListPeerActionItem.swift in Sources */, D0CE8CE71F6F35A300AA2DB0 /* ChatTextInputPanelState.swift in Sources */, - D0AF796E22C2E26500CECCB8 /* astc.cc in Sources */, D0CE6F70213EEE5000BCD44B /* CreatePasswordController.swift in Sources */, 0940932622E73E12003846A3 /* ChatSendMessageActionSheetControllerNode.swift in Sources */, D00817D022B47A14008A895F /* WakeupManager.swift in Sources */, - D0AF798822C2E26500CECCB8 /* matrix.cc in Sources */, D0E8175920122FE100B82BBB /* ChatRecentActionsFilterController.swift in Sources */, - D08557E722C5FEB90026D6D2 /* AnimatedStickerNode.swift in Sources */, D084023420E295F000065674 /* GroupStickerPackSetupController.swift in Sources */, 0900678D21ED5EA800530762 /* WallpaperColorPanelNode.swift in Sources */, 0957DE2522DE2909001B4D57 /* ThemePreviewControllerNode.swift in Sources */, @@ -4531,7 +4179,6 @@ D0EC6E561EB9F58900EBF1C3 /* UserInfoController.swift in Sources */, D0EC6E571EB9F58900EBF1C3 /* GroupsInCommonController.swift in Sources */, D0EC6E581EB9F58900EBF1C3 /* PeerSelectionController.swift in Sources */, - D01590AB22BD467B0017C33E /* AnimationRenderer.swift in Sources */, D0EC6E591EB9F58900EBF1C3 /* PeerSelectionControllerNode.swift in Sources */, D0AB262921C307D7008F6685 /* ChatMessagePollBubbleContentNode.swift in Sources */, D0F4B0222110972300912B92 /* ContactInfoStrings.swift in Sources */, diff --git a/submodules/TelegramUI/third-party/astc/astc/bitmanip.h b/submodules/TelegramUI/third-party/astc/astc/bitmanip.h deleted file mode 100644 index e117c39e23..0000000000 --- a/submodules/TelegramUI/third-party/astc/astc/bitmanip.h +++ /dev/null @@ -1,168 +0,0 @@ -#ifndef ASTC_BITMANIP_H_ -#define ASTC_BITMANIP_H_ - -#include -#include - -#include "dcheck.h" - -inline bool getbit(size_t number, size_t n) { - return (number >> n) & 1; -} - -inline uint8_t getbits(uint8_t number, uint8_t msb, uint8_t lsb) { - int count = msb - lsb + 1; - return static_cast((number >> lsb) & ((1 << count) - 1)); -} - -inline size_t getbits(size_t number, size_t msb, size_t lsb) { - size_t count = msb - lsb + 1; - return (number >> lsb) & (static_cast(1 << count) - 1); -} - -inline void orbits8_ptr(uint8_t* ptr, - size_t bitoffset, - size_t number, - size_t bitcount) { - DCHECK(bitcount <= 8); - DCHECK((number >> bitcount) == 0); - - size_t index = bitoffset / 8; - size_t shift = bitoffset % 8; - - // Depending on the offset we might have to consider two bytes when - // writing, for instance if we are writing 8 bits and the offset is 4, - // then we have to write 4 bits to the first byte (ptr[index]) and 4 bits - // to the second byte (ptr[index+1]). - // - // FIXME: Writing to the last byte when the number of bytes is a multiple of 2 - // will write past the allocated memory. - - uint8_t* p = ptr + index; - size_t mask = number << shift; - - DCHECK((p[0] & mask) == 0); - DCHECK((p[1] & (mask >> 8)) == 0); - - p[0] |= static_cast(mask & 0xFF); - p[1] |= static_cast((mask >> 8) & 0xFF); -} - -inline void orbits16_ptr(uint8_t* ptr, - size_t bitoffset, - size_t number, - size_t bitcount) { - DCHECK(bitcount > 8 && bitcount <= 16); - - size_t index = bitoffset / 8; - size_t shift = bitoffset % 8; - - uint8_t* p = ptr + index; - size_t mask = number << shift; - - p[0] |= static_cast(mask & 0xFF); - p[1] |= static_cast((mask >> 8) & 0xFF); - p[2] |= static_cast((mask >> 16) & 0xFF); - p[3] |= static_cast((mask >> 24) & 0xFF); -} - -inline uint16_t getbytes2(const uint8_t* ptr, size_t byteoffset) { - const uint8_t* p = ptr + byteoffset; - return static_cast((p[1] << 8) | p[0]); -} - -inline void setbytes2(uint8_t* ptr, size_t byteoffset, uint16_t bytes) { - ptr[byteoffset + 0] = static_cast(bytes & 0xFF); - ptr[byteoffset + 1] = static_cast((bytes >> 8) & 0xFF); -} - -inline void split_high_low(uint8_t n, size_t i, uint8_t& high, uint8_t& low) { - DCHECK(i < 8); - - uint8_t low_mask = static_cast((1 << i) - 1); - - low = n & low_mask; - high = static_cast(n >> i); -} - -class bitwriter { - public: - explicit bitwriter(uint8_t* ptr) : ptr_(ptr), bitoffset_(0) { - // assumption that all bits in ptr are zero after the offset - - // writing beyound the bounds of the allocated memory is undefined - // behaviour - } - - // Specialized function that can't write more than 8 bits. - void write8(uint8_t number, size_t bitcount) { - orbits8_ptr(ptr_, bitoffset_, number, bitcount); - - bitoffset_ += bitcount; - } - - size_t offset() const { return bitoffset_; } - - private: - uint8_t* ptr_; - size_t bitoffset_; // in bits -}; - -const uint8_t bit_reverse_table[256] = { - 0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0, 0x10, 0x90, 0x50, 0xD0, - 0x30, 0xB0, 0x70, 0xF0, 0x08, 0x88, 0x48, 0xC8, 0x28, 0xA8, 0x68, 0xE8, - 0x18, 0x98, 0x58, 0xD8, 0x38, 0xB8, 0x78, 0xF8, 0x04, 0x84, 0x44, 0xC4, - 0x24, 0xA4, 0x64, 0xE4, 0x14, 0x94, 0x54, 0xD4, 0x34, 0xB4, 0x74, 0xF4, - 0x0C, 0x8C, 0x4C, 0xCC, 0x2C, 0xAC, 0x6C, 0xEC, 0x1C, 0x9C, 0x5C, 0xDC, - 0x3C, 0xBC, 0x7C, 0xFC, 0x02, 0x82, 0x42, 0xC2, 0x22, 0xA2, 0x62, 0xE2, - 0x12, 0x92, 0x52, 0xD2, 0x32, 0xB2, 0x72, 0xF2, 0x0A, 0x8A, 0x4A, 0xCA, - 0x2A, 0xAA, 0x6A, 0xEA, 0x1A, 0x9A, 0x5A, 0xDA, 0x3A, 0xBA, 0x7A, 0xFA, - 0x06, 0x86, 0x46, 0xC6, 0x26, 0xA6, 0x66, 0xE6, 0x16, 0x96, 0x56, 0xD6, - 0x36, 0xB6, 0x76, 0xF6, 0x0E, 0x8E, 0x4E, 0xCE, 0x2E, 0xAE, 0x6E, 0xEE, - 0x1E, 0x9E, 0x5E, 0xDE, 0x3E, 0xBE, 0x7E, 0xFE, 0x01, 0x81, 0x41, 0xC1, - 0x21, 0xA1, 0x61, 0xE1, 0x11, 0x91, 0x51, 0xD1, 0x31, 0xB1, 0x71, 0xF1, - 0x09, 0x89, 0x49, 0xC9, 0x29, 0xA9, 0x69, 0xE9, 0x19, 0x99, 0x59, 0xD9, - 0x39, 0xB9, 0x79, 0xF9, 0x05, 0x85, 0x45, 0xC5, 0x25, 0xA5, 0x65, 0xE5, - 0x15, 0x95, 0x55, 0xD5, 0x35, 0xB5, 0x75, 0xF5, 0x0D, 0x8D, 0x4D, 0xCD, - 0x2D, 0xAD, 0x6D, 0xED, 0x1D, 0x9D, 0x5D, 0xDD, 0x3D, 0xBD, 0x7D, 0xFD, - 0x03, 0x83, 0x43, 0xC3, 0x23, 0xA3, 0x63, 0xE3, 0x13, 0x93, 0x53, 0xD3, - 0x33, 0xB3, 0x73, 0xF3, 0x0B, 0x8B, 0x4B, 0xCB, 0x2B, 0xAB, 0x6B, 0xEB, - 0x1B, 0x9B, 0x5B, 0xDB, 0x3B, 0xBB, 0x7B, 0xFB, 0x07, 0x87, 0x47, 0xC7, - 0x27, 0xA7, 0x67, 0xE7, 0x17, 0x97, 0x57, 0xD7, 0x37, 0xB7, 0x77, 0xF7, - 0x0F, 0x8F, 0x4F, 0xCF, 0x2F, 0xAF, 0x6F, 0xEF, 0x1F, 0x9F, 0x5F, 0xDF, - 0x3F, 0xBF, 0x7F, 0xFF}; - -/** - * Reverse a byte, total function. - */ -inline uint8_t reverse_byte(uint8_t number) { - return bit_reverse_table[number]; -} - -/** - * Reverse a sequence of bytes. - * - * Assumes that the bits written to (using bitwise or) are zero and that they - * will not clash with bits already written to target sequence. That is it is - * possible to write to a non-zero byte as long as the bits that are actually - * written to are zero. - */ -inline void reverse_bytes(const uint8_t* source, - size_t bytecount, - uint8_t* target) { - for (int i = 0; i < static_cast(bytecount); ++i) { - DCHECK((reverse_byte(source[i]) & target[-i]) == 0); - target[-i] = target[-i] | reverse_byte(source[i]); - } -} - -inline void copy_bytes(const uint8_t* source, - size_t bytecount, - uint8_t* target, - size_t bitoffset) { - for (size_t i = 0; i < bytecount; ++i) { - orbits8_ptr(target, bitoffset + i * 8, source[i], 8); - } -} - -#endif // ASTC_BITMANIP_H_ diff --git a/submodules/TelegramUI/third-party/astc/astc/colors.h b/submodules/TelegramUI/third-party/astc/astc/colors.h deleted file mode 100644 index 8ec2e3c095..0000000000 --- a/submodules/TelegramUI/third-party/astc/astc/colors.h +++ /dev/null @@ -1,132 +0,0 @@ -#ifndef ASTC_COLORS_H_ -#define ASTC_COLORS_H_ - -#include -#include - -#include "misc.h" -#include "vector.h" - -const int APPROX_COLOR_EPSILON = 50; - -union unorm8_t { - struct RgbaColorType { - uint8_t b, g, r, a; - } channels; - uint8_t components[4]; - uint32_t bits; -}; - -union unorm16_t { - struct RgbaColorType { - uint16_t b, g, r, a; - } channels; - uint16_t components[4]; - uint64_t bits; -}; - -inline bool is_greyscale(vec3i_t color) { - // integer equality is transitive - return color.r == color.g && color.g == color.b; -} - -inline int luminance(vec3i_t color) { - return (color.r + color.g + color.b) / 3; -} - -inline bool approx_equal(vec3i_t a, vec3i_t b) { - return quadrance(a - b) <= APPROX_COLOR_EPSILON; -} - -inline vec3i_t clamp_rgb(vec3i_t color) { - vec3i_t result; - result.r = clamp(0, 255, color.r); - result.g = clamp(0, 255, color.g); - result.b = clamp(0, 255, color.b); - return result; -} - -inline vec3f_t clamp_rgb(vec3f_t color) { - vec3f_t result; - result.r = clamp(0.0f, 255.0f, color.r); - result.g = clamp(0.0f, 255.0f, color.g); - result.b = clamp(0.0f, 255.0f, color.b); - return result; -} - -inline bool is_rgb(float color) { - return color >= 0.0f && color <= 255.0f; -} - -inline bool is_rgb(vec3f_t color) { - return is_rgb(color.r) && is_rgb(color.g) && is_rgb(color.b); -} - -inline vec3i_t floor(vec3f_t color) { - vec3i_t result; - result.r = static_cast(floor(color.r)); - result.g = static_cast(floor(color.g)); - result.b = static_cast(floor(color.b)); - return result; -} - -inline vec3i_t round(vec3f_t color) { - vec3i_t result; - result.r = static_cast(round(color.r)); - result.g = static_cast(round(color.g)); - result.b = static_cast(round(color.b)); - return result; -} - -inline vec3i_t to_vec3i(unorm8_t color) { - vec3i_t result; - result.r = color.channels.r; - result.g = color.channels.g; - result.b = color.channels.b; - return result; -} - -inline vec3i_t to_vec3i(vec3f_t color) { - vec3i_t result; - result.r = static_cast(color.r); - result.g = static_cast(color.g); - result.b = static_cast(color.b); - return result; -} - -inline vec3f_t to_vec3f(unorm8_t color) { - vec3f_t result; - result.r = color.channels.r; - result.g = color.channels.g; - result.b = color.channels.b; - return result; -} - -inline vec3f_t to_vec3f(vec3i_t color) { - vec3f_t result; - result.r = static_cast(color.r); - result.g = static_cast(color.g); - result.b = static_cast(color.b); - return result; -} - -inline unorm8_t to_unorm8(vec3i_t color) { - unorm8_t result; - result.channels.r = static_cast(color.r); - result.channels.g = static_cast(color.g); - result.channels.b = static_cast(color.b); - result.channels.a = 255; - return result; -} - -inline unorm16_t unorm8_to_unorm16(unorm8_t c8) { - // (x / 255) * (2^16-1) = x * 65535 / 255 = x * 257 - unorm16_t result; - result.channels.r = static_cast(c8.channels.r * 257); - result.channels.g = static_cast(c8.channels.g * 257); - result.channels.b = static_cast(c8.channels.b * 257); - result.channels.a = static_cast(c8.channels.a * 257); - return result; -} - -#endif // ASTC_COLORS_H_ diff --git a/submodules/TelegramUI/third-party/astc/astc/compress_block.cc b/submodules/TelegramUI/third-party/astc/astc/compress_block.cc deleted file mode 100644 index 5bf89e883d..0000000000 --- a/submodules/TelegramUI/third-party/astc/astc/compress_block.cc +++ /dev/null @@ -1,155 +0,0 @@ -#include "compress_block.h" - -#include -#include -#include - -#include "colors.h" -#include "constants.h" -#include "data_size.h" -#include "endpoints.h" -#include "endpoints_encode.h" -#include "endpoints_min_max.h" -#include "endpoints_principal_components.h" -#include "integer_sequence_encoding.h" -#include "misc.h" -#include "range.h" -#include "store_block.h" -#include "vector.h" -#include "weights_quantize.h" - -/** - * Write void extent block bits for LDR mode and unused extent coordinates. - */ -void encode_void_extent(vec3i_t color, PhysicalBlock* physical_block) { - void_extent_to_physical(unorm8_to_unorm16(to_unorm8(color)), physical_block); -} - -void encode_luminance(const uint8_t texels[BLOCK_TEXEL_COUNT], - PhysicalBlock* physical_block) { - size_t partition_count = 1; - size_t partition_index = 0; - - color_endpoint_mode_t color_endpoint_mode = CEM_LDR_LUMINANCE_DIRECT; - range_t weight_quant = RANGE_32; - range_t endpoint_quant = - endpoint_quantization(partition_count, weight_quant, color_endpoint_mode); - - uint8_t l0 = 255; - uint8_t l1 = 0; - for (size_t i = 0; i < BLOCK_TEXEL_COUNT; ++i) { - l0 = std::min(l0, texels[i]); - l1 = std::max(l1, texels[i]); - } - - uint8_t endpoint_unquantized[2]; - uint8_t endpoint_quantized[2]; - encode_luminance_direct(endpoint_quant, l0, l1, endpoint_quantized, - endpoint_unquantized); - - uint8_t weights_quantized[BLOCK_TEXEL_COUNT]; - calculate_quantized_weights_luminance( - texels, weight_quant, endpoint_unquantized[0], endpoint_unquantized[1], - weights_quantized); - - uint8_t endpoint_ise[MAXIMUM_ENCODED_COLOR_ENDPOINT_BYTES] = {0}; - integer_sequence_encode(endpoint_quantized, 2, RANGE_256, endpoint_ise); - - uint8_t weights_ise[MAXIMUM_ENCODED_WEIGHT_BYTES + 1] = {0}; - integer_sequence_encode(weights_quantized, BLOCK_TEXEL_COUNT, RANGE_32, - weights_ise); - - symbolic_to_physical(color_endpoint_mode, endpoint_quant, weight_quant, - partition_count, partition_index, endpoint_ise, - weights_ise, physical_block); -} - -void encode_rgb_single_partition(const unorm8_t texels[BLOCK_TEXEL_COUNT], - vec3f_t e0, - vec3f_t e1, - PhysicalBlock* physical_block) { - size_t partition_index = 0; - size_t partition_count = 1; - - color_endpoint_mode_t color_endpoint_mode = CEM_LDR_RGB_DIRECT; - range_t weight_quant = RANGE_12; - range_t endpoint_quant = - endpoint_quantization(partition_count, weight_quant, color_endpoint_mode); - - vec3i_t endpoint_unquantized[2]; - uint8_t endpoint_quantized[6]; - encode_rgb_direct(endpoint_quant, round(e0), round(e1), endpoint_quantized, - endpoint_unquantized); - - uint8_t weights_quantized[BLOCK_TEXEL_COUNT]; - calculate_quantized_weights_rgb(texels, weight_quant, endpoint_unquantized[0], - endpoint_unquantized[1], weights_quantized); - - uint8_t endpoint_ise[MAXIMUM_ENCODED_COLOR_ENDPOINT_BYTES] = {0}; - integer_sequence_encode(endpoint_quantized, 6, endpoint_quant, endpoint_ise); - - uint8_t weights_ise[MAXIMUM_ENCODED_WEIGHT_BYTES + 1] = {0}; - integer_sequence_encode(weights_quantized, BLOCK_TEXEL_COUNT, weight_quant, - weights_ise); - - symbolic_to_physical(color_endpoint_mode, endpoint_quant, weight_quant, - partition_count, partition_index, endpoint_ise, - weights_ise, physical_block); -} - -bool is_solid(const unorm8_t texels[BLOCK_TEXEL_COUNT], - size_t count, - unorm8_t* color) { - for (size_t i = 0; i < count; ++i) { - if (!approx_equal(to_vec3i(texels[i]), to_vec3i(texels[0]))) { - return false; - } - } - - // TODO: Calculate average color? - *color = texels[0]; - return true; -} - -bool is_greyscale(const unorm8_t texels[BLOCK_TEXEL_COUNT], - size_t count, - uint8_t luminances[BLOCK_TEXEL_COUNT]) { - for (size_t i = 0; i < count; ++i) { - vec3i_t color = to_vec3i(texels[i]); - luminances[i] = static_cast(luminance(color)); - vec3i_t lum(luminances[i], luminances[i], luminances[i]); - if (!approx_equal(color, lum)) { - return false; - } - } - - return true; -} - -void compress_block(const unorm8_t texels[BLOCK_TEXEL_COUNT], - PhysicalBlock* physical_block) { - { - unorm8_t color; - if (is_solid(texels, BLOCK_TEXEL_COUNT, &color)) { - encode_void_extent(to_vec3i(color), physical_block); - /* encode_void_extent(vec3i_t(0, 0, 0), physical_block); */ - return; - } - } - - { - uint8_t luminances[BLOCK_TEXEL_COUNT]; - if (is_greyscale(texels, BLOCK_TEXEL_COUNT, luminances)) { - encode_luminance(luminances, physical_block); - /* encode_void_extent(vec3i_t(255, 0, 0), physical_block); */ - return; - } - } - - vec3f_t k, m; - principal_component_analysis_block(texels, k, m); - vec3f_t e0, e1; - find_min_max_block(texels, k, m, e0, e1); - encode_rgb_single_partition(texels, e0, e1, physical_block); - /* encode_void_extent(vec3i_t(0, 255, 0), physical_block); */ -} diff --git a/submodules/TelegramUI/third-party/astc/astc/compress_block.h b/submodules/TelegramUI/third-party/astc/astc/compress_block.h deleted file mode 100644 index 955c312840..0000000000 --- a/submodules/TelegramUI/third-party/astc/astc/compress_block.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef ASTC_COMPRESS_BLOCK_H_ -#define ASTC_COMPRESS_BLOCK_H_ - -#include "constants.h" - -union unorm8_t; -struct PhysicalBlock; - -void compress_block(const unorm8_t texels[BLOCK_TEXEL_COUNT], - PhysicalBlock* physical_block); - -#endif // ASTC_COMPRESS_BLOCK_H_ diff --git a/submodules/TelegramUI/third-party/astc/astc/compress_texture.cc b/submodules/TelegramUI/third-party/astc/astc/compress_texture.cc deleted file mode 100644 index df89e8eff9..0000000000 --- a/submodules/TelegramUI/third-party/astc/astc/compress_texture.cc +++ /dev/null @@ -1,68 +0,0 @@ -#include - -#include "colors.h" -#include "compress_block.h" -#include "compress_texture.h" -#include "constants.h" -#include "store_block.h" - -namespace { -void fetch_image_block(const unorm8_t* source, - size_t image_width, - size_t xpos, - size_t ypos, - unorm8_t texels[BLOCK_TEXEL_COUNT]) { - size_t topleft_index = ypos * image_width + xpos; - - const unorm8_t* row0 = source + topleft_index; - const unorm8_t* row1 = row0 + image_width; - const unorm8_t* row2 = row0 + 2 * image_width; - const unorm8_t* row3 = row0 + 3 * image_width; - - texels[0] = row0[0]; - texels[1] = row0[1]; - texels[2] = row0[2]; - texels[3] = row0[3]; - - texels[4] = row1[0]; - texels[5] = row1[1]; - texels[6] = row1[2]; - texels[7] = row1[3]; - - texels[8] = row2[0]; - texels[9] = row2[1]; - texels[10] = row2[2]; - texels[11] = row2[3]; - - texels[12] = row3[0]; - texels[13] = row3[1]; - texels[14] = row3[2]; - texels[15] = row3[3]; -} - -PhysicalBlock physical_block_zero = {0}; -} // namespace - -void compress_texture(const uint8_t* src, - uint8_t* dst, - int width_int, - int height_int) { - const unorm8_t* data = reinterpret_cast(src); - - size_t width = static_cast(width_int); - size_t height = static_cast(height_int); - - PhysicalBlock* dst_re = reinterpret_cast(dst); - - for (size_t ypos = 0; ypos < height; ypos += BLOCK_WIDTH) { - for (size_t xpos = 0; xpos < width; xpos += BLOCK_HEIGHT) { - unorm8_t texels[BLOCK_TEXEL_COUNT]; - fetch_image_block(data, width, xpos, ypos, texels); - - *dst_re = physical_block_zero; - compress_block(texels, dst_re); - - ++dst_re; - } - } -} diff --git a/submodules/TelegramUI/third-party/astc/astc/compress_texture.h b/submodules/TelegramUI/third-party/astc/astc/compress_texture.h deleted file mode 100644 index fe6f0b9398..0000000000 --- a/submodules/TelegramUI/third-party/astc/astc/compress_texture.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef ASTC_COMPRESS_TEXTURE_H_ -#define ASTC_COMPRESS_TEXTURE_H_ - -#include - -/** - * Compress an texture with the ASTC format. - * - * @param src The source data, width*height*4 bytes with BGRA ordering. - * @param dst The output, width*height bytes. - * @param width The width of the input texture. - * @param height The height of the input texture. - */ -void compress_texture(const uint8_t* src, uint8_t* dst, int width, int height); - -#endif // ASTC_COMPRESS_TEXTURE_H_ diff --git a/submodules/TelegramUI/third-party/astc/astc/constants.h b/submodules/TelegramUI/third-party/astc/astc/constants.h deleted file mode 100644 index 9e3a73cd21..0000000000 --- a/submodules/TelegramUI/third-party/astc/astc/constants.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef ASTC_CONSTANTS_H_ -#define ASTC_CONSTANTS_H_ - -#include - -const size_t BLOCK_WIDTH = 4; -const size_t BLOCK_HEIGHT = 4; -const size_t BLOCK_TEXEL_COUNT = BLOCK_WIDTH * BLOCK_HEIGHT; -const size_t BLOCK_BYTES = 16; - -const size_t MAXIMUM_ENCODED_WEIGHT_BITS = 96; -const size_t MAXIMUM_ENCODED_WEIGHT_BYTES = 12; - -const size_t MAXIMUM_ENCODED_COLOR_ENDPOINT_BYTES = 12; - -const size_t MAX_ENDPOINT_VALUE_COUNT = 18; - -#endif // ASTC_CONSTANTS_H_ diff --git a/submodules/TelegramUI/third-party/astc/astc/data_size.h b/submodules/TelegramUI/third-party/astc/astc/data_size.h deleted file mode 100644 index d99ce9b016..0000000000 --- a/submodules/TelegramUI/third-party/astc/astc/data_size.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef ASTC_DATA_SIZE_H_ -#define ASTC_DATA_SIZE_H_ - -#include -#include - -#include "dcheck.h" -#include "endpoints.h" -#include "range.h" -#include "tables_data_size.h" - -range_t endpoint_quantization(size_t partitions, - range_t weight_quant, - color_endpoint_mode_t endpoint_mode) { - int8_t ce_range = - color_endpoint_range_table[partitions - 1][weight_quant][endpoint_mode]; - DCHECK(ce_range >= 0 && ce_range <= RANGE_MAX); - return static_cast(ce_range); -} - -#endif // ASTC_DATA_SIZE_H_ diff --git a/submodules/TelegramUI/third-party/astc/astc/dcheck.h b/submodules/TelegramUI/third-party/astc/astc/dcheck.h deleted file mode 100644 index 164bab32b6..0000000000 --- a/submodules/TelegramUI/third-party/astc/astc/dcheck.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef ASTC_DCHECK_H_ -#define ASTC_DCHECK_H_ - -#include -#define DCHECK(x) assert(x) - -#endif // ASTC_DCHECK_H_ diff --git a/submodules/TelegramUI/third-party/astc/astc/endpoints.h b/submodules/TelegramUI/third-party/astc/astc/endpoints.h deleted file mode 100644 index 5d1032b82d..0000000000 --- a/submodules/TelegramUI/third-party/astc/astc/endpoints.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef ASTC_ENDPOINTS_H_ -#define ASTC_ENDPOINTS_H_ - -enum color_endpoint_mode_t { - CEM_LDR_LUMINANCE_DIRECT = 0, - CEM_LDR_LUMINANCE_BASE_OFFSET = 1, - CEM_HDR_LUMINANCE_LARGE_RANGE = 2, - CEM_HDR_LUMINANCE_SMALL_RANGE = 3, - CEM_LDR_LUMINANCE_ALPHA_DIRECT = 4, - CEM_LDR_LUMINANCE_ALPHA_BASE_OFFSET = 5, - CEM_LDR_RGB_BASE_SCALE = 6, - CEM_HDR_RGB_BASE_SCALE = 7, - CEM_LDR_RGB_DIRECT = 8, - CEM_LDR_RGB_BASE_OFFSET = 9, - CEM_LDR_RGB_BASE_SCALE_PLUS_TWO_ALPHA = 10, - CEM_HDR_RGB = 11, - CEM_LDR_RGBA_DIRECT = 12, - CEM_LDR_RGBA_BASE_OFFSET = 13, - CEM_HDR_RGB_LDR_ALPHA = 14, - CEM_HDR_RGB_HDR_ALPHA = 15, - CEM_MAX = 16 -}; - -#endif // ASTC_ENDPOINTS_H_ diff --git a/submodules/TelegramUI/third-party/astc/astc/endpoints_bounding_box.h b/submodules/TelegramUI/third-party/astc/astc/endpoints_bounding_box.h deleted file mode 100644 index ae769f80d2..0000000000 --- a/submodules/TelegramUI/third-party/astc/astc/endpoints_bounding_box.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef ASTC_ENDPOINTS_BOUNDING_BOX_H_ -#define ASTC_ENDPOINTS_BOUNDING_BOX_H_ - -#include - -#include "astc/colors.h" -#include "astc/constants.h" -#include "astc/misc.h" -#include "astc/vector.h" - -void bounding_box(const unorm8_t* texels, - size_t count, - vec3i_t& e0, - vec3i_t& e1) { - vec3i_t a(255, 255, 255); - vec3i_t b(0, 0, 0); - for (size_t i = 0; i < count; ++i) { - vec3i_t t = to_vec3i(texels[i]); - a = vecmin(a, t); - b = vecmax(b, t); - } - e0 = a; - e1 = b; -} - -void bounding_box_block(const unorm8_t texels[BLOCK_TEXEL_COUNT], - vec3i_t& e0, - vec3i_t& e1) { - bounding_box(texels, BLOCK_TEXEL_COUNT, e0, e1); -} - -#endif // ASTC_ENDPOINTS_BOUNDING_BOX_H_ diff --git a/submodules/TelegramUI/third-party/astc/astc/endpoints_encode.h b/submodules/TelegramUI/third-party/astc/astc/endpoints_encode.h deleted file mode 100644 index 1a3bb9d557..0000000000 --- a/submodules/TelegramUI/third-party/astc/astc/endpoints_encode.h +++ /dev/null @@ -1,63 +0,0 @@ -#ifndef ASTC_ENDPOINTS_ENCODE_H_ -#define ASTC_ENDPOINTS_ENCODE_H_ - -#include - -#include "endpoints_quantize.h" -#include "range.h" -#include "vector.h" - -int color_channel_sum(vec3i_t color) { - return color.r + color.g + color.b; -} - -void encode_luminance_direct(range_t endpoint_quant, - int v0, - int v1, - uint8_t endpoint_unquantized[2], - uint8_t endpoint_quantized[2]) { - endpoint_quantized[0] = quantize_color(endpoint_quant, v0); - endpoint_quantized[1] = quantize_color(endpoint_quant, v1); - endpoint_unquantized[0] = - unquantize_color(endpoint_quant, endpoint_quantized[0]); - endpoint_unquantized[1] = - unquantize_color(endpoint_quant, endpoint_quantized[1]); -} - -void encode_rgb_direct(range_t endpoint_quant, - vec3i_t e0, - vec3i_t e1, - uint8_t endpoint_quantized[6], - vec3i_t endpoint_unquantized[2]) { - vec3i_t e0q = quantize_color(endpoint_quant, e0); - vec3i_t e1q = quantize_color(endpoint_quant, e1); - vec3i_t e0u = unquantize_color(endpoint_quant, e0q); - vec3i_t e1u = unquantize_color(endpoint_quant, e1q); - - // ASTC uses a different blue contraction encoding when the sum of values for - // the first endpoint is larger than the sum of values in the second - // endpoint. Sort the endpoints to ensure that the normal encoding is used. - if (color_channel_sum(e0u) > color_channel_sum(e1u)) { - endpoint_quantized[0] = static_cast(e1q.r); - endpoint_quantized[1] = static_cast(e0q.r); - endpoint_quantized[2] = static_cast(e1q.g); - endpoint_quantized[3] = static_cast(e0q.g); - endpoint_quantized[4] = static_cast(e1q.b); - endpoint_quantized[5] = static_cast(e0q.b); - - endpoint_unquantized[0] = e1u; - endpoint_unquantized[1] = e0u; - } else { - endpoint_quantized[0] = static_cast(e0q.r); - endpoint_quantized[1] = static_cast(e1q.r); - endpoint_quantized[2] = static_cast(e0q.g); - endpoint_quantized[3] = static_cast(e1q.g); - endpoint_quantized[4] = static_cast(e0q.b); - endpoint_quantized[5] = static_cast(e1q.b); - - endpoint_unquantized[0] = e0u; - endpoint_unquantized[1] = e1u; - } -} - -#endif // ASTC_ENDPOINTS_ENCODE_H_ diff --git a/submodules/TelegramUI/third-party/astc/astc/endpoints_min_max.h b/submodules/TelegramUI/third-party/astc/astc/endpoints_min_max.h deleted file mode 100644 index 0614062c8f..0000000000 --- a/submodules/TelegramUI/third-party/astc/astc/endpoints_min_max.h +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef ASTC_ENDPOINTS_MIN_MAX_H_ -#define ASTC_ENDPOINTS_MIN_MAX_H_ - -#include -#include - -#include "colors.h" -#include "constants.h" -#include "dcheck.h" -#include "misc.h" -#include "vector.h" - -void find_min_max(const unorm8_t texels[BLOCK_TEXEL_COUNT], - size_t count, - vec3f_t line_k, - vec3f_t line_m, - vec3f_t& e0, - vec3f_t& e1) { - DCHECK(count <= BLOCK_TEXEL_COUNT); - DCHECK(approx_equal(quadrance(line_k), 1.0, 0.0001f)); - - float a, b; - { - float t = dot(to_vec3f(texels[0]) - line_m, line_k); - a = t; - b = t; - } - - for (size_t i = 1; i < count; ++i) { - float t = dot(to_vec3f(texels[i]) - line_m, line_k); - a = std::min(a, t); - b = std::max(b, t); - } - - e0 = clamp_rgb(line_k * a + line_m); - e1 = clamp_rgb(line_k * b + line_m); -} - -void find_min_max_block(const unorm8_t texels[BLOCK_TEXEL_COUNT], - vec3f_t line_k, - vec3f_t line_m, - vec3f_t& e0, - vec3f_t& e1) { - find_min_max(texels, BLOCK_TEXEL_COUNT, line_k, line_m, e0, e1); -} - -#endif // ASTC_ENDPOINTS_MIN_MAX_H_ diff --git a/submodules/TelegramUI/third-party/astc/astc/endpoints_principal_components.cc b/submodules/TelegramUI/third-party/astc/astc/endpoints_principal_components.cc deleted file mode 100644 index 9ab692b4fb..0000000000 --- a/submodules/TelegramUI/third-party/astc/astc/endpoints_principal_components.cc +++ /dev/null @@ -1,59 +0,0 @@ -#include - -#include "colors.h" -#include "constants.h" -#include "dcheck.h" -#include "endpoints_principal_components.h" -#include "matrix.h" -#include "vector.h" - -vec3f_t mean(const unorm8_t texels[BLOCK_TEXEL_COUNT], size_t count) { - vec3i_t sum(0, 0, 0); - for (size_t i = 0; i < count; ++i) { - sum = sum + to_vec3i(texels[i]); - } - - return to_vec3f(sum) / static_cast(count); -} - -void subtract(const unorm8_t texels[BLOCK_TEXEL_COUNT], - size_t count, - vec3f_t v, - vec3f_t output[BLOCK_TEXEL_COUNT]) { - for (size_t i = 0; i < count; ++i) { - output[i] = to_vec3f(texels[i]) - v; - } -} - -mat3x3f_t covariance(const vec3f_t m[BLOCK_TEXEL_COUNT], size_t count) { - mat3x3f_t cov; - for (size_t i = 0; i < 3; ++i) { - for (size_t j = 0; j < 3; ++j) { - float s = 0; - for (size_t k = 0; k < count; ++k) { - s += m[k].components[i] * m[k].components[j]; - } - cov.at(i, j) = s / static_cast(count - 1); - } - } - - return cov; -} - -void principal_component_analysis(const unorm8_t texels[BLOCK_TEXEL_COUNT], - size_t count, - vec3f_t& line_k, - vec3f_t& line_m) { - // Since we are working with fixed sized blocks count we can cap count. This - // avoids dynamic allocation. - DCHECK(count <= BLOCK_TEXEL_COUNT); - - line_m = mean(texels, count); - - vec3f_t n[BLOCK_TEXEL_COUNT]; - subtract(texels, count, line_m, n); - - mat3x3f_t w = covariance(n, count); - - eigen_vector(w, line_k); -} diff --git a/submodules/TelegramUI/third-party/astc/astc/endpoints_principal_components.h b/submodules/TelegramUI/third-party/astc/astc/endpoints_principal_components.h deleted file mode 100644 index 67a64f7f86..0000000000 --- a/submodules/TelegramUI/third-party/astc/astc/endpoints_principal_components.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef ASTC_ENDPOINTS_PRINCIPAL_COMPONENTS_H_ -#define ASTC_ENDPOINTS_PRINCIPAL_COMPONENTS_H_ - -#include - -#include "colors.h" -#include "constants.h" -#include "vector.h" - -void principal_component_analysis(const unorm8_t texels[BLOCK_TEXEL_COUNT], - size_t count, - vec3f_t& line_k, - vec3f_t& line_m); - -inline void principal_component_analysis_block( - const unorm8_t texels[BLOCK_TEXEL_COUNT], - vec3f_t& line_k, - vec3f_t& line_m) { - principal_component_analysis(texels, BLOCK_TEXEL_COUNT, line_k, line_m); -} - -#endif // ASTC_ENDPOINTS_PRINCIPAL_COMPONENTS_H_ diff --git a/submodules/TelegramUI/third-party/astc/astc/endpoints_quantize.h b/submodules/TelegramUI/third-party/astc/astc/endpoints_quantize.h deleted file mode 100644 index 9dd12c128a..0000000000 --- a/submodules/TelegramUI/third-party/astc/astc/endpoints_quantize.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef ASTC_ENDPOINTS_QUANTIZE_H_ -#define ASTC_ENDPOINTS_QUANTIZE_H_ - -#include - -#include "dcheck.h" -#include "range.h" -#include "tables_color_quantization.h" -#include "vector.h" - -uint8_t quantize_color(range_t quant, int c) { - DCHECK(c >= 0 && c <= 255); - return color_quantize_table[quant][c]; -} - -vec3i_t quantize_color(range_t quant, vec3i_t c) { - vec3i_t result; - result.r = color_quantize_table[quant][c.r]; - result.g = color_quantize_table[quant][c.g]; - result.b = color_quantize_table[quant][c.b]; - return result; -} - -uint8_t unquantize_color(range_t quant, int c) { - DCHECK(c >= 0 && c <= 255); - return color_unquantize_table[quant][c]; -} - -vec3i_t unquantize_color(range_t quant, vec3i_t c) { - vec3i_t result; - result.r = color_unquantize_table[quant][c.r]; - result.g = color_unquantize_table[quant][c.g]; - result.b = color_unquantize_table[quant][c.b]; - return result; -} - -#endif // ASTC_ENDPOINTS_QUANTIZE_H_ diff --git a/submodules/TelegramUI/third-party/astc/astc/integer_sequence_encoding.h b/submodules/TelegramUI/third-party/astc/astc/integer_sequence_encoding.h deleted file mode 100644 index 4044e88b46..0000000000 --- a/submodules/TelegramUI/third-party/astc/astc/integer_sequence_encoding.h +++ /dev/null @@ -1,212 +0,0 @@ -#ifndef ASTC_INTEGER_SEQUENCE_ENCODING_H_ -#define ASTC_INTEGER_SEQUENCE_ENCODING_H_ - -#include -#include - -#include "bitmanip.h" -#include "dcheck.h" -#include "tables_integer_sequence_encoding.h" -#include "range.h" - -/** - * Table that describes the number of trits or quints along with bits required - * for storing each range. - */ -const uint8_t bits_trits_quints_table[RANGE_MAX][3] = { - {1, 0, 0}, // RANGE_2 - {0, 1, 0}, // RANGE_3 - {2, 0, 0}, // RANGE_4 - {0, 0, 1}, // RANGE_5 - {1, 1, 0}, // RANGE_6 - {3, 0, 0}, // RANGE_8 - {1, 0, 1}, // RANGE_10 - {2, 1, 0}, // RANGE_12 - {4, 0, 0}, // RANGE_16 - {2, 0, 1}, // RANGE_20 - {3, 1, 0}, // RANGE_24 - {5, 0, 0}, // RANGE_32 - {3, 0, 1}, // RANGE_40 - {4, 1, 0}, // RANGE_48 - {6, 0, 0}, // RANGE_64 - {4, 0, 1}, // RANGE_80 - {5, 1, 0}, // RANGE_96 - {7, 0, 0}, // RANGE_128 - {5, 0, 1}, // RANGE_160 - {6, 1, 0}, // RANGE_192 - {8, 0, 0} // RANGE_256 -}; - -/** - * Encode a group of 5 numbers using trits and bits. - */ -inline void encode_trits(size_t bits, - uint8_t b0, - uint8_t b1, - uint8_t b2, - uint8_t b3, - uint8_t b4, - bitwriter& writer) { - uint8_t t0, t1, t2, t3, t4; - uint8_t m0, m1, m2, m3, m4; - - split_high_low(b0, bits, t0, m0); - split_high_low(b1, bits, t1, m1); - split_high_low(b2, bits, t2, m2); - split_high_low(b3, bits, t3, m3); - split_high_low(b4, bits, t4, m4); - - DCHECK(t0 < 3); - DCHECK(t1 < 3); - DCHECK(t2 < 3); - DCHECK(t3 < 3); - DCHECK(t4 < 3); - - uint8_t packed = integer_from_trits[t4][t3][t2][t1][t0]; - - writer.write8(m0, bits); - writer.write8(getbits(packed, 1, 0), 2); - writer.write8(m1, bits); - writer.write8(getbits(packed, 3, 2), 2); - writer.write8(m2, bits); - writer.write8(getbits(packed, 4, 4), 1); - writer.write8(m3, bits); - writer.write8(getbits(packed, 6, 5), 2); - writer.write8(m4, bits); - writer.write8(getbits(packed, 7, 7), 1); -} - -/** - * Encode a group of 3 numbers using quints and bits. - */ -inline void encode_quints(size_t bits, - uint8_t b0, - uint8_t b1, - uint8_t b2, - bitwriter& writer) { - uint8_t q0, q1, q2; - uint8_t m0, m1, m2; - - split_high_low(b0, bits, q0, m0); - split_high_low(b1, bits, q1, m1); - split_high_low(b2, bits, q2, m2); - - DCHECK(q0 < 5); - DCHECK(q1 < 5); - DCHECK(q2 < 5); - - uint8_t packed = integer_from_quints[q2][q1][q0]; - - writer.write8(m0, bits); - writer.write8(getbits(packed, 2, 0), 3); - writer.write8(m1, bits); - writer.write8(getbits(packed, 4, 3), 2); - writer.write8(m2, bits); - writer.write8(getbits(packed, 6, 5), 2); -} - -/** - * Encode a sequence of numbers using using one trit and a custom number of - * bits per number. - */ -inline void encode_trits(const uint8_t* numbers, - size_t count, - bitwriter& writer, - size_t bits) { - for (size_t i = 0; i < count; i += 5) { - uint8_t b0 = numbers[i + 0]; - uint8_t b1 = i + 1 >= count ? 0 : numbers[i + 1]; - uint8_t b2 = i + 2 >= count ? 0 : numbers[i + 2]; - uint8_t b3 = i + 3 >= count ? 0 : numbers[i + 3]; - uint8_t b4 = i + 4 >= count ? 0 : numbers[i + 4]; - - encode_trits(bits, b0, b1, b2, b3, b4, writer); - } -} - -/** - * Encode a sequence of numbers using one quint and the custom number of bits - * per number. - */ -inline void encode_quints(const uint8_t* numbers, - size_t count, - bitwriter& writer, - size_t bits) { - for (size_t i = 0; i < count; i += 3) { - uint8_t b0 = numbers[i + 0]; - uint8_t b1 = i + 1 >= count ? 0 : numbers[i + 1]; - uint8_t b2 = i + 2 >= count ? 0 : numbers[i + 2]; - encode_quints(bits, b0, b1, b2, writer); - } -} - -/** - * Encode a sequence of numbers using binary representation with the selected - * bit count. - */ -inline void encode_binary(const uint8_t* numbers, - size_t count, - bitwriter& writer, - size_t bits) { - DCHECK(count > 0); - for (size_t i = 0; i < count; ++i) { - writer.write8(numbers[i], bits); - } -} - -/** - * Encode a sequence of numbers in a specific range using the binary integer - * sequence encoding. The numbers are assumed to be in the correct range and - * the memory we are writing to is assumed to be zero-initialized. - */ -inline void integer_sequence_encode(const uint8_t* numbers, - size_t count, - range_t range, - bitwriter writer) { -#ifndef NDEBUG - for (size_t i = 0; i < count; ++i) { - DCHECK(numbers[i] <= range_max_table[range]); - } -#endif - - size_t bits = bits_trits_quints_table[range][0]; - size_t trits = bits_trits_quints_table[range][1]; - size_t quints = bits_trits_quints_table[range][2]; - - if (trits == 1) { - encode_trits(numbers, count, writer, bits); - } else if (quints == 1) { - encode_quints(numbers, count, writer, bits); - } else { - encode_binary(numbers, count, writer, bits); - } -} - -inline void integer_sequence_encode(const uint8_t* numbers, - size_t count, - range_t range, - uint8_t* output) { - integer_sequence_encode(numbers, count, range, bitwriter(output)); -} - -/** - * Compute the number of bits required to store a number of items in a specific - * range using the binary integer sequence encoding. - */ -inline size_t compute_ise_bitcount(size_t items, range_t range) { - size_t bits = bits_trits_quints_table[range][0]; - size_t trits = bits_trits_quints_table[range][1]; - size_t quints = bits_trits_quints_table[range][2]; - - if (trits) { - return ((8 + 5 * bits) * items + 4) / 5; - } - - if (quints) { - return ((7 + 3 * bits) * items + 2) / 3; - } - - return items * bits; -} - -#endif // ASTC_INTEGER_SEQUENCE_ENCODING_H_ diff --git a/submodules/TelegramUI/third-party/astc/astc/matrix.cc b/submodules/TelegramUI/third-party/astc/astc/matrix.cc deleted file mode 100644 index 996066e246..0000000000 --- a/submodules/TelegramUI/third-party/astc/astc/matrix.cc +++ /dev/null @@ -1,10 +0,0 @@ -#include "matrix.h" - -void eigen_vector(const mat3x3f_t& a, vec3f_t& eig) { - vec3f_t b = signorm(vec3f_t(1, 5, 2)); // FIXME: Magic number - for (size_t i = 0; i < 8; ++i) { - b = signorm(a * b); - } - - eig = b; -} diff --git a/submodules/TelegramUI/third-party/astc/astc/matrix.h b/submodules/TelegramUI/third-party/astc/astc/matrix.h deleted file mode 100644 index 761de6e8d0..0000000000 --- a/submodules/TelegramUI/third-party/astc/astc/matrix.h +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef ASTC_MATRIX_H_ -#define ASTC_MATRIX_H_ - -#include - -#include "vector.h" - -struct mat3x3f_t { - public: - mat3x3f_t() {} - - mat3x3f_t(float m00, - float m01, - float m02, - float m10, - float m11, - float m12, - float m20, - float m21, - float m22) { - m[0] = vec3f_t(m00, m01, m02); - m[1] = vec3f_t(m10, m11, m12); - m[2] = vec3f_t(m20, m21, m22); - } - - const vec3f_t& row(size_t i) const { return m[i]; } - - float& at(size_t i, size_t j) { return m[i].components[j]; } - const float& at(size_t i, size_t j) const { return m[i].components[j]; } - - private: - vec3f_t m[3]; -}; - -inline vec3f_t operator*(const mat3x3f_t& a, vec3f_t b) { - vec3f_t tmp; - tmp.x = dot(a.row(0), b); - tmp.y = dot(a.row(1), b); - tmp.z = dot(a.row(2), b); - return tmp; -} - -void eigen_vector(const mat3x3f_t& a, vec3f_t& eig); - -#endif // ASTC_MATRIX_H_ diff --git a/submodules/TelegramUI/third-party/astc/astc/meson.build b/submodules/TelegramUI/third-party/astc/astc/meson.build deleted file mode 100644 index 770a711cb9..0000000000 --- a/submodules/TelegramUI/third-party/astc/astc/meson.build +++ /dev/null @@ -1,57 +0,0 @@ -tables_color_quantization = custom_target( - 'gen-color-quantization', - input: [], - output: ['tables_color_quantization.h'], - command: [codegen, 'quantize', '@OUTPUT0@'] -) - -tables_data_size = custom_target( - 'gen-data-size', - input: [], - output: ['tables_data_size.h'], - command: [codegen, 'datasize', '@OUTPUT0@'] -) - -tables_integer_sequence_encoding = custom_target( - 'gen-integer_sequence_encoding-tables', - input: [], - output: ['tables_integer_sequence_encoding.h'], - command: [codegen, 'bise', '@OUTPUT0@'] -) - -astc_sources = [ - 'bitmanip.h', - 'colors.h', - 'compress_block.cc', - 'compress_block.h', - 'compress_texture.cc', - 'compress_texture.h', - 'constants.h', - 'data_size.h', - 'dcheck.h', - 'endpoints.h', - 'endpoints_bounding_box.h', - 'endpoints_encode.h', - 'endpoints_min_max.h', - 'endpoints_principal_components.cc', - 'endpoints_principal_components.h', - 'endpoints_quantize.h', - 'integer_sequence_encoding.h', - 'matrix.cc', - 'matrix.h', - 'misc.h', - 'range.h', - 'store_block.h', - 'vector.h', - 'weights_quantize.h', - 'weights_quantize_table.h', - tables_color_quantization, - tables_data_size, - tables_integer_sequence_encoding, -] - -astc = static_library( - 'astc', - sources: astc_sources, - include_directories: incdir -) diff --git a/submodules/TelegramUI/third-party/astc/astc/misc.h b/submodules/TelegramUI/third-party/astc/astc/misc.h deleted file mode 100644 index fa61b16f2a..0000000000 --- a/submodules/TelegramUI/third-party/astc/astc/misc.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef ASTC_MISC_H_ -#define ASTC_MISC_H_ - -#include - -template -T clamp(T a, T b, T x) { - if (x < a) { - return a; - } - - if (x > b) { - return b; - } - - return x; -} - -inline bool approx_equal(float x, float y, float epsilon) { - return fabs(x - y) < epsilon; -} - -#endif // ASTC_MISC_H_ diff --git a/submodules/TelegramUI/third-party/astc/astc/range.h b/submodules/TelegramUI/third-party/astc/astc/range.h deleted file mode 100644 index 34b0d57eda..0000000000 --- a/submodules/TelegramUI/third-party/astc/astc/range.h +++ /dev/null @@ -1,42 +0,0 @@ -#ifndef ASTC_RANGE_H_ -#define ASTC_RANGE_H_ - -#include - -/** - * Define normalized (starting at zero) numeric ranges that can be represented - * with 8 bits or less. - */ -enum range_t { - RANGE_2, - RANGE_3, - RANGE_4, - RANGE_5, - RANGE_6, - RANGE_8, - RANGE_10, - RANGE_12, - RANGE_16, - RANGE_20, - RANGE_24, - RANGE_32, - RANGE_40, - RANGE_48, - RANGE_64, - RANGE_80, - RANGE_96, - RANGE_128, - RANGE_160, - RANGE_192, - RANGE_256, - RANGE_MAX -}; - -/** - * Table of maximum value for each range, minimum is always zero. - */ -const uint8_t range_max_table[RANGE_MAX] = {1, 2, 3, 4, 5, 7, 9, - 11, 15, 19, 23, 31, 39, 47, - 63, 79, 95, 127, 159, 191, 255}; - -#endif // ASTC_RANGE_H_ diff --git a/submodules/TelegramUI/third-party/astc/astc/store_block.h b/submodules/TelegramUI/third-party/astc/astc/store_block.h deleted file mode 100644 index ead60d6629..0000000000 --- a/submodules/TelegramUI/third-party/astc/astc/store_block.h +++ /dev/null @@ -1,113 +0,0 @@ -#ifndef ASTC_STORE_BLOCK_H_ -#define ASTC_STORE_BLOCK_H_ - -#include -#include - -#include "bitmanip.h" -#include "colors.h" -#include "constants.h" -#include "dcheck.h" -#include "endpoints.h" -#include "integer_sequence_encoding.h" -#include "range.h" - -struct PhysicalBlock { - uint8_t data[BLOCK_BYTES]; -}; - -inline void void_extent_to_physical(unorm16_t color, PhysicalBlock* pb) { - pb->data[0] = 0xFC; - pb->data[1] = 0xFD; - pb->data[2] = 0xFF; - pb->data[3] = 0xFF; - pb->data[4] = 0xFF; - pb->data[5] = 0xFF; - pb->data[6] = 0xFF; - pb->data[7] = 0xFF; - - setbytes2(pb->data, 8, color.channels.r); - setbytes2(pb->data, 10, color.channels.g); - setbytes2(pb->data, 12, color.channels.b); - setbytes2(pb->data, 14, color.channels.a); -} - -inline void symbolic_to_physical( - color_endpoint_mode_t color_endpoint_mode, - range_t endpoint_quant, - range_t weight_quant, - - size_t partition_count, - size_t partition_index, - - const uint8_t endpoint_ise[MAXIMUM_ENCODED_COLOR_ENDPOINT_BYTES], - - // FIXME: +1 needed here because orbits_8ptr breaks when the offset reaches - // the last byte which always happens if the weight mode is RANGE_32. - const uint8_t weights_ise[MAXIMUM_ENCODED_WEIGHT_BYTES + 1], - - PhysicalBlock* pb) { - DCHECK(weight_quant <= RANGE_32); - DCHECK(endpoint_quant < RANGE_MAX); - DCHECK(color_endpoint_mode < CEM_MAX); - DCHECK(partition_count == 1 || partition_index < 1024); - DCHECK(partition_count >= 1 && partition_count <= 4); - DCHECK(compute_ise_bitcount(BLOCK_TEXEL_COUNT, weight_quant) < - MAXIMUM_ENCODED_WEIGHT_BITS); - - size_t n = BLOCK_WIDTH; - size_t m = BLOCK_HEIGHT; - - static const bool h_table[RANGE_32 + 1] = {0, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 1, 1}; - - static const uint8_t r_table[RANGE_32 + 1] = {0x2, 0x3, 0x4, 0x5, 0x6, 0x7, - 0x2, 0x3, 0x4, 0x5, 0x6, 0x7}; - - bool h = h_table[weight_quant]; - size_t r = r_table[weight_quant]; - - // Use the first row of Table 11 in the ASTC specification. Beware that - // this has to be changed if another block-size is used. - size_t a = m - 2; - size_t b = n - 4; - - bool d = 0; // TODO: dual plane - - bool multi_part = partition_count > 1; - - size_t part_value = partition_count - 1; - size_t part_index = multi_part ? partition_index : 0; - - size_t cem_offset = multi_part ? 23 : 13; - size_t ced_offset = multi_part ? 29 : 17; - - size_t cem_bits = multi_part ? 6 : 4; - size_t cem = color_endpoint_mode; - cem = multi_part ? cem << 2 : cem; - - // Block mode - orbits8_ptr(pb->data, 0, getbit(r, 1), 1); - orbits8_ptr(pb->data, 1, getbit(r, 2), 1); - orbits8_ptr(pb->data, 2, 0, 1); - orbits8_ptr(pb->data, 3, 0, 1); - orbits8_ptr(pb->data, 4, getbit(r, 0), 1); - orbits8_ptr(pb->data, 5, a, 2); - orbits8_ptr(pb->data, 7, b, 2); - orbits8_ptr(pb->data, 9, h, 1); - orbits8_ptr(pb->data, 10, d, 1); - - // Partitions - orbits8_ptr(pb->data, 11, part_value, 2); - orbits16_ptr(pb->data, 13, part_index, 10); - - // CEM - orbits8_ptr(pb->data, cem_offset, cem, cem_bits); - - copy_bytes(endpoint_ise, MAXIMUM_ENCODED_COLOR_ENDPOINT_BYTES, pb->data, - ced_offset); - - reverse_bytes(weights_ise, MAXIMUM_ENCODED_WEIGHT_BYTES, pb->data + 15); -} - -#endif // ASTC_STORE_BLOCK_H_ diff --git a/submodules/TelegramUI/third-party/astc/astc/tables_color_quantization.h b/submodules/TelegramUI/third-party/astc/astc/tables_color_quantization.h deleted file mode 100644 index eebc4e97ca..0000000000 --- a/submodules/TelegramUI/third-party/astc/astc/tables_color_quantization.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef ASTC_TABLES_COLOR_QUANTIZATION_H_ -#define ASTC_TABLES_COLOR_QUANTIZATION_H_ - -const uint8_t color_unquantize_table[21][256] = {{0,255},{0,128,255},{0,85,170,255},{0,64,128,192,255},{0,255,51,204,102,153},{0,36,73,109,146,182,219,255},{0,255,28,227,56,199,84,171,113,142},{0,255,69,186,23,232,92,163,46,209,116,139},{0,17,34,51,68,85,102,119,136,153,170,187,204,221,238,255},{0,255,67,188,13,242,80,175,27,228,94,161,40,215,107,148,54,201,121,134},{0,255,33,222,66,189,99,156,11,244,44,211,77,178,110,145,22,233,55,200,88,167,121,134},{0,8,16,24,33,41,49,57,66,74,82,90,99,107,115,123,132,140,148,156,165,173,181,189,198,206,214,222,231,239,247,255},{0,255,32,223,65,190,97,158,6,249,39,216,71,184,104,151,13,242,45,210,78,177,110,145,19,236,52,203,84,171,117,138,26,229,58,197,91,164,123,132},{0,255,16,239,32,223,48,207,65,190,81,174,97,158,113,142,5,250,21,234,38,217,54,201,70,185,86,169,103,152,119,136,11,244,27,228,43,212,59,196,76,179,92,163,108,147,124,131},{0,4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,65,69,73,77,81,85,89,93,97,101,105,109,113,117,121,125,130,134,138,142,146,150,154,158,162,166,170,174,178,182,186,190,195,199,203,207,211,215,219,223,227,231,235,239,243,247,251,255},{0,255,16,239,32,223,48,207,64,191,80,175,96,159,112,143,3,252,19,236,35,220,51,204,67,188,83,172,100,155,116,139,6,249,22,233,38,217,54,201,71,184,87,168,103,152,119,136,9,246,25,230,42,213,58,197,74,181,90,165,106,149,122,133,13,242,29,226,45,210,61,194,77,178,93,162,109,146,125,130},{0,255,8,247,16,239,24,231,32,223,40,215,48,207,56,199,64,191,72,183,80,175,88,167,96,159,104,151,112,143,120,135,2,253,10,245,18,237,26,229,35,220,43,212,51,204,59,196,67,188,75,180,83,172,91,164,99,156,107,148,115,140,123,132,5,250,13,242,21,234,29,226,37,218,45,210,53,202,61,194,70,185,78,177,86,169,94,161,102,153,110,145,118,137,126,129},{0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,118,120,122,124,126,129,131,133,135,137,139,141,143,145,147,149,151,153,155,157,159,161,163,165,167,169,171,173,175,177,179,181,183,185,187,189,191,193,195,197,199,201,203,205,207,209,211,213,215,217,219,221,223,225,227,229,231,233,235,237,239,241,243,245,247,249,251,253,255},{0,255,8,247,16,239,24,231,32,223,40,215,48,207,56,199,64,191,72,183,80,175,88,167,96,159,104,151,112,143,120,135,1,254,9,246,17,238,25,230,33,222,41,214,49,206,57,198,65,190,73,182,81,174,89,166,97,158,105,150,113,142,121,134,3,252,11,244,19,236,27,228,35,220,43,212,51,204,59,196,67,188,75,180,83,172,91,164,99,156,107,148,115,140,123,132,4,251,12,243,20,235,28,227,36,219,44,211,52,203,60,195,68,187,76,179,84,171,92,163,100,155,108,147,116,139,124,131,6,249,14,241,22,233,30,225,38,217,46,209,54,201,62,193,70,185,78,177,86,169,94,161,102,153,110,145,118,137,126,129},{0,255,4,251,8,247,12,243,16,239,20,235,24,231,28,227,32,223,36,219,40,215,44,211,48,207,52,203,56,199,60,195,64,191,68,187,72,183,76,179,80,175,84,171,88,167,92,163,96,159,100,155,104,151,108,147,112,143,116,139,120,135,124,131,1,254,5,250,9,246,13,242,17,238,21,234,25,230,29,226,33,222,37,218,41,214,45,210,49,206,53,202,57,198,61,194,65,190,69,186,73,182,77,178,81,174,85,170,89,166,93,162,97,158,101,154,105,150,109,146,113,142,117,138,121,134,125,130,2,253,6,249,10,245,14,241,18,237,22,233,26,229,30,225,34,221,38,217,42,213,46,209,50,205,54,201,58,197,62,193,66,189,70,185,74,181,78,177,82,173,86,169,90,165,94,161,98,157,102,153,106,149,110,145,114,141,118,137,122,133,126,129},{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255}}; -const uint8_t color_quantize_table[21][256] = {{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},{0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,1,1,1,1,1,1,1,1},{0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,15},{0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,8,8,8,8,8,8,8,8,8,8,8,8,12,12,12,12,12,12,12,12,12,12,12,12,12,12,16,16,16,16,16,16,16,16,16,16,16,16,16,2,2,2,2,2,2,2,2,2,2,2,2,2,6,6,6,6,6,6,6,6,6,6,6,6,6,6,10,10,10,10,10,10,10,10,10,10,10,10,10,14,14,14,14,14,14,14,14,14,14,14,14,14,14,18,18,18,18,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,15,15,15,15,15,15,15,15,15,15,15,15,15,15,11,11,11,11,11,11,11,11,11,11,11,11,11,7,7,7,7,7,7,7,7,7,7,7,7,7,7,3,3,3,3,3,3,3,3,3,3,3,3,3,17,17,17,17,17,17,17,17,17,17,17,17,17,13,13,13,13,13,13,13,13,13,13,13,13,13,13,9,9,9,9,9,9,9,9,9,9,9,9,9,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,1,1,1},{0,0,0,0,0,0,8,8,8,8,8,8,8,8,8,8,8,16,16,16,16,16,16,16,16,16,16,16,2,2,2,2,2,2,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,10,18,18,18,18,18,18,18,18,18,18,18,4,4,4,4,4,4,4,4,4,4,4,12,12,12,12,12,12,12,12,12,12,12,20,20,20,20,20,20,20,20,20,20,20,6,6,6,6,6,6,6,6,6,6,6,14,14,14,14,14,14,14,14,14,14,14,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,15,15,15,15,15,15,15,15,15,15,15,7,7,7,7,7,7,7,7,7,7,7,21,21,21,21,21,21,21,21,21,21,21,13,13,13,13,13,13,13,13,13,13,13,5,5,5,5,5,5,5,5,5,5,5,19,19,19,19,19,19,19,19,19,19,19,11,11,11,11,11,11,11,11,11,11,11,3,3,3,3,3,3,3,3,3,3,3,17,17,17,17,17,17,17,17,17,17,17,9,9,9,9,9,9,9,9,9,9,9,1,1,1,1,1,1},{0,0,0,0,0,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,16,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,25,26,26,26,26,26,26,26,26,27,27,27,27,27,27,27,27,28,28,28,28,28,28,28,28,28,29,29,29,29,29,29,29,29,30,30,30,30,30,30,30,30,31,31,31,31},{0,0,0,0,8,8,8,8,8,8,16,16,16,16,16,16,16,24,24,24,24,24,24,32,32,32,32,32,32,2,2,2,2,2,2,2,10,10,10,10,10,10,10,18,18,18,18,18,18,26,26,26,26,26,26,26,34,34,34,34,34,34,4,4,4,4,4,4,4,12,12,12,12,12,12,20,20,20,20,20,20,20,28,28,28,28,28,28,36,36,36,36,36,36,6,6,6,6,6,6,6,14,14,14,14,14,14,14,22,22,22,22,22,22,30,30,30,30,30,30,30,38,38,38,38,38,38,38,39,39,39,39,39,39,39,31,31,31,31,31,31,31,23,23,23,23,23,23,15,15,15,15,15,15,15,7,7,7,7,7,7,7,37,37,37,37,37,37,29,29,29,29,29,29,21,21,21,21,21,21,21,13,13,13,13,13,13,5,5,5,5,5,5,5,35,35,35,35,35,35,27,27,27,27,27,27,27,19,19,19,19,19,19,11,11,11,11,11,11,11,3,3,3,3,3,3,3,33,33,33,33,33,33,25,25,25,25,25,25,17,17,17,17,17,17,17,9,9,9,9,9,9,1,1,1,1},{0,0,0,16,16,16,16,16,16,32,32,32,32,32,2,2,2,2,2,18,18,18,18,18,18,34,34,34,34,34,4,4,4,4,4,4,20,20,20,20,20,36,36,36,36,36,6,6,6,6,6,6,22,22,22,22,22,38,38,38,38,38,8,8,8,8,8,8,24,24,24,24,24,24,40,40,40,40,40,10,10,10,10,10,26,26,26,26,26,26,42,42,42,42,42,12,12,12,12,12,12,28,28,28,28,28,44,44,44,44,44,14,14,14,14,14,14,30,30,30,30,30,46,46,46,46,46,46,47,47,47,47,47,47,31,31,31,31,31,15,15,15,15,15,15,45,45,45,45,45,29,29,29,29,29,13,13,13,13,13,13,43,43,43,43,43,27,27,27,27,27,27,11,11,11,11,11,41,41,41,41,41,25,25,25,25,25,25,9,9,9,9,9,9,39,39,39,39,39,23,23,23,23,23,7,7,7,7,7,7,37,37,37,37,37,21,21,21,21,21,5,5,5,5,5,5,35,35,35,35,35,19,19,19,19,19,19,3,3,3,3,3,33,33,33,33,33,17,17,17,17,17,17,1,1,1},{0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,43,43,43,43,44,44,44,44,45,45,45,45,46,46,46,46,47,47,47,47,48,48,48,48,48,49,49,49,49,50,50,50,50,51,51,51,51,52,52,52,52,53,53,53,53,54,54,54,54,55,55,55,55,56,56,56,56,57,57,57,57,58,58,58,58,59,59,59,59,60,60,60,60,61,61,61,61,62,62,62,62,63,63},{0,0,16,16,16,32,32,32,48,48,48,48,64,64,64,2,2,2,18,18,18,34,34,34,50,50,50,50,66,66,66,4,4,4,20,20,20,36,36,36,36,52,52,52,68,68,68,6,6,6,22,22,22,38,38,38,38,54,54,54,70,70,70,8,8,8,24,24,24,24,40,40,40,56,56,56,72,72,72,10,10,10,26,26,26,26,42,42,42,58,58,58,74,74,74,12,12,12,12,28,28,28,44,44,44,60,60,60,76,76,76,14,14,14,14,30,30,30,46,46,46,62,62,62,78,78,78,78,79,79,79,79,63,63,63,47,47,47,31,31,31,15,15,15,15,77,77,77,61,61,61,45,45,45,29,29,29,13,13,13,13,75,75,75,59,59,59,43,43,43,27,27,27,27,11,11,11,73,73,73,57,57,57,41,41,41,25,25,25,25,9,9,9,71,71,71,55,55,55,39,39,39,39,23,23,23,7,7,7,69,69,69,53,53,53,37,37,37,37,21,21,21,5,5,5,67,67,67,51,51,51,51,35,35,35,19,19,19,3,3,3,65,65,65,49,49,49,49,33,33,33,17,17,17,1,1},{0,0,32,32,64,64,64,2,2,2,34,34,66,66,66,4,4,4,36,36,68,68,68,6,6,6,38,38,70,70,70,8,8,8,40,40,40,72,72,10,10,10,42,42,42,74,74,12,12,12,44,44,44,76,76,14,14,14,46,46,46,78,78,16,16,16,48,48,48,80,80,18,18,18,50,50,50,82,82,20,20,20,52,52,52,84,84,22,22,22,54,54,54,86,86,24,24,24,56,56,56,88,88,26,26,26,58,58,58,90,90,28,28,28,60,60,60,92,92,30,30,30,62,62,62,94,94,94,95,95,95,63,63,63,31,31,31,93,93,61,61,61,29,29,29,91,91,59,59,59,27,27,27,89,89,57,57,57,25,25,25,87,87,55,55,55,23,23,23,85,85,53,53,53,21,21,21,83,83,51,51,51,19,19,19,81,81,49,49,49,17,17,17,79,79,47,47,47,15,15,15,77,77,45,45,45,13,13,13,75,75,43,43,43,11,11,11,73,73,41,41,41,9,9,9,71,71,71,39,39,7,7,7,69,69,69,37,37,5,5,5,67,67,67,35,35,3,3,3,65,65,65,33,33,1,1},{0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,30,30,31,31,32,32,33,33,34,34,35,35,36,36,37,37,38,38,39,39,40,40,41,41,42,42,43,43,44,44,45,45,46,46,47,47,48,48,49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56,57,57,58,58,59,59,60,60,61,61,62,62,63,63,64,64,64,65,65,66,66,67,67,68,68,69,69,70,70,71,71,72,72,73,73,74,74,75,75,76,76,77,77,78,78,79,79,80,80,81,81,82,82,83,83,84,84,85,85,86,86,87,87,88,88,89,89,90,90,91,91,92,92,93,93,94,94,95,95,96,96,97,97,98,98,99,99,100,100,101,101,102,102,103,103,104,104,105,105,106,106,107,107,108,108,109,109,110,110,111,111,112,112,113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120,121,121,122,122,123,123,124,124,125,125,126,126,127},{0,32,32,64,96,96,128,2,2,34,34,66,98,98,130,4,4,36,36,68,100,100,132,6,6,38,38,70,102,102,134,8,8,40,40,72,104,104,136,10,10,42,42,74,106,106,138,12,12,44,44,76,108,108,140,14,14,46,46,78,110,110,142,16,16,48,48,80,112,112,144,18,18,50,50,82,114,114,146,20,20,52,52,84,116,116,148,22,22,54,54,86,118,118,150,24,24,56,56,88,120,120,152,26,26,58,58,90,122,122,154,28,28,60,60,92,124,124,156,30,30,62,62,94,126,126,158,158,159,159,127,127,95,63,63,31,31,157,125,125,93,61,61,29,29,155,123,123,91,59,59,27,27,153,121,121,89,57,57,25,25,151,119,119,87,55,55,23,23,149,117,117,85,53,53,21,21,147,115,115,83,51,51,19,19,145,113,113,81,49,49,17,17,143,111,111,79,47,47,15,15,141,109,109,77,45,45,13,13,139,107,107,75,43,43,11,11,137,105,105,73,41,41,9,9,135,103,103,71,39,39,7,7,133,101,101,69,37,37,5,5,131,99,99,67,35,35,3,3,129,97,97,65,33,33,1},{0,64,128,2,2,66,130,4,4,68,132,6,6,70,134,8,8,72,136,10,10,74,138,12,12,76,140,14,14,78,142,16,16,80,144,18,18,82,146,20,20,84,148,22,22,86,150,24,24,88,152,26,26,90,154,28,28,92,156,30,30,94,158,32,32,96,160,34,34,98,162,36,36,100,164,38,38,102,166,40,40,104,168,42,42,106,170,44,44,108,172,46,46,110,174,48,48,112,176,50,50,114,178,52,52,116,180,54,54,118,182,56,56,120,184,58,58,122,186,60,60,124,188,62,62,126,190,190,191,191,127,63,63,189,125,61,61,187,123,59,59,185,121,57,57,183,119,55,55,181,117,53,53,179,115,51,51,177,113,49,49,175,111,47,47,173,109,45,45,171,107,43,43,169,105,41,41,167,103,39,39,165,101,37,37,163,99,35,35,161,97,33,33,159,95,31,31,157,93,29,29,155,91,27,27,153,89,25,25,151,87,23,23,149,85,21,21,147,83,19,19,145,81,17,17,143,79,15,15,141,77,13,13,139,75,11,11,137,73,9,9,135,71,7,7,133,69,5,5,131,67,3,3,129,65,1},{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255}}; - -#endif diff --git a/submodules/TelegramUI/third-party/astc/astc/tables_data_size.h b/submodules/TelegramUI/third-party/astc/astc/tables_data_size.h deleted file mode 100644 index e1c4633dcc..0000000000 --- a/submodules/TelegramUI/third-party/astc/astc/tables_data_size.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef ASTC_TABLES_DATA_SIZE_H_ -#define ASTC_TABLES_DATA_SIZE_H_ - -const int8_t color_endpoint_range_table[2][12][16] = {{{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1},{20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20},{20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20},{20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20},{20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20},{20,20,20,20,20,20,20,20,20,20,20,20,19,19,19,19},{20,20,20,20,20,20,20,20,20,20,20,20,17,17,17,17},{20,20,20,20,20,20,20,20,20,20,20,20,16,16,16,16},{20,20,20,20,20,20,20,20,19,19,19,19,13,13,13,13},{20,20,20,20,20,20,20,20,16,16,16,16,11,11,11,11},{20,20,20,20,20,20,20,20,14,14,14,14,10,10,10,10},{20,20,20,20,19,19,19,19,11,11,11,11,7,7,7,7}},{{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1},{20,20,20,20,20,20,20,20,14,14,14,14,9,9,9,9},{20,20,20,20,20,20,20,20,12,12,12,12,8,8,8,8},{20,20,20,20,19,19,19,19,11,11,11,11,7,7,7,7},{20,20,20,20,17,17,17,17,10,10,10,10,6,6,6,6},{20,20,20,20,15,15,15,15,8,8,8,8,5,5,5,5},{20,20,20,20,13,13,13,13,7,7,7,7,4,4,4,4},{20,20,20,20,11,11,11,11,6,6,6,6,3,3,3,3},{20,20,20,20,9,9,9,9,4,4,4,4,2,2,2,2},{17,17,17,17,7,7,7,7,3,3,3,3,1,1,1,1},{14,14,14,14,5,5,5,5,2,2,2,2,0,0,0,0},{10,10,10,10,3,3,3,3,0,0,0,0,0,0,0,0}}}; - -#endif diff --git a/submodules/TelegramUI/third-party/astc/astc/tables_integer_sequence_encoding.h b/submodules/TelegramUI/third-party/astc/astc/tables_integer_sequence_encoding.h deleted file mode 100644 index 3bdcb37b8c..0000000000 --- a/submodules/TelegramUI/third-party/astc/astc/tables_integer_sequence_encoding.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef ASTC_TABLES_INTEGER_SEQUENCE_ENCODING_H_ -#define ASTC_TABLES_INTEGER_SEQUENCE_ENCODING_H_ - -const uint8_t integer_from_trits[3][3][3][3][3] = {{{{{0,1,2},{4,5,6},{8,9,10}},{{16,17,18},{20,21,22},{24,25,26}},{{3,7,15},{19,23,27},{12,13,14}}},{{{32,33,34},{36,37,38},{40,41,42}},{{48,49,50},{52,53,54},{56,57,58}},{{35,39,47},{51,55,59},{44,45,46}}},{{{64,65,66},{68,69,70},{72,73,74}},{{80,81,82},{84,85,86},{88,89,90}},{{67,71,79},{83,87,91},{76,77,78}}}},{{{{128,129,130},{132,133,134},{136,137,138}},{{144,145,146},{148,149,150},{152,153,154}},{{131,135,143},{147,151,155},{140,141,142}}},{{{160,161,162},{164,165,166},{168,169,170}},{{176,177,178},{180,181,182},{184,185,186}},{{163,167,175},{179,183,187},{172,173,174}}},{{{192,193,194},{196,197,198},{200,201,202}},{{208,209,210},{212,213,214},{216,217,218}},{{195,199,207},{211,215,219},{204,205,206}}}},{{{{96,97,98},{100,101,102},{104,105,106}},{{112,113,114},{116,117,118},{120,121,122}},{{99,103,111},{115,119,123},{108,109,110}}},{{{224,225,226},{228,229,230},{232,233,234}},{{240,241,242},{244,245,246},{248,249,250}},{{227,231,239},{243,247,251},{236,237,238}}},{{{28,29,30},{60,61,62},{92,93,94}},{{156,157,158},{188,189,190},{220,221,222}},{{31,63,127},{159,191,255},{252,253,254}}}}}; -const uint8_t integer_from_quints[5][5][5] = {{{0,1,2,3,4},{8,9,10,11,12},{16,17,18,19,20},{24,25,26,27,28},{5,13,21,29,6}},{{32,33,34,35,36},{40,41,42,43,44},{48,49,50,51,52},{56,57,58,59,60},{37,45,53,61,14}},{{64,65,66,67,68},{72,73,74,75,76},{80,81,82,83,84},{88,89,90,91,92},{69,77,85,93,22}},{{96,97,98,99,100},{104,105,106,107,108},{112,113,114,115,116},{120,121,122,123,124},{101,109,117,125,30}},{{102,103,70,71,38},{110,111,78,79,46},{118,119,86,87,54},{126,127,94,95,62},{39,47,55,63,31}}}; - -#endif diff --git a/submodules/TelegramUI/third-party/astc/astc/vector.h b/submodules/TelegramUI/third-party/astc/astc/vector.h deleted file mode 100644 index 46700184cc..0000000000 --- a/submodules/TelegramUI/third-party/astc/astc/vector.h +++ /dev/null @@ -1,148 +0,0 @@ -#ifndef ASTC_VECTOR_H_ -#define ASTC_VECTOR_H_ - -#include -#include - -#include "dcheck.h" - -template -union vec3_t { - public: - vec3_t() {} - vec3_t(T x_, T y_, T z_) : x(x_), y(y_), z(z_) {} - - struct { - T x, y, z; - }; - struct { - T r, g, b; - }; - T components[3]; -}; - -typedef vec3_t vec3f_t; -typedef vec3_t vec3i_t; - -template -vec3_t operator+(vec3_t a, vec3_t b) { - vec3_t result; - result.x = a.x + b.x; - result.y = a.y + b.y; - result.z = a.z + b.z; - return result; -} - -template -vec3_t operator-(vec3_t a, vec3_t b) { - vec3_t result; - result.x = a.x - b.x; - result.y = a.y - b.y; - result.z = a.z - b.z; - return result; -} - -template -vec3_t operator*(vec3_t a, vec3_t b) { - vec3_t result; - result.x = a.x * b.x; - result.y = a.y * b.y; - result.z = a.z * b.z; - return result; -} - -template -vec3_t operator*(vec3_t a, T b) { - vec3_t result; - result.x = a.x * b; - result.y = a.y * b; - result.z = a.z * b; - return result; -} - -template -vec3_t operator/(vec3_t a, T b) { - vec3_t result; - result.x = a.x / b; - result.y = a.y / b; - result.z = a.z / b; - return result; -} - -template -vec3_t operator/(vec3_t a, vec3_t b) { - vec3_t result; - result.x = a.x / b.x; - result.y = a.y / b.y; - result.z = a.z / b.z; - return result; -} - -template -bool operator==(vec3_t a, vec3_t b) { - return a.x == b.x && a.y == b.y && a.z == b.z; -} - -template -bool operator!=(vec3_t a, vec3_t b) { - return a.x != b.x || a.y != b.y || a.z != b.z; -} - -template -T dot(vec3_t a, vec3_t b) { - return a.x * b.x + a.y * b.y + a.z * b.z; -} - -template -T quadrance(vec3_t a) { - return dot(a, a); -} - -template -T norm(vec3_t a) { - return static_cast(sqrt(quadrance(a))); -} - -template -T distance(vec3_t a, vec3_t b) { - return norm(a - b); -} - -template -T qd(vec3_t a, vec3_t b) { - return quadrance(a - b); -} - -template -vec3_t signorm(vec3_t a) { - T x = norm(a); - DCHECK(x != 0.0); - return a / x; -} - -template -vec3_t vecmin(vec3_t a, vec3_t b) { - vec3_t result; - result.x = std::min(a.x, b.x); - result.y = std::min(a.y, b.y); - result.z = std::min(a.z, b.z); - return result; -} - -template -vec3_t vecmax(vec3_t a, vec3_t b) { - vec3_t result; - result.x = std::max(a.x, b.x); - result.y = std::max(a.y, b.y); - result.z = std::max(a.z, b.z); - return result; -} - -template -T qd_to_line(vec3_t m, vec3_t k, T kk, vec3_t p) { - T t = dot(p - m, k) / kk; - vec3_t q = k * t + m; - return qd(p, q); -} - -#endif // ASTC_VECTOR_H_ diff --git a/submodules/TelegramUI/third-party/astc/astc/weights_quantize.h b/submodules/TelegramUI/third-party/astc/astc/weights_quantize.h deleted file mode 100644 index cb53f2978b..0000000000 --- a/submodules/TelegramUI/third-party/astc/astc/weights_quantize.h +++ /dev/null @@ -1,88 +0,0 @@ -#ifndef ASTC_WEIGHTS_QUANTIZE_H_ -#define ASTC_WEIGHTS_QUANTIZE_H_ - -#include -#include - -#include "colors.h" -#include "constants.h" -#include "dcheck.h" -#include "misc.h" -#include "range.h" -#include "vector.h" -#include "weights_quantize_table.h" - -uint8_t quantize_weight(range_t weight_quant, size_t weight) { - DCHECK(weight_quant <= RANGE_32); - DCHECK(weight <= 1024); - return weight_quantize_table[weight_quant][weight]; -} - -/** - * Project a texel to a line and quantize the result in 1 dimension. - * - * The line is defined by t=k*x + m. This function calculates and quantizes x - * by projecting n=t-m onto k, x=|n|/|k|. Since k and m is derived from the - * minimum and maximum of all texel values the result will be in the range [0, - * 1]. - * - * To quantize the result using the weight_quantize_table the value needs to - * be extended to the range [0, 1024]. - * - * @param k the derivative of the line - * @param m the minimum endpoint - * @param t the texel value - */ -size_t project(size_t k, size_t m, size_t t) { - DCHECK(k > 0); - return size_t((t - m) * 1024) / k; -} - -/** - * Project a texel to a line and quantize the result in 3 dimensions. - */ -size_t project(vec3i_t k, int kk, vec3i_t m, vec3i_t t) { - DCHECK(kk > 0); - - return static_cast(clamp(0, 1024, dot(t - m, k) * 1024 / kk)); -} - -void calculate_quantized_weights_luminance( - const uint8_t texels[BLOCK_TEXEL_COUNT], - range_t quant, - uint8_t l0, - uint8_t l1, - uint8_t weights[BLOCK_TEXEL_COUNT]) { - DCHECK(l0 < l1); - - size_t k = l1 - l0; - size_t m = l0; - - for (size_t i = 0; i < BLOCK_TEXEL_COUNT; ++i) { - size_t t = static_cast(texels[i]); - weights[i] = quantize_weight(quant, project(k, m, t)); - } -} - -void calculate_quantized_weights_rgb(const unorm8_t texels[BLOCK_TEXEL_COUNT], - range_t quant, - vec3i_t e0, - vec3i_t e1, - uint8_t weights[BLOCK_TEXEL_COUNT]) { - if (e0 == e1) { - for (size_t i = 0; i < BLOCK_TEXEL_COUNT; ++i) { - weights[i] = 0; // quantize_weight(quant, 0) is always 0 - } - } else { - vec3i_t k = e1 - e0; - vec3i_t m = e0; - - int kk = dot(k, k); - for (size_t i = 0; i < BLOCK_TEXEL_COUNT; ++i) { - weights[i] = - quantize_weight(quant, project(k, kk, m, to_vec3i(texels[i]))); - } - } -} - -#endif // ASTC_WEIGHTS_QUANTIZE_H_ diff --git a/submodules/TelegramUI/third-party/astc/astc/weights_quantize_table.h b/submodules/TelegramUI/third-party/astc/astc/weights_quantize_table.h deleted file mode 100644 index 2b1bcc04ec..0000000000 --- a/submodules/TelegramUI/third-party/astc/astc/weights_quantize_table.h +++ /dev/null @@ -1,566 +0,0 @@ -#ifndef ASTC_WEIGHTS_QUANTIZE_TABLE_H_ -#define ASTC_WEIGHTS_QUANTIZE_TABLE_H_ - -#include - -// FIXME: This is copied from ARM-code -const uint8_t weight_quantize_table[12][1025] = { - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, 11, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, - 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, - 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31}}; - -#endif // ASTC_WEIGHTS_QUANTIZE_TABLE_H_ diff --git a/submodules/TelegramUI/third-party/astc/compress/astc.cc b/submodules/TelegramUI/third-party/astc/compress/astc.cc deleted file mode 100644 index 581fe5186c..0000000000 --- a/submodules/TelegramUI/third-party/astc/compress/astc.cc +++ /dev/null @@ -1,74 +0,0 @@ -#include - -#include "astc.h" - -#include -#include -#include -#include -#include - -#include "compress_texture.h" -#include "constants.h" -#include "bgra.h" -#include "compressed.h" - -int64_t usecs_passed(const timeval& t1, const timeval& t2) { - return (t2.tv_sec - t1.tv_sec) * 1000000 + (t2.tv_usec - t1.tv_usec); -} - -void compress_astc(const BgraImage& image, CompressedImage* compressed) { - compress_texture(reinterpret_cast(image.buffer), compressed->buffer, static_cast(image.width), static_cast(image.height)); -} - -/*int main(int argc, const char** argv) { - if (argc < 3 || argc > 4) { - fprintf(stderr, "Usage: %s [-q | --quiet] INPUT OUTPUT\n", argv[0]); - return 1; - } - - bool quiet = false; - const char* input = nullptr; - const char* output = nullptr; - - int i = 1; - if (strcmp(argv[i], "-q") == 0 || strcmp(argv[i], "--quiet") == 0) { - quiet = true; - ++i; - } - input = argv[i]; - output = argv[i + 1]; - - try { - BgraImage image = ReadTGAFile(input); - - if (image.width % BLOCK_WIDTH != 0 || image.height % BLOCK_HEIGHT != 0) { - fprintf(stderr, - "Error: image size (%ldx%ld) not a multiple of block size " - "(%ldx%ld)\n", - image.width, image.height, BLOCK_WIDTH, BLOCK_HEIGHT); - return 1; - } - - CompressedImage compressed(image.width, image.height, BLOCK_WIDTH, - BLOCK_HEIGHT, BLOCK_BYTES); - - if (quiet) { - compress_astc(image, &compressed); - } else { - timeval t1; - gettimeofday(&t1, NULL); - compress_astc(image, &compressed); - timeval t2; - gettimeofday(&t2, NULL); - fprintf(stdout, "Time passed: %ldus\n", usecs_passed(t1, t2)); - } - - WriteASTCFile(compressed, output); - } catch (const char* err) { - fprintf(stderr, "Error: %s\n", err); - return 1; - } - - return 0; -}*/ diff --git a/submodules/TelegramUI/third-party/astc/compress/astc.h b/submodules/TelegramUI/third-party/astc/compress/astc.h deleted file mode 100644 index 2f7f29fbd9..0000000000 --- a/submodules/TelegramUI/third-party/astc/compress/astc.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef astc_h -#define astc_h - -#include "bgra.h" -#include "compressed.h" - -void compress_astc(const BgraImage& image, CompressedImage* compressed); - -#endif /* astc_h */ diff --git a/submodules/TelegramUI/third-party/astc/image/bgra.cc b/submodules/TelegramUI/third-party/astc/image/bgra.cc deleted file mode 100644 index 5e3099a9f8..0000000000 --- a/submodules/TelegramUI/third-party/astc/image/bgra.cc +++ /dev/null @@ -1,18 +0,0 @@ -#include "bgra.h" - -#include - -struct TGAHeader { - uint8_t id_length; - uint8_t color_map_type; - uint8_t image_type; - - uint8_t first_entry_index[2]; - uint8_t color_map_length[2]; - uint8_t color_map_entry_size; - - uint8_t origin_x[2], origin_y[2]; - uint8_t width[2], height[2]; - uint8_t pixel_depth; - uint8_t image_descriptor; -}; diff --git a/submodules/TelegramUI/third-party/astc/image/bgra.h b/submodules/TelegramUI/third-party/astc/image/bgra.h deleted file mode 100644 index 4a48f66e01..0000000000 --- a/submodules/TelegramUI/third-party/astc/image/bgra.h +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef IMAGE_BGRA_H_ -#define IMAGE_BGRA_H_ - -#include - -#include "color.h" - -class BgraImage { - public: - BgraImage(size_t width_, size_t height_, uint8_t *bytes) - : width(width_), - height(height_), - pixel_count(width_ * height_), - buffer_size(pixel_count * sizeof(bgra8_t)), - buffer((bgra8_t *)bytes) {} - - BgraImage(BgraImage&& other) - : width(other.width), - height(other.height), - buffer_size(other.buffer_size), - buffer(other.buffer) { - other.buffer = nullptr; - } - - BgraImage(const BgraImage&) = delete; - BgraImage& operator=(const BgraImage&) = delete; - - ~BgraImage() { - } - - size_t width, height; - - size_t pixel_count; - size_t buffer_size; - bgra8_t* buffer; -}; - -#endif // IMAGE_BGRA_H_ diff --git a/submodules/TelegramUI/third-party/astc/image/color.h b/submodules/TelegramUI/third-party/astc/image/color.h deleted file mode 100644 index 6c5cc3199c..0000000000 --- a/submodules/TelegramUI/third-party/astc/image/color.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef IMAGE_COLOR_H_ -#define IMAGE_COLOR_H_ - -#include - -union rgba8_t { - struct type { - uint8_t r, g, b, a; - } channels; - uint32_t bits; -}; -union bgra8_t { - struct type { - uint8_t b, g, r, a; - } channels; - uint32_t bits; -}; - -inline bgra8_t swap_red_blue(rgba8_t color) { - bgra8_t output; - output.channels.r = color.channels.r; - output.channels.g = color.channels.g; - output.channels.b = color.channels.b; - output.channels.a = color.channels.a; - return output; -} - -inline rgba8_t swap_red_blue(bgra8_t color) { - rgba8_t output; - output.channels.r = color.channels.r; - output.channels.g = color.channels.g; - output.channels.b = color.channels.b; - output.channels.a = color.channels.a; - return output; -} - -#endif // IMAGE_COLOR_H_ diff --git a/submodules/TelegramUI/third-party/astc/image/compressed.cc b/submodules/TelegramUI/third-party/astc/image/compressed.cc deleted file mode 100644 index 69ee8693b5..0000000000 --- a/submodules/TelegramUI/third-party/astc/image/compressed.cc +++ /dev/null @@ -1,44 +0,0 @@ -#include "compressed.h" - -#include - -static int MAGIC_FILE_CONSTANT = 0x5CA1AB13; - -struct ASTCHeader { - uint8_t magic[4]; - uint8_t blockdim_x; - uint8_t blockdim_y; - uint8_t blockdim_z; - uint8_t xsize[3]; - uint8_t ysize[3]; - uint8_t zsize[3]; -}; - -void WriteASTCFile(const CompressedImage& compressed, const char* file_path) { - std::ofstream file(file_path, std::ios::binary); - if (file.fail()) { - throw "could not open file for writing"; - } - - ASTCHeader hdr; - hdr.magic[0] = static_cast(MAGIC_FILE_CONSTANT & 0xFF); - hdr.magic[1] = static_cast((MAGIC_FILE_CONSTANT >> 8) & 0xFF); - hdr.magic[2] = static_cast((MAGIC_FILE_CONSTANT >> 16) & 0xFF); - hdr.magic[3] = static_cast((MAGIC_FILE_CONSTANT >> 24) & 0xFF); - hdr.blockdim_x = static_cast(compressed.xdim); - hdr.blockdim_y = static_cast(compressed.ydim); - hdr.blockdim_z = 1; - hdr.xsize[0] = compressed.xsize & 0xFF; - hdr.xsize[1] = (compressed.xsize >> 8) & 0xFF; - hdr.xsize[2] = (compressed.xsize >> 16) & 0xFF; - hdr.ysize[0] = compressed.ysize & 0xFF; - hdr.ysize[1] = (compressed.ysize >> 8) & 0xFF; - hdr.ysize[2] = (compressed.ysize >> 16) & 0xFF; - hdr.zsize[0] = 1 & 0xFF; - hdr.zsize[1] = (1 >> 8) & 0xFF; - hdr.zsize[2] = (1 >> 16) & 0xFF; - - file.write(reinterpret_cast(&hdr), sizeof(ASTCHeader)); - file.write(reinterpret_cast(compressed.buffer), - static_cast(compressed.buffer_size)); -} diff --git a/submodules/TelegramUI/third-party/astc/image/compressed.h b/submodules/TelegramUI/third-party/astc/image/compressed.h deleted file mode 100644 index aa61f96702..0000000000 --- a/submodules/TelegramUI/third-party/astc/image/compressed.h +++ /dev/null @@ -1,61 +0,0 @@ -#ifndef IMAGE_COMPRESSED_H_ -#define IMAGE_COMPRESSED_H_ - -#include -#include -#include - -class CompressedImage { - public: - CompressedImage(size_t width, - size_t height, - size_t block_width, - size_t block_height, - size_t bytes_per_block_) - : xdim(block_width), - ydim(block_height), - xsize(width), - ysize(height), - xblocks(width / xdim), - yblocks(height / ydim), - block_count(yblocks * xblocks), - bytes_per_block(bytes_per_block_), - buffer_size(block_count * bytes_per_block), - buffer(new uint8_t[buffer_size]) { - assert(width % xdim == 0); - assert(height % ydim == 0); - } - - CompressedImage(CompressedImage&& other) - : xdim(other.xdim), - ydim(other.ydim), - xsize(other.xsize), - ysize(other.ysize), - xblocks(other.xblocks), - yblocks(other.yblocks), - block_count(other.block_count), - bytes_per_block(other.bytes_per_block), - buffer_size(other.buffer_size), - buffer(other.buffer) { - other.buffer = nullptr; - } - - CompressedImage(const CompressedImage&) = delete; - CompressedImage& operator=(const CompressedImage&) = delete; - - ~CompressedImage() { delete[] buffer; } - - size_t xdim, ydim; - size_t xsize, ysize; - size_t xblocks, yblocks; - - size_t block_count; - - size_t bytes_per_block; - size_t buffer_size; - uint8_t* buffer; -}; - -void WriteASTCFile(const CompressedImage&, const char* file_path); - -#endif // IMAGE_COMPRESSED_H_ diff --git a/submodules/TelegramUI/third-party/astc/pybits/__pycache__/bise.cpython-37.pyc b/submodules/TelegramUI/third-party/astc/pybits/__pycache__/bise.cpython-37.pyc deleted file mode 100644 index 0cb2864c49859ef135b34f5a7191eeb0844975a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6318 zcmdT|&2JmW72lct;F6YPnxbsUR$MlA64Q|-+i4QFa9vscXbrdm5<6)i*kCEmN+v|D zq}de^6J!xY2J8SukODpAC>?reZ_S}VKmUOCP@pY(*h3F(QNTU+=u7*1Z$Ct`Qf#HZ zbcy-c_h#OkdGmX3-g0JeuwdZ%-j7Om?~ED7-{>WMM$nl?3I2&n8A>#b6=Tj2)R#?h zn_9Ce=cKZftsIq8uF9)|I-myBpc+yKRZ$&MB{i(dYD67YN7U%j$egLh)X@jVoTZMb zakRF2K^;fys4uAs+MN2bdJ(OwPNKvmUgv;*o@HGy_eol%o$ zhrEMoYFX-kcn3C(xuQ4V6*tA)A#V_GC2z!4<#+={60*rGH)5xvyZV~ zqbee2z7Ymqh@Ln-TQ#)+nXAXt1HnoOOzjyV;}JY18`d+0s6A86E&@+UMr6~q-8F(F zKkk;n!;%p@Q=I-O-7+u766m3?7z@*qP$?PwAGy!;%p@Q}X>&Xv6}UjUH;L zTtNxOQMG};WlI;^g4&=Q8XtC)2Hmgg`xVb$SXB*wX_7_6Cn=(#%R%7ju(9f2(|T1`Wn?!( zZzYH<68B?6AH<@boSJ$Eqk^e5FZA@({6?dxrs_espu?%P`!sNBz7cqnYxkoPz18Rq zRk*Oa;fEF48yUo~%R(PQ+p~Q-DBk`gIz8LBA>j3ubYQ<+XWYr$(Yt5Oewq=%>?)5KMgh7FVa zzP+CUBi*~yWxPGdyy$zfEVxAiiM@7w#ip1o6)&Gt@b zPGNx0{Zn*8ocyK;#j+a|L;0b=yGY(E^d93PnBcw$&1G9(Y>UuZ7Qr-+x7%XOxMOx? z$Lv^b3FndeUfYb@(18nCoAQ>y98zy03 zXlAH?`|`}qYwS3TAWf#M+6=@wdwrwshmpRBz{?Jf+?Wa<+;w!6=*ag^hDL}Z+QgAvHSU%>COK)_95ZkTr8W*_ zz4V>f^it1+aOMyrHpOAgz|rDZs^;wDf8%M5ycAR#h+?Z@rQvgYYc_(gYDKoL`%AE0 z)AOUkyY=RV$MGt%w6~_gH=98iiTa$?L|lqQqu)6TM6We`<-I?PWe4QIhOk5lTXyj) z3Vjlk1-fqNp}tz)8CA<(0MxQ^X6 zwm5CrmY^YZ*px8JXKj1SR>X6ZyDhe*Fqi^Vf|Bo|0J)%;U6cY-3SAV7DOOBT4p!oH zq<<4s(rj&~tH?tRtpX_wuj21Cmgiy(m~k}g6V*bJgYjFrZKETxItwWeWbMrVMCe&a zFu`+_4GGxwmdkIsZNaURw0Ivdrj10JcviL*C_Ep2a*T;azV#32zoWC+4-Sw%LaEMH}!xFsly$Y>_gsl@q55 zQGQXcuGH#!DX8WmaXXUXS5RIWow1~-zWnh-A(IX!N&!a=tyO!^575yu?BXDRL8d6vHWqC$Lo!?@p~TYL_ld< zyhHS{Lpye0KzV{z#JoIQQ1U#}uk=yk5hh8BN5BDGc7^YvmuFYFhX|g!Ldbu`9%IrZ0=aY>ZWgGaY371;HR@{Pse;n$s`SAWF9MD^xLW zl>Hk?hPUMDT3DZNdXpEMs|)pJa0#7s;$wW_lG+z~<+CQvXGiyv_S00QA@oJ`v;ETL zN#>yv97grfSj2Y>OyurmBAP-7p$s#i8<1=6pNBR$9XagMfOdMW%j7d<`ar| z{_%MJL%C=^lLR^>UIFFnETNK0cxWzK&m@C_HOnBhvWypZWIVJM?WaniQzZ9bDV0>p zD8c2C)fSJ8N8*uuWG*7S#dcs=;0VcXK+adu==0RK^;zmqQAM9s`V3Y0RBNVh=zCZsA#xnU_2tS*EGmo4$rR7TX!$6tg4NscZrgg;9XSw-+?2= iv;7>?b=^FEWw+p-b5FT8dbT_03I|yzill!cT=5?YUPGM# diff --git a/submodules/TelegramUI/third-party/astc/pybits/__pycache__/bitset.cpython-37.pyc b/submodules/TelegramUI/third-party/astc/pybits/__pycache__/bitset.cpython-37.pyc deleted file mode 100644 index 5fe429061d236970d9e085989ceb8808f81be1da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3152 zcmaJ@%Wo4$7@xofB~T&t5~V<2H>)arNS4sb_H2R^$4+K91)@z4 zO{8*cuRXz`hyF`@?J4KpxU|3Dtaq_Z=t?u+?94awy?);}^JsRqBJlnE=faaeriA#L zKl!IIcz_lyp!-@FVdOE|k!lK~9*er}V7~YY?%yyKil#K8sf;x0STwcK#sl??Z%UxP znKEV2l9@IY&?z%xs-R^vYigj=X3ormR?Hc*06JsNnscC4bKWe1&YBBm3A7f@nGejx zV{s&#^B7+;m)-ab##hW$H(oH;pzCs4YIox(j62kmAE}4-Ia;)WE|ErVdr>tOzsN+z z&^&>y+akK^W@I7)l_>Pu2wLAb!6tE{(AB-P_ArV<8+Ql&FRdNeRPPR+rLv!TrWLp9 zI`yKkw_!_QPW4Z%-e1Df@o#RgevfU@>TVc^cD23V?U~h96nAXAy8D6}uV!km?7m3L zLD21Y;~=2gQ5l_(Rk@%_@?dVrm2-3?SMiauIV&kW5nI$=HtN!81HzM>Hd!}=U#QzX z2sw&qpO6PLLkXPkxH(Ldvboc*W8i$~+l2()+7j^HVl3fJu?1g#2Gl&rJZHJ-gnHGr z)56ju3jm6`a{8pQJE@Z14C5L&BJv8kC=V(_ov<)wFd3Xm^B5%J6^%x4m&9uc(^bRr z7zpC>|2bg_2M0S*oA}TDP$iLC+r&xVnM_nsc6ZKlpASyo|yLSZ5Iy@@mPsD3*c}0iJGBf{D+83BG<(O(LgW* ze~4}uqs&vKw9<{b{U~nrJ7Maz2ZLU!yZtze8c~&nPG?Y>!$c~dzY{-X-x8K0ZV+;5 zG=igvNy7?Hev2O{ueSX>F=-IZq;ZTZjJi4eQ%f-Af;iL;aEgFS^g8+_7+5Vn)ha>%ZAglv((?;X@~YEWf57(&s;*bGA1E+XtWH@U&RJ6fvQ}N#Y?7z zhSNOb9qBJnMUftUqu9)&x%n(ww1{pKfO%3olrIHx3fTT#?Rk&0+L41>rE2A_B?QKB z&QkKGvexUOwheZ6*KhMko?j9N*M`m^Sy}51I;~!`jzP}rKzQ;mzPd_%+v;zI?__N* zEGu3-sh&$1DPEi(D_#Z8=t`uHbV*c;l`C30kz0CO4Xy)E9>(4_v4hg-Te`&IWCA;R z`SJ(x)6l+ykst{7g5VBS%c@vS6_Lx<3g;6SbiT`R=8cgkD9Y$#mKOP1FkY^_c#TvP z+vroai0vXeL~P*@xngTZ^l>5ofcs!iWfyoV@1^o?!>I|)FN57O&J%jSnO@rr`{DCl zyZ#A}<@ugC_;47vAOP-zU?g-oH{#`O4Z3~1j2(H1SR69}E?85;?e{R9gE=p3B8rc_>U3 zd5#52<<43u7(3+QmwWqbjNQ%{xQp=u8sZL#ptBqxpi_@h>N53Ob~Bnl&`=MqJmP6Y zkeHCo#UeS!9NYji9rHFhi&VXwrRppF8p+EZSy_6>$i5oAV@1guro0G zJ&vnEu(#jpWh<7Kg>|ysd*lp%iEVp<9aA_{VVR?k*b&B-^)0R9PL8{soiKhnFqUDk ztL&)Xh|VtMm~AdxEPByZbY)qdD(kX`rptbLdPwnCovC_`m(N7v;IzZi@>*unI#2uu GP5cL5z*4&a diff --git a/submodules/TelegramUI/third-party/astc/pybits/__pycache__/datasize.cpython-37.pyc b/submodules/TelegramUI/third-party/astc/pybits/__pycache__/datasize.cpython-37.pyc deleted file mode 100644 index 97e9e5be041df823c3a34ddc5e4a72edddbdd837..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3140 zcmbVOTW=f36`q;hLLn{pGxNf>}gT!=GDREslHU!m*tt1T+2B_sYAnI-@&Wd7r z_3S9NnV}n)2JAc(aQ{L2&;ot!KPk|seeFy67xL16XI2zrLq^)}V9wmmZO(1>-IbM) z;k*Cm)mwkBGWJheEIzE+74-B0fMk;Q*?>1Wr@82hoqTjKI?{c}ny&O@0i!4V!xqTA z6=mK+X0rNUK^r;071!dFg4IOFrdy zU$Z-ox`t6)Vd}EsQhbk12~+%nP1)@;H<{s3#AzrJGbd1YGFRUlCz;b7>a4Prris$s z(QsR-k*bS~-_1O$-d~v_Q-Aa3`VF9@>*GWxYJK;h+n4LDRJWC0AK$}W(skL=t+YEy z*2ed;(9+T!(*med@(JTrUKTD7d4N_Hs*Jt1Pbc_F=q|dw_&ZQBzo@FxHF`X)Y4!kS zFkFk7NMDCp_>99Gg3O^VVswCYnXrsw_ddi(dkwqi+P&Wx*Y52ea`P;=vBfB8r^ixb z=Ok08C&p7xv@2bbB)zF`b#m3;3|D`Vg{eO*BVq!>Y77SVjWAA)8Mnr!feB=>=c<2z zI{ex*!Jl$%J@qf+%hJyYJCLPIz|;j3n8Hj4_39(%%72&yuuiicE1xzcm7e+K)N z<-UBu_$Qeuo@CR|_@-#WJqK>CHWV3hZUNbNa=zQ|C!JP5N`~!`><&B8ovz-GE=1!N zoK9{}qt;MH@&GvFeruSd^Ap742Lw(Ma0pxhn7na3voEI6+0E$Ug?e-+>2~&YI;T*c z{P_9U8`1eA?1&;|{@d@M*o-b+T=35+z63?xR}@59*iE~`RJVrhBy)F1qkdMsx&6!c zKiG+XwbgikJN|g3y)jvpVkY|Oxks7qLB0cM+EL<8R3&E+=PvUkm$V$8YQM(u4 z=}NtymGi~Ez2f3XCSx3hWWCs0FDvIZh*fLYNt&hhXt>wy*lcL}hvsRP4sqz_Sw$s- zR(A-g7R#nw4k$0OBIQ<0$yLKLy$HaHHNMJgwpEZ#WgZ~60`BsHz)A$XV%LEPMTj|d zl=K(;QtU%vW1&Ca4P=b&bWsMxr!myW-c{PSO;|&xM|LXR~WZB#W zFVX7Lt&eVO$5%hO(b$Q1w%+|{8|B1-CDmzgd-i5k9K@fKQ_|Shj8A}+Qs^>XE~s-D z+Z22Bk+O7ROT_Omc~&)p(lB*w`n&2)?MU&pYn(iZ?w-@0E@*#-M7+jsotnBjFphCS z;Tg~H9!KSLud~~iZ!%CipyWBFq|3UE`6?t%Hl82Po6+0v)FYJBq=P~kA-baWs1KM7 z<#>esbn@2m)WeYm(&(VGZ=*UVO$N~y(|S?80kPJ)))?v(Ex!+t1uFR*f)bf|HqNr* zQJm*7T~KvG{t*GPeKTAdyBV~T!|=pxaBS4otordn{X=vxO34)P4?+uJ=B{!Y1EJQj z`&1y2=cuO32D^siWY0S?Z0a-fnzxob6` zl43QePT{`Cc+ek<`UHpUKw`%iCoTOF~ zpIrNIthFSC1s7btHHGhfLeePz>RkPl2C-BHTUHrzsJZ~~d-PlZcXH|fR$w8OLTw?H zTd7#tAUhIx|45)eS^M7vLJAeq{2`#Y#KtoC?S}KM$hG#jk$dX-a{8nWxta0GiO^R+ z!z>HpnBKKGZq&!kL?J_$-R8-mIN|j7=jRnA&e1- zU=*SlgBZpkjtNL$5|WsL6s94K8OUH3vZ#Q9Imlri@>qZZ7EM+uxzdffWbVopnHwQQ z2{A&PkRT)pDFXHAW(Zk=LdX&Fgn~r3QiRi*))9K$5c;sw?(%L;6ZN*C)dp~Os8qSB ziC&{&YQEgsE7ZBs)P%viO>I-XFPj~%>%M$`XwLP1i*Fad{7VnEaJ)@2npNQmW{v9_ zcyU_$SG*L=_jh>`j0MfF4g}9!^!1@B1`j>q^$QtF^VfoMpk}v~-3iNX_@+(&2#*4_ z-W_Z#_rhfDh1Utn?(oMCwkXTX^YDG64sB~;t8>e-7V2m@o}l_{J1+}Iov%h?$5yQ= g&S&GP^EyMzzMikv$y+&HPOLlno9qjTXz2gv2U@kh?f?J) diff --git a/submodules/TelegramUI/third-party/astc/pybits/__pycache__/partitions.cpython-37.pyc b/submodules/TelegramUI/third-party/astc/pybits/__pycache__/partitions.cpython-37.pyc deleted file mode 100644 index 188489db4e4a81f4b0c77e727036cea62ce19226..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7628 zcmbVR-)|d7e&3m0l1qxBD2bM2U+UO7=VGQgJFzcKu5}$HaavrFsx8vyuDZAjinEd^ zQKUS(YGmE=4ycT??;$|i0(~h8Bo9T=m!bs@hyDqDDDJHX+@dc9u`~0XnVtF0d_UhGGkj})zT)8b!@pm;|N2$O`EL^AUlE0Myitn8I7U5kHXWml zi(DDc6p(9EG$rJ&@l6@IXDVh6dBIf8Jo2KcnFZt}Q#XsqeY0eik(YnhF%5I!kz+2L z>dlH-F{`MZGi&A|@~XLHzJ`3>JY#+hdCgol&mvziSIkx9b@QD0I`YME$z0pl_7~xD zxL}?)-@x<2NA9WGY=jrgb<=$0gpGU7sXA543F~14Ei2&#^j^v8%!}_i&0lXTERa9u z8t>b9BOghEr{SQF+W1E#sXDgoBgtnsZvIIW+UVwC7>D-e)={TxZnmPhZR4AV54Soo zT3R;l#GQUGx^eh0Ek+NHS~lbW5od9f^^mrui~{p~_9_U>uHL}Duag74(RESx`Hw#T zk()8l)Rx^-^>D(JWuMfKc01d#y?u-0kLRK|zkIH{Upbd8V36}?>)yUqnwpK}^Jg3F zt9morR~c=zlyiqK9QUyj!gRb6j&T0i<6T?DN>-+J4Ien(nO!@7s+KXgZ_Q6lRsPDU z)_%pQqNA%KHWT&&VtLPW02b@E2$WZs#_J3*dja$b_gE5|l$O zZph^iiP#~*ImGJ-$XW25X3ucGTx zSFraIW!$^YKqat}$aUgMj(y`7fQoK7uQ`w&_U2R#ijZQ_6xLZTN!f$GXS6SLF{jHy zmvXuyw4c*+LYH&8Ds&~M=Y^ij>6*~hoL&%mKBwzK*K&GM=!G{Na9qFZyfx-?3HwrC zcRp73hVgpZEDn~j)}?)onsu`*H4XG}*(ds5(nyxIGguz5&X@1D6ZA?Ng9}M1S$@MA zloCH_Aor89(B-5ebS0S+dM>F7T}|eNo=<8**OGF>XO%!MadVFCCQgCzG^ra z9a30z(CSKFG?;DG8LVJFwpT{&OL;p+Mf)n|XM1(jzL2+rYqYO{AGX&VJ+>R{wM3qJC{e{imtF=a?nD)Y8=rOFiij`a^MXHIQ}=$&gAoq-C|DuMLva zr{Ob9mY7h3hSZ$lWhQh>mRfJA^;WuYydkxC_y&@uYdMano_N9LrPPbU(1=SDMwY#nWv^%1 zw>OLO`OBmHl~I0c(~WjtVIrm5scNNaD^=}OnOQqikHT))j)R=nYgk#di^Ne4)zF^u z`RKa#b@gcrgqk(Iq?U9=RrHdUzS$SkslKA*LHi0HeOY-J-BT6iY5Nl9$~_`YYwkO4 zfdIOQF!%UcqV75OpBZ?GPT(&RcNx(QkV`wIk-HCS-*plVJh&Mi>?%IbJai%Twpvk` zy4@&F-H021*#9uJnZWX>C<{R5O=kxIP!RV6h-e3cL-PFg%2p$R&OV4diI+b0kNkr zk-A{vd@j*I7PEeboLam9_^T*;8#LL;f8=o;Z}cvbkTEdhUxh~-z2hMUW*HVAW%vb& zj|-#txHyWBOQZPMAH~OIQ^RgAq}3ceo!(Bi>!LbWF;$zw217%uNZD6#uh~| z=5R`w9!}{pat){SoYY~n0ylvJ3Mh0KJd_Fv+)q#>1cFlR@4@UDwdP!8TLm=CTuxWT zJOB=Y1S)ZJKCN`3PA`gEy*BXB>BXYU>6~a~@L|WqyJa$Q6rbjj!xK;hQ*n2+{YPeciu- zG9<94MrDn%9+h2`-F>Q++5kAY{uyo&|Nb^=(?UPqg-XrvUJQcpK@j{HJ>*p4z>M%Y zS)SpSz0QP?gsgDO1p_VQ(b)qg_S{oAgNz>nJ!9(IEOGamO8A*&gqw)7P7r*AJ{c=Y zi%vhib<*z)Gx^rh3qZHAd7~Kp#C`tj$C&d=rY;3R6l3PU=FA+)Q74U=~CQ#dxyzgChJVzWbzi1?=YDlT}s?Z zF$G5`M6@gX9-LWbOXu!DQBdV2-D zMS);x8A17)^QLo3*~89V#W-T@n!bINWm={zSUE>=Ema1R^(dsN)o>wcvD5o=98&%c zWmyX?PEBVD<0-p=`ZKm=Y~LfgqO)ruo@8aR7Fmhdl;|a~@?4eL^RU)CBN{e-uK@a8 z(sWUeoS!&x@v*Z_7v(+j;}WkI=w5jhBDg=p4AJ)fJyi z&C$RE4E72g|6YM7&wU3JZtd8Qqwr)Z5#JR=e3|%DN6r8O{!~?P{GP%8J@7PfT+M?0 zeN?0>N>wLSd-ejGWyAAbPb<-G|HGgawL6`kqIq-TQ}k$a z2l(S|(0p?vBMNUE5B|iJ5^p`c$Lg`(#*W}l(g(cN6S&|+$NGtS>^yeS!YIs7JOQ~D z6)$Gd;u);dh%9rS%uQkx?1@oNfc4X2W)|4|#}F9B+jA zXWRXQ!=pHy91$2_X zINL-yos)npkkEL-q2-qT2i~zhyzu2bPISYyuW$-6i!Y-D9LyL-?!{&`3;m|%Md(9@ zruOUmBt=si=gt0aXpS0493Z8lYpzDLF@Ed^sL#(29E8Xbv``}uPEw_d~qWLw(Ecb~8=;uR>+?8VL#KnZ3CvBO975Bi+=jjIJP$PO~0+$;{2h*b6_ zSBOj`=sNPWimGQojJ|I!yv_)GF7HbK=(_CBawTvZSy zR0kn`lDfd{JzO9A`nnc_#@pb&dWfj4rd zG$`%h?&Zbg^meZU7YNgiJeN9vvL;1 zghnbiD_da{2T{9k!_BIcJ3Z5BhY?2TneaHBYqev9fLZT?bj++yj<@vcx#I5j`};?S z8RY+$BBgP`oo(hTa6B993hz?rJ(f_z@Q^nqOyN(o<+V$W5c-cCAwLB1r3m?83LzU` zjF96Ob7WiwGD^6oEF?ZKw+&Pvw;M@GB)kC$XQf|R*2B;7gCqVk@P3}GZGeVm*>16Y zM(L;))-VZ~Y%|$mB7&Gm%S=)dik{X*@!U%^SJ;V&Y+ P?5_~=REi2z!B_tW^_j|I diff --git a/submodules/TelegramUI/third-party/astc/pybits/__pycache__/quantize.cpython-37.pyc b/submodules/TelegramUI/third-party/astc/pybits/__pycache__/quantize.cpython-37.pyc deleted file mode 100644 index 03f32f5a7522bbe5bcfe0365a619b01fbe501c95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4559 zcmbVPUvC@75x>1Vl1GZ76Wi-PEnEwzg6vLhUQXJyB;J zNqO(++QO+QA^}$Vlzf50erSOLeeOe^fs-cHMT@>iN>TZ zjeYGiO`0;dukGs3v<)HivaoOM8lfqzNZZqQ&B%P7lj4Qg%`sI3m1n91s=(9;D2u5w zs3KFNph`?tK#eeU0#uoi=;|Ml9_5CAP3-y}P=|Tg=4&bBn0%{gMA{jRM+;l}=bCy6 zzC8F2m5k5A3ZW*!IS$^F;Lc^-MV|Y0WDM)1Ub6^}BR`ByM1?5d)b~u*USj?y(2h}X zWp$<<9)<%eG83q~3oED-5N- zP6JS~4rn+Nl~_lLahxSA9V3Bl(nrZOB%CD)8OD>$FM*Ne_I*t&Qj8P4;xDh)0F=-H z4d01ISVxNS6ifK`F%tT=>7yk373DdSkYStzzo{%>WVxxQqmc~bXS4i)9L>l)DL6UY*$(XS!j{#aWgZe!=`lHLDSH@(2dU%2Vot$NdI*vOrB z_&ZNZ-)lGR&3a?YuHC(3cLNs-+q|%LZ*|$0Zlfbzl}QS=-G;Z}HR_?)!Lp8Bf86n; zz0vjkA3$8VX}7w5=xzI+tAgoL#$4{Fgu+454C#xW))!q;t79e&g#BVCqQE?$zI2RZD#MSx4n?}sQ01vOnW9abbcOM(!e874|8E2r>2l_?m^O? zcxd6=nEj*;9oa`(=?mULSV^Ca&G^>d6?b#)s}oa^A$Qb)66-f?`up#L}0-1zplf}qta)m)4nwCgR`apIEW zv^uiu6J2(Yx9WZ}qkaLY>Q_`z%mBz8qF2&^BtM(vj88DeWLXfRj7whNwS%zU zZn&{YnOYX7 z=o6Nr-1m)(i36W9ApcLpK^M{i5H}DaFuSob#6roIHXuV&4k! z&`6lS&>zu#VPyQ|+l-$wFY}M@3OaKK_!lg~X-T+}EeeK=*wd$HRSgUvC;7s42Epir z^>yD>OPEe#fsFC8bdBuW=(M&Mo9J^WARaF#-020M@D7gAfC*zMe~&J4q_f`;0HG+d z&^SrMYDuH|EvgNaM3uR7;Z0Q`j7W5veDBmg?u$>2K&q0^ns}AW1}WteXOv7uJu2Bp z4qiqH#!=w`s_!Gm9q(WYYy?eTfTG;|@D;J5y!uTzqp?sr+@?2wCt@ z#lb-?Y?185PkEE$hjLDg&5n%-0xIco3B4UU*Vib`;j3JVUaYPD% z<>*f#48$YE9AX9W8u1qK1@Qy%8$o1l4a^T4rijU{$>Hos2+|{$RM4jGB!u#n_GFQp z8aL!qX;Nnv*FG8|Ak<5`PL5KaWQ5Rqbec3N&-UmpIm;dp2sjmt1XY$qyV#EyvTay4 z7#~h*!Z_>JY++s0gw?hUUbBx)qh=d+_q1+uqy5e>Tjr^03&&{4<+^Ebv%^hCu9(um z5+~V#AIH-28HtTbCg`f-ykoin%NB0D=baQeYQ=rm z(GyEdAD)_@^HttgMNj4Z-F(4YTkzuw{%*ndEBbLu{_b*-T@`FTzvRo}oG+L2UPbeZ zMgBnEi$9cLiG%Xi=F7dRU+ux22eteUPh_a8KR<0lw`IP-|Ij& 0 and bits > 0 - return items * bits - -def trits_bise_bitcount(items, bits): - """ - Compute the number of bits needed for trit-based encoding. - """ - - assert items > 0 and bits >= 0 - #return math.ceil((8.0 + 5.0*bits) * items / 5.0) - return math.ceil(8.0*items / 5.0 + bits*items) - -def quints_bise_bitcount(items, bits): - """ - Compute the number of bits needed for quint-based encoding. - """ - - assert items > 0 and bits >= 0 - #return math.ceil((7.0 + 3.0*bits) * items / 3.0) - return math.ceil(7.0*items / 3.0 + bits*items) - -def compute_bise_bitcount(items, quant): - """ - Compute the number of bits needed for the BISE stream. - """ - assert type(items) is int - assert type(quant) is int - assert items > 0 - assert quant >= RANGE_2 and quant <= RANGE_256 - - trits, quints, bits = TRITS_QUINTS_BITS_TABLE[quant] - - if trits == 0 and quints == 0: - return bits_bise_bitcount(items, bits) - elif trits != 0: - return trits_bise_bitcount(items, bits) - elif quints != 0: - return quints_bise_bitcount(items, bits) - else: - assert False - -def last_index(lst, a): - last = -1 - for i in range(len(lst)): - if a == lst[i]: - last = i - if last == -1: - raise ValueError("%s is not in the list" % repr(a)) - return last - -# From ASTC specification, decode the a encoded set of 5 trits. -def decode_trits(T): - assert isinstance(T, bitset) - assert T.size() == 8 - - t4 = -1 - t3 = -1 - t2 = -1 - t1 = -1 - - C = bitset(5, 0) - if T.substr(4, 2) == bitset(3, 0b111): - C.set(4, T.get(7)) - C.set(3, T.get(6)) - C.set(2, T.get(5)) - C.set(1, T.get(1)) - C.set(0, T.get(0)) - t4 = 2 - t3 = 2 - else: - C = T.substr(4, 0) - if T.substr(6, 5) == bitset(2, 0b11): - t4 = 2 - t3 = T.get(7) - else: - t4 = T.get(7) - t3 = T.substr(6, 5).number() - - if C.substr(1, 0) == bitset(2, 0b11): - t2 = 2 - t1 = C.get(4) - t0 = bitset.from_args(C.get(3), C.get(2) & (not C.get(3))).number() - elif C.substr(3, 2) == bitset(2, 0b11): - t2 = 2 - t1 = 2 - t0 = C.substr(1, 0).number() - else: - t2 = C.get(4) - t1 = C.substr(3, 2).number() - t0 = bitset.from_args(C.get(1), C.get(0) & (not C.get(1))).number() - - assert t4 >= 0 and t4 <= 2, t4 - assert t3 >= 0 and t3 <= 2, t3 - assert t2 >= 0 and t2 <= 2, t2 - assert t1 >= 0 and t1 <= 2, t1 - assert t0 >= 0 and t0 <= 2, t0 - - return (t0, t1, t2, t3, t4) - -# From ASTC specification, decode a encoded set of 3 quints. -def decode_quints(Q): - assert Q.size() == 7 - - q2 = -1 - q1 = -1 - q0 = -1 - - if Q.substr(2, 1) == bitset(2, 0b11) and Q.substr(6, 5) == bitset(2, 0b00): - q2 = bitset.from_args( - Q.get(0), Q.get(4) & (not Q.get(0)), Q.get(3) & (not Q.get(0))).number() - q1 = 4 - q0 = 4 - else: - C = None - if Q.substr(2, 1) == bitset(2, 0b11): - q2 = 4 - C = bitset.from_args( - Q.get(4), - Q.get(3), - not Q.get(6), - not Q.get(5), - Q.get(0)) - else: - q2 = Q.substr(6, 5).number() - C = Q.substr(4, 0) - - if C.substr(2, 0) == bitset(3, 0b101): - q1 = 4 - q0 = C.substr(4, 3).number() - else: - q1 = C.substr(4, 3).number() - q0 = C.substr(2, 0).number() - - assert q2 >= 0 and q2 <= 4, q2 - assert q1 >= 0 and q1 <= 4, q1 - assert q0 >= 0 and q0 <= 4, q0 - - return (q0, q1, q2) - -# Generate table for trit decoding for all possible 8 bit numbers, [0, 255]. -def trits_from_integer_table(): - return [decode_trits(bitset(8, i)) for i in range(256)] - -# Generate table for trit decoding by brute force searching the encoding table. -# Exhaustive search solution works because the search space is small. -def integer_from_trits_table(trits): - return \ - [ - [ - [ - [ - [ - last_index(trits, (t0, t1, t2, t3, t4)) - for t0 in range(3) - ] - for t1 in range(3) - ] - for t2 in range(3) - ] - for t3 in range(3) - ] - for t4 in range(3) - ] - -# Generate table for quint encoding for all possible 7 bit numbers, [0, 127]. -def quints_from_integer_table(): - return [decode_quints(bitset(7, i)) for i in range(128)] - -# Generate table for quint decoding by brute force searching the encoding -# table. Exhaustive search solution works because the search space is small. -def integer_from_quints_table(quints): - return \ - [ - [ - [ - last_index(quints, (q0, q1, q2)) - for q0 in range(5) - ] - for q1 in range(5) - ] - for q2 in range(5) - ] - -if __name__ == "__main__": - trits_from_integer = trits_from_integer_table() - integer_from_trits = integer_from_trits_table(trits_from_integer) - quints_from_integer = quints_from_integer_table() - integer_from_quints = integer_from_quints_table(quints_from_integer) - - print(trits_from_integer) - print(integer_from_trits) - print(quints_from_integer) - print(integer_from_quints) diff --git a/submodules/TelegramUI/third-party/astc/pybits/bitset.py b/submodules/TelegramUI/third-party/astc/pybits/bitset.py deleted file mode 100644 index e907e80ea4..0000000000 --- a/submodules/TelegramUI/third-party/astc/pybits/bitset.py +++ /dev/null @@ -1,77 +0,0 @@ -# A bitset represents a fixed number of bits and have some helper methods for -# manipulating them. -class bitset: - def __init__(self, n, val): - assert n > 0 - assert val < pow(2, n) # number should fit within the available bits - - self.n = n - self.data = val - - def size(self): - return self.n - - def get(self, i): - assert i >= 0 and i < self.n - return (self.data >> i) & 1 - - def get_msb(self): - return self.get(self.n-1) - - def get_lsb(self): - return self.get(0) - - def set(self, i, x): - assert isinstance(x, bool) or isinstance(x, int) - assert i >= 0 and i < self.n - self.data ^= (-x ^ self.data) & (1 << i) - - def substr(self, msb, lsb): - assert msb >= lsb - assert lsb >= 0 - assert msb < self.n - - count = msb - lsb + 1 - newdata = self.data >> lsb & ((1 << count) - 1) - return bitset(count, newdata) - - def number(self): - return self.data - - def bits(self): - return [self.get(i) for i in range(self.n-1, -1, -1)] - - def __eq__(self, other): - assert isinstance(other, bitset) - - return self.n == other.n and self.data == other.data - - def __str__(self): - return ''.join('1' if x else '0' for x in self.bits()) - - def __repr__(self): - return "bitset(%d, 0b%s)" % (self.n, self.__str__()) - - @staticmethod - def from_list(lst): - num = 0 - n = len(lst) - 1 - for x in lst: - assert x >= 0 and x <= 1 - num = num | (x << n) - n = n - 1 - - return bitset(len(lst), num) - - @staticmethod - def from_args(*args): - return bitset.from_list(list(args)) - - @staticmethod - def join(a, b): - assert isinstance(a, bitset) - assert isinstance(b, bitset) - - count = a.size()+b.size() - number = b.number() | (a.number() << b.size()) - return bitset(count, number) diff --git a/submodules/TelegramUI/third-party/astc/pybits/codegen.py b/submodules/TelegramUI/third-party/astc/pybits/codegen.py deleted file mode 100644 index eb44320157..0000000000 --- a/submodules/TelegramUI/third-party/astc/pybits/codegen.py +++ /dev/null @@ -1,154 +0,0 @@ -#!/usr/bin/env python - -import bise -import datasize -import partitions -import quantize -import sys - - -def safe_head(lst, default): - try: - return lst[0] - except: - return default - - -def compute_dimensions(array): - if isinstance(array, list): - yield len(array) - yield from compute_dimensions(array[-1]) - - -def pretty_array(element, fmt): - if isinstance(element, int): - return fmt % element - elif isinstance(element, tuple) or isinstance(element, list): - return pretty_array(iter(element), fmt) - else: - first = next(element) - - out = "{" - out += pretty_array(first, fmt) - for x in element: - out += "," - out += pretty_array(x, fmt) - out += "}" - return out - - -def pretty_dimensions(dimensions): - out = "" - for dimension in dimensions: - out += "[" + str(dimension) + "]" - return out - -header_template = """#ifndef {guard} -#define {guard} - -{content} - -#endif -""" - -array_template = "const {type} {name}{dimensions} = {array};" - - -def build_header(guard, content): - return header_template.format(guard=guard, content=content) - - -def build_array(type, name, array): - return array_template.format( - name=name, - type=type, - dimensions=pretty_dimensions(compute_dimensions(array)), - array=pretty_array(array, "%d"), - ) - - -def print_bise_tables(file): - trits_from_integer = bise.trits_from_integer_table() - integer_from_trits = bise.integer_from_trits_table(trits_from_integer) - quints_from_integer = bise.quints_from_integer_table() - integer_from_quints = bise.integer_from_quints_table(quints_from_integer) - - file.write(build_header( - "ASTC_TABLES_INTEGER_SEQUENCE_ENCODING_H_", - build_array("uint8_t", "integer_from_trits", integer_from_trits) + - '\n' + - build_array("uint8_t", "integer_from_quints", integer_from_quints) - )) - - -def print_partitions_tables(file): - table = list(partitions.compute_partitioning_table( - partition_count=2, - block_width=4, - block_height=4)) - lookup_table = partitions.compute_partitioning_lookup_table(table) - - file.write(build_header( - "ASTC_TABLES_PARTITIONS_H_", - build_array( - "uint16_t", - "partition_2_4x4_mask_table", - [part.partition_mask for part in table] - ) + '\n' + - build_array( - "int16_t", - "partition_2_4x4_lookup_table", - [safe_head(parts, -1) for parts in lookup_table] - ) - )) - - -def print_data_size_table(file, block_width, block_height): - table = datasize.color_endpoint_range_table(block_width, block_height) - file.write(build_header( - "ASTC_TABLES_DATA_SIZE_H_", - build_array("int8_t", "color_endpoint_range_table", table) - )) - - -def print_color_quantization_tables(file): - unquantize_table = quantize.color_unquantize_table() - quantize_table = quantize.color_quantize_table(unquantize_table) - - file.write(build_header( - "ASTC_TABLES_COLOR_QUANTIZATION_H_", - build_array("uint8_t", "color_unquantize_table", unquantize_table) + - '\n' + - build_array("uint8_t", "color_quantize_table", quantize_table) - )) - - -def print_usage(prog): - sys.stderr.write( - ("Usage: %s COMMAND\n" - " Commands:\n" - " bise\n" - " partitions\n" - " datasize\n" - " quantize\n") % prog) - - -def main(kind, path): - file = open(path, 'w') if path != '-' else sys.stdout - if kind == "bise": - print_bise_tables(file) - elif kind == "partitions": - print_partitions_tables(file) - elif kind == "datasize": - print_data_size_table(file, 4, 4) - elif kind == "quantize": - print_color_quantization_tables(file) - else: - sys.stderr.write("Error: unknown mode {}\n".format(kind)) - sys.exit(1) - - -if len(sys.argv) != 3: - print_usage(sys.argv[0]) -else: - main(sys.argv[1], sys.argv[2]) diff --git a/submodules/TelegramUI/third-party/astc/pybits/datainfo.py b/submodules/TelegramUI/third-party/astc/pybits/datainfo.py deleted file mode 100644 index e3b41f6f0e..0000000000 --- a/submodules/TelegramUI/third-party/astc/pybits/datainfo.py +++ /dev/null @@ -1,46 +0,0 @@ -from bise import compute_bise_bitcount -from datasize import data_size, cem_values_count, color_endpoint_range -from range import RANGE_CARDINALITY_TABLE -import sys - - -def print_data_size_info(block_width, block_height, cem, partitions, - weight_range): - config_bits, weight_bits, remaining_bits = data_size( - partitions=partitions, - single_cem=True, - block_width=block_width, - block_height=block_height, - block_depth=1, - dual_plane=False, - weight_range=weight_range - ) - - ce_values = cem_values_count(cem, partitions) - ce_range = color_endpoint_range(cem, remaining_bits, partitions) - cem_bits = compute_bise_bitcount(ce_values, ce_range) - - print("block width:", block_width) - print("block height:", block_height) - print("config bits:", config_bits) - print("weight count:", block_width * block_height) - print("weight range:", RANGE_CARDINALITY_TABLE[weight_range]) - print("weight bits:", weight_bits) - print("remaining bits:", remaining_bits) - print("color endpoint values:", ce_values) - print("color endpoint range:", RANGE_CARDINALITY_TABLE[ce_range]) - print("color endpoint bits:", cem_bits) - print("unused bits:", remaining_bits - cem_bits) - - -if len(sys.argv) != 6: - sys.stderr.write( - "Usage: {} BLOCKWIDTH BLOCKHEIGHT CEM PARTITIONS WEIGHTRANGE\n".format( - sys.argv[0])) -else: - print_data_size_info( - int(sys.argv[1]), - int(sys.argv[2]), - int(sys.argv[3]), - int(sys.argv[4]), - int(sys.argv[5])) diff --git a/submodules/TelegramUI/third-party/astc/pybits/datasize.py b/submodules/TelegramUI/third-party/astc/pybits/datasize.py deleted file mode 100644 index 53000b026c..0000000000 --- a/submodules/TelegramUI/third-party/astc/pybits/datasize.py +++ /dev/null @@ -1,137 +0,0 @@ -from bise import compute_bise_bitcount -from endpointmodes import * -from range import * - -# Count the number of set bits in a number. -def count_bits(x): - assert type(x) is int - assert x >= 0 # negative integers are undefined behaviour - - count = 0 - while x != 0: - if x & 1: - count = count + 1 - x = x >> 1 - - return count - -# Calculate the number of bits used for config data, texel weight data and -# color endpoint data for an ASTC block. -def data_size( - partitions, - single_cem, - block_width, - block_height, - block_depth, - dual_plane, - weight_range): - - assert partitions >= 1 and partitions <= 4 - assert isinstance(single_cem, bool), single_cem - assert block_width >= 1 and block_width <= 12 - assert block_height >= 1 and block_height <= 12 - assert block_depth >= 1 and block_depth <= 12 - assert isinstance(dual_plane, bool) - assert weight_range < WEIGHT_RANGE_MAX - - if partitions == 4 and dual_plane: - raise ValueError("illegal encoding with 4 partitions and dual planes") - - config_bits = 17 - if partitions > 1: - if single_cem: - config_bits = 29 - else: - config_bits = 24 + 3 * partitions - - weights = block_width * block_height * block_depth - - if weights > 64: - raise ValueError("illegal encoding with {} (> 64) weights".format(weights)) - - if dual_plane: - config_bits += 2 - weights *= 2 - - weight_bits = compute_bise_bitcount(weights, weight_range) - - if weight_bits < 24: - raise ValueError("illegal encoding with {} (< 24) weight bits".format(weight_bits)) - - if weight_bits > 96: - raise ValueError("illegal encoding with {} (> 96) weight bits".format(weight_bits)) - - remaining_bits = 128 - config_bits - weight_bits - - return config_bits, weight_bits, remaining_bits - -# Define the class for every color endpoint mode. Used to derive the range for -# color endpoint encoding. -CEM_VALUE_COUNT_TABLE = \ - [ - 2, 2, 2, 2, - 4, 4, 4, 4, - 6, 6, 6, 6, - 8, 8, 8, 8 - ] - -# Count the number of encoded color endpoint values we are storing. -def cem_values_count(cem, partitions): - assert cem < CEM_MAX - - # The ASTC specification derives this count from the CEM class and a value - # they call extra_CEM_bits. I do not understand what extra_CEM_bits is - # referring to, I use the CEM_VALUE_COUNT_TABLE instead and assume that - # there is one set of endpoint values for each partition. - return CEM_VALUE_COUNT_TABLE[cem] * partitions - -# Calculate the range for color endpoint encoding for a given number of -# remaining bits. -def color_endpoint_range(cem, remaining_bits, partitions): - assert cem < CEM_MAX - - cem_values = cem_values_count(cem, partitions) - - if cem_values > 18: - raise ValueError("illegal encoding with {} (> 18) integers for color endpoints".format(cem_values)) - - # Brute-force search for the biggest range which fits in the remaining - # bits. - for ce_range in reversed(range(RANGE_MAX)): - cem_bits = compute_bise_bitcount(cem_values, ce_range) - - if cem_bits <= remaining_bits: - return ce_range - - raise ValueError("illegal encoding with not enough bits for cem {}".format(remaining_bits)) - -def color_endpoint_range_table(block_width, block_height): - def handle_except(partitions, cem, weight_range): - assert weight_range < WEIGHT_RANGE_MAX - try: - _, _, remaining_bits = data_size( - partitions = partitions, - single_cem = True, - block_width = block_width, - block_height = block_height, - block_depth = 1, - dual_plane = False, - weight_range = weight_range) - return color_endpoint_range(cem, remaining_bits, partitions) - except ValueError: - return -1 - - return \ - [ - [ - [ - handle_except(partitions, cem, weight_range) - for cem in range(CEM_MAX) - ] - for weight_range in range(WEIGHT_RANGE_MAX) - ] - for partitions in [1, 2] - ] - -if __name__ == "__main__": - print(color_endpoint_range_table(4, 4)) diff --git a/submodules/TelegramUI/third-party/astc/pybits/endpointmodes.py b/submodules/TelegramUI/third-party/astc/pybits/endpointmodes.py deleted file mode 100644 index 6582cb36da..0000000000 --- a/submodules/TelegramUI/third-party/astc/pybits/endpointmodes.py +++ /dev/null @@ -1,17 +0,0 @@ -CEM_LDR_LUMINANCE_DIRECT = 0 -CEM_LDR_LUMINANCE_BASE_OFFSET = 1 -CEM_HDR_LUMINANCE_LARGE_RANGE = 2 -CEM_HDR_LUMINANCE_SMALL_RANGE = 3 -CEM_LDR_LUMINANCE_ALPHA_DIRECT = 4 -CEM_LDR_LUMINANCE_ALPHA_BASE_OFFSET = 5 -CEM_LDR_RGB_BASE_SCALE = 6 -CEM_HDR_RGB_BASE_SCALE = 7 -CEM_LDR_RGB_DIRECT = 8 -CEM_LDR_RGB_BASE_OFFSET = 9 -CEM_LDR_RGB_BASE_SCALE_PLUS_TWO_ALPHA = 10 -CEM_HDR_RGB = 11 -CEM_LDR_RGBA_DIRECT = 12 -CEM_LDR_RGBA_BASE_OFFSET = 13 -CEM_HDR_RGB_LDR_ALPHA = 14 -CEM_HDR_RGB_HDR_ALPHA = 15 -CEM_MAX = 16 diff --git a/submodules/TelegramUI/third-party/astc/pybits/partition-images.py b/submodules/TelegramUI/third-party/astc/pybits/partition-images.py deleted file mode 100644 index a98cea8882..0000000000 --- a/submodules/TelegramUI/third-party/astc/pybits/partition-images.py +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/env python - -from partitions import compute_partitioning_table -import matplotlib.image as mpimg -import numpy as np - -def masks_to_image(block_width, block_height, masks): - colors = [ (1, 0, 0), (0, 0, 1), (0, 1, 0), (1, 1, 1) ] - - xblocks = 32 - yblocks = 32 - - img_width = xblocks * (block_width + 1) + 1 - img_height = yblocks * (block_height + 1) + 1 - - pixels = np.zeros((img_height, img_width, 3)) - - i = 0 - for mask in masks: - xblock = i % xblocks - yblock = i // xblocks - - xtopleft = xblock * (block_width + 1) + 1 - ytopleft = yblock * (block_height + 1) + 1 - - j = 0 - for partition in mask: - x = j % block_width - y = j // block_width - pixels[ytopleft+y, xtopleft+x] = colors[partition] - j = j + 1 - - i = i + 1 - - assert i == 1024 - - return pixels - -def write_image(partition_count, block_width, block_height): - table = compute_partitioning_table( - partition_count = partition_count, - block_width = block_width, - block_height = block_height) - - img = masks_to_image( - block_width = block_width, - block_height = block_height, - masks = table) - - path = "/tmp/%dx%d-blocks-%d-partitions.png" % (block_width, block_height, partition_count) - mpimg.imsave(path, img) - -if __name__ == "__main__": - write_image(2, 4, 4) - write_image(3, 4, 4) - write_image(4, 4, 4) - write_image(4, 6, 12) - write_image(4, 12, 6) - write_image(4, 12, 12) diff --git a/submodules/TelegramUI/third-party/astc/pybits/partitions.py b/submodules/TelegramUI/third-party/astc/pybits/partitions.py deleted file mode 100644 index 8aeb3f99cb..0000000000 --- a/submodules/TelegramUI/third-party/astc/pybits/partitions.py +++ /dev/null @@ -1,289 +0,0 @@ -def square(x): - return x*x - -def shiftr32(x, y): - return (x >> y) & (2**32-1) - -def shiftl32(x, y): - return (x << y) & (2**32-1) - -def xor32(x, y): - return x ^ y - -def add32(x, y): - return (x + y) % 2**32 - -def sub32(x, y): - return (x - y) % 2**32 - -def hash52(p): - p = xor32(p, shiftr32(p, 15)) - p = sub32(p, shiftl32(p, 17)) - p = add32(p, shiftl32(p, 7)) - p = add32(p, shiftl32(p, 4)) - p = xor32(p, shiftr32(p, 5)) - p = add32(p, shiftl32(p, 16)) - p = xor32(p, shiftr32(p, 7)) - p = xor32(p, shiftr32(p, 3)) - p = xor32(p, shiftl32(p, 6)) - p = xor32(p, shiftr32(p, 17)) - - assert p >= 0 and p < 2**32 - - return p - -# Select partion index as defined by ASTC specification. -def select_partition(seed, x, y, z, partition_count, small_block): - assert seed >= 0 and seed < 2**10 - assert partition_count >= 1 and partition_count <= 4 - - if small_block: - x = x << 1 - y = y << 1 - z = z << 1 - - seed += (partition_count - 1) * 1024 - - rnum = hash52(seed) - - seed1 = square(rnum & 0xF) - seed2 = square((rnum >> 4) & 0xF) - seed3 = square((rnum >> 8) & 0xF) - seed4 = square((rnum >> 12) & 0xF) - seed5 = square((rnum >> 16) & 0xF) - seed6 = square((rnum >> 20) & 0xF) - seed7 = square((rnum >> 24) & 0xF) - seed8 = square((rnum >> 28) & 0xF) - seed9 = square((rnum >> 18) & 0xF) - seed10 = square((rnum >> 22) & 0xF) - seed11 = square((rnum >> 26) & 0xF) - seed12 = square(((rnum >> 30) | (rnum << 2)) & 0xF) - - sh1 = 4 if seed & 2 else 5 - sh2 = 6 if partition_count == 3 else 5 - - if not (seed & 1): - sh1, sh2 = (sh2, sh1) - - sh3 = sh1 if seed & 0x10 else sh2 - - seed1 = seed1 >> sh1 - seed2 = seed2 >> sh2 - seed3 = seed3 >> sh1 - seed4 = seed4 >> sh2 - seed5 = seed5 >> sh1 - seed6 = seed6 >> sh2 - seed7 = seed7 >> sh1 - seed8 = seed8 >> sh2 - seed9 = seed9 >> sh3 - seed10 = seed10 >> sh3 - seed11 = seed11 >> sh3 - seed12 = seed12 >> sh3 - - a = seed1*x + seed2*y + seed11*z + (rnum >> 14) - b = seed3*x + seed4*y + seed12*z + (rnum >> 10) - c = seed5*x + seed6*y + seed9*z + (rnum >> 6) - d = seed7*x + seed8*y + seed10*z + (rnum >> 2) - - a = a & 0x3F - b = b & 0x3F if partition_count > 1 else 0 - c = c & 0x3F if partition_count > 2 else 0 - d = d & 0x3F if partition_count > 3 else 0 - - if a >= b and a >= c and a >= d: - return 0 - elif b >= c and b >= d: - return 1 - elif c >= d: - return 2 - else: - return 3 - -# Convert a list of digits to a number with a specific base. -def digits_to_num(base, lst): - sum = 0 - power = 0 - for x in lst: - sum = sum + x * (base**power) - power = power + 1 - return sum - -# Convert a number to a list of digits for a certain base. -def num_to_digits(base, digits, num): - for x in range(0, digits): - yield num % base - num = num // base - -class partitioning: - bit_masks = [0x1, 0x1, 0x3, 0x3] - shift_counts = [1, 1, 2, 2] - - def __init__(self, partition_count, block_width, block_height, partition_mask): - assert isinstance(partition_mask, int) - assert partition_count >= 1 and partition_count <= 4 - - self.block_width = block_width - self.block_height = block_height - self.texel_count = block_width * block_height - self.partition_count = partition_count - self.partition_mask = partition_mask - - self.bit_mask = partitioning.bit_masks[partition_count-1] - self.shift_count = partitioning.shift_counts[partition_count-1] - - def __eq__(self, other): - return \ - self.partition_count == other.partition_count and \ - self.block_width == other.block_width and \ - self.block_height == other.block_height and \ - self.partition_mask == other.partition_mask - - def __iter__(self): - return num_to_digits( - self.partition_count, - self.texel_count, - self.partition_mask) - - def __str__(self): - return "%#x" % self.partition_mask - - def __repr__(self): - return "partitioning({}, {}, {}, [{}])".format( - self.partition_count, - self.block_width, - self.block_height, - ",".join((str(x) for x in self))) - -def invert(part): - assert isinstance(part, partitioning) - assert part.partition_count == 2 - - return partitioning( - part.partition_count, - part.block_width, - part.block_height, - part.partition_mask ^ (2**part.texel_count-1)) - -def distance(a, b): - assert isinstance(a, partitioning) - assert isinstance(b, partitioning) - assert a.partition_count == b.partition_count - assert a.block_width == b.block_width - assert a.block_height == b.block_height - - def cost(m, n): - return 0 if m == n else 1 - - return sum((cost(m, n) for (m, n) in zip(a, b))) - -# Create human readable format for a partition mask. -def show_ascii(part): - assert isinstance(part, partitioning) - - s = "" - i = 0 - j = 0 - for p in part: - s = s + str(p) - i = i + 1 - - if i == part.block_width and j < part.block_height-1: - s = s + "\n" - i = 0 - j = j + 1 - - return s - -# Compute the partition bitmask for a given block size, partition count and -# seed. The bitmask is a list of numbers in range [0, partition count-1] -# starting in top left corner of the block in row major order. -def compute_partitioning(partition_count, block_width, block_height, seed): - width_range = range(0, block_width) - height_range = range(0, block_height) - - def f(x, y): - return select_partition(seed, x, y, 0, partition_count, True) - - return partitioning( - partition_count, - block_width, - block_height, - digits_to_num( - partition_count, - (f(x, y) for y in height_range for x in width_range))) - -# Compute the table that maps partition seeds to partition block masks for a -# given block size and partition count. -def compute_partitioning_table(partition_count, block_width, block_height): - def f(seed): - return compute_partitioning( - partition_count = partition_count, - block_width = block_width, - block_height = block_height, - seed = seed) - - return (f(seed) for seed in range(0, 2**10)) - -# Compute the lookup table from a partition mask to a matching partition index. -# Matching is done according to the edit distance between the partitioning and -# all availible partitions. -def compute_partitioning_lookup_table(table): - assert len(table) == 1024 - - partition_count = 2 - block_width = 4 - block_height = 4 - - for ideal in range(0, 2**16): - ideal_part = partitioning( - partition_count = partition_count, - block_width = block_width, - block_height = block_height, - partition_mask = ideal) - ideal_inverted_part = invert(ideal_part) - - best_score = 100000 - best_indices = [] - for index, actual_part in enumerate(table): - score = min( - distance(ideal_part, actual_part), - distance(ideal_inverted_part, actual_part)) - if score < 2: - if score == best_score: - best_indices.append(index) - elif score < best_score: - best_score = score - best_indices = [index] - - yield best_indices - -def compute_partitioning_lookup_table_equality(table): - assert len(table) == 1024 - - partition_count = 2 - block_width = 4 - block_height = 4 - - for ideal in range(0, 2**16): - ideal_part = partitioning( - partition_count = partition_count, - block_width = block_width, - block_height = block_height, - partition_mask = ideal) - ideal_inverted_part = invert(ideal_part) - - for index, actual_part in enumerate(table): - if ideal_part == actual_part or ideal_inverted_part == actual_part: - yield index - - yield -1 - - -if __name__ == "__main__": - table = list(compute_partitioning_table( - partition_count=2, - block_width=4, - block_height=4)) - print([list(part) for part in table]) - lookup_table = compute_partitioning_lookup_table(table) - print(list(lookup_table)) diff --git a/submodules/TelegramUI/third-party/astc/pybits/quantize.py b/submodules/TelegramUI/third-party/astc/pybits/quantize.py deleted file mode 100644 index 97f57bc9ef..0000000000 --- a/submodules/TelegramUI/third-party/astc/pybits/quantize.py +++ /dev/null @@ -1,123 +0,0 @@ -from bitset import bitset -from range import * - -def unquantize_color(i, quant): - assert i >= 0 and i < RANGE_CARDINALITY_TABLE[quant] - assert quant >= RANGE_2 and quant <= RANGE_256 - - def unquant(a, b, c, d): - """ - This is the magic bit twiddling hack ARM uses in the ASTC decoder - specification to avoid full-width multipliers. - - T = D * C + B; - T = T ^ A; - T = (A & 0x80) | (T >> 2); - """ - return (a & 0x80) | (((d*c + b) ^ a) >> 2) - - def bit_only(lst): - return bitset.from_list(lst).number() - - def trit_quint(A, B, C, D): - return unquant( - bitset.from_list(A).number(), - bitset.from_list(B).number(), - C, - bitset.from_list(D).number()) - - bits = bitset(8, i) - a = bits.get(0) - b = bits.get(1) - c = bits.get(2) - d = bits.get(3) - e = bits.get(4) - f = bits.get(5) - g = bits.get(6) - h = bits.get(7) - - if quant == RANGE_2: - return bit_only([a,a,a,a,a,a,a,a]) - elif quant == RANGE_3: - return [0, 128, 255][i] - elif quant == RANGE_4: - return bit_only([b,a,b,a,b,a,b,a]) - elif quant == RANGE_5: - return [0, 64, 128, 192, 255][i] - elif quant == RANGE_6: - return trit_quint([a,a,a,a,a,a,a,a,a], [0,0,0,0,0,0,0,0,0], 204, [c,b]) - elif quant == RANGE_8: - return bit_only([c,b,a,c,b,a,c,b]) - elif quant == RANGE_10: - return trit_quint([a,a,a,a,a,a,a,a,a], [0,0,0,0,0,0,0,0,0], 113, [d,c,b]) - elif quant == RANGE_12: - return trit_quint([a,a,a,a,a,a,a,a,a], [b,0,0,0,b,0,b,b,0], 93, [d,c]) - elif quant == RANGE_16: - return bit_only([d,c,b,a,d,c,b,a]) - elif quant == RANGE_20: - return trit_quint([a,a,a,a,a,a,a,a,a], [b,0,0,0,0,b,b,0,0], 54, [e,d,c]) - elif quant == RANGE_24: - return trit_quint([a,a,a,a,a,a,a,a,a], [c,b,0,0,0,c,b,c,b], 44, [e,d]) - elif quant == RANGE_32: - return bit_only([e,d,c,b,a,e,d,c]) - elif quant == RANGE_40: - return trit_quint([a,a,a,a,a,a,a,a,a], [c,b,0,0,0,0,c,b,c], 26, [f,e,d]) - elif quant == RANGE_48: - return trit_quint([a,a,a,a,a,a,a,a,a], [d,c,b,0,0,0,d,c,b], 22, [f,e]) - elif quant == RANGE_64: - return bit_only([f,e,d,c,b,a,f,e]) - elif quant == RANGE_80: - return trit_quint([a,a,a,a,a,a,a,a,a], [d,c,b,0,0,0,0,d,c], 13, [g,f,e]) - elif quant == RANGE_96: - return trit_quint([a,a,a,a,a,a,a,a,a], [e,d,c,b,0,0,0,e,d], 11, [g,f]) - elif quant == RANGE_128: - return bit_only([g,f,e,d,c,b,a,g]) - elif quant == RANGE_160: - return trit_quint([a,a,a,a,a,a,a,a,a], [e,d,c,b,0,0,0,0,e], 6, [h,g,f]) - elif quant == RANGE_192: - return trit_quint([a,a,a,a,a,a,a,a,a], [f,e,d,c,b,0,0,0,f], 5, [h,g]) - elif quant == RANGE_256: - return bit_only([h,g,f,e,d,c,b,a]) - - assert False - -def find_closest(unquantized, value): - assert isinstance(unquantized, list) - assert len(unquantized) > 0 - assert isinstance(value, int) - - class Item: - def __init__(self, index): - self.index = index - self.cost = abs(value - unquantized[self.index]) - - def __lt__(self, other): - return self.cost < other.cost - - return min(map(Item, range(len(unquantized)))).index - -def color_quantize_table(color_unquantize_table): - return \ - [ - [ - find_closest(color_unquantize_table[quant], i) - for i in range(256) - ] - for quant in range(RANGE_MAX) - ] - -def color_unquantize_table(): - return \ - [ - [ - unquantize_color(i, quant) - for i in range(RANGE_CARDINALITY_TABLE[quant]) - ] - for quant in range(RANGE_MAX) - ] - -if __name__ == "__main__": - unquantize_table = color_unquantize_table() - quantize_table = color_quantize_table(unquantize_table) - print(unquantize_table) - print(quantize_table) diff --git a/submodules/TelegramUI/third-party/astc/pybits/range.py b/submodules/TelegramUI/third-party/astc/pybits/range.py deleted file mode 100644 index c3423e44f7..0000000000 --- a/submodules/TelegramUI/third-party/astc/pybits/range.py +++ /dev/null @@ -1,67 +0,0 @@ -# There are 21 ranges (intervals in math lingo) for endpoint values. -RANGE_2 = 0 -RANGE_3 = 1 -RANGE_4 = 2 -RANGE_5 = 3 -RANGE_6 = 4 -RANGE_8 = 5 -RANGE_10 = 6 -RANGE_12 = 7 -RANGE_16 = 8 -RANGE_20 = 9 -RANGE_24 = 10 -RANGE_32 = 11 -RANGE_40 = 12 -RANGE_48 = 13 -RANGE_64 = 14 -RANGE_80 = 15 -RANGE_96 = 16 -RANGE_128 = 17 -RANGE_160 = 18 -RANGE_192 = 19 -RANGE_256 = 20 -RANGE_MAX = 21 - -# Table of each range's cardinality, that is the number of representable -# integers in each range. -RANGE_CARDINALITY_TABLE = \ - [ - 2, - 3, - 4, - 5, - 6, - 8, - 10, - 12, - 16, - 20, - 24, - 32, - 40, - 48, - 64, - 80, - 96, - 128, - 160, - 192, - 256 - ] - -# There are 12 ranges for texel weights. -WEIGHT_RANGE_MAX = 12 - -def range_lookup(count): - """ - Find what quantization range an number of elements can be represented with. - """ - - assert type(count) is int - assert count >= 2 and count <= 256 - - for i in range(RANGE_MAX): - if count <= RANGE_CARDINALITY_TABLE[i]: - return i - - assert False diff --git a/submodules/TelegramUI/third-party/bc1/BC1Compression.cpp b/submodules/TelegramUI/third-party/bc1/BC1Compression.cpp deleted file mode 100644 index 1b71328b29..0000000000 --- a/submodules/TelegramUI/third-party/bc1/BC1Compression.cpp +++ /dev/null @@ -1,301 +0,0 @@ -//----------------------------------------------------------------------------- -// Copyright (c) 2017 Ricardo David CM (http://ricardo-david.com), -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -// sell copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -// IN THE SOFTWARE. -//----------------------------------------------------------------------------- - -#include "BC1Compression.h" -#include "ColorVec.h" -#include -#include -#include - -namespace DTX1CompressorDecompressor -{ - bool BC1Compression::Compress(const BMPImage & bmpImage, BC1DDSImage & ddsImage) - { - unsigned char* dtaPtr = bmpImage.GetData(); - if (dtaPtr == nullptr) - { - return false; // should return an error code - } - - const unsigned int width = bmpImage.GetWidth(); - const unsigned int height = bmpImage.GetHeight(); - const unsigned int nBlocks = (width / 4) * (height / 4); - - // reserve memory for the ddsImage - unsigned char* ddsImageData = new unsigned char[nBlocks * m_blockSize]; - - // TODO: this first pass over the image may not be needed, for now we use it as to get things working first - // here we get data of the bmp image as pixels array - std::vector pixelData(width * height); - for (unsigned int row = 0; row < height; ++row) - { - for (unsigned int col = 0; col < width; ++col) - { - unsigned int index = (height - 1 - row) * width + col; // image is reversed in rows (upside down), so row = 0 is the bottom of the image - std::memcpy(&pixelData[index].bgra, dtaPtr, 3); - dtaPtr += 4; - } - } - - // compress all 4x4 blocks of the bmpImage - unsigned char* ddsDataPtr = ddsImageData; - for (unsigned int row = 0; row < height; row += 4) - { - for (unsigned int col = 0; col < width; col += 4) - { - // TODO : potentially we could use multiple threads to compress multiple blocks in parallel - CompressBlock(pixelData, row, col, width, ddsDataPtr); - ddsDataPtr += m_blockSize; - } - } - - // finialize dds image initialization (headers + data) - if(!ddsImage.InitWithData(ddsImageData, width, height)) - { - if(ddsImageData != nullptr) - delete[] ddsImageData; - - return false; // should return an error code - } - - return true; - } - - bool BC1Compression::DeCompress(const BC1DDSImage & ddsImage, BMPImage & bmpImage) - { - unsigned char* ddsDataPtr = ddsImage.GetData(); - if (ddsDataPtr == nullptr) - { - return false; // should return an error code - } - - const unsigned int width = ddsImage.GetWidth(); - const unsigned int height = ddsImage.GetHeight(); - - // similar to compression we use the aid of a pixel array - std::vector pixelData(width * height); - - // de-compress all 4x4 blocks of the ddsImage - for (unsigned int row = 0; row < height; row += 4) - { - for (unsigned int col = 0; col < width; col += 4) - { - // TODO : potentially we could use multiple threads to de-compress multiple blocks in parallel - DeCompressBlock(pixelData, row, col, width, ddsDataPtr); - ddsDataPtr += m_blockSize; - } - } - - // copy pixel data to the actual bmp image - unsigned char* bmpImgData = new unsigned char[4 * width * height]; - memset(bmpImgData, 0xff, 4 * width * height); - unsigned char* bmpDataPtr = bmpImgData; - - for (unsigned int row = 0; row < height; ++row) - { - for (unsigned int col = 0; col < width; ++col) - { - unsigned int index = (height - 1 - row) * width + col; // image is reversed in rows (upside down), so row = 0 is the bottom of the image - std::memcpy(bmpDataPtr, &pixelData[index].bgra, 3); - bmpDataPtr += 4; - } - } - - // finialize bmp image initialization (headers + data) - if (!bmpImage.InitWithData(bmpImgData, width, height)) - { - if (bmpImgData != nullptr) - delete[] bmpImgData; - - return false; - } - - return true; - } - - void BC1Compression::CompressBlock(const std::vector & pixelData, unsigned int row, unsigned int col, unsigned int width, unsigned char* ddsDataPtr) const - { - // find the min-max - int maxVal = -1; - Pixel24Bit maxColor; - - int minVal = INT_MAX; - Pixel24Bit minColor; - - for (unsigned int r = row; r < row + 4; ++r) - { - for (unsigned int c = col; c < col + 4; ++c) - { - unsigned int pixelIndex = r * width + c; - int l = pixelData[pixelIndex].GetLuminance(); - - if (l > maxVal) - { - maxColor.SetPixel24Bit(pixelData[pixelIndex]); - maxVal = l; - } - - if (l < minVal) - { - minColor.SetPixel24Bit(pixelData[pixelIndex]); - minVal = l; - } - } - } - - // fix the end points colors min and max based on their RGB565 values - unsigned short minColorRGB565 = minColor.ConvertTo565(); - unsigned short maxColorRGB565 = maxColor.ConvertTo565(); - if (minColorRGB565 > maxColorRGB565) - { - std::swap(minColor, maxColor); - std::swap(minColorRGB565, maxColorRGB565); - } - - // set the first two colors to compressed block - std::memcpy(ddsDataPtr, &maxColorRGB565, 2); - ddsDataPtr += 2; - - std::memcpy(ddsDataPtr, &minColorRGB565, 2); - ddsDataPtr += 2; - - // fix : min and max colors can be collapsed to the same color! i.e. maxColorRGB565 == minColorRGB565 - // therefore we use the reverted 24 bit colors for the enconding below - maxColor.LoadFrom565(maxColorRGB565); - minColor.LoadFrom565(minColorRGB565); - - // intermediate colors (check BC1 Section on https://msdn.microsoft.com/en-us/library/windows/desktop/bb694531(v=vs.85).aspx) - Pixel24Bit color2, color3; - for (unsigned int i = 0; i < 3; ++i) - { - color2.bgra[i] = (2 * maxColor.bgra[i] + 1 * minColor.bgra[i]) / 3; - color3.bgra[i] = (1 * maxColor.bgra[i] + 2 * minColor.bgra[i]) / 3; - } - - // find the closest color for each color and set its offset bit - unsigned int pixelCount = 0; - unsigned int encodedOffsets = 0; - for (unsigned int r = row; r < row + 4; ++r) - { - for (unsigned int c = col; c < col + 4; ++c) - { - unsigned int pixelIndex = r * width + c; - - Pixel24Bit color; - color.SetPixel24Bit(pixelData[pixelIndex]); - - int minD = color.SqrDistanceTo(maxColor); - unsigned int offset = 0; - - int d = color.SqrDistanceTo(minColor); - if (d < minD) - { - minD = d; - offset = 1; - } - - d = color.SqrDistanceTo(color2); - if (d < minD) - { - minD = d; - offset = 2; - } - - d = color.SqrDistanceTo(color3); - if (d < minD) - { - minD = d; - offset = 3; - } - - // here the offsets are set in a way that the final enconded set of bits are : - // pixel 16 offset | pixel 15 offset | ....... | pixel 0 offset - // each offset is 2 bit, the resulting econded offsets is 32bit = 16bit * 2 = 4 bytes - unsigned int shift = (unsigned int)(pixelCount << 1); - encodedOffsets |= (offset << shift ); - pixelCount++; - } - } - - // write the whole enconded offsets 4 byte word to the compressed block - std::memcpy(ddsDataPtr, &encodedOffsets, 4); - ddsDataPtr += 4; - } - - void BC1Compression::DeCompressBlock(std::vector & pixelData, unsigned int row, unsigned int col, unsigned int width, unsigned char* ddsDataPtr) const - { - // get the first two colors from compressed block - Pixel24Bit minColor, maxColor; - - unsigned short maxColorRGB565; - std::memcpy(&maxColorRGB565, ddsDataPtr, 2); - ddsDataPtr += 2; - maxColor.LoadFrom565(maxColorRGB565); - - unsigned short minColorRGB565; - std::memcpy(&minColorRGB565, ddsDataPtr, 2); - ddsDataPtr += 2; - minColor.LoadFrom565(minColorRGB565); - - // interpolate the other two colors - Pixel24Bit color2, color3; - for (unsigned int i = 0; i < 3; ++i) - { - color2.bgra[i] = (2 * maxColor.bgra[i] + 1 * minColor.bgra[i]) / 3; - color3.bgra[i] = (1 * maxColor.bgra[i] + 2 * minColor.bgra[i]) / 3; - } - - // get the encoded offset - unsigned int encodedOffsets; - std::memcpy(&encodedOffsets, ddsDataPtr, 4); - ddsDataPtr += 4; - - // set for each pixel their color according to the 2bit offset in the compressed block - for (unsigned int r = row; r < row + 4; ++r) - { - for (unsigned int c = col; c < col + 4; ++c) - { - unsigned int offset = (encodedOffsets & (unsigned int) 0x03); // the two right hand side bits - encodedOffsets = encodedOffsets >> 2; - - // get the color according to the offset - Pixel24Bit color; - if(offset == 0) - color.SetPixel24Bit(maxColor); - - else if(offset == 1) - color.SetPixel24Bit(minColor); - - else if(offset == 2) - color.SetPixel24Bit(color2); - - else if(offset == 3) - color.SetPixel24Bit(color3); - - // set the color - unsigned int pixelIndex = r * width + c; - pixelData[pixelIndex].SetPixel24Bit(color); - } - } - } - -} diff --git a/submodules/TelegramUI/third-party/bc1/BC1Compression.h b/submodules/TelegramUI/third-party/bc1/BC1Compression.h deleted file mode 100644 index 2c181d0b82..0000000000 --- a/submodules/TelegramUI/third-party/bc1/BC1Compression.h +++ /dev/null @@ -1,51 +0,0 @@ -//----------------------------------------------------------------------------- -// Copyright (c) 2017 Ricardo David CM (http://ricardo-david.com), -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -// sell copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -// IN THE SOFTWARE. -//----------------------------------------------------------------------------- - -#ifndef RL_BC1_COMPRESSION_H -#define RL_BC1_COMPRESSION_H - -#include "TypeDefinitions.h" -#include "BMPImage.h" -#include "DDSImage.h" -#include - -namespace DTX1CompressorDecompressor -{ - // class for handlling BC1 compression of BMP Textures - class BC1Compression - { - public: - bool Compress(const BMPImage & bmpImage, BC1DDSImage & ddsImage); - bool DeCompress(const BC1DDSImage & ddsImage, BMPImage & bmpImage); - - private: - void CompressBlock(const std::vector & pixelData, unsigned int row, unsigned int col, unsigned int width, unsigned char* ddsDataPtr) const; - void DeCompressBlock(std::vector & pixelData, unsigned int row, unsigned int col, unsigned int width, unsigned char* ddsDataPtr) const; - - // a compressed BC1 block is 8 bytes - const unsigned int m_blockSize = 8; - }; - -} - -#endif // !RL_BC1_COMPRESSION_H - diff --git a/submodules/TelegramUI/third-party/bc1/BMPImage.cpp b/submodules/TelegramUI/third-party/bc1/BMPImage.cpp deleted file mode 100644 index 451dc70cea..0000000000 --- a/submodules/TelegramUI/third-party/bc1/BMPImage.cpp +++ /dev/null @@ -1,213 +0,0 @@ -//----------------------------------------------------------------------------- -// Copyright (c) 2017 Ricardo David CM (http://ricardo-david.com), -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -// sell copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -// IN THE SOFTWARE. -//----------------------------------------------------------------------------- - -#include "BMPImage.h" -#include -#include - -namespace DTX1CompressorDecompressor -{ - BMPImage::BMPImage() : Image() - { - } - - BMPImage::BMPImage(const BMPImage & other) - { - m_width = other.m_width; - m_height = other.m_height; - m_fileHeader = other.m_fileHeader; - m_bitMapInfoHeader = other.m_bitMapInfoHeader; - - if (other.m_data == nullptr) - m_data = nullptr; - else - std::memcpy(m_data, other.m_data, other.m_bitMapInfoHeader.biSizeImage); - } - - BMPImage::BMPImage(BMPImage && other) : Image() - { - // initializes this with other data, and resets other with the "Image()" default data - Swap(*this, other); - } - - BMPImage & BMPImage::operator=(BMPImage other) - { - // copy and swap idiom - // here 'other' is a copy (since has been passed here by value) that is constructed either using the copy constructor or the move constructor, depending if it is an rvalue or a lvalue - Swap(*this, other); - return *this; - } - - void Swap(BMPImage & img1, BMPImage & img2) - { - using std::swap; - - swap(img1.m_fileHeader, img2.m_fileHeader); - swap(img1.m_bitMapInfoHeader, img2.m_bitMapInfoHeader); - swap(img1.m_width, img2.m_width); - swap(img1.m_height, img2.m_height); - swap(img1.m_data, img2.m_data); - } - - BMPImage::~BMPImage() - { - } - - bool BMPImage::InitWithData(unsigned char* data, unsigned int width, unsigned int height) - { - // checks for valid data - if (data == nullptr) - { - std::cout << "BMPImage::InitWithData:: data is null !" << std::endl; - return false; - } - - // check for image size width and height multiples of 4 - if (width % 4 != 0 || height % 4 != 0) - { - std::cout << "BMPImage::InitWithData:: the image is not supported. It needs width and height multiple of 4..." << std::endl; - return false; - } - - // we will overwrite previous data contained in this BMPImage instance - ReleaseImageMemory(); - - // take ownership of the data - m_data = data; - m_width = width; - m_height = height; - - // populate headers - DWORD bothHeadersSize = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER); - DWORD infoHeaderSize = sizeof(BITMAPINFOHEADER); - DWORD dataSize = 3 * width * height; // 3 bytes per pixel - WORD bitCount = 24; - LONG prefferedResOnX = 3780; // TODO : make this one and the next one as arguments ? - LONG prefferedResOnY = 3780; - - m_fileHeader.bfType = BM_FORMAT_TAG; - m_fileHeader.bfSize = bothHeadersSize + dataSize; - m_fileHeader.bfReserved1 = 0; - m_fileHeader.bfReserved2 = 0; - m_fileHeader.bfOffBits = bothHeadersSize; // header offset to the actual data (both headers sizes = 54 bytes) - - m_bitMapInfoHeader.biSize = infoHeaderSize; - m_bitMapInfoHeader.biWidth = static_cast(width); - m_bitMapInfoHeader.biHeight = static_cast(height); - m_bitMapInfoHeader.biPlanes = 1; - m_bitMapInfoHeader.biBitCount = bitCount; - m_bitMapInfoHeader.biCompression = 0; - m_bitMapInfoHeader.biSizeImage = dataSize; - m_bitMapInfoHeader.biXPelsPerMeter = prefferedResOnX; - m_bitMapInfoHeader.biYPelsPerMeter = prefferedResOnY; - m_bitMapInfoHeader.biClrUsed = 0; - m_bitMapInfoHeader.biClrImportant = 0; - - return true; - } - - bool BMPImage::ReadFromFile(const char * fileName) - { - std::ifstream imgFile(fileName, std::ifstream::binary); - - if (imgFile.is_open()) - { - // read header bytes - imgFile.read(reinterpret_cast(&m_fileHeader), sizeof(m_fileHeader)); - imgFile.read(reinterpret_cast(&m_bitMapInfoHeader), sizeof(m_bitMapInfoHeader)); - - // check the type of file - if (m_fileHeader.bfType != BM_FORMAT_TAG) - { - std::cout << " file was not found to be on BMP format... " << std::endl; - return false; - } - - // check for image size width and height multiples of 4 - if (m_bitMapInfoHeader.biWidth % 4 != 0 || m_bitMapInfoHeader.biHeight % 4 != 0) - { - std::cout << " the image is not supported. It needs width and height multiple of 4..." << std::endl; - return false; - } - - // check for 24 bit bitmaps only - if (m_bitMapInfoHeader.biBitCount != 24) - { - std::cout << " the image is not supported. It needs to be RGB-24 bit (8 bits per pixel) ..." << std::endl; - return false; - } - - // make sure we delete memory for any previous image we had loaded into this instance - ReleaseImageMemory(); - - // allocate the memory needed for all our data - m_width = static_cast(m_bitMapInfoHeader.biWidth); - m_height = static_cast(m_bitMapInfoHeader.biHeight); - - unsigned int dataByteSize = 3 * m_width * m_height; - m_data = new unsigned char[dataByteSize]; - - // read color data - imgFile.read(reinterpret_cast(m_data), dataByteSize); - - // release the file - imgFile.close(); - } - else - { - std::cout << std::endl <<" cannot read file : " << fileName << std::endl; - return false; - } - - return true; - } - - bool BMPImage::SaveToFile(const char * fileName) - { - if (m_data == nullptr) - return false; - - std::ofstream imgFile(fileName, std::ifstream::binary); - - if(imgFile.is_open()) - { - // write headers - imgFile.write(reinterpret_cast(&m_fileHeader), sizeof(m_fileHeader)); - imgFile.write(reinterpret_cast(&m_bitMapInfoHeader), sizeof(m_bitMapInfoHeader)); - - // write data - unsigned int dataByteSize = 3 * m_width * m_height; - imgFile.write(reinterpret_cast(m_data), dataByteSize); - - // release file - imgFile.close(); - } - else - { - std::cout << std::endl << "error creating or opening file : " << fileName << std::endl; - return false; - } - - return true; - } - -} diff --git a/submodules/TelegramUI/third-party/bc1/BMPImage.h b/submodules/TelegramUI/third-party/bc1/BMPImage.h deleted file mode 100644 index 09b01160f2..0000000000 --- a/submodules/TelegramUI/third-party/bc1/BMPImage.h +++ /dev/null @@ -1,59 +0,0 @@ -//----------------------------------------------------------------------------- -// Copyright (c) 2017 Ricardo David CM (http://ricardo-david.com), -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -// sell copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -// IN THE SOFTWARE. -//----------------------------------------------------------------------------- - -#ifndef RL_BMP_IMAGE_H -#define RL_BMP_IMAGE_H - -#include "Image.h" - -namespace DTX1CompressorDecompressor -{ - // class for loading and handling BMP images - class BMPImage : public Image - { - public: - BMPImage(); - BMPImage(const BMPImage & other); - BMPImage(BMPImage && other); - BMPImage& operator=(BMPImage other); - friend void Swap(BMPImage & img1, BMPImage & img2); - ~BMPImage(); - - - // a initalizator with data loaded from other sources (for example, from a decompressed DDS image), - // if color data in this image instance is already set, it will be ovewritten - // this instance will take ownership of the data - bool InitWithData(unsigned char* data, unsigned int width, unsigned int height); - - // populates the headers and the color data (if color data is already set, it will be ovewritten with the data of the file being loaded) - bool ReadFromFile(const char* fileName); - - // saves this data to disc ( will create a BMP image : fileName.bmp ) - bool SaveToFile(const char* fileName); - - private: - BITMAPFILEHEADER m_fileHeader; - BITMAPINFOHEADER m_bitMapInfoHeader; - }; -} - -#endif // !BMP_ IMAGE_H diff --git a/submodules/TelegramUI/third-party/bc1/ColorVec.h b/submodules/TelegramUI/third-party/bc1/ColorVec.h deleted file mode 100644 index a78c9e9d5f..0000000000 --- a/submodules/TelegramUI/third-party/bc1/ColorVec.h +++ /dev/null @@ -1,103 +0,0 @@ -//----------------------------------------------------------------------------- -// Copyright (c) 2017 Ricardo David CM (http://ricardo-david.com), -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -// sell copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -// IN THE SOFTWARE. -//----------------------------------------------------------------------------- - -#ifndef RL_COLOR_VEC_H -#define RL_COLOR_VEC_H - -#include "TypeDefinitions.h" -#include - -namespace DTX1CompressorDecompressor -{ - const unsigned short RED_MASK = DWRMASK; - const unsigned short GREEN_MASK = DWGMASK; - const unsigned short BLUE_MASK = DWBMASK; - - // structure to represent a pixel - // 3 bytes = 24 bits per pixel (but is going to be padded to 4 bytes anyway so we make it explicit) - struct Pixel24Bit - { - unsigned char bgra[4]; // 4 to make explicit the padding - - Pixel24Bit() - { - bgra[0] = 0; - bgra[1] = 0; - bgra[2] = 0; - bgra[3] = 0; - } - - void SetPixel24Bit(const Pixel24Bit & other) - { - bgra[0] = other.bgra[0]; - bgra[1] = other.bgra[1]; - bgra[2] = other.bgra[2]; - bgra[3] = 0; - } - - const int SqrDistanceTo(const Pixel24Bit & other) const - { - int db = (bgra[0] - other.bgra[0]); - int dg = (bgra[1] - other.bgra[1]); - int dr = (bgra[2] - other.bgra[2]); - return db*db + dg*dg + dr*dr; - } - - const int GetLuminance() const - { - return (bgra[2] + bgra[1] * 2 + bgra[0]); - } - - unsigned short ConvertTo565() - { - // Adapted from : - // https://msdn.microsoft.com/en-us/library/windows/desktop/dd390989(v=vs.85).aspx - - return ((bgra[2] >> 3) << 11) | ((bgra[1] >> 2) << 5) | (bgra[0] >> 3); - } - - void LoadFrom565(unsigned short rgb) - { - // Adapted from : - // https://msdn.microsoft.com/en-us/library/windows/desktop/dd390989(v=vs.85).aspx - - unsigned char redVal = ((rgb & RED_MASK) >> 11) << 3; - unsigned char greenVal = ((rgb & GREEN_MASK) >> 5) << 2; - unsigned char blueVal = (rgb & BLUE_MASK) << 3; - - bgra[0] = blueVal; - bgra[1] = greenVal; - bgra[2] = redVal; - bgra[3] = 0; - } - - void PrintColor() const - { - std::cout << "(B,G,R) = (" << (int)bgra[0] << ", " << (int)bgra[1] << " , " << (int)bgra[2] << ");" << std::endl; - } - }; - -} - - -#endif // !RL_COLOR_VEC_H - diff --git a/submodules/TelegramUI/third-party/bc1/DDSImage.cpp b/submodules/TelegramUI/third-party/bc1/DDSImage.cpp deleted file mode 100644 index 8c0101cfe3..0000000000 --- a/submodules/TelegramUI/third-party/bc1/DDSImage.cpp +++ /dev/null @@ -1,222 +0,0 @@ -//----------------------------------------------------------------------------- -// Copyright (c) 2017 Ricardo David CM (http://ricardo-david.com), -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -// sell copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -// IN THE SOFTWARE. -//----------------------------------------------------------------------------- - -#include "DDSImage.h" -#include -#include -#include - -namespace DTX1CompressorDecompressor -{ - BC1DDSImage::BC1DDSImage() : Image() - { - } - - BC1DDSImage::BC1DDSImage(const BC1DDSImage & other) - { - m_width = other.m_width; - m_height = other.m_height; - m_header = other.m_header; - m_dwMagic = other.m_dwMagic; - - if (other.m_data == nullptr) - m_data = nullptr; - else - { - unsigned int nBlocks = (m_width / 4) * (m_height / 4); - unsigned int blockSize = 8; - unsigned int dataByteSize = nBlocks * blockSize; - std::memcpy(m_data, other.m_data, dataByteSize); - } - } - - BC1DDSImage::BC1DDSImage(BC1DDSImage && other) : Image() - { - Swap(*this, other); - } - - BC1DDSImage & BC1DDSImage::operator=(BC1DDSImage other) - { - Swap(*this, other); - return *this; - } - - void Swap(BC1DDSImage & img1, BC1DDSImage & img2) - { - using std::swap; - - swap(img1.m_dwMagic, img2.m_dwMagic); - swap(img1.m_header, img2.m_header); - swap(img1.m_width, img2.m_width); - swap(img1.m_height, img2.m_height); - swap(img1.m_data, img2.m_data); - } - - BC1DDSImage::~BC1DDSImage() - { - } - - bool BC1DDSImage::InitWithData(unsigned char * data, unsigned int width, unsigned int height) - { - // checks for valid data - if (data == nullptr) - { - std::cout << "BC1DDSImage::InitWithData:: data is null !" << std::endl; - return false; - } - - // check for image size width and height multiples of 4 - if (width % 4 != 0 || height % 4 != 0) - { - std::cout << "BC1DDSImage::InitWithData:: the image is not supported. It needs width and height multiple of 4..." << std::endl; - return false; - } - - // we will overwrite previous data contained in this BMPImage instance - ReleaseImageMemory(); - - // take ownership of the data - m_data = data; - m_width = width; - m_height = height; - - // populate headers - DWORD sizeOfHeader = sizeof(DDS_HEADER); - DWORD sizeOfPixelFormat = sizeof(DDS_PIXELFORMAT); - DWORD blockSize = 8; // 8 bytes - - m_dwMagic = DDS_FORMAT_TAG; - - m_header.dwSize = sizeOfHeader; - m_header.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH | DDSD_PIXELFORMAT; - m_header.dwHeight = height; - m_header.dwWidth = width; - m_header.dwPitchOrLinearSize = 0; - m_header.dwDepth = 0; - m_header.dwMipMapCount = 0; - m_header.dwCaps1 = DDSCAPS_TEXTURE; - m_header.dwCaps2 = 0; - - m_header.ddspf.dwSize = sizeOfPixelFormat; - m_header.ddspf.dwFlags = DDPF_FOURCC; - m_header.ddspf.dwFourCC = DXT1; - m_header.ddspf.dwRGBBitCount = 0; - m_header.ddspf.dwRBitMask = 0; - m_header.ddspf.dwGBitMask = 0; - m_header.ddspf.dwBBitMask = 0; - m_header.ddspf.dwABitMask = 0; - - return true; - } - - bool BC1DDSImage::ReadFromFile(const char * fileName) - { - std::ifstream imgFile(fileName, std::ifstream::binary); - - if (imgFile.is_open()) - { - // read magic number to DDS FORMAT - imgFile.read(reinterpret_cast(&m_dwMagic), sizeof(m_dwMagic)); - - if (m_dwMagic != DDS_FORMAT_TAG) - { - std::cout << " file was not found to be a valid DDS image... " << std::endl; - return false; - } - - // read header - imgFile.read(reinterpret_cast(&m_header), sizeof(m_header)); - - // check is DTX1 - if (m_header.ddspf.dwFlags != DDPF_FOURCC || m_header.ddspf.dwFourCC != DXT1) - { - std::cout << " the image is not a valid DXT1 image file ..." << std::endl; - return false; - } - - // check for image size width and height multiples of 4 - if (m_header.dwHeight % 4 != 0 || m_header.dwWidth % 4 != 0) - { - std::cout << " the image is not supported. It needs width and height multiple of 4..." << std::endl; - return false; - } - - // make sure we delete memory for any previous image we had loaded into this instance - ReleaseImageMemory(); - - // allocate the memory needed for all our data - m_width = static_cast(m_header.dwWidth); - m_height = static_cast(m_header.dwHeight); - - unsigned int nBlocks = (m_width / 4) * (m_height / 4); - unsigned int blockSize = 8; - unsigned int dataByteSize = nBlocks * blockSize; - - m_data = new unsigned char[dataByteSize]; - - // read color data - imgFile.read(reinterpret_cast(m_data), dataByteSize); - - // release the file - imgFile.close(); - } - else - { - std::cout << std::endl << " cannot read file : " << fileName << std::endl; - return false; - } - - return true; - } - - bool BC1DDSImage::SaveToFile(const char * fileName) - { - if (m_data == nullptr) - return false; - - std::ofstream imgFile(fileName, std::ifstream::binary); - - if (imgFile.is_open()) - { - // write headers - imgFile.write(reinterpret_cast(&m_dwMagic), sizeof(m_dwMagic)); - imgFile.write(reinterpret_cast(&m_header), sizeof(m_header)); - - // write data - unsigned int nBlocks = (m_width / 4) * (m_height / 4); - unsigned int blockSize = 8; - unsigned int dataByteSize = nBlocks * blockSize; - - imgFile.write(reinterpret_cast(m_data), dataByteSize); - - // release file - imgFile.close(); - } - else - { - std::cout << std::endl << "error creating or opening file : " << fileName << std::endl; - return false; - } - - return true; - } -} \ No newline at end of file diff --git a/submodules/TelegramUI/third-party/bc1/DDSImage.h b/submodules/TelegramUI/third-party/bc1/DDSImage.h deleted file mode 100644 index 4a00b9a6e8..0000000000 --- a/submodules/TelegramUI/third-party/bc1/DDSImage.h +++ /dev/null @@ -1,51 +0,0 @@ -//----------------------------------------------------------------------------- -// Copyright (c) 2017 Ricardo David CM (http://ricardo-david.com), -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -// sell copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -// IN THE SOFTWARE. -//----------------------------------------------------------------------------- - -#ifndef RL_DDS_IMAGE_H -#define RL_DDS_IMAGE_H - -#include "Image.h" - -namespace DTX1CompressorDecompressor -{ - // class for loading and handling BC1 DDS images - class BC1DDSImage : public Image - { - public: - BC1DDSImage(); - BC1DDSImage(const BC1DDSImage & other); - BC1DDSImage(BC1DDSImage && other); - BC1DDSImage& operator=(BC1DDSImage other); - friend void Swap(BC1DDSImage & img1, BC1DDSImage & img2); - ~BC1DDSImage(); - - // Image interface implementation - bool InitWithData(unsigned char* data, unsigned int width, unsigned int height); - bool ReadFromFile(const char* fileName); - bool SaveToFile(const char* fileName); - - private: - DWORD m_dwMagic; - DDS_HEADER m_header; - }; -} -#endif \ No newline at end of file diff --git a/submodules/TelegramUI/third-party/bc1/Image.cpp b/submodules/TelegramUI/third-party/bc1/Image.cpp deleted file mode 100644 index e08e779413..0000000000 --- a/submodules/TelegramUI/third-party/bc1/Image.cpp +++ /dev/null @@ -1,43 +0,0 @@ -//----------------------------------------------------------------------------- -// Copyright (c) 2017 Ricardo David CM (http://ricardo-david.com), -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -// sell copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -// IN THE SOFTWARE. -//----------------------------------------------------------------------------- - -#include "Image.h" - -namespace DTX1CompressorDecompressor -{ - Image::~Image() - { - ReleaseImageMemory(); - } - - void Image::ReleaseImageMemory() - { - if (m_ownData) { - delete[] m_data; - } - - m_data = nullptr; - m_width = 0; - m_height = 0; - } - -} diff --git a/submodules/TelegramUI/third-party/bc1/Image.h b/submodules/TelegramUI/third-party/bc1/Image.h deleted file mode 100644 index a1b5d729b8..0000000000 --- a/submodules/TelegramUI/third-party/bc1/Image.h +++ /dev/null @@ -1,79 +0,0 @@ -//----------------------------------------------------------------------------- -// Copyright (c) 2017 Ricardo David CM (http://ricardo-david.com), -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -// sell copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -// IN THE SOFTWARE. -//----------------------------------------------------------------------------- - -#ifndef RL_IMAGE_H -#define RL_IMAGE_H - -#include "TypeDefinitions.h" -#include "ColorVec.h" - -namespace DTX1CompressorDecompressor -{ - // base class for all images - class Image - { - public: - virtual ~Image(); - - // frees the image data if any - void ReleaseImageMemory(); - - // a initalizator with data loaded from other sources - virtual bool InitWithData(unsigned char* data, unsigned int width, unsigned int height) = 0; - - // initializator from file - virtual bool ReadFromFile(const char* fileName) = 0; - - // saves the image to disc - virtual bool SaveToFile(const char* fileName) = 0; - - // gets the width in pixels of the loaded image - inline unsigned int GetWidth() const - { - return m_width; - } - - // gets the height in pixels of the loaded image - inline unsigned int GetHeight() const - { - return m_height; - } - - // gets the data pointer - inline unsigned char* GetData() const - { - return m_data; - } - - public: - Image() : m_data(nullptr), m_width(0), m_height(0) {}; - - bool m_ownData; - unsigned char* m_data; - unsigned int m_width; - unsigned int m_height; - }; - -} - - -#endif // !RL_IMAGE_H diff --git a/submodules/TelegramUI/third-party/bc1/TextureCompression.cpp b/submodules/TelegramUI/third-party/bc1/TextureCompression.cpp deleted file mode 100644 index e99405dfd2..0000000000 --- a/submodules/TelegramUI/third-party/bc1/TextureCompression.cpp +++ /dev/null @@ -1,37 +0,0 @@ -#import "TextureCompression.h" - -#import "astc.h" - -void compressRGBAToBC1(uint8_t const * _Nonnull argb, int width, int height, uint8_t * _Nonnull bc1) { - BgraImage image(width, height, (uint8_t *)argb); - CompressedImage compressed(width, height, 4, 4, 16); - compress_astc(image, &compressed); - /*Javelin::RgbaBitmap bitmap(width, height); - uint8_t *data = (uint8_t *)bitmap.GetData(); - for (int i = 0; i < width * height; i++) { - data[i * 4 + 0] = argb[i * 4 + 0]; - data[i * 4 + 1] = argb[i * 4 + 1]; - data[i * 4 + 2] = argb[i * 4 + 2]; - data[i * 4 + 3] = argb[i * 4 + 3]; - } - Javelin::PvrTcEncoder::EncodeRgb4Bpp(bc1, bitmap);*/ -} - -void decompressBC1ToRGBA(uint8_t const * _Nonnull bc1, int width, int height, uint8_t * _Nonnull argb) { - /*uint8_t *data = (uint8_t *)malloc(width * height * 3); - Javelin::PvrTcDecoder::DecodeRgb4Bpp((Javelin::ColorRgba *)data, Javelin::Point2(width, height), bc1); - for (int i = 0; i < width * height; i++) { - uint8_t r = data[i * 3 + 0]; - uint8_t g = data[i * 3 + 1]; - uint8_t b = data[i * 3 + 2]; - argb[i * 4 + 3] = 255; - argb[i * 4 + 2] = b; - argb[i * 4 + 1] = g; - argb[i * 4 + 0] = r; - } - free(data);*/ -} - -void compressRGBAToETC2(uint8_t const * _Nonnull argb, int width, int height, uint8_t * _Nonnull etc2) { - -} diff --git a/submodules/TelegramUI/third-party/bc1/TextureCompression.h b/submodules/TelegramUI/third-party/bc1/TextureCompression.h deleted file mode 100644 index b013ac17d2..0000000000 --- a/submodules/TelegramUI/third-party/bc1/TextureCompression.h +++ /dev/null @@ -1,13 +0,0 @@ -#import - -#ifdef __cplusplus -extern "C" { -#endif - -void compressRGBAToBC1(uint8_t const * _Nonnull argb, int width, int height, uint8_t * _Nonnull bc1); -void decompressBC1ToRGBA(uint8_t const * _Nonnull bc1, int width, int height, uint8_t * _Nonnull argb); -void compressRGBAToETC2(uint8_t const * _Nonnull argb, int width, int height, uint8_t * _Nonnull etc2); - -#ifdef __cplusplus -} -#endif diff --git a/submodules/TelegramUI/third-party/bc1/TypeDefinitions.h b/submodules/TelegramUI/third-party/bc1/TypeDefinitions.h deleted file mode 100644 index fad2a615f7..0000000000 --- a/submodules/TelegramUI/third-party/bc1/TypeDefinitions.h +++ /dev/null @@ -1,126 +0,0 @@ -//----------------------------------------------------------------------------- -// Copyright (c) 2017 Ricardo David CM (http://ricardo-david.com), -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -// sell copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -// IN THE SOFTWARE. -//----------------------------------------------------------------------------- - -#ifndef RL_TYPE_DEF_H -#define RL_TYPE_DEF_H - -namespace DTX1CompressorDecompressor -{ - - // 19778 = 0x4D42 = 'BM' for bitmap format , 0x20534444 = "DDS" for DDS format - // check https://msdn.microsoft.com/en-us/library/vs/alm/dd183374(v=vs.85).aspx (BMP) - // https://msdn.microsoft.com/en-us/library/windows/desktop/bb943991(v=vs.85).aspx (DDS) - #define BM_FORMAT_TAG 0x4D42 - #define DDS_FORMAT_TAG 0x20534444 - - // DDS flags : https://msdn.microsoft.com/en-us/library/windows/desktop/bb943982(v=vs.85).aspx - #define DDSD_CAPS 0x1 - #define DDSD_HEIGHT 0x2 - #define DDSD_WIDTH 0x4 - #define DDSD_PIXELFORMAT 0x1000 - #define DDSCAPS_TEXTURE 0x1000 - - #define DWRMASK 0xF800 - #define DWGMASK 0x7E0 - #define DWBMASK 0x1F - - #define DDPF_FOURCC 0x4 - #define DXT1 0x31545844 - - typedef int LONG; // 4 bytes - typedef unsigned short WORD; // 2 bytes - typedef unsigned int DWORD; // 4 bytes - -// this pragma is needed for memory alignment -// without this the WORDs of the structs below will be padded to 4 bytes, then the structs will be bigger than we want - -#pragma pack(2) - - // Adapted from the Microsoft documentation: - // https://msdn.microsoft.com/en-us/library/vs/alm/dd183392(v=vs.85).aspx - - // 14 bytes - struct BITMAPFILEHEADER - { - WORD bfType; - DWORD bfSize; - WORD bfReserved1; - WORD bfReserved2; - DWORD bfOffBits; - }; - - // 40 bytes - struct BITMAPINFOHEADER - { - DWORD biSize; - LONG biWidth; - LONG biHeight; - WORD biPlanes; - WORD biBitCount; - DWORD biCompression; - DWORD biSizeImage; - LONG biXPelsPerMeter; - LONG biYPelsPerMeter; - DWORD biClrUsed; - DWORD biClrImportant; - }; - - // Adapted from the Microsoft documentation: - // https://msdn.microsoft.com/en-us/library/windows/desktop/bb943984(v=vs.85).aspx - // https://msdn.microsoft.com/en-us/library/windows/desktop/bb943982(v=vs.85).aspx - - // 32 bytes - struct DDS_PIXELFORMAT - { - DWORD dwSize; - DWORD dwFlags; - DWORD dwFourCC; - DWORD dwRGBBitCount; - DWORD dwRBitMask; - DWORD dwGBitMask; - DWORD dwBBitMask; - DWORD dwABitMask; - }; - - // 124 bytes - struct DDS_HEADER - { - DWORD dwSize; - DWORD dwFlags; - DWORD dwHeight; - DWORD dwWidth; - DWORD dwPitchOrLinearSize; - DWORD dwDepth; - DWORD dwMipMapCount; - DWORD dwReserved1[11]; - DDS_PIXELFORMAT ddspf; - DWORD dwCaps1; - DWORD dwCaps2; - DWORD dwReserved2[3]; - }; - -#pragma pack() - -} - -#endif // !RL_TYPE_DEF_H - diff --git a/submodules/YuvConversion/Info.plist b/submodules/YuvConversion/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/YuvConversion/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/YUV.h b/submodules/YuvConversion/Sources/YUV.h similarity index 100% rename from submodules/TelegramUI/TelegramUI/YUV.h rename to submodules/YuvConversion/Sources/YUV.h diff --git a/submodules/TelegramUI/TelegramUI/YUV.m b/submodules/YuvConversion/Sources/YUV.m similarity index 100% rename from submodules/TelegramUI/TelegramUI/YUV.m rename to submodules/YuvConversion/Sources/YUV.m diff --git a/submodules/YuvConversion/Sources/YuvConversion.h b/submodules/YuvConversion/Sources/YuvConversion.h new file mode 100644 index 0000000000..4da2e49979 --- /dev/null +++ b/submodules/YuvConversion/Sources/YuvConversion.h @@ -0,0 +1,11 @@ +#import + +//! Project version number for YuvConversion. +FOUNDATION_EXPORT double YuvConversionVersionNumber; + +//! Project version string for YuvConversion. +FOUNDATION_EXPORT const unsigned char YuvConversionVersionString[]; + +#import + + diff --git a/submodules/YuvConversion/YuvConversion.xcodeproj/project.pbxproj b/submodules/YuvConversion/YuvConversion.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..43d47d6dec --- /dev/null +++ b/submodules/YuvConversion/YuvConversion.xcodeproj/project.pbxproj @@ -0,0 +1,532 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E3E782304B63E0049C28B /* YuvConversion.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E3E762304B63E0049C28B /* YuvConversion.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E3E842304B6BA0049C28B /* YUV.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E3E822304B6BA0049C28B /* YUV.m */; }; + D03E3E852304B6BA0049C28B /* YUV.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E3E832304B6BA0049C28B /* YUV.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E3E882304B6D30049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E872304B6D30049C28B /* Foundation.framework */; }; + D03E3E8A2304B6D80049C28B /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E892304B6D80049C28B /* Accelerate.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E3E732304B63E0049C28B /* YuvConversion.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = YuvConversion.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3E762304B63E0049C28B /* YuvConversion.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YuvConversion.h; sourceTree = ""; }; + D03E3E772304B63E0049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E3E822304B6BA0049C28B /* YUV.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUV.m; sourceTree = ""; }; + D03E3E832304B6BA0049C28B /* YUV.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUV.h; sourceTree = ""; }; + D03E3E872304B6D30049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E3E892304B6D80049C28B /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E3E702304B63E0049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3E8A2304B6D80049C28B /* Accelerate.framework in Frameworks */, + D03E3E882304B6D30049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E3E692304B63E0049C28B = { + isa = PBXGroup; + children = ( + D03E3E772304B63E0049C28B /* Info.plist */, + D03E3E752304B63E0049C28B /* Sources */, + D03E3E742304B63E0049C28B /* Products */, + D03E3E862304B6D20049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E3E742304B63E0049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E3E732304B63E0049C28B /* YuvConversion.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E3E752304B63E0049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E3E832304B6BA0049C28B /* YUV.h */, + D03E3E822304B6BA0049C28B /* YUV.m */, + D03E3E762304B63E0049C28B /* YuvConversion.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E3E862304B6D20049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E3E892304B6D80049C28B /* Accelerate.framework */, + D03E3E872304B6D30049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E3E6E2304B63E0049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3E782304B63E0049C28B /* YuvConversion.h in Headers */, + D03E3E852304B6BA0049C28B /* YUV.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E3E722304B63E0049C28B /* YuvConversion */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E3E7B2304B63E0049C28B /* Build configuration list for PBXNativeTarget "YuvConversion" */; + buildPhases = ( + D03E3E6E2304B63E0049C28B /* Headers */, + D03E3E6F2304B63E0049C28B /* Sources */, + D03E3E702304B63E0049C28B /* Frameworks */, + D03E3E712304B63E0049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = YuvConversion; + productName = YuvConversion; + productReference = D03E3E732304B63E0049C28B /* YuvConversion.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E3E6A2304B63E0049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E3E722304B63E0049C28B = { + CreatedOnToolsVersion = 10.3; + }; + }; + }; + buildConfigurationList = D03E3E6D2304B63E0049C28B /* Build configuration list for PBXProject "YuvConversion" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E3E692304B63E0049C28B; + productRefGroup = D03E3E742304B63E0049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E3E722304B63E0049C28B /* YuvConversion */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E3E712304B63E0049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E3E6F2304B63E0049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3E842304B6BA0049C28B /* YUV.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E3E792304B63E0049C28B /* 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; + }; + D03E3E7A2304B63E0049C28B /* 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; + }; + D03E3E7C2304B63E0049C28B /* 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.YuvConversion; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugAppStoreLLC; + }; + D03E3E7D2304B63E0049C28B /* 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.YuvConversion; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E3E7E2304B6680049C28B /* 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; + }; + D03E3E7F2304B6680049C28B /* 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.YuvConversion; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugHockeyapp; + }; + D03E3E802304B6780049C28B /* 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; + }; + D03E3E812304B6780049C28B /* 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.YuvConversion; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseHockeyappInternal; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D03E3E6D2304B63E0049C28B /* Build configuration list for PBXProject "YuvConversion" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E3E792304B63E0049C28B /* DebugAppStoreLLC */, + D03E3E7E2304B6680049C28B /* DebugHockeyapp */, + D03E3E7A2304B63E0049C28B /* ReleaseAppStoreLLC */, + D03E3E802304B6780049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E3E7B2304B63E0049C28B /* Build configuration list for PBXNativeTarget "YuvConversion" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E3E7C2304B63E0049C28B /* DebugAppStoreLLC */, + D03E3E7F2304B6680049C28B /* DebugHockeyapp */, + D03E3E7D2304B63E0049C28B /* ReleaseAppStoreLLC */, + D03E3E812304B6780049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E3E6A2304B63E0049C28B /* Project object */; +} From a0e868293cfc5950197a382a4ec5e3cfc977df58 Mon Sep 17 00:00:00 2001 From: Peter <> Date: Thu, 15 Aug 2019 01:14:19 +0300 Subject: [PATCH 03/11] Relax packet size check --- .../MediaPlayer/Sources/FFMpegMediaFrameSourceContext.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/MediaPlayer/Sources/FFMpegMediaFrameSourceContext.swift b/submodules/MediaPlayer/Sources/FFMpegMediaFrameSourceContext.swift index 891b215e93..51743bc2db 100644 --- a/submodules/MediaPlayer/Sources/FFMpegMediaFrameSourceContext.swift +++ b/submodules/MediaPlayer/Sources/FFMpegMediaFrameSourceContext.swift @@ -75,7 +75,7 @@ private func readPacketCallback(userData: UnsafeMutableRawPointer?, buffer: Unsa let readCount = min(resourceSize - context.readingOffset, Int(bufferSize)) let requestRange: Range = context.readingOffset ..< (context.readingOffset + readCount) - precondition(readCount < 1 * 1024 * 1024) + precondition(readCount < 3 * 1024 * 1024) if let maximumFetchSize = context.maximumFetchSize { context.touchedRanges.insert(integersIn: requestRange) From b77b0633c6ae7f6abde3ebc7832f9882936051ac Mon Sep 17 00:00:00 2001 From: Peter <> Date: Thu, 15 Aug 2019 01:26:57 +0300 Subject: [PATCH 04/11] Refactor JoinLinkPreviewUI and LanguageLinkPreviewUI --- .../contents.xcworkspacedata | 6 + submodules/JoinLinkPreviewUI/Info.plist | 22 + .../project.pbxproj | 599 ++++++++++++++++++ .../Sources}/JoinLinkPreviewController.swift | 0 .../JoinLinkPreviewControllerNode.swift | 0 .../JoinLinkPreviewPeerContentNode.swift | 0 .../Sources/JoinLinkPreviewUI.h | 19 + submodules/LanguageLinkPreviewUI/Info.plist | 22 + .../project.pbxproj | 591 +++++++++++++++++ .../LanguageLinkPreviewContentNode.swift | 0 .../LanguageLinkPreviewController.swift | 0 .../LanguageLinkPreviewControllerNode.swift | 0 .../Sources/LanguageLinkPreviewUI.h | 19 + .../ChatRecentActionsControllerNode.swift | 2 + .../TelegramUI/OpenResolvedUrl.swift | 2 + .../TelegramUI/TextLinkHandling.swift | 1 + .../project.pbxproj | 48 +- 17 files changed, 1291 insertions(+), 40 deletions(-) create mode 100644 submodules/JoinLinkPreviewUI/Info.plist create mode 100644 submodules/JoinLinkPreviewUI/JoinLinkPreviewUI_Xcode.xcodeproj/project.pbxproj rename submodules/{TelegramUI/TelegramUI => JoinLinkPreviewUI/Sources}/JoinLinkPreviewController.swift (100%) rename submodules/{TelegramUI/TelegramUI => JoinLinkPreviewUI/Sources}/JoinLinkPreviewControllerNode.swift (100%) rename submodules/{TelegramUI/TelegramUI => JoinLinkPreviewUI/Sources}/JoinLinkPreviewPeerContentNode.swift (100%) create mode 100644 submodules/JoinLinkPreviewUI/Sources/JoinLinkPreviewUI.h create mode 100644 submodules/LanguageLinkPreviewUI/Info.plist create mode 100644 submodules/LanguageLinkPreviewUI/LanguageLinkPreviewUI_Xcode.xcodeproj/project.pbxproj rename submodules/{TelegramUI/TelegramUI => LanguageLinkPreviewUI/Sources}/LanguageLinkPreviewContentNode.swift (100%) rename submodules/{TelegramUI/TelegramUI => LanguageLinkPreviewUI/Sources}/LanguageLinkPreviewController.swift (100%) rename submodules/{TelegramUI/TelegramUI => LanguageLinkPreviewUI/Sources}/LanguageLinkPreviewControllerNode.swift (100%) create mode 100644 submodules/LanguageLinkPreviewUI/Sources/LanguageLinkPreviewUI.h diff --git a/Telegram-iOS.xcworkspace/contents.xcworkspacedata b/Telegram-iOS.xcworkspace/contents.xcworkspacedata index 78ab735223..e4890e3bc5 100644 --- a/Telegram-iOS.xcworkspace/contents.xcworkspacedata +++ b/Telegram-iOS.xcworkspace/contents.xcworkspacedata @@ -418,6 +418,12 @@ + + + + diff --git a/submodules/JoinLinkPreviewUI/Info.plist b/submodules/JoinLinkPreviewUI/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/JoinLinkPreviewUI/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/JoinLinkPreviewUI/JoinLinkPreviewUI_Xcode.xcodeproj/project.pbxproj b/submodules/JoinLinkPreviewUI/JoinLinkPreviewUI_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..2fac10a21c --- /dev/null +++ b/submodules/JoinLinkPreviewUI/JoinLinkPreviewUI_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,599 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E3E9E2304BF820049C28B /* JoinLinkPreviewUI.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E3E9C2304BF820049C28B /* JoinLinkPreviewUI.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E3EAB2304C0120049C28B /* JoinLinkPreviewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3EA82304C0110049C28B /* JoinLinkPreviewController.swift */; }; + D03E3EAC2304C0120049C28B /* JoinLinkPreviewControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3EA92304C0110049C28B /* JoinLinkPreviewControllerNode.swift */; }; + D03E3EAD2304C0120049C28B /* JoinLinkPreviewPeerContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3EAA2304C0110049C28B /* JoinLinkPreviewPeerContentNode.swift */; }; + D03E3EB02304C01F0049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3EAF2304C01F0049C28B /* Foundation.framework */; }; + D03E3EB22304C0210049C28B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3EB12304C0210049C28B /* UIKit.framework */; }; + D03E3EB42304C0240049C28B /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3EB32304C0240049C28B /* Display.framework */; }; + D03E3EB62304C0270049C28B /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3EB52304C0270049C28B /* AsyncDisplayKit.framework */; }; + D03E3EB82304C02B0049C28B /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3EB72304C02B0049C28B /* Postbox.framework */; }; + D03E3EBA2304C02F0049C28B /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3EB92304C02F0049C28B /* TelegramCore.framework */; }; + D03E3EBC2304C0330049C28B /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3EBB2304C0330049C28B /* SwiftSignalKit.framework */; }; + D03E3EBE2304C0380049C28B /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3EBD2304C0380049C28B /* TelegramPresentationData.framework */; }; + D03E3EC02304C03C0049C28B /* AccountContext.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3EBF2304C03C0049C28B /* AccountContext.framework */; }; + D03E3EC22304C0450049C28B /* AlertUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3EC12304C0450049C28B /* AlertUI.framework */; }; + D03E3EC42304C04D0049C28B /* ShareController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3EC32304C04D0049C28B /* ShareController.framework */; }; + D03E3EC62304C05C0049C28B /* SelectablePeerNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3EC52304C05C0049C28B /* SelectablePeerNode.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E3E992304BF820049C28B /* JoinLinkPreviewUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = JoinLinkPreviewUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3E9C2304BF820049C28B /* JoinLinkPreviewUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JoinLinkPreviewUI.h; sourceTree = ""; }; + D03E3E9D2304BF820049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E3EA82304C0110049C28B /* JoinLinkPreviewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JoinLinkPreviewController.swift; sourceTree = ""; }; + D03E3EA92304C0110049C28B /* JoinLinkPreviewControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JoinLinkPreviewControllerNode.swift; sourceTree = ""; }; + D03E3EAA2304C0110049C28B /* JoinLinkPreviewPeerContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JoinLinkPreviewPeerContentNode.swift; sourceTree = ""; }; + D03E3EAF2304C01F0049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E3EB12304C0210049C28B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D03E3EB32304C0240049C28B /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3EB52304C0270049C28B /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3EB72304C02B0049C28B /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3EB92304C02F0049C28B /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3EBB2304C0330049C28B /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3EBD2304C0380049C28B /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3EBF2304C03C0049C28B /* AccountContext.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AccountContext.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3EC12304C0450049C28B /* AlertUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AlertUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3EC32304C04D0049C28B /* ShareController.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ShareController.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3EC52304C05C0049C28B /* SelectablePeerNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SelectablePeerNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E3E962304BF820049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3EC62304C05C0049C28B /* SelectablePeerNode.framework in Frameworks */, + D03E3EC42304C04D0049C28B /* ShareController.framework in Frameworks */, + D03E3EC22304C0450049C28B /* AlertUI.framework in Frameworks */, + D03E3EC02304C03C0049C28B /* AccountContext.framework in Frameworks */, + D03E3EBE2304C0380049C28B /* TelegramPresentationData.framework in Frameworks */, + D03E3EBC2304C0330049C28B /* SwiftSignalKit.framework in Frameworks */, + D03E3EBA2304C02F0049C28B /* TelegramCore.framework in Frameworks */, + D03E3EB82304C02B0049C28B /* Postbox.framework in Frameworks */, + D03E3EB62304C0270049C28B /* AsyncDisplayKit.framework in Frameworks */, + D03E3EB42304C0240049C28B /* Display.framework in Frameworks */, + D03E3EB22304C0210049C28B /* UIKit.framework in Frameworks */, + D03E3EB02304C01F0049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E3E8F2304BF820049C28B = { + isa = PBXGroup; + children = ( + D03E3E9D2304BF820049C28B /* Info.plist */, + D03E3E9B2304BF820049C28B /* Sources */, + D03E3E9A2304BF820049C28B /* Products */, + D03E3EAE2304C01D0049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E3E9A2304BF820049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E3E992304BF820049C28B /* JoinLinkPreviewUI.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E3E9B2304BF820049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E3EA82304C0110049C28B /* JoinLinkPreviewController.swift */, + D03E3EA92304C0110049C28B /* JoinLinkPreviewControllerNode.swift */, + D03E3EAA2304C0110049C28B /* JoinLinkPreviewPeerContentNode.swift */, + D03E3E9C2304BF820049C28B /* JoinLinkPreviewUI.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E3EAE2304C01D0049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E3EC52304C05C0049C28B /* SelectablePeerNode.framework */, + D03E3EC32304C04D0049C28B /* ShareController.framework */, + D03E3EC12304C0450049C28B /* AlertUI.framework */, + D03E3EBF2304C03C0049C28B /* AccountContext.framework */, + D03E3EBD2304C0380049C28B /* TelegramPresentationData.framework */, + D03E3EBB2304C0330049C28B /* SwiftSignalKit.framework */, + D03E3EB92304C02F0049C28B /* TelegramCore.framework */, + D03E3EB72304C02B0049C28B /* Postbox.framework */, + D03E3EB52304C0270049C28B /* AsyncDisplayKit.framework */, + D03E3EB32304C0240049C28B /* Display.framework */, + D03E3EB12304C0210049C28B /* UIKit.framework */, + D03E3EAF2304C01F0049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E3E942304BF820049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3E9E2304BF820049C28B /* JoinLinkPreviewUI.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E3E982304BF820049C28B /* JoinLinkPreviewUI */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E3EA12304BF820049C28B /* Build configuration list for PBXNativeTarget "JoinLinkPreviewUI" */; + buildPhases = ( + D03E3E942304BF820049C28B /* Headers */, + D03E3E952304BF820049C28B /* Sources */, + D03E3E962304BF820049C28B /* Frameworks */, + D03E3E972304BF820049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = JoinLinkPreviewUI; + productName = JoinLinkPreviewUI; + productReference = D03E3E992304BF820049C28B /* JoinLinkPreviewUI.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E3E902304BF820049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E3E982304BF820049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E3E932304BF820049C28B /* Build configuration list for PBXProject "JoinLinkPreviewUI_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E3E8F2304BF820049C28B; + productRefGroup = D03E3E9A2304BF820049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E3E982304BF820049C28B /* JoinLinkPreviewUI */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E3E972304BF820049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E3E952304BF820049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3EAC2304C0120049C28B /* JoinLinkPreviewControllerNode.swift in Sources */, + D03E3EAD2304C0120049C28B /* JoinLinkPreviewPeerContentNode.swift in Sources */, + D03E3EAB2304C0120049C28B /* JoinLinkPreviewController.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E3E9F2304BF820049C28B /* 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; + }; + D03E3EA02304BF820049C28B /* 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; + }; + D03E3EA22304BF820049C28B /* 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"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.JoinLinkPreviewUI; + 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; + }; + D03E3EA32304BF820049C28B /* 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"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.JoinLinkPreviewUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E3EA42304BFC20049C28B /* 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; + }; + D03E3EA52304BFC20049C28B /* 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"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.JoinLinkPreviewUI; + 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; + }; + D03E3EA62304BFCA0049C28B /* 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; + }; + D03E3EA72304BFCA0049C28B /* 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"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.JoinLinkPreviewUI; + 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 */ + D03E3E932304BF820049C28B /* Build configuration list for PBXProject "JoinLinkPreviewUI_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E3E9F2304BF820049C28B /* DebugAppStoreLLC */, + D03E3EA42304BFC20049C28B /* DebugHockeyapp */, + D03E3EA02304BF820049C28B /* ReleaseAppStoreLLC */, + D03E3EA62304BFCA0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E3EA12304BF820049C28B /* Build configuration list for PBXNativeTarget "JoinLinkPreviewUI" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E3EA22304BF820049C28B /* DebugAppStoreLLC */, + D03E3EA52304BFC20049C28B /* DebugHockeyapp */, + D03E3EA32304BF820049C28B /* ReleaseAppStoreLLC */, + D03E3EA72304BFCA0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E3E902304BF820049C28B /* Project object */; +} diff --git a/submodules/TelegramUI/TelegramUI/JoinLinkPreviewController.swift b/submodules/JoinLinkPreviewUI/Sources/JoinLinkPreviewController.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/JoinLinkPreviewController.swift rename to submodules/JoinLinkPreviewUI/Sources/JoinLinkPreviewController.swift diff --git a/submodules/TelegramUI/TelegramUI/JoinLinkPreviewControllerNode.swift b/submodules/JoinLinkPreviewUI/Sources/JoinLinkPreviewControllerNode.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/JoinLinkPreviewControllerNode.swift rename to submodules/JoinLinkPreviewUI/Sources/JoinLinkPreviewControllerNode.swift diff --git a/submodules/TelegramUI/TelegramUI/JoinLinkPreviewPeerContentNode.swift b/submodules/JoinLinkPreviewUI/Sources/JoinLinkPreviewPeerContentNode.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/JoinLinkPreviewPeerContentNode.swift rename to submodules/JoinLinkPreviewUI/Sources/JoinLinkPreviewPeerContentNode.swift diff --git a/submodules/JoinLinkPreviewUI/Sources/JoinLinkPreviewUI.h b/submodules/JoinLinkPreviewUI/Sources/JoinLinkPreviewUI.h new file mode 100644 index 0000000000..f18cf93478 --- /dev/null +++ b/submodules/JoinLinkPreviewUI/Sources/JoinLinkPreviewUI.h @@ -0,0 +1,19 @@ +// +// JoinLinkPreviewUI.h +// JoinLinkPreviewUI +// +// Created by Peter on 8/15/19. +// Copyright © 2019 Telegram Messenger LLP. All rights reserved. +// + +#import + +//! Project version number for JoinLinkPreviewUI. +FOUNDATION_EXPORT double JoinLinkPreviewUIVersionNumber; + +//! Project version string for JoinLinkPreviewUI. +FOUNDATION_EXPORT const unsigned char JoinLinkPreviewUIVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/submodules/LanguageLinkPreviewUI/Info.plist b/submodules/LanguageLinkPreviewUI/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/LanguageLinkPreviewUI/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/LanguageLinkPreviewUI/LanguageLinkPreviewUI_Xcode.xcodeproj/project.pbxproj b/submodules/LanguageLinkPreviewUI/LanguageLinkPreviewUI_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..4c22b321c2 --- /dev/null +++ b/submodules/LanguageLinkPreviewUI/LanguageLinkPreviewUI_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,591 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E3ED82304C0CE0049C28B /* LanguageLinkPreviewUI.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E3ED62304C0CE0049C28B /* LanguageLinkPreviewUI.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E3EE52304C1460049C28B /* LanguageLinkPreviewContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3EE22304C1460049C28B /* LanguageLinkPreviewContentNode.swift */; }; + D03E3EE62304C1460049C28B /* LanguageLinkPreviewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3EE32304C1460049C28B /* LanguageLinkPreviewController.swift */; }; + D03E3EE72304C1460049C28B /* LanguageLinkPreviewControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3EE42304C1460049C28B /* LanguageLinkPreviewControllerNode.swift */; }; + D03E3EEA2304C1590049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3EE92304C1590049C28B /* Foundation.framework */; }; + D03E3EEC2304C15C0049C28B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3EEB2304C15C0049C28B /* UIKit.framework */; }; + D03E3EEE2304C15E0049C28B /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3EED2304C15E0049C28B /* AsyncDisplayKit.framework */; }; + D03E3EF02304C1610049C28B /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3EEF2304C1610049C28B /* Display.framework */; }; + D03E3EF22304C1660049C28B /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3EF12304C1660049C28B /* Postbox.framework */; }; + D03E3EF42304C16A0049C28B /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3EF32304C16A0049C28B /* TelegramCore.framework */; }; + D03E3EF62304C16F0049C28B /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3EF52304C16F0049C28B /* TelegramPresentationData.framework */; }; + D03E3EF82304C1730049C28B /* TextFormat.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3EF72304C1730049C28B /* TextFormat.framework */; }; + D03E3EFA2304C1770049C28B /* AccountContext.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3EF92304C1770049C28B /* AccountContext.framework */; }; + D03E3EFC2304C17B0049C28B /* ShareController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3EFB2304C17B0049C28B /* ShareController.framework */; }; + D03E3EFE2304C1850049C28B /* AlertUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3EFD2304C1850049C28B /* AlertUI.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E3ED32304C0CE0049C28B /* LanguageLinkPreviewUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LanguageLinkPreviewUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3ED62304C0CE0049C28B /* LanguageLinkPreviewUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LanguageLinkPreviewUI.h; sourceTree = ""; }; + D03E3ED72304C0CE0049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E3EE22304C1460049C28B /* LanguageLinkPreviewContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LanguageLinkPreviewContentNode.swift; sourceTree = ""; }; + D03E3EE32304C1460049C28B /* LanguageLinkPreviewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LanguageLinkPreviewController.swift; sourceTree = ""; }; + D03E3EE42304C1460049C28B /* LanguageLinkPreviewControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LanguageLinkPreviewControllerNode.swift; sourceTree = ""; }; + D03E3EE92304C1590049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E3EEB2304C15C0049C28B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D03E3EED2304C15E0049C28B /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3EEF2304C1610049C28B /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3EF12304C1660049C28B /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3EF32304C16A0049C28B /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3EF52304C16F0049C28B /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3EF72304C1730049C28B /* TextFormat.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TextFormat.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3EF92304C1770049C28B /* AccountContext.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AccountContext.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3EFB2304C17B0049C28B /* ShareController.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ShareController.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3EFD2304C1850049C28B /* AlertUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AlertUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E3ED02304C0CE0049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3EFE2304C1850049C28B /* AlertUI.framework in Frameworks */, + D03E3EFC2304C17B0049C28B /* ShareController.framework in Frameworks */, + D03E3EFA2304C1770049C28B /* AccountContext.framework in Frameworks */, + D03E3EF82304C1730049C28B /* TextFormat.framework in Frameworks */, + D03E3EF62304C16F0049C28B /* TelegramPresentationData.framework in Frameworks */, + D03E3EF42304C16A0049C28B /* TelegramCore.framework in Frameworks */, + D03E3EF22304C1660049C28B /* Postbox.framework in Frameworks */, + D03E3EF02304C1610049C28B /* Display.framework in Frameworks */, + D03E3EEE2304C15E0049C28B /* AsyncDisplayKit.framework in Frameworks */, + D03E3EEC2304C15C0049C28B /* UIKit.framework in Frameworks */, + D03E3EEA2304C1590049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E3EC92304C0CE0049C28B = { + isa = PBXGroup; + children = ( + D03E3ED72304C0CE0049C28B /* Info.plist */, + D03E3ED52304C0CE0049C28B /* Sources */, + D03E3ED42304C0CE0049C28B /* Products */, + D03E3EE82304C1580049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E3ED42304C0CE0049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E3ED32304C0CE0049C28B /* LanguageLinkPreviewUI.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E3ED52304C0CE0049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E3EE32304C1460049C28B /* LanguageLinkPreviewController.swift */, + D03E3EE22304C1460049C28B /* LanguageLinkPreviewContentNode.swift */, + D03E3EE42304C1460049C28B /* LanguageLinkPreviewControllerNode.swift */, + D03E3ED62304C0CE0049C28B /* LanguageLinkPreviewUI.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E3EE82304C1580049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E3EFD2304C1850049C28B /* AlertUI.framework */, + D03E3EFB2304C17B0049C28B /* ShareController.framework */, + D03E3EF92304C1770049C28B /* AccountContext.framework */, + D03E3EF72304C1730049C28B /* TextFormat.framework */, + D03E3EF52304C16F0049C28B /* TelegramPresentationData.framework */, + D03E3EF32304C16A0049C28B /* TelegramCore.framework */, + D03E3EF12304C1660049C28B /* Postbox.framework */, + D03E3EEF2304C1610049C28B /* Display.framework */, + D03E3EED2304C15E0049C28B /* AsyncDisplayKit.framework */, + D03E3EEB2304C15C0049C28B /* UIKit.framework */, + D03E3EE92304C1590049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E3ECE2304C0CE0049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3ED82304C0CE0049C28B /* LanguageLinkPreviewUI.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E3ED22304C0CE0049C28B /* LanguageLinkPreviewUI */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E3EDB2304C0CE0049C28B /* Build configuration list for PBXNativeTarget "LanguageLinkPreviewUI" */; + buildPhases = ( + D03E3ECE2304C0CE0049C28B /* Headers */, + D03E3ECF2304C0CE0049C28B /* Sources */, + D03E3ED02304C0CE0049C28B /* Frameworks */, + D03E3ED12304C0CE0049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = LanguageLinkPreviewUI; + productName = LanguageLinkPreviewUI; + productReference = D03E3ED32304C0CE0049C28B /* LanguageLinkPreviewUI.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E3ECA2304C0CE0049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E3ED22304C0CE0049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E3ECD2304C0CE0049C28B /* Build configuration list for PBXProject "LanguageLinkPreviewUI_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E3EC92304C0CE0049C28B; + productRefGroup = D03E3ED42304C0CE0049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E3ED22304C0CE0049C28B /* LanguageLinkPreviewUI */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E3ED12304C0CE0049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E3ECF2304C0CE0049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3EE62304C1460049C28B /* LanguageLinkPreviewController.swift in Sources */, + D03E3EE52304C1460049C28B /* LanguageLinkPreviewContentNode.swift in Sources */, + D03E3EE72304C1460049C28B /* LanguageLinkPreviewControllerNode.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E3ED92304C0CE0049C28B /* 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; + }; + D03E3EDA2304C0CE0049C28B /* 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; + }; + D03E3EDC2304C0CE0049C28B /* 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.LanguageLinkPreviewUI; + 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; + }; + D03E3EDD2304C0CE0049C28B /* 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.LanguageLinkPreviewUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E3EDE2304C0FD0049C28B /* 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; + }; + D03E3EDF2304C0FD0049C28B /* 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.LanguageLinkPreviewUI; + 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; + }; + D03E3EE02304C1060049C28B /* 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; + }; + D03E3EE12304C1060049C28B /* 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.LanguageLinkPreviewUI; + 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 */ + D03E3ECD2304C0CE0049C28B /* Build configuration list for PBXProject "LanguageLinkPreviewUI_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E3ED92304C0CE0049C28B /* DebugAppStoreLLC */, + D03E3EDE2304C0FD0049C28B /* DebugHockeyapp */, + D03E3EDA2304C0CE0049C28B /* ReleaseAppStoreLLC */, + D03E3EE02304C1060049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E3EDB2304C0CE0049C28B /* Build configuration list for PBXNativeTarget "LanguageLinkPreviewUI" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E3EDC2304C0CE0049C28B /* DebugAppStoreLLC */, + D03E3EDF2304C0FD0049C28B /* DebugHockeyapp */, + D03E3EDD2304C0CE0049C28B /* ReleaseAppStoreLLC */, + D03E3EE12304C1060049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E3ECA2304C0CE0049C28B /* Project object */; +} diff --git a/submodules/TelegramUI/TelegramUI/LanguageLinkPreviewContentNode.swift b/submodules/LanguageLinkPreviewUI/Sources/LanguageLinkPreviewContentNode.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/LanguageLinkPreviewContentNode.swift rename to submodules/LanguageLinkPreviewUI/Sources/LanguageLinkPreviewContentNode.swift diff --git a/submodules/TelegramUI/TelegramUI/LanguageLinkPreviewController.swift b/submodules/LanguageLinkPreviewUI/Sources/LanguageLinkPreviewController.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/LanguageLinkPreviewController.swift rename to submodules/LanguageLinkPreviewUI/Sources/LanguageLinkPreviewController.swift diff --git a/submodules/TelegramUI/TelegramUI/LanguageLinkPreviewControllerNode.swift b/submodules/LanguageLinkPreviewUI/Sources/LanguageLinkPreviewControllerNode.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/LanguageLinkPreviewControllerNode.swift rename to submodules/LanguageLinkPreviewUI/Sources/LanguageLinkPreviewControllerNode.swift diff --git a/submodules/LanguageLinkPreviewUI/Sources/LanguageLinkPreviewUI.h b/submodules/LanguageLinkPreviewUI/Sources/LanguageLinkPreviewUI.h new file mode 100644 index 0000000000..83cc65cca4 --- /dev/null +++ b/submodules/LanguageLinkPreviewUI/Sources/LanguageLinkPreviewUI.h @@ -0,0 +1,19 @@ +// +// LanguageLinkPreviewUI.h +// LanguageLinkPreviewUI +// +// Created by Peter on 8/15/19. +// Copyright © 2019 Telegram Messenger LLP. All rights reserved. +// + +#import + +//! Project version number for LanguageLinkPreviewUI. +FOUNDATION_EXPORT double LanguageLinkPreviewUIVersionNumber; + +//! Project version string for LanguageLinkPreviewUI. +FOUNDATION_EXPORT const unsigned char LanguageLinkPreviewUIVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift b/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift index ecf33966e7..5316e9b0c0 100644 --- a/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift @@ -15,6 +15,8 @@ import OpenInExternalAppUI import InstantPageUI import HashtagSearchUI import StickerPackPreviewUI +import JoinLinkPreviewUI +import LanguageLinkPreviewUI private final class ChatRecentActionsListOpaqueState { let entries: [ChatRecentActionsEntry] diff --git a/submodules/TelegramUI/TelegramUI/OpenResolvedUrl.swift b/submodules/TelegramUI/TelegramUI/OpenResolvedUrl.swift index d0b62f9c96..c8e6f00fd6 100644 --- a/submodules/TelegramUI/TelegramUI/OpenResolvedUrl.swift +++ b/submodules/TelegramUI/TelegramUI/OpenResolvedUrl.swift @@ -11,6 +11,8 @@ import AlertUI import PassportUI import InstantPageUI import StickerPackPreviewUI +import JoinLinkPreviewUI +import LanguageLinkPreviewUI private func defaultNavigationForPeerId(_ peerId: PeerId?, navigation: ChatControllerInteractionNavigateToPeer) -> ChatControllerInteractionNavigateToPeer { if case .default = navigation { diff --git a/submodules/TelegramUI/TelegramUI/TextLinkHandling.swift b/submodules/TelegramUI/TelegramUI/TextLinkHandling.swift index 9464091b4f..b938b39131 100644 --- a/submodules/TelegramUI/TelegramUI/TextLinkHandling.swift +++ b/submodules/TelegramUI/TelegramUI/TextLinkHandling.swift @@ -12,6 +12,7 @@ import OpenInExternalAppUI import InstantPageUI import HashtagSearchUI import StickerPackPreviewUI +import JoinLinkPreviewUI func handleTextLinkActionImpl(context: AccountContext, peerId: PeerId?, navigateDisposable: MetaDisposable, controller: ViewController, action: TextLinkItemActionType, itemLink: TextLinkItem) { let presentImpl: (ViewController, Any?) -> Void = { controllerToPresent, _ in diff --git a/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj b/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj index 59bc522823..bcb8d83245 100644 --- a/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj @@ -187,9 +187,6 @@ D0185E8C208A025A005E1A6C /* ProxySettingsServerItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0185E8B208A025A005E1A6C /* ProxySettingsServerItem.swift */; }; D018BE58218C7BD800C02DDC /* ChatMessageDeliveryFailedNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D018BE57218C7BD800C02DDC /* ChatMessageDeliveryFailedNode.swift */; }; D0192D44210A5AA50005FA10 /* DeviceContactDataManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0192D43210A5AA50005FA10 /* DeviceContactDataManager.swift */; }; - D01C06AF1FBB461E001561AB /* JoinLinkPreviewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01C06AE1FBB461E001561AB /* JoinLinkPreviewController.swift */; }; - D01C06B11FBB4643001561AB /* JoinLinkPreviewControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01C06B01FBB4643001561AB /* JoinLinkPreviewControllerNode.swift */; }; - D01C06B31FBB49A5001561AB /* JoinLinkPreviewPeerContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01C06B21FBB49A5001561AB /* JoinLinkPreviewPeerContentNode.swift */; }; D01C06B51FBB7720001561AB /* ChatMediaInputSettingsItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01C06B41FBB7720001561AB /* ChatMediaInputSettingsItem.swift */; }; D01DBA9B209CC6AD00C64E64 /* ChatLinkPreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01DBA9A209CC6AD00C64E64 /* ChatLinkPreview.swift */; }; D01FB437217CEC62009C6134 /* FetchVideoThumbnail.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01FB436217CEC62009C6134 /* FetchVideoThumbnail.swift */; }; @@ -229,6 +226,8 @@ D03E3E002304B2AC0049C28B /* ItemListPeerActionItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3DFF2304B2AC0049C28B /* ItemListPeerActionItem.framework */; }; D03E3E482304B4670049C28B /* StickerPackPreviewUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E472304B4670049C28B /* StickerPackPreviewUI.framework */; }; D03E3E8C2304B6E10049C28B /* YuvConversion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E8B2304B6E10049C28B /* YuvConversion.framework */; }; + D03E3EC82304C0680049C28B /* JoinLinkPreviewUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3EC72304C0680049C28B /* JoinLinkPreviewUI.framework */; }; + D03E3F002304C19B0049C28B /* LanguageLinkPreviewUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3EFF2304C19B0049C28B /* LanguageLinkPreviewUI.framework */; }; D04203152037162700490EA5 /* MediaInputPaneTrendingItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04203142037162700490EA5 /* MediaInputPaneTrendingItem.swift */; }; D04281EF200E3D88009DDE36 /* GroupInfoSearchItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04281EE200E3D88009DDE36 /* GroupInfoSearchItem.swift */; }; D04281F1200E4084009DDE36 /* GroupInfoSearchNavigationContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04281F0200E4084009DDE36 /* GroupInfoSearchNavigationContentNode.swift */; }; @@ -288,9 +287,6 @@ D07BCBFE1F2B792300ED97AA /* LegacyComponents.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D07BCBFD1F2B792300ED97AA /* LegacyComponents.framework */; }; D07E413D208A494D00FCA8F0 /* ProxyServerActionSheetController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07E413C208A494D00FCA8F0 /* ProxyServerActionSheetController.swift */; }; D081A9A922EB26AE0069C449 /* PhoneLabelController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D081A9A822EB26AE0069C449 /* PhoneLabelController.swift */; }; - D081E104217F57D2003CD921 /* LanguageLinkPreviewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D081E103217F57D2003CD921 /* LanguageLinkPreviewController.swift */; }; - D081E106217F5834003CD921 /* LanguageLinkPreviewControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D081E105217F5834003CD921 /* LanguageLinkPreviewControllerNode.swift */; }; - D081E108217F583F003CD921 /* LanguageLinkPreviewContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D081E107217F583F003CD921 /* LanguageLinkPreviewContentNode.swift */; }; D083491C209361DC008CFD52 /* AvatarGalleryItemFooterContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D083491B209361DC008CFD52 /* AvatarGalleryItemFooterContentNode.swift */; }; D084023420E295F000065674 /* GroupStickerPackSetupController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D084023320E295F000065674 /* GroupStickerPackSetupController.swift */; }; D08799F022F649A600C4D6B3 /* TelegramBaseController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D08799EF22F649A600C4D6B3 /* TelegramBaseController.framework */; }; @@ -992,9 +988,6 @@ D01AC91E1DD5E09000E8160F /* EditAccessoryPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EditAccessoryPanelNode.swift; sourceTree = ""; }; D01B279A1E39386C0022A4C0 /* SettingsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsController.swift; sourceTree = ""; }; D01B279C1E394A500022A4C0 /* NotificationsAndSounds.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationsAndSounds.swift; sourceTree = ""; }; - D01C06AE1FBB461E001561AB /* JoinLinkPreviewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JoinLinkPreviewController.swift; sourceTree = ""; }; - D01C06B01FBB4643001561AB /* JoinLinkPreviewControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JoinLinkPreviewControllerNode.swift; sourceTree = ""; }; - D01C06B21FBB49A5001561AB /* JoinLinkPreviewPeerContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JoinLinkPreviewPeerContentNode.swift; sourceTree = ""; }; D01C06B41FBB7720001561AB /* ChatMediaInputSettingsItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMediaInputSettingsItem.swift; sourceTree = ""; }; D01C2AA01E758F90001F6F9A /* NavigateToChatController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NavigateToChatController.swift; sourceTree = ""; }; D01C2AAA1E75E010001F6F9A /* TwoStepVerificationUnlockController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TwoStepVerificationUnlockController.swift; sourceTree = ""; }; @@ -1065,6 +1058,8 @@ D03E3DFF2304B2AC0049C28B /* ItemListPeerActionItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListPeerActionItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E3E472304B4670049C28B /* StickerPackPreviewUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = StickerPackPreviewUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E3E8B2304B6E10049C28B /* YuvConversion.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = YuvConversion.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3EC72304C0680049C28B /* JoinLinkPreviewUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = JoinLinkPreviewUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3EFF2304C19B0049C28B /* LanguageLinkPreviewUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LanguageLinkPreviewUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E5E081E55C49C0029569A /* DebugAccountsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DebugAccountsController.swift; sourceTree = ""; }; D03E5E0E1E55F8B90029569A /* ChannelVisibilityController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelVisibilityController.swift; sourceTree = ""; }; D04203142037162700490EA5 /* MediaInputPaneTrendingItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaInputPaneTrendingItem.swift; sourceTree = ""; }; @@ -1180,9 +1175,6 @@ D07CFF861DCAAE5E00761F81 /* ForwardAccessoryPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ForwardAccessoryPanelNode.swift; sourceTree = ""; }; D07E413C208A494D00FCA8F0 /* ProxyServerActionSheetController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProxyServerActionSheetController.swift; sourceTree = ""; }; D081A9A822EB26AE0069C449 /* PhoneLabelController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhoneLabelController.swift; sourceTree = ""; }; - D081E103217F57D2003CD921 /* LanguageLinkPreviewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageLinkPreviewController.swift; sourceTree = ""; }; - D081E105217F5834003CD921 /* LanguageLinkPreviewControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageLinkPreviewControllerNode.swift; sourceTree = ""; }; - D081E107217F583F003CD921 /* LanguageLinkPreviewContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageLinkPreviewContentNode.swift; sourceTree = ""; }; D083491B209361DC008CFD52 /* AvatarGalleryItemFooterContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AvatarGalleryItemFooterContentNode.swift; sourceTree = ""; }; D084023320E295F000065674 /* GroupStickerPackSetupController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupStickerPackSetupController.swift; sourceTree = ""; }; D08775081E3E59DE00A97350 /* PeerNotificationSoundStrings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerNotificationSoundStrings.swift; sourceTree = ""; }; @@ -1614,6 +1606,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D03E3F002304C19B0049C28B /* LanguageLinkPreviewUI.framework in Frameworks */, + D03E3EC82304C0680049C28B /* JoinLinkPreviewUI.framework in Frameworks */, D03E3E8C2304B6E10049C28B /* YuvConversion.framework in Frameworks */, D03E3E482304B4670049C28B /* StickerPackPreviewUI.framework in Frameworks */, D03E3E002304B2AC0049C28B /* ItemListPeerActionItem.framework in Frameworks */, @@ -2006,16 +2000,6 @@ name = "Create Channel"; sourceTree = ""; }; - D01C06AD1FBB45ED001561AB /* Join Link Preview */ = { - isa = PBXGroup; - children = ( - D01C06AE1FBB461E001561AB /* JoinLinkPreviewController.swift */, - D01C06B01FBB4643001561AB /* JoinLinkPreviewControllerNode.swift */, - D01C06B21FBB49A5001561AB /* JoinLinkPreviewPeerContentNode.swift */, - ); - name = "Join Link Preview"; - sourceTree = ""; - }; D01C7EFE1EF9D434008305F1 /* Device Contacts */ = { isa = PBXGroup; children = ( @@ -2381,16 +2365,6 @@ name = "Instant Page"; sourceTree = ""; }; - D081E102217F57B2003CD921 /* Language Link Preview */ = { - isa = PBXGroup; - children = ( - D081E103217F57D2003CD921 /* LanguageLinkPreviewController.swift */, - D081E105217F5834003CD921 /* LanguageLinkPreviewControllerNode.swift */, - D081E107217F583F003CD921 /* LanguageLinkPreviewContentNode.swift */, - ); - name = "Language Link Preview"; - sourceTree = ""; - }; D087750E1E3F469700A97350 /* Compose */ = { isa = PBXGroup; children = ( @@ -2413,6 +2387,8 @@ D08D45281D5E340200A7428A /* Frameworks */ = { isa = PBXGroup; children = ( + D03E3EFF2304C19B0049C28B /* LanguageLinkPreviewUI.framework */, + D03E3EC72304C0680049C28B /* JoinLinkPreviewUI.framework */, D03E3E8B2304B6E10049C28B /* YuvConversion.framework */, D03E3E472304B4670049C28B /* StickerPackPreviewUI.framework */, D03E3DFF2304B2AC0049C28B /* ItemListPeerActionItem.framework */, @@ -3275,8 +3251,6 @@ D0EEE99F2165583B001292A6 /* Document */, D07827CC1E03F32C00071108 /* Instant Page */, D020A9D81FEAE611008C66F7 /* Player */, - D01C06AD1FBB45ED001561AB /* Join Link Preview */, - D081E102217F57B2003CD921 /* Language Link Preview */, 0962E65F21B3510800245FD9 /* Web Search */, ); name = Media; @@ -3718,7 +3692,6 @@ D00817D522B47A14008A895F /* ApplicationShortcutItem.swift in Sources */, D077C5C122B59A800097D617 /* ApplicationContext.swift in Sources */, D0EC6CC71EB9F58800EBF1C3 /* PeerNotificationSoundStrings.swift in Sources */, - D081E108217F583F003CD921 /* LanguageLinkPreviewContentNode.swift in Sources */, D0EC6CC91EB9F58800EBF1C3 /* ConvertToWebP.swift in Sources */, D09E637F1F0E8C9F003444CD /* PeerMessagesMediaPlaylist.swift in Sources */, D0EC6CCC1EB9F58800EBF1C3 /* ServiceSoundManager.swift in Sources */, @@ -3793,8 +3766,6 @@ D00817D122B47A14008A895F /* LegacyDataImport.swift in Sources */, D053DADC201AAAB100993D32 /* ChatTextInputMenu.swift in Sources */, 0962E66321B3513100245FD9 /* WebSearchControllerNode.swift in Sources */, - D01C06AF1FBB461E001561AB /* JoinLinkPreviewController.swift in Sources */, - D01C06B11FBB4643001561AB /* JoinLinkPreviewControllerNode.swift in Sources */, D0C0B59B1EE019E5000F4D2C /* ChatSearchNavigationContentNode.swift in Sources */, 09F664CC21EB552C00AB7E26 /* WallpaperSearchRecentQueries.swift in Sources */, D056CD781FF2A6EE00880D28 /* ChatMessageSwipeToReplyNode.swift in Sources */, @@ -3816,7 +3787,6 @@ D008177E22B46B7E008A895F /* TGItemProviderSignals.m in Sources */, 099529B421D3E5D800805E13 /* CheckDiskSpace.swift in Sources */, D04281EF200E3D88009DDE36 /* GroupInfoSearchItem.swift in Sources */, - D081E104217F57D2003CD921 /* LanguageLinkPreviewController.swift in Sources */, D0F67FF41EE6C10F000E5906 /* ChannelMembersSearchContainerNode.swift in Sources */, D0EC6D2A1EB9F58800EBF1C3 /* FetchPhotoLibraryImageResource.swift in Sources */, D0EC6D2B1EB9F58800EBF1C3 /* FileMediaResourceStatus.swift in Sources */, @@ -3931,7 +3901,6 @@ D0E8B8BD204479A500605593 /* SecretChatKeyController.swift in Sources */, D0B85C1C1FF6F76000E795B4 /* AuthorizationSequencePasswordRecoveryController.swift in Sources */, D0EC6D921EB9F58900EBF1C3 /* ChatMessageDateAndStatusNode.swift in Sources */, - D01C06B31FBB49A5001561AB /* JoinLinkPreviewPeerContentNode.swift in Sources */, D0EC6D931EB9F58900EBF1C3 /* ChatMessageFileBubbleContentNode.swift in Sources */, D0EC6D941EB9F58900EBF1C3 /* ChatMessageForwardInfoNode.swift in Sources */, D04B4D131EEA0A6500711AF6 /* ChatMessageMapBubbleContentNode.swift in Sources */, @@ -4173,7 +4142,6 @@ D0EC6E521EB9F58900EBF1C3 /* ChannelInfoController.swift in Sources */, D0EC6E531EB9F58900EBF1C3 /* ChannelMembersController.swift in Sources */, D02B676320800A00001A864A /* PaneSearchBarPlaceholderItem.swift in Sources */, - D081E106217F5834003CD921 /* LanguageLinkPreviewControllerNode.swift in Sources */, 098CF79222B924E200AF6134 /* ThemeSettingsAccentColorItem.swift in Sources */, D0EC6E541EB9F58900EBF1C3 /* ConvertToSupergroupController.swift in Sources */, D0EC6E561EB9F58900EBF1C3 /* UserInfoController.swift in Sources */, From 5f95704684b5d1ce97c2dfb1d2e4b0d44bec3bb3 Mon Sep 17 00:00:00 2001 From: Peter <> Date: Thu, 15 Aug 2019 02:09:45 +0300 Subject: [PATCH 05/11] Refactor LegacyMediaPickerUI and WebSearchUI [skip ci] --- .../contents.xcworkspacedata | 12 + .../Sources/ChatController.swift | 85 +++ submodules/LegacyMediaPickerUI/Info.plist | 22 + .../project.pbxproj | 619 ++++++++++++++++ .../Sources}/LegacyAttachmentMenu.swift | 16 +- .../Sources}/LegacyAvatarPicker.swift | 2 +- .../Sources}/LegacyImagePicker.swift | 0 .../Sources/LegacyImageProcessors.h | 5 + .../Sources}/LegacyImageProcessors.m | 0 .../Sources/LegacyMediaPickerUI.h | 19 + .../Sources}/LegacyMediaPickers.swift | 15 +- .../Sources}/LegacySuggestionContext.swift | 4 +- .../Sources}/LegacyWallpaperPicker.swift | 2 +- submodules/LocalMediaResources/Info.plist | 22 + .../project.pbxproj | 555 ++++++++++++++ .../Sources/LocalMediaResources.h | 19 + .../Sources}/MediaResources.swift | 4 +- submodules/MimeTypes/Info.plist | 22 + .../MimeTypes_Xcode.xcodeproj/project.pbxproj | 540 ++++++++++++++ submodules/MimeTypes/Sources/MimeTypes.h | 11 + .../Sources}/TGMimeTypeMap.h | 0 .../Sources}/TGMimeTypeMap.m | 0 ...uthorizationSequenceSignUpController.swift | 1 + .../TelegramUI/ChannelInfoController.swift | 1 + .../TelegramUI/ChatController.swift | 11 +- .../ChatMessageInteractiveMediaNode.swift | 1 + .../ChatPresentationInterfaceState.swift | 84 --- .../TelegramUI/CreateChannelController.swift | 1 + .../TelegramUI/CreateGroupController.swift | 1 + .../TelegramUI/CustomWallpaperPicker.swift | 1 + .../TelegramUI/DeclareEncodables.swift | 2 + .../TelegramUI/EditSettingsController.swift | 1 + .../TelegramUI/FetchVideoMediaResource.swift | 1 + .../TelegramUI/GifPaneSearchContentNode.swift | 1 + .../TelegramUI/GroupInfoController.swift | 1 + .../TelegramUI/TelegramUI/LegacyCamera.swift | 1 + .../TelegramUI/LegacyImageProcessors.h | 13 - .../LegacyInstantVideoController.swift | 1 + .../TelegramUI/SettingsController.swift | 1 + .../TelegramUI/TelegramUI/ShareItems.swift | 1 + .../TelegramUI/TGItemProviderSignals.m | 2 +- .../TelegramAccountAuxiliaryMethods.swift | 1 + .../TelegramUI/TelegramRootController.swift | 2 +- .../TelegramUIPrivate/module.modulemap | 1 - .../ThemeGridSearchContentNode.swift | 1 + .../TelegramUI/WallpaperGalleryItem.swift | 1 + .../TelegramUI/WallpaperResources.swift | 1 + .../project.pbxproj | 120 +--- submodules/WebSearchUI/Info.plist | 22 + .../WebSearchUI/Sources/FrameworkBundle.swift | 13 + .../Sources}/LegacyWebSearchEditor.swift | 0 .../Sources}/LegacyWebSearchGallery.swift | 3 +- .../Sources}/WebSearchBadgeNode.swift | 0 .../Sources}/WebSearchController.swift | 16 +- .../Sources}/WebSearchControllerNode.swift | 0 .../Sources}/WebSearchGalleryController.swift | 0 .../WebSearchGalleryFooterContentNode.swift | 0 .../Sources}/WebSearchInterfaceState.swift | 0 .../Sources}/WebSearchItem.swift | 0 .../WebSearchNavigationContentNode.swift | 0 .../Sources}/WebSearchRecentQueries.swift | 2 +- .../Sources}/WebSearchRecentQueryItem.swift | 12 +- submodules/WebSearchUI/Sources/WebSearchUI.h | 19 + .../Sources}/WebSearchVideoGalleryItem.swift | 0 .../project.pbxproj | 675 ++++++++++++++++++ 65 files changed, 2751 insertions(+), 238 deletions(-) create mode 100644 submodules/LegacyMediaPickerUI/Info.plist create mode 100644 submodules/LegacyMediaPickerUI/LegacyMediaPickerUI_Xcode.xcodeproj/project.pbxproj rename submodules/{TelegramUI/TelegramUI => LegacyMediaPickerUI/Sources}/LegacyAttachmentMenu.swift (86%) rename submodules/{TelegramUI/TelegramUI => LegacyMediaPickerUI/Sources}/LegacyAvatarPicker.swift (88%) rename submodules/{TelegramUI/TelegramUI => LegacyMediaPickerUI/Sources}/LegacyImagePicker.swift (100%) create mode 100644 submodules/LegacyMediaPickerUI/Sources/LegacyImageProcessors.h rename submodules/{TelegramUI/TelegramUI => LegacyMediaPickerUI/Sources}/LegacyImageProcessors.m (100%) create mode 100644 submodules/LegacyMediaPickerUI/Sources/LegacyMediaPickerUI.h rename submodules/{TelegramUI/TelegramUI => LegacyMediaPickerUI/Sources}/LegacyMediaPickers.swift (96%) rename submodules/{TelegramUI/TelegramUI => LegacyMediaPickerUI/Sources}/LegacySuggestionContext.swift (97%) rename submodules/{TelegramUI/TelegramUI => LegacyMediaPickerUI/Sources}/LegacyWallpaperPicker.swift (92%) create mode 100644 submodules/LocalMediaResources/Info.plist create mode 100644 submodules/LocalMediaResources/LocalMediaResources_Xcode.xcodeproj/project.pbxproj create mode 100644 submodules/LocalMediaResources/Sources/LocalMediaResources.h rename submodules/{TelegramUI/TelegramUI => LocalMediaResources/Sources}/MediaResources.swift (99%) create mode 100644 submodules/MimeTypes/Info.plist create mode 100644 submodules/MimeTypes/MimeTypes_Xcode.xcodeproj/project.pbxproj create mode 100644 submodules/MimeTypes/Sources/MimeTypes.h rename submodules/{TelegramUI/TelegramUI => MimeTypes/Sources}/TGMimeTypeMap.h (100%) rename submodules/{TelegramUI/TelegramUI => MimeTypes/Sources}/TGMimeTypeMap.m (100%) delete mode 100644 submodules/TelegramUI/TelegramUI/LegacyImageProcessors.h create mode 100644 submodules/WebSearchUI/Info.plist create mode 100644 submodules/WebSearchUI/Sources/FrameworkBundle.swift rename submodules/{TelegramUI/TelegramUI => WebSearchUI/Sources}/LegacyWebSearchEditor.swift (100%) rename submodules/{TelegramUI/TelegramUI => WebSearchUI/Sources}/LegacyWebSearchGallery.swift (98%) rename submodules/{TelegramUI/TelegramUI => WebSearchUI/Sources}/WebSearchBadgeNode.swift (100%) rename submodules/{TelegramUI/TelegramUI => WebSearchUI/Sources}/WebSearchController.swift (96%) rename submodules/{TelegramUI/TelegramUI => WebSearchUI/Sources}/WebSearchControllerNode.swift (100%) rename submodules/{TelegramUI/TelegramUI => WebSearchUI/Sources}/WebSearchGalleryController.swift (100%) rename submodules/{TelegramUI/TelegramUI => WebSearchUI/Sources}/WebSearchGalleryFooterContentNode.swift (100%) rename submodules/{TelegramUI/TelegramUI => WebSearchUI/Sources}/WebSearchInterfaceState.swift (100%) rename submodules/{TelegramUI/TelegramUI => WebSearchUI/Sources}/WebSearchItem.swift (100%) rename submodules/{TelegramUI/TelegramUI => WebSearchUI/Sources}/WebSearchNavigationContentNode.swift (100%) rename submodules/{TelegramUI/TelegramUI => WebSearchUI/Sources}/WebSearchRecentQueries.swift (97%) rename submodules/{TelegramUI/TelegramUI => WebSearchUI/Sources}/WebSearchRecentQueryItem.swift (90%) create mode 100644 submodules/WebSearchUI/Sources/WebSearchUI.h rename submodules/{TelegramUI/TelegramUI => WebSearchUI/Sources}/WebSearchVideoGalleryItem.swift (100%) create mode 100644 submodules/WebSearchUI/WebSearchUI_Xcode.xcodeproj/project.pbxproj diff --git a/Telegram-iOS.xcworkspace/contents.xcworkspacedata b/Telegram-iOS.xcworkspace/contents.xcworkspacedata index e4890e3bc5..278c7684c5 100644 --- a/Telegram-iOS.xcworkspace/contents.xcworkspacedata +++ b/Telegram-iOS.xcworkspace/contents.xcworkspacedata @@ -86,6 +86,9 @@ + + @@ -159,6 +162,9 @@ + + + + + + diff --git a/submodules/AccountContext/Sources/ChatController.swift b/submodules/AccountContext/Sources/ChatController.swift index 080957b67e..52a97a46bd 100644 --- a/submodules/AccountContext/Sources/ChatController.swift +++ b/submodules/AccountContext/Sources/ChatController.swift @@ -1,5 +1,6 @@ import Foundation import Postbox +import TelegramCore import TextFormat import Display import SwiftSignalKit @@ -274,6 +275,90 @@ public final class ChatEmbeddedInterfaceState: PeerChatListEmbeddedInterfaceStat } } +public enum ChatPresentationInputQueryResult: Equatable { + case stickers([FoundStickerItem]) + case hashtags([String]) + case mentions([Peer]) + case commands([PeerCommand]) + case emojis([(String, String)], NSRange) + case contextRequestResult(Peer?, ChatContextResultCollection?) + + public static func ==(lhs: ChatPresentationInputQueryResult, rhs: ChatPresentationInputQueryResult) -> Bool { + switch lhs { + case let .stickers(lhsItems): + if case let .stickers(rhsItems) = rhs, lhsItems == rhsItems { + return true + } else { + return false + } + case let .hashtags(lhsResults): + if case let .hashtags(rhsResults) = rhs { + return lhsResults == rhsResults + } else { + return false + } + case let .mentions(lhsPeers): + if case let .mentions(rhsPeers) = rhs { + if lhsPeers.count != rhsPeers.count { + return false + } else { + for i in 0 ..< lhsPeers.count { + if !lhsPeers[i].isEqual(rhsPeers[i]) { + return false + } + } + return true + } + } else { + return false + } + case let .commands(lhsCommands): + if case let .commands(rhsCommands) = rhs { + if lhsCommands != rhsCommands { + return false + } + return true + } else { + return false + } + case let .emojis(lhsValue, lhsRange): + if case let .emojis(rhsValue, rhsRange) = rhs { + if lhsRange != rhsRange { + return false + } + if lhsValue.count != rhsValue.count { + return false + } + for i in 0 ..< lhsValue.count { + if lhsValue[i] != rhsValue[i] { + return false + } + } + return true + } else { + return false + } + case let .contextRequestResult(lhsPeer, lhsCollection): + if case let .contextRequestResult(rhsPeer, rhsCollection) = rhs { + if let lhsPeer = lhsPeer, let rhsPeer = rhsPeer { + if !lhsPeer.isEqual(rhsPeer) { + return false + } + } else if (lhsPeer != nil) != (rhsPeer != nil) { + return false + } + + if lhsCollection != rhsCollection { + return false + } + return true + } else { + return false + } + } + } +} + public protocol ChatController: ViewController { var chatLocation: ChatLocation { get } var canReadHistory: ValuePromise { get } diff --git a/submodules/LegacyMediaPickerUI/Info.plist b/submodules/LegacyMediaPickerUI/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/LegacyMediaPickerUI/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/LegacyMediaPickerUI/LegacyMediaPickerUI_Xcode.xcodeproj/project.pbxproj b/submodules/LegacyMediaPickerUI/LegacyMediaPickerUI_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..1438062244 --- /dev/null +++ b/submodules/LegacyMediaPickerUI/LegacyMediaPickerUI_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,619 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E3F6E2304C4840049C28B /* LegacyMediaPickerUI.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E3F6C2304C4840049C28B /* LegacyMediaPickerUI.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E3F802304C50E0049C28B /* LegacyMediaPickers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3F782304C50D0049C28B /* LegacyMediaPickers.swift */; }; + D03E3F812304C50E0049C28B /* LegacyImageProcessors.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E3F792304C50D0049C28B /* LegacyImageProcessors.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E3F822304C50E0049C28B /* LegacyAttachmentMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3F7A2304C50D0049C28B /* LegacyAttachmentMenu.swift */; }; + D03E3F832304C50E0049C28B /* LegacySuggestionContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3F7B2304C50D0049C28B /* LegacySuggestionContext.swift */; }; + D03E3F842304C50E0049C28B /* LegacyImagePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3F7C2304C50D0049C28B /* LegacyImagePicker.swift */; }; + D03E3F852304C50E0049C28B /* LegacyImageProcessors.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E3F7D2304C50D0049C28B /* LegacyImageProcessors.m */; }; + D03E3F862304C50E0049C28B /* LegacyAvatarPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3F7E2304C50D0049C28B /* LegacyAvatarPicker.swift */; }; + D03E3F872304C50E0049C28B /* LegacyWallpaperPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3F7F2304C50D0049C28B /* LegacyWallpaperPicker.swift */; }; + D03E3F8A2304C51B0049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F892304C51B0049C28B /* Foundation.framework */; }; + D03E3F8C2304C51F0049C28B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F8B2304C51E0049C28B /* UIKit.framework */; }; + D03E3F8E2304C5230049C28B /* LegacyComponents.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F8D2304C5230049C28B /* LegacyComponents.framework */; }; + D03E3F902304C5260049C28B /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F8F2304C5260049C28B /* Display.framework */; }; + D03E3F922304C52A0049C28B /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F912304C52A0049C28B /* SwiftSignalKit.framework */; }; + D03E3F942304C5300049C28B /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F932304C5300049C28B /* Postbox.framework */; }; + D03E3F962304C5350049C28B /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F952304C5350049C28B /* TelegramCore.framework */; }; + D03E3F982304C53A0049C28B /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F972304C53A0049C28B /* TelegramPresentationData.framework */; }; + D03E3F9A2304C53E0049C28B /* DeviceAccess.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F992304C53E0049C28B /* DeviceAccess.framework */; }; + D03E3F9C2304C5440049C28B /* AccountContext.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F9B2304C5440049C28B /* AccountContext.framework */; }; + D03E3F9E2304C5480049C28B /* LegacyUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F9D2304C5480049C28B /* LegacyUI.framework */; }; + D03E3FC62304C6A50049C28B /* MimeTypes.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3FC52304C6A50049C28B /* MimeTypes.framework */; }; + D03E3FEE2304C7F30049C28B /* LocalMediaResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3FED2304C7F30049C28B /* LocalMediaResources.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E3F692304C4840049C28B /* LegacyMediaPickerUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LegacyMediaPickerUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3F6C2304C4840049C28B /* LegacyMediaPickerUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LegacyMediaPickerUI.h; sourceTree = ""; }; + D03E3F6D2304C4840049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E3F782304C50D0049C28B /* LegacyMediaPickers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyMediaPickers.swift; sourceTree = ""; }; + D03E3F792304C50D0049C28B /* LegacyImageProcessors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LegacyImageProcessors.h; sourceTree = ""; }; + D03E3F7A2304C50D0049C28B /* LegacyAttachmentMenu.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyAttachmentMenu.swift; sourceTree = ""; }; + D03E3F7B2304C50D0049C28B /* LegacySuggestionContext.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacySuggestionContext.swift; sourceTree = ""; }; + D03E3F7C2304C50D0049C28B /* LegacyImagePicker.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyImagePicker.swift; sourceTree = ""; }; + D03E3F7D2304C50D0049C28B /* LegacyImageProcessors.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LegacyImageProcessors.m; sourceTree = ""; }; + D03E3F7E2304C50D0049C28B /* LegacyAvatarPicker.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyAvatarPicker.swift; sourceTree = ""; }; + D03E3F7F2304C50D0049C28B /* LegacyWallpaperPicker.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyWallpaperPicker.swift; sourceTree = ""; }; + D03E3F892304C51B0049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E3F8B2304C51E0049C28B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D03E3F8D2304C5230049C28B /* LegacyComponents.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LegacyComponents.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3F8F2304C5260049C28B /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3F912304C52A0049C28B /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3F932304C5300049C28B /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3F952304C5350049C28B /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3F972304C53A0049C28B /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3F992304C53E0049C28B /* DeviceAccess.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DeviceAccess.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3F9B2304C5440049C28B /* AccountContext.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AccountContext.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3F9D2304C5480049C28B /* LegacyUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LegacyUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3FC52304C6A50049C28B /* MimeTypes.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MimeTypes.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3FED2304C7F30049C28B /* LocalMediaResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LocalMediaResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E3F662304C4840049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3FEE2304C7F30049C28B /* LocalMediaResources.framework in Frameworks */, + D03E3FC62304C6A50049C28B /* MimeTypes.framework in Frameworks */, + D03E3F9E2304C5480049C28B /* LegacyUI.framework in Frameworks */, + D03E3F9C2304C5440049C28B /* AccountContext.framework in Frameworks */, + D03E3F9A2304C53E0049C28B /* DeviceAccess.framework in Frameworks */, + D03E3F982304C53A0049C28B /* TelegramPresentationData.framework in Frameworks */, + D03E3F962304C5350049C28B /* TelegramCore.framework in Frameworks */, + D03E3F942304C5300049C28B /* Postbox.framework in Frameworks */, + D03E3F922304C52A0049C28B /* SwiftSignalKit.framework in Frameworks */, + D03E3F902304C5260049C28B /* Display.framework in Frameworks */, + D03E3F8E2304C5230049C28B /* LegacyComponents.framework in Frameworks */, + D03E3F8C2304C51F0049C28B /* UIKit.framework in Frameworks */, + D03E3F8A2304C51B0049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E3F5F2304C4840049C28B = { + isa = PBXGroup; + children = ( + D03E3F6D2304C4840049C28B /* Info.plist */, + D03E3F6B2304C4840049C28B /* Sources */, + D03E3F6A2304C4840049C28B /* Products */, + D03E3F882304C51B0049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E3F6A2304C4840049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E3F692304C4840049C28B /* LegacyMediaPickerUI.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E3F6B2304C4840049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E3F7A2304C50D0049C28B /* LegacyAttachmentMenu.swift */, + D03E3F7E2304C50D0049C28B /* LegacyAvatarPicker.swift */, + D03E3F7C2304C50D0049C28B /* LegacyImagePicker.swift */, + D03E3F792304C50D0049C28B /* LegacyImageProcessors.h */, + D03E3F7D2304C50D0049C28B /* LegacyImageProcessors.m */, + D03E3F782304C50D0049C28B /* LegacyMediaPickers.swift */, + D03E3F7B2304C50D0049C28B /* LegacySuggestionContext.swift */, + D03E3F7F2304C50D0049C28B /* LegacyWallpaperPicker.swift */, + D03E3F6C2304C4840049C28B /* LegacyMediaPickerUI.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E3F882304C51B0049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E3FED2304C7F30049C28B /* LocalMediaResources.framework */, + D03E3FC52304C6A50049C28B /* MimeTypes.framework */, + D03E3F9D2304C5480049C28B /* LegacyUI.framework */, + D03E3F9B2304C5440049C28B /* AccountContext.framework */, + D03E3F992304C53E0049C28B /* DeviceAccess.framework */, + D03E3F972304C53A0049C28B /* TelegramPresentationData.framework */, + D03E3F952304C5350049C28B /* TelegramCore.framework */, + D03E3F932304C5300049C28B /* Postbox.framework */, + D03E3F912304C52A0049C28B /* SwiftSignalKit.framework */, + D03E3F8F2304C5260049C28B /* Display.framework */, + D03E3F8D2304C5230049C28B /* LegacyComponents.framework */, + D03E3F8B2304C51E0049C28B /* UIKit.framework */, + D03E3F892304C51B0049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E3F642304C4840049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3F812304C50E0049C28B /* LegacyImageProcessors.h in Headers */, + D03E3F6E2304C4840049C28B /* LegacyMediaPickerUI.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E3F682304C4840049C28B /* LegacyMediaPickerUI */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E3F712304C4840049C28B /* Build configuration list for PBXNativeTarget "LegacyMediaPickerUI" */; + buildPhases = ( + D03E3F642304C4840049C28B /* Headers */, + D03E3F652304C4840049C28B /* Sources */, + D03E3F662304C4840049C28B /* Frameworks */, + D03E3F672304C4840049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = LegacyMediaPickerUI; + productName = LegacyMediaPickerUI; + productReference = D03E3F692304C4840049C28B /* LegacyMediaPickerUI.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E3F602304C4840049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E3F682304C4840049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E3F632304C4840049C28B /* Build configuration list for PBXProject "LegacyMediaPickerUI_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E3F5F2304C4840049C28B; + productRefGroup = D03E3F6A2304C4840049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E3F682304C4840049C28B /* LegacyMediaPickerUI */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E3F672304C4840049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E3F652304C4840049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3F872304C50E0049C28B /* LegacyWallpaperPicker.swift in Sources */, + D03E3F842304C50E0049C28B /* LegacyImagePicker.swift in Sources */, + D03E3F822304C50E0049C28B /* LegacyAttachmentMenu.swift in Sources */, + D03E3F852304C50E0049C28B /* LegacyImageProcessors.m in Sources */, + D03E3F802304C50E0049C28B /* LegacyMediaPickers.swift in Sources */, + D03E3F832304C50E0049C28B /* LegacySuggestionContext.swift in Sources */, + D03E3F862304C50E0049C28B /* LegacyAvatarPicker.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E3F6F2304C4840049C28B /* 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; + }; + D03E3F702304C4840049C28B /* 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; + }; + D03E3F722304C4840049C28B /* 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.LegacyMediaPickerUI; + 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; + }; + D03E3F732304C4840049C28B /* 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.LegacyMediaPickerUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E3F742304C4B10049C28B /* 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; + }; + D03E3F752304C4B10049C28B /* 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.LegacyMediaPickerUI; + 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; + }; + D03E3F762304C4BC0049C28B /* 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; + }; + D03E3F772304C4BC0049C28B /* 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.LegacyMediaPickerUI; + 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 */ + D03E3F632304C4840049C28B /* Build configuration list for PBXProject "LegacyMediaPickerUI_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E3F6F2304C4840049C28B /* DebugAppStoreLLC */, + D03E3F742304C4B10049C28B /* DebugHockeyapp */, + D03E3F702304C4840049C28B /* ReleaseAppStoreLLC */, + D03E3F762304C4BC0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E3F712304C4840049C28B /* Build configuration list for PBXNativeTarget "LegacyMediaPickerUI" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E3F722304C4840049C28B /* DebugAppStoreLLC */, + D03E3F752304C4B10049C28B /* DebugHockeyapp */, + D03E3F732304C4840049C28B /* ReleaseAppStoreLLC */, + D03E3F772304C4BC0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E3F602304C4840049C28B /* Project object */; +} diff --git a/submodules/TelegramUI/TelegramUI/LegacyAttachmentMenu.swift b/submodules/LegacyMediaPickerUI/Sources/LegacyAttachmentMenu.swift similarity index 86% rename from submodules/TelegramUI/TelegramUI/LegacyAttachmentMenu.swift rename to submodules/LegacyMediaPickerUI/Sources/LegacyAttachmentMenu.swift index 889c414e55..ef30d071f5 100644 --- a/submodules/TelegramUI/TelegramUI/LegacyAttachmentMenu.swift +++ b/submodules/LegacyMediaPickerUI/Sources/LegacyAttachmentMenu.swift @@ -10,7 +10,17 @@ import DeviceAccess import AccountContext import LegacyUI -func legacyAttachmentMenu(context: AccountContext, peer: Peer, editMediaOptions: MessageMediaEditingOptions?, saveEditedPhotos: Bool, allowGrouping: Bool, theme: PresentationTheme, strings: PresentationStrings, parentController: LegacyController, recentlyUsedInlineBots: [Peer], initialCaption: String, openGallery: @escaping () -> Void, openCamera: @escaping (TGAttachmentCameraView?, TGMenuSheetController?) -> Void, openFileGallery: @escaping () -> Void, openWebSearch: @escaping () -> Void, openMap: @escaping () -> Void, openContacts: @escaping () -> Void, openPoll: @escaping () -> Void, presentSelectionLimitExceeded: @escaping () -> Void, presentCantSendMultipleFiles: @escaping () -> Void, sendMessagesWithSignals: @escaping ([Any]?, Bool) -> Void, selectRecentlyUsedInlineBot: @escaping (Peer) -> Void) -> TGMenuSheetController { +public struct LegacyAttachmentMenuMediaEditing: OptionSet { + public var rawValue: Int32 + + public init(rawValue: Int32) { + self.rawValue = rawValue + } + + public static let imageOrVideo = LegacyAttachmentMenuMediaEditing(rawValue: 1 << 0) +} + +public func legacyAttachmentMenu(context: AccountContext, peer: Peer, editMediaOptions: LegacyAttachmentMenuMediaEditing?, saveEditedPhotos: Bool, allowGrouping: Bool, theme: PresentationTheme, strings: PresentationStrings, parentController: LegacyController, recentlyUsedInlineBots: [Peer], initialCaption: String, openGallery: @escaping () -> Void, openCamera: @escaping (TGAttachmentCameraView?, TGMenuSheetController?) -> Void, openFileGallery: @escaping () -> Void, openWebSearch: @escaping () -> Void, openMap: @escaping () -> Void, openContacts: @escaping () -> Void, openPoll: @escaping () -> Void, presentSelectionLimitExceeded: @escaping () -> Void, presentCantSendMultipleFiles: @escaping () -> Void, sendMessagesWithSignals: @escaping ([Any]?, Bool) -> Void, selectRecentlyUsedInlineBot: @escaping (Peer) -> Void) -> TGMenuSheetController { let isSecretChat = peer.id.namespace == Namespaces.Peer.SecretChat let controller = TGMenuSheetController(context: parentController.context, dark: false)! @@ -168,12 +178,12 @@ func legacyAttachmentMenu(context: AccountContext, peer: Peer, editMediaOptions: return controller } -func legacyMenuPaletteFromTheme(_ theme: PresentationTheme) -> TGMenuSheetPallete { +public func legacyMenuPaletteFromTheme(_ theme: PresentationTheme) -> TGMenuSheetPallete { let sheetTheme = theme.actionSheet return TGMenuSheetPallete(dark: theme.overallDarkAppearance, backgroundColor: sheetTheme.opaqueItemBackgroundColor, selectionColor: sheetTheme.opaqueItemHighlightedBackgroundColor, separatorColor: sheetTheme.opaqueItemSeparatorColor, accentColor: sheetTheme.controlAccentColor, destructiveColor: sheetTheme.destructiveActionTextColor, textColor: sheetTheme.primaryTextColor, secondaryTextColor: sheetTheme.secondaryTextColor, spinnerColor: sheetTheme.secondaryTextColor, badgeTextColor: sheetTheme.controlAccentColor, badgeImage: nil, cornersImage: generateStretchableFilledCircleImage(diameter: 11.0, color: nil, strokeColor: nil, strokeWidth: nil, backgroundColor: sheetTheme.opaqueItemBackgroundColor)) } -func presentLegacyPasteMenu(context: AccountContext, peer: Peer, saveEditedPhotos: Bool, allowGrouping: Bool, theme: PresentationTheme, strings: PresentationStrings, images: [UIImage], sendMessagesWithSignals: @escaping ([Any]?) -> Void, present: (ViewController, Any?) -> Void, initialLayout: ContainerViewLayout? = nil) -> ViewController { +public func presentLegacyPasteMenu(context: AccountContext, peer: Peer, saveEditedPhotos: Bool, allowGrouping: Bool, theme: PresentationTheme, strings: PresentationStrings, images: [UIImage], sendMessagesWithSignals: @escaping ([Any]?) -> Void, present: (ViewController, Any?) -> Void, initialLayout: ContainerViewLayout? = nil) -> ViewController { let legacyController = LegacyController(presentation: .custom, theme: theme, initialLayout: initialLayout) legacyController.statusBar.statusBarStyle = .Ignore legacyController.controllerLoaded = { [weak legacyController] in diff --git a/submodules/TelegramUI/TelegramUI/LegacyAvatarPicker.swift b/submodules/LegacyMediaPickerUI/Sources/LegacyAvatarPicker.swift similarity index 88% rename from submodules/TelegramUI/TelegramUI/LegacyAvatarPicker.swift rename to submodules/LegacyMediaPickerUI/Sources/LegacyAvatarPicker.swift index af833eaf22..764463c47b 100644 --- a/submodules/TelegramUI/TelegramUI/LegacyAvatarPicker.swift +++ b/submodules/LegacyMediaPickerUI/Sources/LegacyAvatarPicker.swift @@ -6,7 +6,7 @@ import LegacyComponents import TelegramPresentationData import LegacyUI -func presentLegacyAvatarPicker(holder: Atomic, signup: Bool, theme: PresentationTheme, present: (ViewController, Any?) -> Void, openCurrent: (() -> Void)?, completion: @escaping (UIImage) -> Void) { +public func presentLegacyAvatarPicker(holder: Atomic, signup: Bool, theme: PresentationTheme, present: (ViewController, Any?) -> Void, openCurrent: (() -> Void)?, completion: @escaping (UIImage) -> Void) { let legacyController = LegacyController(presentation: .custom, theme: theme) legacyController.statusBar.statusBarStyle = .Ignore diff --git a/submodules/TelegramUI/TelegramUI/LegacyImagePicker.swift b/submodules/LegacyMediaPickerUI/Sources/LegacyImagePicker.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/LegacyImagePicker.swift rename to submodules/LegacyMediaPickerUI/Sources/LegacyImagePicker.swift diff --git a/submodules/LegacyMediaPickerUI/Sources/LegacyImageProcessors.h b/submodules/LegacyMediaPickerUI/Sources/LegacyImageProcessors.h new file mode 100644 index 0000000000..4e45d19715 --- /dev/null +++ b/submodules/LegacyMediaPickerUI/Sources/LegacyImageProcessors.h @@ -0,0 +1,5 @@ +#import + +@interface LegacyImageProcessors : NSObject + +@end diff --git a/submodules/TelegramUI/TelegramUI/LegacyImageProcessors.m b/submodules/LegacyMediaPickerUI/Sources/LegacyImageProcessors.m similarity index 100% rename from submodules/TelegramUI/TelegramUI/LegacyImageProcessors.m rename to submodules/LegacyMediaPickerUI/Sources/LegacyImageProcessors.m diff --git a/submodules/LegacyMediaPickerUI/Sources/LegacyMediaPickerUI.h b/submodules/LegacyMediaPickerUI/Sources/LegacyMediaPickerUI.h new file mode 100644 index 0000000000..24d275b34d --- /dev/null +++ b/submodules/LegacyMediaPickerUI/Sources/LegacyMediaPickerUI.h @@ -0,0 +1,19 @@ +// +// LegacyMediaPickerUI.h +// LegacyMediaPickerUI +// +// Created by Peter on 8/15/19. +// Copyright © 2019 Telegram Messenger LLP. All rights reserved. +// + +#import + +//! Project version number for LegacyMediaPickerUI. +FOUNDATION_EXPORT double LegacyMediaPickerUIVersionNumber; + +//! Project version string for LegacyMediaPickerUI. +FOUNDATION_EXPORT const unsigned char LegacyMediaPickerUIVersionString[]; + +#import + + diff --git a/submodules/TelegramUI/TelegramUI/LegacyMediaPickers.swift b/submodules/LegacyMediaPickerUI/Sources/LegacyMediaPickers.swift similarity index 96% rename from submodules/TelegramUI/TelegramUI/LegacyMediaPickers.swift rename to submodules/LegacyMediaPickerUI/Sources/LegacyMediaPickers.swift index 64089839c0..a5975fa6f0 100644 --- a/submodules/TelegramUI/TelegramUI/LegacyMediaPickers.swift +++ b/submodules/LegacyMediaPickerUI/Sources/LegacyMediaPickers.swift @@ -7,16 +7,17 @@ import Postbox import SSignalKit import Display import TelegramPresentationData -import TelegramUIPrivateModule import DeviceAccess import AccountContext import ImageCompression +import MimeTypes +import LocalMediaResources -func guessMimeTypeByFileExtension(_ ext: String) -> String { +public func guessMimeTypeByFileExtension(_ ext: String) -> String { return TGMimeTypeMap.mimeType(forExtension: ext) ?? "application/binary" } -func configureLegacyAssetPicker(_ controller: TGMediaAssetsController, context: AccountContext, peer: Peer, captionsEnabled: Bool = true, storeCreatedAssets: Bool = true, showFileTooltip: Bool = false, initialCaption: String, presentWebSearch: (() -> Void)?, presentSelectionLimitExceeded: @escaping () -> Void) { +public func configureLegacyAssetPicker(_ controller: TGMediaAssetsController, context: AccountContext, peer: Peer, captionsEnabled: Bool = true, storeCreatedAssets: Bool = true, showFileTooltip: Bool = false, initialCaption: String, presentWebSearch: (() -> Void)?, presentSelectionLimitExceeded: @escaping () -> Void) { let isSecretChat = peer.id.namespace == Namespaces.Peer.SecretChat controller.captionsEnabled = captionsEnabled @@ -41,7 +42,7 @@ func configureLegacyAssetPicker(_ controller: TGMediaAssetsController, context: controller.editingContext.setInitialCaption(initialCaption, entities: []) } -func legacyAssetPicker(context: AccountContext, presentationData: PresentationData, editingMedia: Bool, fileMode: Bool, peer: Peer?, saveEditedPhotos: Bool, allowGrouping: Bool, selectionLimit: Int) -> Signal<(LegacyComponentsContext) -> TGMediaAssetsController, Void> { +public func legacyAssetPicker(context: AccountContext, presentationData: PresentationData, editingMedia: Bool, fileMode: Bool, peer: Peer?, saveEditedPhotos: Bool, allowGrouping: Bool, selectionLimit: Int) -> Signal<(LegacyComponentsContext) -> TGMediaAssetsController, Void> { let isSecretChat = (peer?.id.namespace ?? 0) == Namespaces.Peer.SecretChat return Signal { subscriber in @@ -113,7 +114,7 @@ private final class LegacyAssetItemWrapper: NSObject { } } -func legacyAssetPickerItemGenerator() -> ((Any?, String?, [Any]?, String?) -> [AnyHashable : Any]?) { +public func legacyAssetPickerItemGenerator() -> ((Any?, String?, [Any]?, String?) -> [AnyHashable : Any]?) { return { anyDict, caption, entities, hash in let dict = anyDict as! NSDictionary if (dict["type"] as! NSString) == "editedPhoto" || (dict["type"] as! NSString) == "capturedPhoto" { @@ -219,7 +220,7 @@ func legacyAssetPickerItemGenerator() -> ((Any?, String?, [Any]?, String?) -> [A } } -func legacyEnqueueGifMessage(account: Account, data: Data) -> Signal { +public func legacyEnqueueGifMessage(account: Account, data: Data) -> Signal { return Signal { subscriber in if let previewImage = UIImage(data: data) { let dimensions = previewImage.size @@ -261,7 +262,7 @@ func legacyEnqueueGifMessage(account: Account, data: Data) -> Signal runOn(Queue.concurrentDefaultQueue()) } -func legacyAssetPickerEnqueueMessages(account: Account, signals: [Any]) -> Signal<[EnqueueMessage], Void> { +public func legacyAssetPickerEnqueueMessages(account: Account, signals: [Any]) -> Signal<[EnqueueMessage], Void> { return Signal { subscriber in let disposable = SSignal.combineSignals(signals).start(next: { anyValues in var messages: [EnqueueMessage] = [] diff --git a/submodules/TelegramUI/TelegramUI/LegacySuggestionContext.swift b/submodules/LegacyMediaPickerUI/Sources/LegacySuggestionContext.swift similarity index 97% rename from submodules/TelegramUI/TelegramUI/LegacySuggestionContext.swift rename to submodules/LegacyMediaPickerUI/Sources/LegacySuggestionContext.swift index 7f973a7a44..6adb0fe441 100644 --- a/submodules/TelegramUI/TelegramUI/LegacySuggestionContext.swift +++ b/submodules/LegacyMediaPickerUI/Sources/LegacySuggestionContext.swift @@ -3,12 +3,10 @@ import UIKit import TelegramCore import Postbox import SwiftSignalKit - -import TelegramUIPrivateModule import LegacyComponents import LegacyUI -func legacySuggestionContext(account: Account, peerId: PeerId) -> TGSuggestionContext { +public func legacySuggestionContext(account: Account, peerId: PeerId) -> TGSuggestionContext { let context = TGSuggestionContext() context.userListSignal = { query in return SSignal { subscriber in diff --git a/submodules/TelegramUI/TelegramUI/LegacyWallpaperPicker.swift b/submodules/LegacyMediaPickerUI/Sources/LegacyWallpaperPicker.swift similarity index 92% rename from submodules/TelegramUI/TelegramUI/LegacyWallpaperPicker.swift rename to submodules/LegacyMediaPickerUI/Sources/LegacyWallpaperPicker.swift index 6c5f704e39..05968635c7 100644 --- a/submodules/TelegramUI/TelegramUI/LegacyWallpaperPicker.swift +++ b/submodules/LegacyMediaPickerUI/Sources/LegacyWallpaperPicker.swift @@ -7,7 +7,7 @@ import TelegramPresentationData import DeviceAccess import AccountContext -func legacyWallpaperPicker(context: AccountContext, presentationData: PresentationData) -> Signal<(LegacyComponentsContext) -> TGMediaAssetsController, Void> { +public func legacyWallpaperPicker(context: AccountContext, presentationData: PresentationData) -> Signal<(LegacyComponentsContext) -> TGMediaAssetsController, Void> { return Signal { subscriber in let intent = TGMediaAssetsControllerSetCustomWallpaperIntent diff --git a/submodules/LocalMediaResources/Info.plist b/submodules/LocalMediaResources/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/LocalMediaResources/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/LocalMediaResources/LocalMediaResources_Xcode.xcodeproj/project.pbxproj b/submodules/LocalMediaResources/LocalMediaResources_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..2bc9e12c6e --- /dev/null +++ b/submodules/LocalMediaResources/LocalMediaResources_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,555 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E3FD82304C76E0049C28B /* LocalMediaResources.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E3FD62304C76E0049C28B /* LocalMediaResources.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E3FE32304C7CA0049C28B /* MediaResources.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3FE22304C7CA0049C28B /* MediaResources.swift */; }; + D03E3FE62304C7DA0049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3FE52304C7DA0049C28B /* Foundation.framework */; }; + D03E3FE82304C7DD0049C28B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3FE72304C7DD0049C28B /* UIKit.framework */; }; + D03E3FEA2304C7DF0049C28B /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3FE92304C7DF0049C28B /* Postbox.framework */; }; + D03E3FEC2304C7E50049C28B /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3FEB2304C7E50049C28B /* TelegramCore.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E3FD32304C76E0049C28B /* LocalMediaResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LocalMediaResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3FD62304C76E0049C28B /* LocalMediaResources.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LocalMediaResources.h; sourceTree = ""; }; + D03E3FD72304C76E0049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E3FE22304C7CA0049C28B /* MediaResources.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MediaResources.swift; sourceTree = ""; }; + D03E3FE52304C7DA0049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E3FE72304C7DD0049C28B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D03E3FE92304C7DF0049C28B /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3FEB2304C7E50049C28B /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E3FD02304C76E0049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3FEC2304C7E50049C28B /* TelegramCore.framework in Frameworks */, + D03E3FEA2304C7DF0049C28B /* Postbox.framework in Frameworks */, + D03E3FE82304C7DD0049C28B /* UIKit.framework in Frameworks */, + D03E3FE62304C7DA0049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E3FC92304C76E0049C28B = { + isa = PBXGroup; + children = ( + D03E3FD72304C76E0049C28B /* Info.plist */, + D03E3FD52304C76E0049C28B /* Sources */, + D03E3FD42304C76E0049C28B /* Products */, + D03E3FE42304C7D90049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E3FD42304C76E0049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E3FD32304C76E0049C28B /* LocalMediaResources.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E3FD52304C76E0049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E3FE22304C7CA0049C28B /* MediaResources.swift */, + D03E3FD62304C76E0049C28B /* LocalMediaResources.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E3FE42304C7D90049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E3FEB2304C7E50049C28B /* TelegramCore.framework */, + D03E3FE92304C7DF0049C28B /* Postbox.framework */, + D03E3FE72304C7DD0049C28B /* UIKit.framework */, + D03E3FE52304C7DA0049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E3FCE2304C76E0049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3FD82304C76E0049C28B /* LocalMediaResources.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E3FD22304C76E0049C28B /* LocalMediaResources */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E3FDB2304C76E0049C28B /* Build configuration list for PBXNativeTarget "LocalMediaResources" */; + buildPhases = ( + D03E3FCE2304C76E0049C28B /* Headers */, + D03E3FCF2304C76E0049C28B /* Sources */, + D03E3FD02304C76E0049C28B /* Frameworks */, + D03E3FD12304C76E0049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = LocalMediaResources; + productName = LocalMediaResources; + productReference = D03E3FD32304C76E0049C28B /* LocalMediaResources.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E3FCA2304C76E0049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E3FD22304C76E0049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E3FCD2304C76E0049C28B /* Build configuration list for PBXProject "LocalMediaResources_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E3FC92304C76E0049C28B; + productRefGroup = D03E3FD42304C76E0049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E3FD22304C76E0049C28B /* LocalMediaResources */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E3FD12304C76E0049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E3FCF2304C76E0049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3FE32304C7CA0049C28B /* MediaResources.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E3FD92304C76E0049C28B /* 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; + }; + D03E3FDA2304C76E0049C28B /* 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; + }; + D03E3FDC2304C76E0049C28B /* 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.LocalMediaResources; + 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; + }; + D03E3FDD2304C76E0049C28B /* 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.LocalMediaResources; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E3FDE2304C79E0049C28B /* 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; + }; + D03E3FDF2304C79E0049C28B /* 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.LocalMediaResources; + 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; + }; + D03E3FE02304C7A60049C28B /* 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; + }; + D03E3FE12304C7A60049C28B /* 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.LocalMediaResources; + 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 */ + D03E3FCD2304C76E0049C28B /* Build configuration list for PBXProject "LocalMediaResources_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E3FD92304C76E0049C28B /* DebugAppStoreLLC */, + D03E3FDE2304C79E0049C28B /* DebugHockeyapp */, + D03E3FDA2304C76E0049C28B /* ReleaseAppStoreLLC */, + D03E3FE02304C7A60049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E3FDB2304C76E0049C28B /* Build configuration list for PBXNativeTarget "LocalMediaResources" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E3FDC2304C76E0049C28B /* DebugAppStoreLLC */, + D03E3FDF2304C79E0049C28B /* DebugHockeyapp */, + D03E3FDD2304C76E0049C28B /* ReleaseAppStoreLLC */, + D03E3FE12304C7A60049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E3FCA2304C76E0049C28B /* Project object */; +} diff --git a/submodules/LocalMediaResources/Sources/LocalMediaResources.h b/submodules/LocalMediaResources/Sources/LocalMediaResources.h new file mode 100644 index 0000000000..e6a64165d1 --- /dev/null +++ b/submodules/LocalMediaResources/Sources/LocalMediaResources.h @@ -0,0 +1,19 @@ +// +// LocalMediaResources.h +// LocalMediaResources +// +// Created by Peter on 8/15/19. +// Copyright © 2019 Telegram Messenger LLP. All rights reserved. +// + +#import + +//! Project version number for LocalMediaResources. +FOUNDATION_EXPORT double LocalMediaResourcesVersionNumber; + +//! Project version string for LocalMediaResources. +FOUNDATION_EXPORT const unsigned char LocalMediaResourcesVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/submodules/TelegramUI/TelegramUI/MediaResources.swift b/submodules/LocalMediaResources/Sources/MediaResources.swift similarity index 99% rename from submodules/TelegramUI/TelegramUI/MediaResources.swift rename to submodules/LocalMediaResources/Sources/MediaResources.swift index 08e44b85b0..ce75f53326 100644 --- a/submodules/TelegramUI/TelegramUI/MediaResources.swift +++ b/submodules/LocalMediaResources/Sources/MediaResources.swift @@ -232,8 +232,8 @@ public struct PhotoLibraryMediaResourceId: MediaResourceId { } public class PhotoLibraryMediaResource: TelegramMediaResource { - let localIdentifier: String - let uniqueId: Int64 + public let localIdentifier: String + public let uniqueId: Int64 public init(localIdentifier: String, uniqueId: Int64) { self.localIdentifier = localIdentifier diff --git a/submodules/MimeTypes/Info.plist b/submodules/MimeTypes/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/MimeTypes/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/MimeTypes/MimeTypes_Xcode.xcodeproj/project.pbxproj b/submodules/MimeTypes/MimeTypes_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..e7bad5eeaa --- /dev/null +++ b/submodules/MimeTypes/MimeTypes_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,540 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E3FB42304C6310049C28B /* MimeTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E3FB22304C6300049C28B /* MimeTypes.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E3FC02304C67C0049C28B /* TGMimeTypeMap.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E3FBE2304C67C0049C28B /* TGMimeTypeMap.m */; }; + D03E3FC12304C67C0049C28B /* TGMimeTypeMap.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E3FBF2304C67C0049C28B /* TGMimeTypeMap.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E3FC42304C6970049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3FC32304C6970049C28B /* Foundation.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E3FAF2304C6300049C28B /* MimeTypes.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MimeTypes.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3FB22304C6300049C28B /* MimeTypes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MimeTypes.h; sourceTree = ""; }; + D03E3FB32304C6310049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E3FBE2304C67C0049C28B /* TGMimeTypeMap.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGMimeTypeMap.m; sourceTree = ""; }; + D03E3FBF2304C67C0049C28B /* TGMimeTypeMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGMimeTypeMap.h; sourceTree = ""; }; + D03E3FC32304C6970049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E3FAC2304C6300049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3FC42304C6970049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E3FA52304C6300049C28B = { + isa = PBXGroup; + children = ( + D03E3FB32304C6310049C28B /* Info.plist */, + D03E3FB12304C6300049C28B /* Sources */, + D03E3FB02304C6300049C28B /* Products */, + D03E3FC22304C6970049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E3FB02304C6300049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E3FAF2304C6300049C28B /* MimeTypes.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E3FB12304C6300049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E3FBF2304C67C0049C28B /* TGMimeTypeMap.h */, + D03E3FBE2304C67C0049C28B /* TGMimeTypeMap.m */, + D03E3FB22304C6300049C28B /* MimeTypes.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E3FC22304C6970049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E3FC32304C6970049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E3FAA2304C6300049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3FC12304C67C0049C28B /* TGMimeTypeMap.h in Headers */, + D03E3FB42304C6310049C28B /* MimeTypes.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E3FAE2304C6300049C28B /* MimeTypes */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E3FB72304C6310049C28B /* Build configuration list for PBXNativeTarget "MimeTypes" */; + buildPhases = ( + D03E3FAA2304C6300049C28B /* Headers */, + D03E3FAB2304C6300049C28B /* Sources */, + D03E3FAC2304C6300049C28B /* Frameworks */, + D03E3FAD2304C6300049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = MimeTypes; + productName = MimeTypes; + productReference = D03E3FAF2304C6300049C28B /* MimeTypes.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E3FA62304C6300049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E3FAE2304C6300049C28B = { + CreatedOnToolsVersion = 10.3; + }; + }; + }; + buildConfigurationList = D03E3FA92304C6300049C28B /* Build configuration list for PBXProject "MimeTypes_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E3FA52304C6300049C28B; + productRefGroup = D03E3FB02304C6300049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E3FAE2304C6300049C28B /* MimeTypes */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E3FAD2304C6300049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E3FAB2304C6300049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3FC02304C67C0049C28B /* TGMimeTypeMap.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E3FB52304C6310049C28B /* 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; + }; + D03E3FB62304C6310049C28B /* 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; + }; + D03E3FB82304C6310049C28B /* 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.MimeTypes; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugAppStoreLLC; + }; + D03E3FB92304C6310049C28B /* 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.MimeTypes; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E3FBA2304C6520049C28B /* 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; + }; + D03E3FBB2304C6520049C28B /* 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.MimeTypes; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugHockeyapp; + }; + D03E3FBC2304C65A0049C28B /* 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; + }; + D03E3FBD2304C65A0049C28B /* 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.MimeTypes; + 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 */ + D03E3FA92304C6300049C28B /* Build configuration list for PBXProject "MimeTypes_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E3FB52304C6310049C28B /* DebugAppStoreLLC */, + D03E3FBA2304C6520049C28B /* DebugHockeyapp */, + D03E3FB62304C6310049C28B /* ReleaseAppStoreLLC */, + D03E3FBC2304C65A0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E3FB72304C6310049C28B /* Build configuration list for PBXNativeTarget "MimeTypes" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E3FB82304C6310049C28B /* DebugAppStoreLLC */, + D03E3FBB2304C6520049C28B /* DebugHockeyapp */, + D03E3FB92304C6310049C28B /* ReleaseAppStoreLLC */, + D03E3FBD2304C65A0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E3FA62304C6300049C28B /* Project object */; +} diff --git a/submodules/MimeTypes/Sources/MimeTypes.h b/submodules/MimeTypes/Sources/MimeTypes.h new file mode 100644 index 0000000000..0384694fcb --- /dev/null +++ b/submodules/MimeTypes/Sources/MimeTypes.h @@ -0,0 +1,11 @@ +#import + +//! Project version number for MimeTypes. +FOUNDATION_EXPORT double MimeTypesVersionNumber; + +//! Project version string for MimeTypes. +FOUNDATION_EXPORT const unsigned char MimeTypesVersionString[]; + +#import + + diff --git a/submodules/TelegramUI/TelegramUI/TGMimeTypeMap.h b/submodules/MimeTypes/Sources/TGMimeTypeMap.h similarity index 100% rename from submodules/TelegramUI/TelegramUI/TGMimeTypeMap.h rename to submodules/MimeTypes/Sources/TGMimeTypeMap.h diff --git a/submodules/TelegramUI/TelegramUI/TGMimeTypeMap.m b/submodules/MimeTypes/Sources/TGMimeTypeMap.m similarity index 100% rename from submodules/TelegramUI/TelegramUI/TGMimeTypeMap.m rename to submodules/MimeTypes/Sources/TGMimeTypeMap.m diff --git a/submodules/TelegramUI/TelegramUI/AuthorizationSequenceSignUpController.swift b/submodules/TelegramUI/TelegramUI/AuthorizationSequenceSignUpController.swift index f45c538f7d..bb41da13fe 100644 --- a/submodules/TelegramUI/TelegramUI/AuthorizationSequenceSignUpController.swift +++ b/submodules/TelegramUI/TelegramUI/AuthorizationSequenceSignUpController.swift @@ -8,6 +8,7 @@ import TelegramPresentationData import LegacyComponents import ProgressNavigationButtonNode import ImageCompression +import LegacyMediaPickerUI final class AuthorizationSequenceSignUpController: ViewController { private var controllerNode: AuthorizationSequenceSignUpControllerNode { diff --git a/submodules/TelegramUI/TelegramUI/ChannelInfoController.swift b/submodules/TelegramUI/TelegramUI/ChannelInfoController.swift index 1e0d553f1b..dfaf5eb5d4 100644 --- a/submodules/TelegramUI/TelegramUI/ChannelInfoController.swift +++ b/submodules/TelegramUI/TelegramUI/ChannelInfoController.swift @@ -18,6 +18,7 @@ import GalleryUI import LegacyUI import ChatListUI import ItemListAvatarAndNameInfoItem +import WebSearchUI private final class ChannelInfoControllerArguments { let account: Account diff --git a/submodules/TelegramUI/TelegramUI/ChatController.swift b/submodules/TelegramUI/TelegramUI/ChatController.swift index 0ee8253e43..b3d1060b3d 100644 --- a/submodules/TelegramUI/TelegramUI/ChatController.swift +++ b/submodules/TelegramUI/TelegramUI/ChatController.swift @@ -36,6 +36,8 @@ import LocationUI import BotPaymentsUI import DeleteChatPeerActionSheetItem import HashtagSearchUI +import LegacyMediaPickerUI +import WebSearchUI public enum ChatControllerPeekActions { case standard @@ -4812,7 +4814,14 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G legacyController.enableSizeClassSignal = true let inputText = strongSelf.presentationInterfaceState.interfaceState.effectiveInputState.inputText - let controller = legacyAttachmentMenu(context: strongSelf.context, peer: peer, editMediaOptions: editMediaOptions, saveEditedPhotos: settings.storeEditedPhotos, allowGrouping: true, theme: strongSelf.presentationData.theme, strings: strongSelf.presentationData.strings, parentController: legacyController, recentlyUsedInlineBots: strongSelf.recentlyUsedInlineBotsValue, initialCaption: inputText.string, openGallery: { + let menuEditMediaOptions = editMediaOptions.flatMap { options -> LegacyAttachmentMenuMediaEditing in + var result: LegacyAttachmentMenuMediaEditing = [] + if options.contains(.imageOrVideo) { + result.insert(.imageOrVideo) + } + return result + } + let controller = legacyAttachmentMenu(context: strongSelf.context, peer: peer, editMediaOptions: menuEditMediaOptions, saveEditedPhotos: settings.storeEditedPhotos, allowGrouping: true, theme: strongSelf.presentationData.theme, strings: strongSelf.presentationData.strings, parentController: legacyController, recentlyUsedInlineBots: strongSelf.recentlyUsedInlineBotsValue, initialCaption: inputText.string, openGallery: { self?.presentMediaPicker(fileMode: false, editingMedia: editMediaOptions != nil, completion: { signals, silentPosting in if !inputText.string.isEmpty { //strongSelf.clearInputText() diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveMediaNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveMediaNode.swift index 92a08fded4..1c2aa18e95 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveMediaNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveMediaNode.swift @@ -17,6 +17,7 @@ import TelegramUniversalVideoContent import TelegramStringFormatting import GalleryUI import AnimationUI +import LocalMediaResources private struct FetchControls { let fetch: (Bool) -> Void diff --git a/submodules/TelegramUI/TelegramUI/ChatPresentationInterfaceState.swift b/submodules/TelegramUI/TelegramUI/ChatPresentationInterfaceState.swift index 51cfaffc1c..aa3ba14034 100644 --- a/submodules/TelegramUI/TelegramUI/ChatPresentationInterfaceState.swift +++ b/submodules/TelegramUI/TelegramUI/ChatPresentationInterfaceState.swift @@ -73,90 +73,6 @@ enum ChatPresentationInputQuery: Hashable, Equatable { } } -enum ChatPresentationInputQueryResult: Equatable { - case stickers([FoundStickerItem]) - case hashtags([String]) - case mentions([Peer]) - case commands([PeerCommand]) - case emojis([(String, String)], NSRange) - case contextRequestResult(Peer?, ChatContextResultCollection?) - - static func ==(lhs: ChatPresentationInputQueryResult, rhs: ChatPresentationInputQueryResult) -> Bool { - switch lhs { - case let .stickers(lhsItems): - if case let .stickers(rhsItems) = rhs, lhsItems == rhsItems { - return true - } else { - return false - } - case let .hashtags(lhsResults): - if case let .hashtags(rhsResults) = rhs { - return lhsResults == rhsResults - } else { - return false - } - case let .mentions(lhsPeers): - if case let .mentions(rhsPeers) = rhs { - if lhsPeers.count != rhsPeers.count { - return false - } else { - for i in 0 ..< lhsPeers.count { - if !lhsPeers[i].isEqual(rhsPeers[i]) { - return false - } - } - return true - } - } else { - return false - } - case let .commands(lhsCommands): - if case let .commands(rhsCommands) = rhs { - if lhsCommands != rhsCommands { - return false - } - return true - } else { - return false - } - case let .emojis(lhsValue, lhsRange): - if case let .emojis(rhsValue, rhsRange) = rhs { - if lhsRange != rhsRange { - return false - } - if lhsValue.count != rhsValue.count { - return false - } - for i in 0 ..< lhsValue.count { - if lhsValue[i] != rhsValue[i] { - return false - } - } - return true - } else { - return false - } - case let .contextRequestResult(lhsPeer, lhsCollection): - if case let .contextRequestResult(rhsPeer, rhsCollection) = rhs { - if let lhsPeer = lhsPeer, let rhsPeer = rhsPeer { - if !lhsPeer.isEqual(rhsPeer) { - return false - } - } else if (lhsPeer != nil) != (rhsPeer != nil) { - return false - } - - if lhsCollection != rhsCollection { - return false - } - return true - } else { - return false - } - } - } -} - enum ChatMediaInputMode { case gif case other diff --git a/submodules/TelegramUI/TelegramUI/CreateChannelController.swift b/submodules/TelegramUI/TelegramUI/CreateChannelController.swift index 6137e54c5e..fa1382600b 100644 --- a/submodules/TelegramUI/TelegramUI/CreateChannelController.swift +++ b/submodules/TelegramUI/TelegramUI/CreateChannelController.swift @@ -11,6 +11,7 @@ import AccountContext import AlertUI import LegacyUI import ItemListAvatarAndNameInfoItem +import WebSearchUI private struct CreateChannelArguments { let account: Account diff --git a/submodules/TelegramUI/TelegramUI/CreateGroupController.swift b/submodules/TelegramUI/TelegramUI/CreateGroupController.swift index 039267df06..a338505669 100644 --- a/submodules/TelegramUI/TelegramUI/CreateGroupController.swift +++ b/submodules/TelegramUI/TelegramUI/CreateGroupController.swift @@ -16,6 +16,7 @@ import LegacyUI import LocationUI import ItemListPeerItem import ItemListAvatarAndNameInfoItem +import WebSearchUI public enum CreateGroupMode { case generic diff --git a/submodules/TelegramUI/TelegramUI/CustomWallpaperPicker.swift b/submodules/TelegramUI/TelegramUI/CustomWallpaperPicker.swift index 6a8203e108..c350a554b8 100644 --- a/submodules/TelegramUI/TelegramUI/CustomWallpaperPicker.swift +++ b/submodules/TelegramUI/TelegramUI/CustomWallpaperPicker.swift @@ -9,6 +9,7 @@ import TelegramUIPreferences import MediaResources import AccountContext import LegacyUI +import LegacyMediaPickerUI func presentCustomWallpaperPicker(context: AccountContext, present: @escaping (ViewController) -> Void) { let presentationData = context.sharedContext.currentPresentationData.with { $0 } diff --git a/submodules/TelegramUI/TelegramUI/DeclareEncodables.swift b/submodules/TelegramUI/TelegramUI/DeclareEncodables.swift index cd74bdc14a..900f768a58 100644 --- a/submodules/TelegramUI/TelegramUI/DeclareEncodables.swift +++ b/submodules/TelegramUI/TelegramUI/DeclareEncodables.swift @@ -4,6 +4,8 @@ import TelegramUIPreferences import TelegramNotices import InstantPageUI import AccountContext +import LocalMediaResources +import WebSearchUI private var telegramUIDeclaredEncodables: Void = { declareEncodable(InAppNotificationSettings.self, f: { InAppNotificationSettings(decoder: $0) }) diff --git a/submodules/TelegramUI/TelegramUI/EditSettingsController.swift b/submodules/TelegramUI/TelegramUI/EditSettingsController.swift index 3ad3d275c5..c63abdd13b 100644 --- a/submodules/TelegramUI/TelegramUI/EditSettingsController.swift +++ b/submodules/TelegramUI/TelegramUI/EditSettingsController.swift @@ -12,6 +12,7 @@ import AccountContext import GalleryUI import LegacyUI import ItemListAvatarAndNameInfoItem +import WebSearchUI private struct EditSettingsItemArguments { let context: AccountContext diff --git a/submodules/TelegramUI/TelegramUI/FetchVideoMediaResource.swift b/submodules/TelegramUI/TelegramUI/FetchVideoMediaResource.swift index ac12679939..75f16189fc 100644 --- a/submodules/TelegramUI/TelegramUI/FetchVideoMediaResource.swift +++ b/submodules/TelegramUI/TelegramUI/FetchVideoMediaResource.swift @@ -5,6 +5,7 @@ import SwiftSignalKit import TelegramCore import LegacyComponents import FFMpeg +import LocalMediaResources private final class AVURLAssetCopyItem: MediaResourceDataFetchCopyLocalItem { private let url: URL diff --git a/submodules/TelegramUI/TelegramUI/GifPaneSearchContentNode.swift b/submodules/TelegramUI/TelegramUI/GifPaneSearchContentNode.swift index d92a6aa5a6..7938ea2828 100644 --- a/submodules/TelegramUI/TelegramUI/GifPaneSearchContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/GifPaneSearchContentNode.swift @@ -7,6 +7,7 @@ import Postbox import TelegramCore import TelegramPresentationData import AccountContext +import WebSearchUI func paneGifSearchForQuery(account: Account, query: String, updateActivity: ((Bool) -> Void)?) -> Signal<[FileMediaReference]?, NoError> { let delayRequest = true diff --git a/submodules/TelegramUI/TelegramUI/GroupInfoController.swift b/submodules/TelegramUI/TelegramUI/GroupInfoController.swift index 283267db4c..b2c767d92a 100644 --- a/submodules/TelegramUI/TelegramUI/GroupInfoController.swift +++ b/submodules/TelegramUI/TelegramUI/GroupInfoController.swift @@ -26,6 +26,7 @@ import ContactListUI import ChatListUI import ItemListAvatarAndNameInfoItem import ItemListPeerActionItem +import WebSearchUI private final class GroupInfoArguments { let context: AccountContext diff --git a/submodules/TelegramUI/TelegramUI/LegacyCamera.swift b/submodules/TelegramUI/TelegramUI/LegacyCamera.swift index 36a3f2b5bc..b8af1a9efd 100644 --- a/submodules/TelegramUI/TelegramUI/LegacyCamera.swift +++ b/submodules/TelegramUI/TelegramUI/LegacyCamera.swift @@ -8,6 +8,7 @@ import SwiftSignalKit import AccountContext import ShareController import LegacyUI +import LegacyMediaPickerUI 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/LegacyImageProcessors.h b/submodules/TelegramUI/TelegramUI/LegacyImageProcessors.h deleted file mode 100644 index 6288d94d56..0000000000 --- a/submodules/TelegramUI/TelegramUI/LegacyImageProcessors.h +++ /dev/null @@ -1,13 +0,0 @@ -// -// LegacyImageProcessors.h -// TelegramUI -// -// Created by Peter on 8/1/17. -// Copyright © 2017 Telegram. All rights reserved. -// - -#import - -@interface LegacyImageProcessors : NSObject - -@end diff --git a/submodules/TelegramUI/TelegramUI/LegacyInstantVideoController.swift b/submodules/TelegramUI/TelegramUI/LegacyInstantVideoController.swift index 2b85f9d3bf..25008ce036 100644 --- a/submodules/TelegramUI/TelegramUI/LegacyInstantVideoController.swift +++ b/submodules/TelegramUI/TelegramUI/LegacyInstantVideoController.swift @@ -10,6 +10,7 @@ import LegacyComponents import AccountContext import LegacyUI import ImageCompression +import LocalMediaResources final class InstantVideoControllerRecordingStatus { let micLevel: Signal diff --git a/submodules/TelegramUI/TelegramUI/SettingsController.swift b/submodules/TelegramUI/TelegramUI/SettingsController.swift index fa3a56963b..dc5eabc0b3 100644 --- a/submodules/TelegramUI/TelegramUI/SettingsController.swift +++ b/submodules/TelegramUI/TelegramUI/SettingsController.swift @@ -29,6 +29,7 @@ import CallListUI import ChatListUI import ItemListAvatarAndNameInfoItem import ItemListPeerActionItem +import WebSearchUI private let maximumNumberOfAccounts = 3 diff --git a/submodules/TelegramUI/TelegramUI/ShareItems.swift b/submodules/TelegramUI/TelegramUI/ShareItems.swift index 9dc6e3a3c1..c8326dd673 100644 --- a/submodules/TelegramUI/TelegramUI/ShareItems.swift +++ b/submodules/TelegramUI/TelegramUI/ShareItems.swift @@ -12,6 +12,7 @@ import TelegramUIPrivateModule import AccountContext import LegacyComponents import Pdf +import LocalMediaResources enum UnpreparedShareItemContent { case contact(DeviceContactExtendedData) diff --git a/submodules/TelegramUI/TelegramUI/TGItemProviderSignals.m b/submodules/TelegramUI/TelegramUI/TGItemProviderSignals.m index c3aa6b2d96..3a840d1772 100644 --- a/submodules/TelegramUI/TelegramUI/TGItemProviderSignals.m +++ b/submodules/TelegramUI/TelegramUI/TGItemProviderSignals.m @@ -7,7 +7,7 @@ #import #import -#import "TGMimeTypeMap.h" +#import #import "TGContactModel.h" diff --git a/submodules/TelegramUI/TelegramUI/TelegramAccountAuxiliaryMethods.swift b/submodules/TelegramUI/TelegramUI/TelegramAccountAuxiliaryMethods.swift index 91b2367395..c3c08e9415 100644 --- a/submodules/TelegramUI/TelegramUI/TelegramAccountAuxiliaryMethods.swift +++ b/submodules/TelegramUI/TelegramUI/TelegramAccountAuxiliaryMethods.swift @@ -5,6 +5,7 @@ import MediaResources import PassportUI import OpenInExternalAppUI import MusicAlbumArtResources +import LocalMediaResources public let telegramAccountAuxiliaryMethods = AccountAuxiliaryMethods(updatePeerChatInputState: { interfaceState, inputState -> PeerChatInterfaceState? in if interfaceState == nil { diff --git a/submodules/TelegramUI/TelegramUI/TelegramRootController.swift b/submodules/TelegramUI/TelegramUI/TelegramRootController.swift index 6e66991fa2..eba357651f 100644 --- a/submodules/TelegramUI/TelegramUI/TelegramRootController.swift +++ b/submodules/TelegramUI/TelegramUI/TelegramRootController.swift @@ -149,7 +149,7 @@ public final class TelegramRootController: NavigationController { self.popToRoot(animated: false) } - if let index = rootTabController.controllers.index(where: { $0 is ChatListController}) { + if let index = rootTabController.controllers.firstIndex(where: { $0 is ChatListController}) { rootTabController.selectedIndex = index } diff --git a/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap b/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap index 4ebced82c3..594f238933 100644 --- a/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap +++ b/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap @@ -4,7 +4,6 @@ module TelegramUIPrivateModule { header "../SecretChatKeyVisualization.h" header "../DeviceProximityManager.h" header "../RaiseToListenActivator.h" - header "../TGMimeTypeMap.h" header "../Bridge Audio/TGBridgeAudioDecoder.h" header "../Bridge Audio/TGBridgeAudioEncoder.h" header "../TGContactModel.h" diff --git a/submodules/TelegramUI/TelegramUI/ThemeGridSearchContentNode.swift b/submodules/TelegramUI/TelegramUI/ThemeGridSearchContentNode.swift index fe215a2d81..490b421d31 100644 --- a/submodules/TelegramUI/TelegramUI/ThemeGridSearchContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ThemeGridSearchContentNode.swift @@ -10,6 +10,7 @@ import MergeLists import AccountContext import SearchUI import ChatListSearchItemHeader +import WebSearchUI enum WallpaperSearchColor: CaseIterable { case blue diff --git a/submodules/TelegramUI/TelegramUI/WallpaperGalleryItem.swift b/submodules/TelegramUI/TelegramUI/WallpaperGalleryItem.swift index c5c0cbc0a2..a250b52045 100644 --- a/submodules/TelegramUI/TelegramUI/WallpaperGalleryItem.swift +++ b/submodules/TelegramUI/TelegramUI/WallpaperGalleryItem.swift @@ -14,6 +14,7 @@ import AccountContext import RadialStatusNode import PhotoResources import GalleryUI +import LocalMediaResources struct WallpaperGalleryItemArguments { let colorPreview: Bool diff --git a/submodules/TelegramUI/TelegramUI/WallpaperResources.swift b/submodules/TelegramUI/TelegramUI/WallpaperResources.swift index cbb8ed63db..61e343e782 100644 --- a/submodules/TelegramUI/TelegramUI/WallpaperResources.swift +++ b/submodules/TelegramUI/TelegramUI/WallpaperResources.swift @@ -9,6 +9,7 @@ import MediaResources import ImageBlur import TinyThumbnail import PhotoResources +import LocalMediaResources 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_Xcode.xcodeproj/project.pbxproj b/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj index bcb8d83245..973b113b52 100644 --- a/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj @@ -49,12 +49,7 @@ 0952D1752176DEB500194860 /* NotificationMuteSettingsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0952D1742176DEB500194860 /* NotificationMuteSettingsController.swift */; }; 0957DE2322DE28FB001B4D57 /* ThemePreviewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0957DE2222DE28FB001B4D57 /* ThemePreviewController.swift */; }; 0957DE2522DE2909001B4D57 /* ThemePreviewControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0957DE2422DE2909001B4D57 /* ThemePreviewControllerNode.swift */; }; - 0962E66121B3512500245FD9 /* WebSearchController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0962E66021B3512500245FD9 /* WebSearchController.swift */; }; - 0962E66321B3513100245FD9 /* WebSearchControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0962E66221B3513100245FD9 /* WebSearchControllerNode.swift */; }; - 0962E66521B3631100245FD9 /* WebSearchNavigationContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0962E66421B3631100245FD9 /* WebSearchNavigationContentNode.swift */; }; 0962E67921B67A9800245FD9 /* ChatMessageAnimatedStickerItemNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0962E67821B67A9800245FD9 /* ChatMessageAnimatedStickerItemNode.swift */; }; - 0962E67B21BA00C900245FD9 /* WebSearchInterfaceState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0962E67A21BA00C900245FD9 /* WebSearchInterfaceState.swift */; }; - 0962E67F21BA786A00245FD9 /* WebSearchItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0962E67E21BA786A00245FD9 /* WebSearchItem.swift */; }; 09749BC521F0E024008FDDE9 /* StickersChatInputContextPanelItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09749BC421F0E024008FDDE9 /* StickersChatInputContextPanelItem.swift */; }; 09749BCD21F23139008FDDE9 /* WallpaperGalleryDecorationNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09749BCC21F23139008FDDE9 /* WallpaperGalleryDecorationNode.swift */; }; 09749BCF21F236F2008FDDE9 /* ModernCheckNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09749BCE21F236F2008FDDE9 /* ModernCheckNode.swift */; }; @@ -95,8 +90,6 @@ 09DD5D5221ED175300D7007A /* WallpaperColorPickerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DD5D5121ED175300D7007A /* WallpaperColorPickerNode.swift */; }; 09DD88E921BAF65E000766BC /* ItemListAddressItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DD88E821BAF65E000766BC /* ItemListAddressItem.swift */; }; 09DD88EF21BDDE2B000766BC /* Geocoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DD88EE21BDDE2B000766BC /* Geocoding.swift */; }; - 09DD88F321BF907C000766BC /* WebSearchRecentQueryItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DD88F221BF907C000766BC /* WebSearchRecentQueryItem.swift */; }; - 09DD88F521BF9730000766BC /* WebSearchRecentQueries.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DD88F421BF9730000766BC /* WebSearchRecentQueries.swift */; }; 09DE2F272269D5730045E975 /* PrivacyIntroController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DE2F262269D5730045E975 /* PrivacyIntroController.swift */; }; 09DE2F292269D5E30045E975 /* PrivacyIntroControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DE2F282269D5E30045E975 /* PrivacyIntroControllerNode.swift */; }; 09E2D9EF226F1AFA00EA0AA4 /* Emoji.mapping in Resources */ = {isa = PBXBuildFile; fileRef = 09E2D9ED226F1AF300EA0AA4 /* Emoji.mapping */; }; @@ -120,12 +113,6 @@ 09F664CA21EB4F2700AB7E26 /* ThemeGridSearchColorsItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09F664C921EB4F2700AB7E26 /* ThemeGridSearchColorsItem.swift */; }; 09F664CC21EB552C00AB7E26 /* WallpaperSearchRecentQueries.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09F664CB21EB552C00AB7E26 /* WallpaperSearchRecentQueries.swift */; }; 09F664D021EBCFB900AB7E26 /* WallpaperCropNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09F664CF21EBCFB900AB7E26 /* WallpaperCropNode.swift */; }; - 09F799FA21C3542D00820234 /* LegacyWebSearchGallery.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09F799F921C3542D00820234 /* LegacyWebSearchGallery.swift */; }; - 09F799FC21C3FF3000820234 /* WebSearchGalleryController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09F799FB21C3FF3000820234 /* WebSearchGalleryController.swift */; }; - 09F79A0121C8116C00820234 /* WebSearchBadgeNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09F79A0021C8116C00820234 /* WebSearchBadgeNode.swift */; }; - 09F79A0321C8225600820234 /* WebSearchVideoGalleryItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09F79A0221C8225600820234 /* WebSearchVideoGalleryItem.swift */; }; - 09F79A0B21C832F400820234 /* WebSearchGalleryFooterContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09F79A0A21C832F400820234 /* WebSearchGalleryFooterContentNode.swift */; }; - 09F79A0D21C88E8900820234 /* LegacyWebSearchEditor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09F79A0C21C88E8900820234 /* LegacyWebSearchEditor.swift */; }; 09F85BA521E7821500D73170 /* ThemeGridSelectionPanelNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09F85BA421E7821500D73170 /* ThemeGridSelectionPanelNode.swift */; }; 09F85BA721E7DA5F00D73170 /* BlurredImageNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09F85BA621E7DA5F00D73170 /* BlurredImageNode.swift */; }; 09FFBCD1227B7F9900C33B4B /* anim_archiveswipe.json in Resources */ = {isa = PBXBuildFile; fileRef = 09FFBCCF227B7F9000C33B4B /* anim_archiveswipe.json */; }; @@ -137,8 +124,6 @@ D0068FA821760FA300D1B315 /* StoreDownloadedMedia.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0068FA721760FA300D1B315 /* StoreDownloadedMedia.swift */; }; D007019C2029E8F2006B9E34 /* LegacyICloudFileController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D007019B2029E8F2006B9E34 /* LegacyICloudFileController.swift */; }; 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 */; }; 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 */; }; @@ -228,6 +213,10 @@ D03E3E8C2304B6E10049C28B /* YuvConversion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3E8B2304B6E10049C28B /* YuvConversion.framework */; }; D03E3EC82304C0680049C28B /* JoinLinkPreviewUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3EC72304C0680049C28B /* JoinLinkPreviewUI.framework */; }; D03E3F002304C19B0049C28B /* LanguageLinkPreviewUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3EFF2304C19B0049C28B /* LanguageLinkPreviewUI.framework */; }; + D03E3F582304C3890049C28B /* WebSearchUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F572304C3890049C28B /* WebSearchUI.framework */; }; + D03E3FA02304C59E0049C28B /* LegacyMediaPickerUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F9F2304C59E0049C28B /* LegacyMediaPickerUI.framework */; }; + D03E3FC82304C6AB0049C28B /* MimeTypes.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3FC72304C6AB0049C28B /* MimeTypes.framework */; }; + D03E3FF02304C7FA0049C28B /* LocalMediaResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3FEF2304C7FA0049C28B /* LocalMediaResources.framework */; }; D04203152037162700490EA5 /* MediaInputPaneTrendingItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04203142037162700490EA5 /* MediaInputPaneTrendingItem.swift */; }; D04281EF200E3D88009DDE36 /* GroupInfoSearchItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04281EE200E3D88009DDE36 /* GroupInfoSearchItem.swift */; }; D04281F1200E4084009DDE36 /* GroupInfoSearchNavigationContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04281F0200E4084009DDE36 /* GroupInfoSearchNavigationContentNode.swift */; }; @@ -261,7 +250,6 @@ D06018B522F3659900796784 /* ChatTextFormat.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06018B422F3659900796784 /* ChatTextFormat.swift */; }; D06350AE2229A7F800FA2B32 /* InChatPrefetchManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06350AD2229A7F800FA2B32 /* InChatPrefetchManager.swift */; }; D0642EFC1F3E1E7B00792790 /* ChatHistoryNavigationButtons.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0642EFB1F3E1E7B00792790 /* ChatHistoryNavigationButtons.swift */; }; - D0671F2D2145AB28000A8AE7 /* LegacyAvatarPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0671F2C2145AB28000A8AE7 /* LegacyAvatarPicker.swift */; }; D069F5D0212700B90000565A /* StickerPanePeerSpecificSetupGridItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D069F5CF212700B90000565A /* StickerPanePeerSpecificSetupGridItem.swift */; }; D06BB8821F58994B0084FC30 /* LegacyInstantVideoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06BB8811F58994B0084FC30 /* LegacyInstantVideoController.swift */; }; D06E0F8E1F79ABFB003CF3DD /* ChatLoadingNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06E0F8D1F79ABFB003CF3DD /* ChatLoadingNode.swift */; }; @@ -282,8 +270,6 @@ D0754D201EEDEBA000884F6E /* ChatMessageGameBubbleContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0754D1F1EEDEBA000884F6E /* ChatMessageGameBubbleContentNode.swift */; }; D0754D221EEDF89900884F6E /* ChatMessageInvoiceBubbleContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0754D211EEDF89900884F6E /* ChatMessageInvoiceBubbleContentNode.swift */; }; D077C5C122B59A800097D617 /* ApplicationContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D077C5C022B59A800097D617 /* ApplicationContext.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 */; }; D07E413D208A494D00FCA8F0 /* ProxyServerActionSheetController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07E413C208A494D00FCA8F0 /* ProxyServerActionSheetController.swift */; }; D081A9A922EB26AE0069C449 /* PhoneLabelController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D081A9A822EB26AE0069C449 /* PhoneLabelController.swift */; }; @@ -510,14 +496,9 @@ D0E9BAB61F056F4C00F079A4 /* stp_card_visa@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA8E1F056F4C00F079A4 /* stp_card_visa@3x.png */; }; D0E9BAB71F056F4C00F079A4 /* stp_card_visa_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA8F1F056F4C00F079A4 /* stp_card_visa_template@2x.png */; }; D0E9BAB81F056F4C00F079A4 /* stp_card_visa_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA901F056F4C00F079A4 /* stp_card_visa_template@3x.png */; }; - D0EB41F51F30D26A00838FE6 /* LegacySuggestionContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EB41F41F30D26A00838FE6 /* LegacySuggestionContext.swift */; }; - D0EB42001F30ED4F00838FE6 /* LegacyImageProcessors.h in Headers */ = {isa = PBXBuildFile; fileRef = D0EB41FE1F30ED4F00838FE6 /* LegacyImageProcessors.h */; }; - D0EB42011F30ED4F00838FE6 /* LegacyImageProcessors.m in Sources */ = {isa = PBXBuildFile; fileRef = D0EB41FF1F30ED4F00838FE6 /* LegacyImageProcessors.m */; }; D0EB42051F3143AB00838FE6 /* LegacyComponentsResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = D0EB42041F3143AB00838FE6 /* LegacyComponentsResources.bundle */; }; D0EB5ADF1F798033004E89B6 /* PeerMediaCollectionEmptyNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EB5ADE1F798033004E89B6 /* PeerMediaCollectionEmptyNode.swift */; }; D0EC55A3210231D600D1992C /* SearchPeerMembers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EC55A2210231D600D1992C /* SearchPeerMembers.swift */; }; - D0EC6CBF1EB9F58800EBF1C3 /* LegacyAttachmentMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = D023ED2D1DDB5BEC00BD496D /* LegacyAttachmentMenu.swift */; }; - D0EC6CC01EB9F58800EBF1C3 /* LegacyMediaPickers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D023EBB11DDA800700BD496D /* LegacyMediaPickers.swift */; }; D0EC6CC11EB9F58800EBF1C3 /* LegacyCamera.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00E15251DDBD4E700ACF65C /* LegacyCamera.swift */; }; D0EC6CC51EB9F58800EBF1C3 /* TGDataItem.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D03B221DECB1AD00220C46 /* TGDataItem.m */; }; D0EC6CC71EB9F58800EBF1C3 /* PeerNotificationSoundStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08775081E3E59DE00A97350 /* PeerNotificationSoundStrings.swift */; }; @@ -548,7 +529,6 @@ 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 */; }; - D0EC6D281EB9F58800EBF1C3 /* MediaResources.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F3A8B71E83125C00B4C64C /* MediaResources.swift */; }; D0EC6D291EB9F58800EBF1C3 /* FetchVideoMediaResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F3A8B91E831E6300B4C64C /* FetchVideoMediaResource.swift */; }; D0EC6D2A1EB9F58800EBF1C3 /* FetchPhotoLibraryImageResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06E4AC31E84806300627D1D /* FetchPhotoLibraryImageResource.swift */; }; D0EC6D2B1EB9F58800EBF1C3 /* FileMediaResourceStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0177B831DFB095000A5083A /* FileMediaResourceStatus.swift */; }; @@ -827,12 +807,7 @@ 0952D1742176DEB500194860 /* NotificationMuteSettingsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationMuteSettingsController.swift; sourceTree = ""; }; 0957DE2222DE28FB001B4D57 /* ThemePreviewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemePreviewController.swift; sourceTree = ""; }; 0957DE2422DE2909001B4D57 /* ThemePreviewControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemePreviewControllerNode.swift; sourceTree = ""; }; - 0962E66021B3512500245FD9 /* WebSearchController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebSearchController.swift; sourceTree = ""; }; - 0962E66221B3513100245FD9 /* WebSearchControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebSearchControllerNode.swift; sourceTree = ""; }; - 0962E66421B3631100245FD9 /* WebSearchNavigationContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebSearchNavigationContentNode.swift; sourceTree = ""; }; 0962E67821B67A9800245FD9 /* ChatMessageAnimatedStickerItemNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageAnimatedStickerItemNode.swift; sourceTree = ""; }; - 0962E67A21BA00C900245FD9 /* WebSearchInterfaceState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebSearchInterfaceState.swift; sourceTree = ""; }; - 0962E67E21BA786A00245FD9 /* WebSearchItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebSearchItem.swift; sourceTree = ""; }; 09749BC421F0E024008FDDE9 /* StickersChatInputContextPanelItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StickersChatInputContextPanelItem.swift; sourceTree = ""; }; 09749BCC21F23139008FDDE9 /* WallpaperGalleryDecorationNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallpaperGalleryDecorationNode.swift; sourceTree = ""; }; 09749BCE21F236F2008FDDE9 /* ModernCheckNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModernCheckNode.swift; sourceTree = ""; }; @@ -873,8 +848,6 @@ 09DD5D5121ED175300D7007A /* WallpaperColorPickerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallpaperColorPickerNode.swift; sourceTree = ""; }; 09DD88E821BAF65E000766BC /* ItemListAddressItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ItemListAddressItem.swift; sourceTree = ""; }; 09DD88EE21BDDE2B000766BC /* Geocoding.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Geocoding.swift; sourceTree = ""; }; - 09DD88F221BF907C000766BC /* WebSearchRecentQueryItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebSearchRecentQueryItem.swift; sourceTree = ""; }; - 09DD88F421BF9730000766BC /* WebSearchRecentQueries.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebSearchRecentQueries.swift; sourceTree = ""; }; 09DE2F262269D5730045E975 /* PrivacyIntroController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrivacyIntroController.swift; sourceTree = ""; }; 09DE2F282269D5E30045E975 /* PrivacyIntroControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrivacyIntroControllerNode.swift; sourceTree = ""; }; 09E2D9ED226F1AF300EA0AA4 /* Emoji.mapping */ = {isa = PBXFileReference; lastKnownFileType = file; name = Emoji.mapping; path = TelegramUI/Resources/Emoji.mapping; sourceTree = ""; }; @@ -898,12 +871,6 @@ 09F664C921EB4F2700AB7E26 /* ThemeGridSearchColorsItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeGridSearchColorsItem.swift; sourceTree = ""; }; 09F664CB21EB552C00AB7E26 /* WallpaperSearchRecentQueries.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallpaperSearchRecentQueries.swift; sourceTree = ""; }; 09F664CF21EBCFB900AB7E26 /* WallpaperCropNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallpaperCropNode.swift; sourceTree = ""; }; - 09F799F921C3542D00820234 /* LegacyWebSearchGallery.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyWebSearchGallery.swift; sourceTree = ""; }; - 09F799FB21C3FF3000820234 /* WebSearchGalleryController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebSearchGalleryController.swift; sourceTree = ""; }; - 09F79A0021C8116C00820234 /* WebSearchBadgeNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebSearchBadgeNode.swift; sourceTree = ""; }; - 09F79A0221C8225600820234 /* WebSearchVideoGalleryItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebSearchVideoGalleryItem.swift; sourceTree = ""; }; - 09F79A0A21C832F400820234 /* WebSearchGalleryFooterContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebSearchGalleryFooterContentNode.swift; sourceTree = ""; }; - 09F79A0C21C88E8900820234 /* LegacyWebSearchEditor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyWebSearchEditor.swift; sourceTree = ""; }; 09F85BA421E7821500D73170 /* ThemeGridSelectionPanelNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeGridSelectionPanelNode.swift; sourceTree = ""; }; 09F85BA621E7DA5F00D73170 /* BlurredImageNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlurredImageNode.swift; sourceTree = ""; }; 09FFBCCF227B7F9000C33B4B /* anim_archiveswipe.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_archiveswipe.json; sourceTree = ""; }; @@ -921,8 +888,6 @@ D0068FA721760FA300D1B315 /* StoreDownloadedMedia.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StoreDownloadedMedia.swift; sourceTree = ""; }; D007019B2029E8F2006B9E34 /* LegacyICloudFileController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyICloudFileController.swift; sourceTree = ""; }; 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 = ""; }; 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 = ""; }; @@ -1016,8 +981,6 @@ D02383781DDF1A4D004018B6 /* ChatRequestInProgressTitlePanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatRequestInProgressTitlePanelNode.swift; sourceTree = ""; }; D023837D1DDF50FD004018B6 /* ChatToastAlertPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatToastAlertPanelNode.swift; sourceTree = ""; }; D02383831DDFA22C004018B6 /* ListMessageHoleItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ListMessageHoleItem.swift; sourceTree = ""; }; - D023EBB11DDA800700BD496D /* LegacyMediaPickers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyMediaPickers.swift; sourceTree = ""; }; - D023ED2D1DDB5BEC00BD496D /* LegacyAttachmentMenu.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyAttachmentMenu.swift; sourceTree = ""; }; D025402222E1C92D00AC0195 /* ChatSlowmodeItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatSlowmodeItem.swift; sourceTree = ""; }; D025402422E1E00100AC0195 /* ChatSlowmodeHintController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatSlowmodeHintController.swift; sourceTree = ""; }; D025402622E1F23000AC0195 /* ChatSendButtonRadialStatusNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatSendButtonRadialStatusNode.swift; sourceTree = ""; }; @@ -1060,6 +1023,10 @@ D03E3E8B2304B6E10049C28B /* YuvConversion.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = YuvConversion.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E3EC72304C0680049C28B /* JoinLinkPreviewUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = JoinLinkPreviewUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E3EFF2304C19B0049C28B /* LanguageLinkPreviewUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LanguageLinkPreviewUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3F572304C3890049C28B /* WebSearchUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WebSearchUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3F9F2304C59E0049C28B /* LegacyMediaPickerUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LegacyMediaPickerUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3FC72304C6AB0049C28B /* MimeTypes.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MimeTypes.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3FEF2304C7FA0049C28B /* LocalMediaResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LocalMediaResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E5E081E55C49C0029569A /* DebugAccountsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DebugAccountsController.swift; sourceTree = ""; }; D03E5E0E1E55F8B90029569A /* ChannelVisibilityController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelVisibilityController.swift; sourceTree = ""; }; D04203142037162700490EA5 /* MediaInputPaneTrendingItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaInputPaneTrendingItem.swift; sourceTree = ""; }; @@ -1134,7 +1101,6 @@ D0613FD41E6064D200202CDB /* ConvertToSupergroupController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConvertToSupergroupController.swift; sourceTree = ""; }; D06350AD2229A7F800FA2B32 /* InChatPrefetchManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InChatPrefetchManager.swift; sourceTree = ""; }; D0642EFB1F3E1E7B00792790 /* ChatHistoryNavigationButtons.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatHistoryNavigationButtons.swift; sourceTree = ""; }; - D0671F2C2145AB28000A8AE7 /* LegacyAvatarPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyAvatarPicker.swift; sourceTree = ""; }; D06879561DB8F22200424BBD /* FetchCachedRepresentations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FetchCachedRepresentations.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 = ""; }; @@ -1167,8 +1133,6 @@ D07827C61E01CD5900071108 /* VerticalListContextResultsChatInputPanelButtonItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VerticalListContextResultsChatInputPanelButtonItem.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 = ""; }; - D07ABBAA202A1BD1003671DE /* LegacyWallpaperPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyWallpaperPicker.swift; sourceTree = ""; }; D07BCBFD1F2B792300ED97AA /* LegacyComponents.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = LegacyComponents.framework; path = "../LegacyComponents/build/Debug-iphoneos/LegacyComponents.framework"; sourceTree = ""; }; D07CFF731DCA207200761F81 /* PeerSelectionController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerSelectionController.swift; sourceTree = ""; }; D07CFF751DCA224100761F81 /* PeerSelectionControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerSelectionControllerNode.swift; sourceTree = ""; }; @@ -1510,9 +1474,6 @@ D0E9BA8E1F056F4C00F079A4 /* stp_card_visa@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_visa@3x.png"; sourceTree = ""; }; D0E9BA8F1F056F4C00F079A4 /* stp_card_visa_template@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_visa_template@2x.png"; sourceTree = ""; }; D0E9BA901F056F4C00F079A4 /* stp_card_visa_template@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_visa_template@3x.png"; sourceTree = ""; }; - D0EB41F41F30D26A00838FE6 /* LegacySuggestionContext.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacySuggestionContext.swift; sourceTree = ""; }; - D0EB41FE1F30ED4F00838FE6 /* LegacyImageProcessors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LegacyImageProcessors.h; sourceTree = ""; }; - D0EB41FF1F30ED4F00838FE6 /* LegacyImageProcessors.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LegacyImageProcessors.m; sourceTree = ""; }; D0EB42041F3143AB00838FE6 /* LegacyComponentsResources.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = LegacyComponentsResources.bundle; path = ../LegacyComponents/LegacyComponents/Resources/LegacyComponentsResources.bundle; sourceTree = ""; }; D0EB5ADE1F798033004E89B6 /* PeerMediaCollectionEmptyNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerMediaCollectionEmptyNode.swift; sourceTree = ""; }; D0EC55A2210231D600D1992C /* SearchPeerMembers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchPeerMembers.swift; sourceTree = ""; }; @@ -1535,7 +1496,6 @@ D0F19F6320E5A15B00EEC860 /* ChatMediaInputPeerSpecificItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMediaInputPeerSpecificItem.swift; sourceTree = ""; }; D0F3A8AA1E82D83E00B4C64C /* TelegramAccountAuxiliaryMethods.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramAccountAuxiliaryMethods.swift; sourceTree = ""; }; D0F3A8B51E83120A00B4C64C /* FetchResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FetchResource.swift; sourceTree = ""; }; - D0F3A8B71E83125C00B4C64C /* MediaResources.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MediaResources.swift; sourceTree = ""; }; D0F3A8B91E831E6300B4C64C /* FetchVideoMediaResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FetchVideoMediaResource.swift; sourceTree = ""; }; D0F4B019211073C500912B92 /* DeviceContactInfoController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceContactInfoController.swift; sourceTree = ""; }; D0F4B0212110972300912B92 /* ContactInfoStrings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactInfoStrings.swift; sourceTree = ""; }; @@ -1606,6 +1566,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D03E3FF02304C7FA0049C28B /* LocalMediaResources.framework in Frameworks */, + D03E3FC82304C6AB0049C28B /* MimeTypes.framework in Frameworks */, + D03E3FA02304C59E0049C28B /* LegacyMediaPickerUI.framework in Frameworks */, + D03E3F582304C3890049C28B /* WebSearchUI.framework in Frameworks */, D03E3F002304C19B0049C28B /* LanguageLinkPreviewUI.framework in Frameworks */, D03E3EC82304C0680049C28B /* JoinLinkPreviewUI.framework in Frameworks */, D03E3E8C2304B6E10049C28B /* YuvConversion.framework in Frameworks */, @@ -1800,23 +1764,6 @@ path = TelegramUI/Resources/Animations; sourceTree = ""; }; - 0962E65F21B3510800245FD9 /* Web Search */ = { - isa = PBXGroup; - children = ( - 0962E66021B3512500245FD9 /* WebSearchController.swift */, - 0962E66221B3513100245FD9 /* WebSearchControllerNode.swift */, - 0962E66421B3631100245FD9 /* WebSearchNavigationContentNode.swift */, - 0962E67A21BA00C900245FD9 /* WebSearchInterfaceState.swift */, - 0962E67E21BA786A00245FD9 /* WebSearchItem.swift */, - 09DD88F221BF907C000766BC /* WebSearchRecentQueryItem.swift */, - 09DD88F421BF9730000766BC /* WebSearchRecentQueries.swift */, - 09F799FB21C3FF3000820234 /* WebSearchGalleryController.swift */, - 09F79A0021C8116C00820234 /* WebSearchBadgeNode.swift */, - 09F79A0A21C832F400820234 /* WebSearchGalleryFooterContentNode.swift */, - ); - name = "Web Search"; - sourceTree = ""; - }; 0979787F21065EAA0077D77F /* Web Embed */ = { isa = PBXGroup; children = ( @@ -2336,22 +2283,12 @@ isa = PBXGroup; children = ( D0AE2FDB22B1D3610058D3BC /* Bridge Audio */, - D023ED2D1DDB5BEC00BD496D /* LegacyAttachmentMenu.swift */, - D023EBB11DDA800700BD496D /* LegacyMediaPickers.swift */, - D0671F2C2145AB28000A8AE7 /* LegacyAvatarPicker.swift */, D00E15251DDBD4E700ACF65C /* LegacyCamera.swift */, D06BB8811F58994B0084FC30 /* LegacyInstantVideoController.swift */, - D0EB41F41F30D26A00838FE6 /* LegacySuggestionContext.swift */, D0D03B211DECB1AD00220C46 /* TGDataItem.h */, D0D03B221DECB1AD00220C46 /* TGDataItem.m */, - D0EB41FE1F30ED4F00838FE6 /* LegacyImageProcessors.h */, - D0EB41FF1F30ED4F00838FE6 /* LegacyImageProcessors.m */, D007019B2029E8F2006B9E34 /* LegacyICloudFileController.swift */, - D07ABBA4202A14BC003671DE /* LegacyImagePicker.swift */, - D07ABBAA202A1BD1003671DE /* LegacyWallpaperPicker.swift */, D0380DAC204ED434000414AB /* LegacyLiveUploadInterface.swift */, - 09F799F921C3542D00820234 /* LegacyWebSearchGallery.swift */, - 09F79A0C21C88E8900820234 /* LegacyWebSearchEditor.swift */, D0B21B1E22156D92003F741D /* LegacyCache.swift */, ); name = "Legacy Components"; @@ -2387,6 +2324,10 @@ D08D45281D5E340200A7428A /* Frameworks */ = { isa = PBXGroup; children = ( + D03E3FEF2304C7FA0049C28B /* LocalMediaResources.framework */, + D03E3FC72304C6AB0049C28B /* MimeTypes.framework */, + D03E3F9F2304C59E0049C28B /* LegacyMediaPickerUI.framework */, + D03E3F572304C3890049C28B /* WebSearchUI.framework */, D03E3EFF2304C19B0049C28B /* LanguageLinkPreviewUI.framework */, D03E3EC72304C0680049C28B /* JoinLinkPreviewUI.framework */, D03E3E8B2304B6E10049C28B /* YuvConversion.framework */, @@ -3251,7 +3192,6 @@ D0EEE99F2165583B001292A6 /* Document */, D07827CC1E03F32C00071108 /* Instant Page */, D020A9D81FEAE611008C66F7 /* Player */, - 0962E65F21B3510800245FD9 /* Web Search */, ); name = Media; sourceTree = ""; @@ -3269,7 +3209,6 @@ isa = PBXGroup; children = ( D0575AFB1EA104A6006F2541 /* PeerAvatarImageGalleryItem.swift */, - 09F79A0221C8225600820234 /* WebSearchVideoGalleryItem.swift */, ); name = Items; sourceTree = ""; @@ -3315,8 +3254,6 @@ D0F69E7E1D6B8C500046BCD6 /* Supporting Files */ = { isa = PBXGroup; children = ( - D007019F2029F6D0006B9E34 /* TGMimeTypeMap.h */, - D00701A02029F6D0006B9E34 /* TGMimeTypeMap.m */, D0F69E831D6B8C850046BCD6 /* FrameworkBundle.swift */, D00C7CF51E37BF680080C3D5 /* SecretChatKeyVisualization.h */, D00C7CF61E37BF680080C3D5 /* SecretChatKeyVisualization.m */, @@ -3360,7 +3297,6 @@ D06879561DB8F22200424BBD /* FetchCachedRepresentations.swift */, D04662801E68BA64006FAFC4 /* TransformOutgoingMessageMedia.swift */, D0F3A8B51E83120A00B4C64C /* FetchResource.swift */, - D0F3A8B71E83125C00B4C64C /* MediaResources.swift */, D0F3A8B91E831E6300B4C64C /* FetchVideoMediaResource.swift */, D06E4AC31E84806300627D1D /* FetchPhotoLibraryImageResource.swift */, D007019D2029EFDD006B9E34 /* ICloudResources.swift */, @@ -3469,9 +3405,7 @@ D00817DA22B47A14008A895F /* TGPresentationAutoNightPreferences.h in Headers */, D00817E022B47A14008A895F /* UIImage+ImageEffects.h in Headers */, D08803C51F6064CF00DD7951 /* TelegramUI.h in Headers */, - D0EB42001F30ED4F00838FE6 /* LegacyImageProcessors.h in Headers */, D008177B22B46B7E008A895F /* TGContactModel.h in Headers */, - D00701A12029F6D0006B9E34 /* TGMimeTypeMap.h in Headers */, D0208AD91FA34017001F0D5F /* DeviceProximityManager.h in Headers */, D0AE303722B1D3620058D3BC /* TGBridgeAudioEncoder.h in Headers */, D00817CD22B47A14008A895F /* TGAutoDownloadPreferences.h in Headers */, @@ -3673,20 +3607,16 @@ D04281F6200E5AC2009DDE36 /* ChatRecentActionsControllerNode.swift in Sources */, 09DD5D5221ED175300D7007A /* WallpaperColorPickerNode.swift in Sources */, D0B2F76820528E3D00D3BFB9 /* UserInfoEditingPhoneActionItem.swift in Sources */, - 09F79A0321C8225600820234 /* WebSearchVideoGalleryItem.swift in Sources */, D01848E821A03BDA00B6DEBD /* ChatSearchState.swift in Sources */, D0208ADC1FA346A4001F0D5F /* RaiseToListen.swift in Sources */, 09D304182173C15700C00567 /* WatchSettingsController.swift in Sources */, D0C0B5B71EE1DEF1000F4D2C /* ThemeGridControllerItem.swift in Sources */, - D0EC6CBF1EB9F58800EBF1C3 /* LegacyAttachmentMenu.swift in Sources */, D0943B001FDAE852001522CC /* ChatFeedNavigationInputPanelNode.swift in Sources */, D0B37C601F8D286E004252DF /* ThemeSettingsFontSizeItem.swift in Sources */, - D0EC6CC01EB9F58800EBF1C3 /* LegacyMediaPickers.swift in Sources */, D0EC6CC11EB9F58800EBF1C3 /* LegacyCamera.swift in Sources */, D0754D1E1EEDDF6200884F6E /* ChatMessageAttachedContentNode.swift in Sources */, D0CFBB911FD881A600B65C0D /* AudioRecordningToneData.swift in Sources */, D050A466229C06460044F11A /* ChannelDiscussionGroupSearchContainerNode.swift in Sources */, - 09F799FA21C3542D00820234 /* LegacyWebSearchGallery.swift in Sources */, D0EC6CC51EB9F58800EBF1C3 /* TGDataItem.m in Sources */, 092F36902157AB46001A9F49 /* ItemListCallListItem.swift in Sources */, D00817D522B47A14008A895F /* ApplicationShortcutItem.swift in Sources */, @@ -3722,7 +3652,6 @@ D04ECD721FFBF22B00DE9029 /* OpenUrl.swift in Sources */, D056CD7A1FF3CC2A00880D28 /* ListMessagePlaybackOverlayNode.swift in Sources */, D0EC6CF91EB9F58800EBF1C3 /* MediaManager.swift in Sources */, - 0962E66521B3631100245FD9 /* WebSearchNavigationContentNode.swift in Sources */, D0EB5ADF1F798033004E89B6 /* PeerMediaCollectionEmptyNode.swift in Sources */, D0EC6CFB1EB9F58800EBF1C3 /* ManagedAudioRecorder.swift in Sources */, D048B339203C532800038D05 /* ChatMediaInputPane.swift in Sources */, @@ -3758,14 +3687,12 @@ 09CE95042236C6B300A7D2C3 /* CachedInstantPages.swift in Sources */, D0AB269E21D56A12008F6685 /* ChannelPermissionsController.swift in Sources */, D0B69C3920EBB397003632C7 /* ChatMessageInteractiveInstantVideoNode.swift in Sources */, - 09F79A0D21C88E8900820234 /* LegacyWebSearchEditor.swift in Sources */, D056CD701FF147B000880D28 /* IconButtonNode.swift in Sources */, D0F760DB222034910074F7E5 /* ChannelStatsController.swift in Sources */, D0FA08CA2049BEAC00DD23FC /* ChatEmptyNode.swift in Sources */, 09CE95002232729A00A7D2C3 /* StickerPaneSearchContentNode.swift in Sources */, D00817D122B47A14008A895F /* LegacyDataImport.swift in Sources */, D053DADC201AAAB100993D32 /* ChatTextInputMenu.swift in Sources */, - 0962E66321B3513100245FD9 /* WebSearchControllerNode.swift in Sources */, D0C0B59B1EE019E5000F4D2C /* ChatSearchNavigationContentNode.swift in Sources */, 09F664CC21EB552C00AB7E26 /* WallpaperSearchRecentQueries.swift in Sources */, D056CD781FF2A6EE00880D28 /* ChatMessageSwipeToReplyNode.swift in Sources */, @@ -3781,7 +3708,6 @@ D0EC6D261EB9F58800EBF1C3 /* TransformOutgoingMessageMedia.swift in Sources */, D0EC6D271EB9F58800EBF1C3 /* FetchResource.swift in Sources */, D09D88731F86D56B00BEB4C9 /* AuthorizationLayout.swift in Sources */, - D0EC6D281EB9F58800EBF1C3 /* MediaResources.swift in Sources */, D0EC6D291EB9F58800EBF1C3 /* FetchVideoMediaResource.swift in Sources */, 09EDAD2E221164440012A50B /* AutodownloadSizeLimitItem.swift in Sources */, D008177E22B46B7E008A895F /* TGItemProviderSignals.m in Sources */, @@ -3806,7 +3732,6 @@ D0EC6D3A1EB9F58800EBF1C3 /* AudioWaveformNode.swift in Sources */, D0EC6D3B1EB9F58800EBF1C3 /* EditableTokenListNode.swift in Sources */, D0E2CE6C222930540084E3DD /* PrefetchManager.swift in Sources */, - D0EB42011F30ED4F00838FE6 /* LegacyImageProcessors.m in Sources */, D0CE8CE51F6F354400AA2DB0 /* ChatTextInputAccessoryItem.swift in Sources */, D097C26820DD0A1D007BB4B8 /* PeerReportController.swift in Sources */, 09F664C621EB400A00AB7E26 /* ThemeGridSearchContentNode.swift in Sources */, @@ -3833,7 +3758,6 @@ D0EC6D5B1EB9F58800EBF1C3 /* ListMessageNode.swift in Sources */, D0DE66061F9A51E200EF4AE9 /* GalleryHiddenMediaManager.swift in Sources */, D0EC6D5C1EB9F58800EBF1C3 /* ListMessageFileItemNode.swift in Sources */, - D0671F2D2145AB28000A8AE7 /* LegacyAvatarPicker.swift in Sources */, D0EC6D5D1EB9F58800EBF1C3 /* ListMessageSnippetItemNode.swift in Sources */, D0EC6D5E1EB9F58800EBF1C3 /* ListMessageHoleItem.swift in Sources */, D0EC6D5F1EB9F58800EBF1C3 /* GridMessageItem.swift in Sources */, @@ -3981,7 +3905,6 @@ D0EC6DC31EB9F58900EBF1C3 /* ChatMediaInputStickerGridItem.swift in Sources */, 0947FCB0224055990086741C /* StringHash.swift in Sources */, D0C0B59F1EE082F5000F4D2C /* ChatSearchInputPanelNode.swift in Sources */, - 0962E66121B3512500245FD9 /* WebSearchController.swift in Sources */, D0EC6DC61EB9F58900EBF1C3 /* MultiplexedSoftwareVideoSourceManager.swift in Sources */, D0EC6DC71EB9F58900EBF1C3 /* SampleBufferPool.swift in Sources */, 0900678F21ED8E0E00530762 /* HexColor.swift in Sources */, @@ -4000,12 +3923,10 @@ D0EC6DD01EB9F58900EBF1C3 /* HashtagChatInputContextPanelNode.swift in Sources */, D0EC6DD11EB9F58900EBF1C3 /* HashtagChatInputPanelItem.swift in Sources */, D0EC6DD21EB9F58900EBF1C3 /* MentionChatInputContextPanelNode.swift in Sources */, - D00701A22029F6D0006B9E34 /* TGMimeTypeMap.m in Sources */, D0EC6DD31EB9F58900EBF1C3 /* MentionChatInputPanelItem.swift in Sources */, D0EC6DD41EB9F58900EBF1C3 /* CommandChatInputContextPanelNode.swift in Sources */, D0EC6DD51EB9F58900EBF1C3 /* CommandChatInputPanelItem.swift in Sources */, D0EC6DD61EB9F58900EBF1C3 /* VerticalListContextResultsChatInputContextPanelNode.swift in Sources */, - 09F799FC21C3FF3000820234 /* WebSearchGalleryController.swift in Sources */, D0EC6DD71EB9F58900EBF1C3 /* VerticalListContextResultsChatInputPanelItem.swift in Sources */, D0EC6DD81EB9F58900EBF1C3 /* VerticalListContextResultsChatInputPanelButtonItem.swift in Sources */, D04281F4200E5AB0009DDE36 /* ChatRecentActionsController.swift in Sources */, @@ -4018,12 +3939,10 @@ D0EC6DDB1EB9F58900EBF1C3 /* ChatInputPanelNode.swift in Sources */, D0EC6DDC1EB9F58900EBF1C3 /* ChatTextInputPanelNode.swift in Sources */, D06350AE2229A7F800FA2B32 /* InChatPrefetchManager.swift in Sources */, - D0EB41F51F30D26A00838FE6 /* LegacySuggestionContext.swift in Sources */, D0EC6DDD1EB9F58900EBF1C3 /* ChatTextInputMediaRecordingButton.swift in Sources */, D0EC6DDE1EB9F58900EBF1C3 /* ChatTextInputAudioRecordingOverlayButton.swift in Sources */, D0EC6DDF1EB9F58900EBF1C3 /* ChatTextInputAudioRecordingTimeNode.swift in Sources */, D0EC6DE01EB9F58900EBF1C3 /* ChatTextInputAudioRecordingCancelIndicator.swift in Sources */, - 0962E67F21BA786A00245FD9 /* WebSearchItem.swift in Sources */, D081A9A922EB26AE0069C449 /* PhoneLabelController.swift in Sources */, D0EC6DE11EB9F58900EBF1C3 /* ChatMessageSelectionInputPanelNode.swift in Sources */, D04281FA200E5CDC009DDE36 /* ChatRecentActionsControllerState.swift in Sources */, @@ -4069,9 +3988,7 @@ 09B4819523028A8A00D5B32B /* ThemeAccentColorControllerNode.swift in Sources */, D000CABC21F158AD0011B15D /* PrepareSecretThumbnailData.swift in Sources */, D0208AD61FA33D14001F0D5F /* RaiseToListenActivator.m in Sources */, - 09DD88F321BF907C000766BC /* WebSearchRecentQueryItem.swift in Sources */, D04554A421B42982007A6DD9 /* ConfirmPhoneNumberController.swift in Sources */, - D07ABBA5202A14BC003671DE /* LegacyImagePicker.swift in Sources */, D0EC6E0E1EB9F58900EBF1C3 /* PeerAvatarImageGalleryItem.swift in Sources */, D0D4345C1F97CEAA00CC1806 /* ProxyServerSettingsController.swift in Sources */, D08BDF641FA37BEA009D08E1 /* ChatRecordingPreviewInputPanelNode.swift in Sources */, @@ -4121,8 +4038,6 @@ D00817DF22B47A14008A895F /* LegacyDataImportSplash.swift in Sources */, D0B37C5C1F8D22AE004252DF /* ThemeSettingsController.swift in Sources */, D05D8B412192FC8A0064586F /* LocalizationListItem.swift in Sources */, - 0962E67B21BA00C900245FD9 /* WebSearchInterfaceState.swift in Sources */, - 09DD88F521BF9730000766BC /* WebSearchRecentQueries.swift in Sources */, D0AE303822B1D3620058D3BC /* TGBridgeAudioDecoder.mm in Sources */, D0EC6E4D1EB9F58900EBF1C3 /* PeerInfoController.swift in Sources */, D0EC6E4E1EB9F58900EBF1C3 /* GroupInfoController.swift in Sources */, @@ -4133,7 +4048,6 @@ D0EC6E4F1EB9F58900EBF1C3 /* ChannelVisibilityController.swift in Sources */, D09250061FE5371D003F693F /* GlobalExperimentalSettings.swift in Sources */, D025A4231F79344500563950 /* FetchManager.swift in Sources */, - 09F79A0121C8116C00820234 /* WebSearchBadgeNode.swift in Sources */, D0CB27CF20C17A4A001ACF93 /* TermsOfServiceController.swift in Sources */, D00BDA1F1EE5B69200C64C5E /* ChannelAdminController.swift in Sources */, D09E778F22FA239B00B9CCA7 /* ChatMessageContextControllerContentSource.swift in Sources */, @@ -4172,7 +4086,6 @@ D0B85C231FF70BF400E795B4 /* AuthorizationSequenceAwaitingAccountResetController.swift in Sources */, D0EC6E6D1EB9F58900EBF1C3 /* ItemListStickerPackItem.swift in Sources */, D0EC6E6E1EB9F58900EBF1C3 /* ArchivedStickerPacksController.swift in Sources */, - 09F79A0B21C832F400820234 /* WebSearchGalleryFooterContentNode.swift in Sources */, D0C0B5B11EE1C421000F4D2C /* ChatDateSelectionSheet.swift in Sources */, D0EC6E731EB9F58900EBF1C3 /* WallpaperGalleryToolbarNode.swift in Sources */, D025A4261F79428E00563950 /* FetchManagerLocation.swift in Sources */, @@ -4183,7 +4096,6 @@ D0EC6E771EB9F58900EBF1C3 /* NotificationsAndSounds.swift in Sources */, D0EC6E781EB9F58900EBF1C3 /* NotificationSoundSelection.swift in Sources */, D0EC6E7A1EB9F58900EBF1C3 /* DebugController.swift in Sources */, - D07ABBAB202A1BD1003671DE /* LegacyWallpaperPicker.swift in Sources */, 09E2D9F1226F214000EA0AA4 /* EmojiResources.swift in Sources */, D0EC6E7B1EB9F58900EBF1C3 /* DebugAccountsController.swift in Sources */, D0EC6E7C1EB9F58900EBF1C3 /* UsernameSetupController.swift in Sources */, diff --git a/submodules/WebSearchUI/Info.plist b/submodules/WebSearchUI/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/WebSearchUI/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/WebSearchUI/Sources/FrameworkBundle.swift b/submodules/WebSearchUI/Sources/FrameworkBundle.swift new file mode 100644 index 0000000000..8ca13d7d92 --- /dev/null +++ b/submodules/WebSearchUI/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/LegacyWebSearchEditor.swift b/submodules/WebSearchUI/Sources/LegacyWebSearchEditor.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/LegacyWebSearchEditor.swift rename to submodules/WebSearchUI/Sources/LegacyWebSearchEditor.swift diff --git a/submodules/TelegramUI/TelegramUI/LegacyWebSearchGallery.swift b/submodules/WebSearchUI/Sources/LegacyWebSearchGallery.swift similarity index 98% rename from submodules/TelegramUI/TelegramUI/LegacyWebSearchGallery.swift rename to submodules/WebSearchUI/Sources/LegacyWebSearchGallery.swift index f74bab466d..db3587dd99 100644 --- a/submodules/TelegramUI/TelegramUI/LegacyWebSearchGallery.swift +++ b/submodules/WebSearchUI/Sources/LegacyWebSearchGallery.swift @@ -11,6 +11,7 @@ import TelegramPresentationData import AccountContext import PhotoResources import LegacyUI +import LegacyMediaPickerUI class LegacyWebSearchItem: NSObject, TGMediaEditableItem, TGMediaSelectableItem { var isVideo: Bool { @@ -392,7 +393,7 @@ func presentLegacyWebSearchGallery(context: AccountContext, peer: Peer?, theme: present(legacyController, nil) } -func legacyEnqueueWebSearchMessages(_ selectionState: TGMediaSelectionContext, _ editingState: TGMediaEditingContext, enqueueChatContextResult: (ChatContextResult) -> Void, enqueueMediaMessages: ([Any]) -> Void) +public func legacyEnqueueWebSearchMessages(_ selectionState: TGMediaSelectionContext, _ editingState: TGMediaEditingContext, enqueueChatContextResult: (ChatContextResult) -> Void, enqueueMediaMessages: ([Any]) -> Void) { var results: [ChatContextResult] = [] for item in selectionState.selectedItems() { diff --git a/submodules/TelegramUI/TelegramUI/WebSearchBadgeNode.swift b/submodules/WebSearchUI/Sources/WebSearchBadgeNode.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/WebSearchBadgeNode.swift rename to submodules/WebSearchUI/Sources/WebSearchBadgeNode.swift diff --git a/submodules/TelegramUI/TelegramUI/WebSearchController.swift b/submodules/WebSearchUI/Sources/WebSearchController.swift similarity index 96% rename from submodules/TelegramUI/TelegramUI/WebSearchController.swift rename to submodules/WebSearchUI/Sources/WebSearchController.swift index 32f5ca9b46..db17897404 100644 --- a/submodules/TelegramUI/TelegramUI/WebSearchController.swift +++ b/submodules/WebSearchUI/Sources/WebSearchController.swift @@ -9,7 +9,7 @@ import LegacyComponents import TelegramUIPreferences import AccountContext -func requestContextResults(account: Account, botId: PeerId, query: String, peerId: PeerId, offset: String = "", existingResults: ChatContextResultCollection? = nil, limit: Int = 60) -> Signal { +public func requestContextResults(account: Account, botId: PeerId, query: String, peerId: PeerId, offset: String = "", existingResults: ChatContextResultCollection? = nil, limit: Int = 60) -> Signal { return requestChatContextResults(account: account, botId: botId, peerId: peerId, query: query, offset: offset) |> `catch` { error -> Signal in return .single(nil) @@ -50,12 +50,12 @@ func requestContextResults(account: Account, botId: PeerId, query: String, peerI } } -enum WebSearchMode { +public enum WebSearchMode { case media case avatar } -enum WebSearchControllerMode { +public enum WebSearchControllerMode { case media(completion: (ChatContextResultCollection, TGMediaSelectionContext, TGMediaEditingContext, Bool) -> Void) case avatar(initialQuery: String?, completion: (UIImage) -> Void) @@ -103,7 +103,7 @@ private func selectionChangedSignal(selectionState: TGMediaSelectionContext) -> } } -final class WebSearchController: ViewController { +public final class WebSearchController: ViewController { private var validLayout: ContainerViewLayout? private let context: AccountContext @@ -132,7 +132,7 @@ final class WebSearchController: ViewController { private var navigationContentNode: WebSearchNavigationContentNode? - init(context: AccountContext, peer: Peer?, configuration: SearchBotsConfiguration, mode: WebSearchControllerMode) { + public init(context: AccountContext, peer: Peer?, configuration: SearchBotsConfiguration, mode: WebSearchControllerMode) { self.context = context self.mode = mode self.peer = peer @@ -261,7 +261,7 @@ final class WebSearchController: ViewController { self.selectionDisposable?.dispose() } - public override func viewDidAppear(_ animated: Bool) { + override public func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) if let presentationArguments = self.presentationArguments as? ViewControllerPresentationArguments, !self.didPlayPresentationAnimation { @@ -272,7 +272,7 @@ final class WebSearchController: ViewController { } } - override func viewWillAppear(_ animated: Bool) { + override public func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) var select = false @@ -305,7 +305,7 @@ final class WebSearchController: ViewController { self.displayNodeDidLoad() } - func updateInterfaceState(animated: Bool = true, _ f: (WebSearchInterfaceState) -> WebSearchInterfaceState) { + private func updateInterfaceState(animated: Bool = true, _ f: (WebSearchInterfaceState) -> WebSearchInterfaceState) { let previousInterfaceState = self.interfaceState let previousTheme = self.interfaceState.presentationData.theme let previousStrings = self.interfaceState.presentationData.theme diff --git a/submodules/TelegramUI/TelegramUI/WebSearchControllerNode.swift b/submodules/WebSearchUI/Sources/WebSearchControllerNode.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/WebSearchControllerNode.swift rename to submodules/WebSearchUI/Sources/WebSearchControllerNode.swift diff --git a/submodules/TelegramUI/TelegramUI/WebSearchGalleryController.swift b/submodules/WebSearchUI/Sources/WebSearchGalleryController.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/WebSearchGalleryController.swift rename to submodules/WebSearchUI/Sources/WebSearchGalleryController.swift diff --git a/submodules/TelegramUI/TelegramUI/WebSearchGalleryFooterContentNode.swift b/submodules/WebSearchUI/Sources/WebSearchGalleryFooterContentNode.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/WebSearchGalleryFooterContentNode.swift rename to submodules/WebSearchUI/Sources/WebSearchGalleryFooterContentNode.swift diff --git a/submodules/TelegramUI/TelegramUI/WebSearchInterfaceState.swift b/submodules/WebSearchUI/Sources/WebSearchInterfaceState.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/WebSearchInterfaceState.swift rename to submodules/WebSearchUI/Sources/WebSearchInterfaceState.swift diff --git a/submodules/TelegramUI/TelegramUI/WebSearchItem.swift b/submodules/WebSearchUI/Sources/WebSearchItem.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/WebSearchItem.swift rename to submodules/WebSearchUI/Sources/WebSearchItem.swift diff --git a/submodules/TelegramUI/TelegramUI/WebSearchNavigationContentNode.swift b/submodules/WebSearchUI/Sources/WebSearchNavigationContentNode.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/WebSearchNavigationContentNode.swift rename to submodules/WebSearchUI/Sources/WebSearchNavigationContentNode.swift diff --git a/submodules/TelegramUI/TelegramUI/WebSearchRecentQueries.swift b/submodules/WebSearchUI/Sources/WebSearchRecentQueries.swift similarity index 97% rename from submodules/TelegramUI/TelegramUI/WebSearchRecentQueries.swift rename to submodules/WebSearchUI/Sources/WebSearchRecentQueries.swift index 4ebcd9a51e..bad36c2911 100644 --- a/submodules/TelegramUI/TelegramUI/WebSearchRecentQueries.swift +++ b/submodules/WebSearchUI/Sources/WebSearchRecentQueries.swift @@ -24,7 +24,7 @@ private struct WebSearchRecentQueryItemId { } } -final class RecentWebSearchQueryItem: OrderedItemListEntryContents { +public final class RecentWebSearchQueryItem: OrderedItemListEntryContents { init() { } diff --git a/submodules/TelegramUI/TelegramUI/WebSearchRecentQueryItem.swift b/submodules/WebSearchUI/Sources/WebSearchRecentQueryItem.swift similarity index 90% rename from submodules/TelegramUI/TelegramUI/WebSearchRecentQueryItem.swift rename to submodules/WebSearchUI/Sources/WebSearchRecentQueryItem.swift index f505c5615e..0f73c66038 100644 --- a/submodules/TelegramUI/TelegramUI/WebSearchRecentQueryItem.swift +++ b/submodules/WebSearchUI/Sources/WebSearchRecentQueryItem.swift @@ -12,7 +12,7 @@ private enum RevealOptionKey: Int32 { case delete } -class WebSearchRecentQueryItem: ListViewItem { +public class WebSearchRecentQueryItem: ListViewItem { let theme: PresentationTheme let strings: PresentationStrings let account: Account @@ -22,7 +22,7 @@ class WebSearchRecentQueryItem: ListViewItem { let header: ListViewItemHeader? - init(account: Account, theme: PresentationTheme, strings: PresentationStrings, query: String, tapped: @escaping (String) -> Void, deleted: @escaping (String) -> Void, header: ListViewItemHeader) { + public init(account: Account, theme: PresentationTheme, strings: PresentationStrings, query: String, tapped: @escaping (String) -> Void, deleted: @escaping (String) -> Void, header: ListViewItemHeader) { self.theme = theme self.strings = strings self.account = account @@ -32,7 +32,7 @@ class WebSearchRecentQueryItem: ListViewItem { self.header = header } - 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 = WebSearchRecentQueryItemNode() let makeLayout = node.asyncLayout() @@ -44,7 +44,7 @@ class WebSearchRecentQueryItem: 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 { if let nodeValue = node() as? WebSearchRecentQueryItemNode { let layout = nodeValue.asyncLayout() @@ -60,11 +60,11 @@ class WebSearchRecentQueryItem: ListViewItem { } } - var selectable: Bool { + public var selectable: Bool { return true } - func selected(listView: ListView) { + public func selected(listView: ListView) { listView.clearHighlightAnimated(true) self.tapped(self.query) } diff --git a/submodules/WebSearchUI/Sources/WebSearchUI.h b/submodules/WebSearchUI/Sources/WebSearchUI.h new file mode 100644 index 0000000000..4c61e7ca82 --- /dev/null +++ b/submodules/WebSearchUI/Sources/WebSearchUI.h @@ -0,0 +1,19 @@ +// +// WebSearchUI.h +// WebSearchUI +// +// Created by Peter on 8/15/19. +// Copyright © 2019 Telegram Messenger LLP. All rights reserved. +// + +#import + +//! Project version number for WebSearchUI. +FOUNDATION_EXPORT double WebSearchUIVersionNumber; + +//! Project version string for WebSearchUI. +FOUNDATION_EXPORT const unsigned char WebSearchUIVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/submodules/TelegramUI/TelegramUI/WebSearchVideoGalleryItem.swift b/submodules/WebSearchUI/Sources/WebSearchVideoGalleryItem.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/WebSearchVideoGalleryItem.swift rename to submodules/WebSearchUI/Sources/WebSearchVideoGalleryItem.swift diff --git a/submodules/WebSearchUI/WebSearchUI_Xcode.xcodeproj/project.pbxproj b/submodules/WebSearchUI/WebSearchUI_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..8deb66fd50 --- /dev/null +++ b/submodules/WebSearchUI/WebSearchUI_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,675 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E3F102304C2530049C28B /* WebSearchUI.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E3F0E2304C2530049C28B /* WebSearchUI.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E3F242304C2E00049C28B /* WebSearchController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3F1A2304C2DE0049C28B /* WebSearchController.swift */; }; + D03E3F252304C2E00049C28B /* WebSearchNavigationContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3F1B2304C2DF0049C28B /* WebSearchNavigationContentNode.swift */; }; + D03E3F262304C2E00049C28B /* WebSearchRecentQueryItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3F1C2304C2DF0049C28B /* WebSearchRecentQueryItem.swift */; }; + D03E3F272304C2E00049C28B /* WebSearchGalleryFooterContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3F1D2304C2DF0049C28B /* WebSearchGalleryFooterContentNode.swift */; }; + D03E3F282304C2E00049C28B /* WebSearchInterfaceState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3F1E2304C2DF0049C28B /* WebSearchInterfaceState.swift */; }; + D03E3F292304C2E00049C28B /* WebSearchRecentQueries.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3F1F2304C2DF0049C28B /* WebSearchRecentQueries.swift */; }; + D03E3F2A2304C2E00049C28B /* WebSearchItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3F202304C2DF0049C28B /* WebSearchItem.swift */; }; + D03E3F2B2304C2E00049C28B /* WebSearchControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3F212304C2DF0049C28B /* WebSearchControllerNode.swift */; }; + D03E3F2C2304C2E00049C28B /* WebSearchGalleryController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3F222304C2DF0049C28B /* WebSearchGalleryController.swift */; }; + D03E3F2D2304C2E00049C28B /* WebSearchBadgeNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3F232304C2DF0049C28B /* WebSearchBadgeNode.swift */; }; + D03E3F302304C2EF0049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F2F2304C2EF0049C28B /* Foundation.framework */; }; + D03E3F322304C2F10049C28B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F312304C2F10049C28B /* UIKit.framework */; }; + D03E3F342304C2F50049C28B /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F332304C2F50049C28B /* AsyncDisplayKit.framework */; }; + D03E3F362304C2F90049C28B /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F352304C2F90049C28B /* Display.framework */; }; + D03E3F382304C2FE0049C28B /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F372304C2FE0049C28B /* TelegramPresentationData.framework */; }; + D03E3F3A2304C3050049C28B /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F392304C3050049C28B /* Postbox.framework */; }; + D03E3F3C2304C30B0049C28B /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F3B2304C30B0049C28B /* SwiftSignalKit.framework */; }; + D03E3F3E2304C3140049C28B /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F3D2304C3140049C28B /* TelegramCore.framework */; }; + D03E3F402304C31B0049C28B /* LegacyComponents.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F3F2304C31B0049C28B /* LegacyComponents.framework */; }; + D03E3F422304C31F0049C28B /* TelegramUIPreferences.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F412304C31F0049C28B /* TelegramUIPreferences.framework */; }; + D03E3F442304C3230049C28B /* AccountContext.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F432304C3230049C28B /* AccountContext.framework */; }; + D03E3F462304C3350049C28B /* MergeLists.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F452304C3350049C28B /* MergeLists.framework */; }; + D03E3F482304C33D0049C28B /* GalleryUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F472304C33D0049C28B /* GalleryUI.framework */; }; + D03E3F4A2304C3440049C28B /* ChatListSearchItemHeader.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F492304C3440049C28B /* ChatListSearchItemHeader.framework */; }; + D03E3F4C2304C34D0049C28B /* QuickLook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F4B2304C34D0049C28B /* QuickLook.framework */; }; + D03E3F4E2304C3580049C28B /* TelegramUniversalVideoContent.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F4D2304C3580049C28B /* TelegramUniversalVideoContent.framework */; }; + D03E3F502304C3660049C28B /* CheckNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F4F2304C3660049C28B /* CheckNode.framework */; }; + D03E3F522304C36B0049C28B /* PhotoResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F512304C36B0049C28B /* PhotoResources.framework */; }; + D03E3F542304C3730049C28B /* SearchBarNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F532304C3730049C28B /* SearchBarNode.framework */; }; + D03E3F562304C37F0049C28B /* ItemListUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F552304C37F0049C28B /* ItemListUI.framework */; }; + D03E3F5C2304C3E20049C28B /* WebSearchVideoGalleryItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3F592304C3E20049C28B /* WebSearchVideoGalleryItem.swift */; }; + D03E3F5D2304C3E20049C28B /* LegacyWebSearchEditor.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3F5A2304C3E20049C28B /* LegacyWebSearchEditor.swift */; }; + D03E3F5E2304C3E20049C28B /* LegacyWebSearchGallery.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3F5B2304C3E20049C28B /* LegacyWebSearchGallery.swift */; }; + D03E3FA22304C5AA0049C28B /* LegacyMediaPickerUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3FA12304C5AA0049C28B /* LegacyMediaPickerUI.framework */; }; + D03E3FA42304C5D00049C28B /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3FA32304C5D00049C28B /* FrameworkBundle.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E3F0B2304C2530049C28B /* WebSearchUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = WebSearchUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3F0E2304C2530049C28B /* WebSearchUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebSearchUI.h; sourceTree = ""; }; + D03E3F0F2304C2530049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E3F1A2304C2DE0049C28B /* WebSearchController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebSearchController.swift; sourceTree = ""; }; + D03E3F1B2304C2DF0049C28B /* WebSearchNavigationContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebSearchNavigationContentNode.swift; sourceTree = ""; }; + D03E3F1C2304C2DF0049C28B /* WebSearchRecentQueryItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebSearchRecentQueryItem.swift; sourceTree = ""; }; + D03E3F1D2304C2DF0049C28B /* WebSearchGalleryFooterContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebSearchGalleryFooterContentNode.swift; sourceTree = ""; }; + D03E3F1E2304C2DF0049C28B /* WebSearchInterfaceState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebSearchInterfaceState.swift; sourceTree = ""; }; + D03E3F1F2304C2DF0049C28B /* WebSearchRecentQueries.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebSearchRecentQueries.swift; sourceTree = ""; }; + D03E3F202304C2DF0049C28B /* WebSearchItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebSearchItem.swift; sourceTree = ""; }; + D03E3F212304C2DF0049C28B /* WebSearchControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebSearchControllerNode.swift; sourceTree = ""; }; + D03E3F222304C2DF0049C28B /* WebSearchGalleryController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebSearchGalleryController.swift; sourceTree = ""; }; + D03E3F232304C2DF0049C28B /* WebSearchBadgeNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebSearchBadgeNode.swift; sourceTree = ""; }; + D03E3F2F2304C2EF0049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E3F312304C2F10049C28B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D03E3F332304C2F50049C28B /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3F352304C2F90049C28B /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3F372304C2FE0049C28B /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3F392304C3050049C28B /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3F3B2304C30B0049C28B /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3F3D2304C3140049C28B /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3F3F2304C31B0049C28B /* LegacyComponents.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LegacyComponents.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3F412304C31F0049C28B /* TelegramUIPreferences.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramUIPreferences.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3F432304C3230049C28B /* AccountContext.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AccountContext.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3F452304C3350049C28B /* MergeLists.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MergeLists.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3F472304C33D0049C28B /* GalleryUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = GalleryUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3F492304C3440049C28B /* ChatListSearchItemHeader.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ChatListSearchItemHeader.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3F4B2304C34D0049C28B /* QuickLook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickLook.framework; path = System/Library/Frameworks/QuickLook.framework; sourceTree = SDKROOT; }; + D03E3F4D2304C3580049C28B /* TelegramUniversalVideoContent.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramUniversalVideoContent.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3F4F2304C3660049C28B /* CheckNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = CheckNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3F512304C36B0049C28B /* PhotoResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PhotoResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3F532304C3730049C28B /* SearchBarNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SearchBarNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3F552304C37F0049C28B /* ItemListUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3F592304C3E20049C28B /* WebSearchVideoGalleryItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebSearchVideoGalleryItem.swift; sourceTree = ""; }; + D03E3F5A2304C3E20049C28B /* LegacyWebSearchEditor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyWebSearchEditor.swift; sourceTree = ""; }; + D03E3F5B2304C3E20049C28B /* LegacyWebSearchGallery.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyWebSearchGallery.swift; sourceTree = ""; }; + D03E3FA12304C5AA0049C28B /* LegacyMediaPickerUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LegacyMediaPickerUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3FA32304C5D00049C28B /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E3F082304C2530049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3FA22304C5AA0049C28B /* LegacyMediaPickerUI.framework in Frameworks */, + D03E3F562304C37F0049C28B /* ItemListUI.framework in Frameworks */, + D03E3F542304C3730049C28B /* SearchBarNode.framework in Frameworks */, + D03E3F522304C36B0049C28B /* PhotoResources.framework in Frameworks */, + D03E3F502304C3660049C28B /* CheckNode.framework in Frameworks */, + D03E3F4E2304C3580049C28B /* TelegramUniversalVideoContent.framework in Frameworks */, + D03E3F4C2304C34D0049C28B /* QuickLook.framework in Frameworks */, + D03E3F4A2304C3440049C28B /* ChatListSearchItemHeader.framework in Frameworks */, + D03E3F482304C33D0049C28B /* GalleryUI.framework in Frameworks */, + D03E3F462304C3350049C28B /* MergeLists.framework in Frameworks */, + D03E3F442304C3230049C28B /* AccountContext.framework in Frameworks */, + D03E3F422304C31F0049C28B /* TelegramUIPreferences.framework in Frameworks */, + D03E3F402304C31B0049C28B /* LegacyComponents.framework in Frameworks */, + D03E3F3E2304C3140049C28B /* TelegramCore.framework in Frameworks */, + D03E3F3C2304C30B0049C28B /* SwiftSignalKit.framework in Frameworks */, + D03E3F3A2304C3050049C28B /* Postbox.framework in Frameworks */, + D03E3F382304C2FE0049C28B /* TelegramPresentationData.framework in Frameworks */, + D03E3F362304C2F90049C28B /* Display.framework in Frameworks */, + D03E3F342304C2F50049C28B /* AsyncDisplayKit.framework in Frameworks */, + D03E3F322304C2F10049C28B /* UIKit.framework in Frameworks */, + D03E3F302304C2EF0049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E3F012304C2530049C28B = { + isa = PBXGroup; + children = ( + D03E3F0F2304C2530049C28B /* Info.plist */, + D03E3F0D2304C2530049C28B /* Sources */, + D03E3F0C2304C2530049C28B /* Products */, + D03E3F2E2304C2ED0049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E3F0C2304C2530049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E3F0B2304C2530049C28B /* WebSearchUI.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E3F0D2304C2530049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E3F5A2304C3E20049C28B /* LegacyWebSearchEditor.swift */, + D03E3F5B2304C3E20049C28B /* LegacyWebSearchGallery.swift */, + D03E3F592304C3E20049C28B /* WebSearchVideoGalleryItem.swift */, + D03E3F232304C2DF0049C28B /* WebSearchBadgeNode.swift */, + D03E3F1A2304C2DE0049C28B /* WebSearchController.swift */, + D03E3F212304C2DF0049C28B /* WebSearchControllerNode.swift */, + D03E3F222304C2DF0049C28B /* WebSearchGalleryController.swift */, + D03E3F1D2304C2DF0049C28B /* WebSearchGalleryFooterContentNode.swift */, + D03E3F1E2304C2DF0049C28B /* WebSearchInterfaceState.swift */, + D03E3F202304C2DF0049C28B /* WebSearchItem.swift */, + D03E3F1B2304C2DF0049C28B /* WebSearchNavigationContentNode.swift */, + D03E3F1F2304C2DF0049C28B /* WebSearchRecentQueries.swift */, + D03E3F1C2304C2DF0049C28B /* WebSearchRecentQueryItem.swift */, + D03E3FA32304C5D00049C28B /* FrameworkBundle.swift */, + D03E3F0E2304C2530049C28B /* WebSearchUI.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E3F2E2304C2ED0049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E3FA12304C5AA0049C28B /* LegacyMediaPickerUI.framework */, + D03E3F552304C37F0049C28B /* ItemListUI.framework */, + D03E3F532304C3730049C28B /* SearchBarNode.framework */, + D03E3F512304C36B0049C28B /* PhotoResources.framework */, + D03E3F4F2304C3660049C28B /* CheckNode.framework */, + D03E3F4D2304C3580049C28B /* TelegramUniversalVideoContent.framework */, + D03E3F4B2304C34D0049C28B /* QuickLook.framework */, + D03E3F492304C3440049C28B /* ChatListSearchItemHeader.framework */, + D03E3F472304C33D0049C28B /* GalleryUI.framework */, + D03E3F452304C3350049C28B /* MergeLists.framework */, + D03E3F432304C3230049C28B /* AccountContext.framework */, + D03E3F412304C31F0049C28B /* TelegramUIPreferences.framework */, + D03E3F3F2304C31B0049C28B /* LegacyComponents.framework */, + D03E3F3D2304C3140049C28B /* TelegramCore.framework */, + D03E3F3B2304C30B0049C28B /* SwiftSignalKit.framework */, + D03E3F392304C3050049C28B /* Postbox.framework */, + D03E3F372304C2FE0049C28B /* TelegramPresentationData.framework */, + D03E3F352304C2F90049C28B /* Display.framework */, + D03E3F332304C2F50049C28B /* AsyncDisplayKit.framework */, + D03E3F312304C2F10049C28B /* UIKit.framework */, + D03E3F2F2304C2EF0049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E3F062304C2530049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3F102304C2530049C28B /* WebSearchUI.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E3F0A2304C2530049C28B /* WebSearchUI */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E3F132304C2530049C28B /* Build configuration list for PBXNativeTarget "WebSearchUI" */; + buildPhases = ( + D03E3F062304C2530049C28B /* Headers */, + D03E3F072304C2530049C28B /* Sources */, + D03E3F082304C2530049C28B /* Frameworks */, + D03E3F092304C2530049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = WebSearchUI; + productName = WebSearchUI; + productReference = D03E3F0B2304C2530049C28B /* WebSearchUI.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E3F022304C2530049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E3F0A2304C2530049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E3F052304C2530049C28B /* Build configuration list for PBXProject "WebSearchUI_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E3F012304C2530049C28B; + productRefGroup = D03E3F0C2304C2530049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E3F0A2304C2530049C28B /* WebSearchUI */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E3F092304C2530049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E3F072304C2530049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E3F5C2304C3E20049C28B /* WebSearchVideoGalleryItem.swift in Sources */, + D03E3F2D2304C2E00049C28B /* WebSearchBadgeNode.swift in Sources */, + D03E3F282304C2E00049C28B /* WebSearchInterfaceState.swift in Sources */, + D03E3F252304C2E00049C28B /* WebSearchNavigationContentNode.swift in Sources */, + D03E3F292304C2E00049C28B /* WebSearchRecentQueries.swift in Sources */, + D03E3F2C2304C2E00049C28B /* WebSearchGalleryController.swift in Sources */, + D03E3F5E2304C3E20049C28B /* LegacyWebSearchGallery.swift in Sources */, + D03E3F242304C2E00049C28B /* WebSearchController.swift in Sources */, + D03E3F2A2304C2E00049C28B /* WebSearchItem.swift in Sources */, + D03E3F272304C2E00049C28B /* WebSearchGalleryFooterContentNode.swift in Sources */, + D03E3F2B2304C2E00049C28B /* WebSearchControllerNode.swift in Sources */, + D03E3F5D2304C3E20049C28B /* LegacyWebSearchEditor.swift in Sources */, + D03E3FA42304C5D00049C28B /* FrameworkBundle.swift in Sources */, + D03E3F262304C2E00049C28B /* WebSearchRecentQueryItem.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E3F112304C2530049C28B /* 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; + }; + D03E3F122304C2530049C28B /* 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; + }; + D03E3F142304C2530049C28B /* 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.WebSearchUI; + 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; + }; + D03E3F152304C2530049C28B /* 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.WebSearchUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E3F162304C27F0049C28B /* 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; + }; + D03E3F172304C27F0049C28B /* 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.WebSearchUI; + 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; + }; + D03E3F182304C2890049C28B /* 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; + }; + D03E3F192304C2890049C28B /* 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.WebSearchUI; + 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 */ + D03E3F052304C2530049C28B /* Build configuration list for PBXProject "WebSearchUI_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E3F112304C2530049C28B /* DebugAppStoreLLC */, + D03E3F162304C27F0049C28B /* DebugHockeyapp */, + D03E3F122304C2530049C28B /* ReleaseAppStoreLLC */, + D03E3F182304C2890049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E3F132304C2530049C28B /* Build configuration list for PBXNativeTarget "WebSearchUI" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E3F142304C2530049C28B /* DebugAppStoreLLC */, + D03E3F172304C27F0049C28B /* DebugHockeyapp */, + D03E3F152304C2530049C28B /* ReleaseAppStoreLLC */, + D03E3F192304C2890049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E3F022304C2530049C28B /* Project object */; +} From ad79e4143ef70611dcba2804ec4c1b2ac4a3a6f0 Mon Sep 17 00:00:00 2001 From: Peter <> Date: Thu, 15 Aug 2019 02:28:14 +0300 Subject: [PATCH 06/11] Refactor PeersNearbyUI [skip ci] --- .../contents.xcworkspacedata | 6 + .../Sources/AccountContext.swift | 7 + .../Geocoding_Xcode.xcodeproj/project.pbxproj | 551 ++++++++++++++++ submodules/Geocoding/Info.plist | 22 + submodules/Geocoding/Sources/Geocoding.h | 19 + .../Sources}/Geocoding.swift | 14 +- submodules/PeersNearbyUI/Info.plist | 22 + .../project.pbxproj | 623 ++++++++++++++++++ .../Sources/FrameworkBundle.swift | 13 + .../Sources}/PeersNearbyController.swift | 5 +- .../Sources}/PeersNearbyHeaderItem.swift | 0 .../PeersNearbyUI/Sources/PeersNearbyUI.h | 19 + ...hannelDiscussionGroupSetupController.swift | 2 +- .../TelegramUI/ComposeController.swift | 4 +- .../TelegramUI/CreateGroupController.swift | 9 +- .../DeviceContactInfoController.swift | 1 + .../TelegramUI/GroupInfoController.swift | 1 + .../TelegramUI/SharedAccountContext.swift | 5 + .../ThemeAutoNightSettingsController.swift | 1 + .../project.pbxproj | 28 +- 20 files changed, 1313 insertions(+), 39 deletions(-) create mode 100644 submodules/Geocoding/Geocoding_Xcode.xcodeproj/project.pbxproj create mode 100644 submodules/Geocoding/Info.plist create mode 100644 submodules/Geocoding/Sources/Geocoding.h rename submodules/{TelegramUI/TelegramUI => Geocoding/Sources}/Geocoding.swift (81%) create mode 100644 submodules/PeersNearbyUI/Info.plist create mode 100644 submodules/PeersNearbyUI/PeersNearbyUI_Xcode.xcodeproj/project.pbxproj create mode 100644 submodules/PeersNearbyUI/Sources/FrameworkBundle.swift rename submodules/{TelegramUI/TelegramUI => PeersNearbyUI/Sources}/PeersNearbyController.swift (98%) rename submodules/{TelegramUI/TelegramUI => PeersNearbyUI/Sources}/PeersNearbyHeaderItem.swift (100%) create mode 100644 submodules/PeersNearbyUI/Sources/PeersNearbyUI.h diff --git a/Telegram-iOS.xcworkspace/contents.xcworkspacedata b/Telegram-iOS.xcworkspace/contents.xcworkspacedata index 278c7684c5..da095b9f65 100644 --- a/Telegram-iOS.xcworkspace/contents.xcworkspacedata +++ b/Telegram-iOS.xcworkspace/contents.xcworkspacedata @@ -89,6 +89,9 @@ + + @@ -436,6 +439,9 @@ + + diff --git a/submodules/AccountContext/Sources/AccountContext.swift b/submodules/AccountContext/Sources/AccountContext.swift index 40d7dc4f6c..73b63799a8 100644 --- a/submodules/AccountContext/Sources/AccountContext.swift +++ b/submodules/AccountContext/Sources/AccountContext.swift @@ -369,6 +369,12 @@ public final class ContactSelectionControllerParams { public let defaultContactLabel: String = "_$!!$_" +public enum CreateGroupMode { + case generic + case supergroup + case locatedGroup(latitude: Double, longitude: Double, address: String?) +} + public protocol SharedAccountContext: class { var basePath: String { get } var mainWindow: Window1? { get } @@ -412,6 +418,7 @@ public protocol SharedAccountContext: class { func makeContactSelectionController(_ params: ContactSelectionControllerParams) -> ContactSelectionController func makeProxySettingsController(context: AccountContext) -> ViewController func makeLocalizationListController(context: AccountContext) -> ViewController + func makeCreateGroupController(context: AccountContext, peerIds: [PeerId], initialTitle: String?, mode: CreateGroupMode, completion: ((PeerId, @escaping () -> Void) -> Void)?) -> ViewController func navigateToChatController(_ params: NavigateToChatControllerParams) func openExternalUrl(context: AccountContext, urlContext: OpenURLContext, url: String, forceExternal: Bool, presentationData: PresentationData, navigationController: NavigationController?, dismissInput: @escaping () -> Void) func chatAvailableMessageActions(postbox: Postbox, accountPeerId: PeerId, messageIds: Set) -> Signal diff --git a/submodules/Geocoding/Geocoding_Xcode.xcodeproj/project.pbxproj b/submodules/Geocoding/Geocoding_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..731fc73341 --- /dev/null +++ b/submodules/Geocoding/Geocoding_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,551 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E40472304CE000049C28B /* Geocoding.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E40452304CE000049C28B /* Geocoding.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E40522304CE5D0049C28B /* Geocoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40512304CE5D0049C28B /* Geocoding.swift */; }; + D03E40552304CE680049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40542304CE680049C28B /* Foundation.framework */; }; + D03E40572304CE6B0049C28B /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40562304CE6B0049C28B /* CoreLocation.framework */; }; + D03E40592304CE6F0049C28B /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40582304CE6F0049C28B /* SwiftSignalKit.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E40422304CE000049C28B /* Geocoding.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Geocoding.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40452304CE000049C28B /* Geocoding.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Geocoding.h; sourceTree = ""; }; + D03E40462304CE000049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E40512304CE5D0049C28B /* Geocoding.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Geocoding.swift; sourceTree = ""; }; + D03E40542304CE680049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E40562304CE6B0049C28B /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; }; + D03E40582304CE6F0049C28B /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E403F2304CE000049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E40592304CE6F0049C28B /* SwiftSignalKit.framework in Frameworks */, + D03E40572304CE6B0049C28B /* CoreLocation.framework in Frameworks */, + D03E40552304CE680049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E40382304CE000049C28B = { + isa = PBXGroup; + children = ( + D03E40462304CE000049C28B /* Info.plist */, + D03E40442304CE000049C28B /* Sources */, + D03E40432304CE000049C28B /* Products */, + D03E40532304CE680049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E40432304CE000049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E40422304CE000049C28B /* Geocoding.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E40442304CE000049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E40512304CE5D0049C28B /* Geocoding.swift */, + D03E40452304CE000049C28B /* Geocoding.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E40532304CE680049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E40582304CE6F0049C28B /* SwiftSignalKit.framework */, + D03E40562304CE6B0049C28B /* CoreLocation.framework */, + D03E40542304CE680049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E403D2304CE000049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E40472304CE000049C28B /* Geocoding.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E40412304CE000049C28B /* Geocoding */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E404A2304CE000049C28B /* Build configuration list for PBXNativeTarget "Geocoding" */; + buildPhases = ( + D03E403D2304CE000049C28B /* Headers */, + D03E403E2304CE000049C28B /* Sources */, + D03E403F2304CE000049C28B /* Frameworks */, + D03E40402304CE000049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Geocoding; + productName = Geocoding; + productReference = D03E40422304CE000049C28B /* Geocoding.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E40392304CE000049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E40412304CE000049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E403C2304CE000049C28B /* Build configuration list for PBXProject "Geocoding_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E40382304CE000049C28B; + productRefGroup = D03E40432304CE000049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E40412304CE000049C28B /* Geocoding */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E40402304CE000049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E403E2304CE000049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E40522304CE5D0049C28B /* Geocoding.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E40482304CE000049C28B /* 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; + }; + D03E40492304CE000049C28B /* 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; + }; + D03E404B2304CE000049C28B /* 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.Geocoding; + 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; + }; + D03E404C2304CE000049C28B /* 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.Geocoding; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E404D2304CE270049C28B /* 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; + }; + D03E404E2304CE270049C28B /* 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.Geocoding; + 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; + }; + D03E404F2304CE310049C28B /* 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; + }; + D03E40502304CE310049C28B /* 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.Geocoding; + 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 */ + D03E403C2304CE000049C28B /* Build configuration list for PBXProject "Geocoding_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E40482304CE000049C28B /* DebugAppStoreLLC */, + D03E404D2304CE270049C28B /* DebugHockeyapp */, + D03E40492304CE000049C28B /* ReleaseAppStoreLLC */, + D03E404F2304CE310049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E404A2304CE000049C28B /* Build configuration list for PBXNativeTarget "Geocoding" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E404B2304CE000049C28B /* DebugAppStoreLLC */, + D03E404E2304CE270049C28B /* DebugHockeyapp */, + D03E404C2304CE000049C28B /* ReleaseAppStoreLLC */, + D03E40502304CE310049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E40392304CE000049C28B /* Project object */; +} diff --git a/submodules/Geocoding/Info.plist b/submodules/Geocoding/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/Geocoding/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/Geocoding/Sources/Geocoding.h b/submodules/Geocoding/Sources/Geocoding.h new file mode 100644 index 0000000000..d49cdcfd42 --- /dev/null +++ b/submodules/Geocoding/Sources/Geocoding.h @@ -0,0 +1,19 @@ +// +// Geocoding.h +// Geocoding +// +// Created by Peter on 8/15/19. +// Copyright © 2019 Telegram Messenger LLP. All rights reserved. +// + +#import + +//! Project version number for Geocoding. +FOUNDATION_EXPORT double GeocodingVersionNumber; + +//! Project version string for Geocoding. +FOUNDATION_EXPORT const unsigned char GeocodingVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/submodules/TelegramUI/TelegramUI/Geocoding.swift b/submodules/Geocoding/Sources/Geocoding.swift similarity index 81% rename from submodules/TelegramUI/TelegramUI/Geocoding.swift rename to submodules/Geocoding/Sources/Geocoding.swift index 9a39958f09..967fe6169a 100644 --- a/submodules/TelegramUI/TelegramUI/Geocoding.swift +++ b/submodules/Geocoding/Sources/Geocoding.swift @@ -2,7 +2,7 @@ import Foundation import CoreLocation import SwiftSignalKit -func geocodeLocation(dictionary: [String: String]) -> Signal<(Double, Double)?, NoError> { +public func geocodeLocation(dictionary: [String: String]) -> Signal<(Double, Double)?, NoError> { return Signal { subscriber in let geocoder = CLGeocoder() geocoder.geocodeAddressDictionary(dictionary, completionHandler: { placemarks, _ in @@ -19,12 +19,12 @@ func geocodeLocation(dictionary: [String: String]) -> Signal<(Double, Double)?, } } -struct ReverseGeocodedPlacemark { - let street: String? - let city: String? - let country: String? +public struct ReverseGeocodedPlacemark { + public let street: String? + public let city: String? + public let country: String? - var fullAddress: String { + public var fullAddress: String { var components: [String] = [] if let street = self.street { components.append(street) @@ -40,7 +40,7 @@ struct ReverseGeocodedPlacemark { } } -func reverseGeocodeLocation(latitude: Double, longitude: Double) -> Signal { +public func reverseGeocodeLocation(latitude: Double, longitude: Double) -> Signal { return Signal { subscriber in let geocoder = CLGeocoder() geocoder.reverseGeocodeLocation(CLLocation(latitude: latitude, longitude: longitude), completionHandler: { placemarks, _ in diff --git a/submodules/PeersNearbyUI/Info.plist b/submodules/PeersNearbyUI/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/PeersNearbyUI/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/PeersNearbyUI/PeersNearbyUI_Xcode.xcodeproj/project.pbxproj b/submodules/PeersNearbyUI/PeersNearbyUI_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..d885b8832e --- /dev/null +++ b/submodules/PeersNearbyUI/PeersNearbyUI_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,623 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E40012304CC5C0049C28B /* PeersNearbyUI.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E3FFF2304CC5C0049C28B /* PeersNearbyUI.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E400D2304CCBD0049C28B /* PeersNearbyController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E400B2304CCBD0049C28B /* PeersNearbyController.swift */; }; + D03E400E2304CCBD0049C28B /* PeersNearbyHeaderItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E400C2304CCBD0049C28B /* PeersNearbyHeaderItem.swift */; }; + D03E40112304CCCD0049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40102304CCCD0049C28B /* Foundation.framework */; }; + D03E40132304CCD00049C28B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40122304CCD00049C28B /* UIKit.framework */; }; + D03E40152304CCD30049C28B /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40142304CCD30049C28B /* Display.framework */; }; + D03E40172304CCD80049C28B /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40162304CCD80049C28B /* SwiftSignalKit.framework */; }; + D03E40192304CCDC0049C28B /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40182304CCDC0049C28B /* Postbox.framework */; }; + D03E401B2304CCE10049C28B /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E401A2304CCE10049C28B /* TelegramCore.framework */; }; + D03E401D2304CCE50049C28B /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E401C2304CCE50049C28B /* MapKit.framework */; }; + D03E401F2304CCE80049C28B /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E401E2304CCE80049C28B /* TelegramPresentationData.framework */; }; + D03E40212304CCEE0049C28B /* TelegramUIPreferences.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40202304CCEE0049C28B /* TelegramUIPreferences.framework */; }; + D03E40232304CCF40049C28B /* ItemListUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40222304CCF40049C28B /* ItemListUI.framework */; }; + D03E40252304CCFA0049C28B /* OverlayStatusController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40242304CCFA0049C28B /* OverlayStatusController.framework */; }; + D03E40272304CCFF0049C28B /* DeviceLocationManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40262304CCFF0049C28B /* DeviceLocationManager.framework */; }; + D03E40292304CD030049C28B /* AccountContext.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40282304CD030049C28B /* AccountContext.framework */; }; + D03E402B2304CD070049C28B /* AlertUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E402A2304CD070049C28B /* AlertUI.framework */; }; + D03E402D2304CD0B0049C28B /* ItemListPeerItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E402C2304CD0B0049C28B /* ItemListPeerItem.framework */; }; + D03E402F2304CD100049C28B /* TelegramPermissionsUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E402E2304CD100049C28B /* TelegramPermissionsUI.framework */; }; + D03E40312304CD170049C28B /* ItemListPeerActionItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40302304CD170049C28B /* ItemListPeerActionItem.framework */; }; + D03E40332304CD220049C28B /* PeersNearbyIconNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40322304CD220049C28B /* PeersNearbyIconNode.framework */; }; + D03E40372304CD6C0049C28B /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40362304CD6C0049C28B /* FrameworkBundle.swift */; }; + D03E405B2304CE8B0049C28B /* Geocoding.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E405A2304CE8B0049C28B /* Geocoding.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E3FFC2304CC5C0049C28B /* PeersNearbyUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PeersNearbyUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E3FFF2304CC5C0049C28B /* PeersNearbyUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PeersNearbyUI.h; sourceTree = ""; }; + D03E40002304CC5C0049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E400B2304CCBD0049C28B /* PeersNearbyController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeersNearbyController.swift; sourceTree = ""; }; + D03E400C2304CCBD0049C28B /* PeersNearbyHeaderItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeersNearbyHeaderItem.swift; sourceTree = ""; }; + D03E40102304CCCD0049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E40122304CCD00049C28B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D03E40142304CCD30049C28B /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40162304CCD80049C28B /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40182304CCDC0049C28B /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E401A2304CCE10049C28B /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E401C2304CCE50049C28B /* MapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MapKit.framework; path = System/Library/Frameworks/MapKit.framework; sourceTree = SDKROOT; }; + D03E401E2304CCE80049C28B /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40202304CCEE0049C28B /* TelegramUIPreferences.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramUIPreferences.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40222304CCF40049C28B /* ItemListUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40242304CCFA0049C28B /* OverlayStatusController.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = OverlayStatusController.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40262304CCFF0049C28B /* DeviceLocationManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DeviceLocationManager.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40282304CD030049C28B /* AccountContext.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AccountContext.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E402A2304CD070049C28B /* AlertUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AlertUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E402C2304CD0B0049C28B /* ItemListPeerItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListPeerItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E402E2304CD100049C28B /* TelegramPermissionsUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPermissionsUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40302304CD170049C28B /* ItemListPeerActionItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListPeerActionItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40322304CD220049C28B /* PeersNearbyIconNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PeersNearbyIconNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40362304CD6C0049C28B /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; + D03E405A2304CE8B0049C28B /* Geocoding.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Geocoding.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E3FF92304CC5C0049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E405B2304CE8B0049C28B /* Geocoding.framework in Frameworks */, + D03E40332304CD220049C28B /* PeersNearbyIconNode.framework in Frameworks */, + D03E40312304CD170049C28B /* ItemListPeerActionItem.framework in Frameworks */, + D03E402F2304CD100049C28B /* TelegramPermissionsUI.framework in Frameworks */, + D03E402D2304CD0B0049C28B /* ItemListPeerItem.framework in Frameworks */, + D03E402B2304CD070049C28B /* AlertUI.framework in Frameworks */, + D03E40292304CD030049C28B /* AccountContext.framework in Frameworks */, + D03E40272304CCFF0049C28B /* DeviceLocationManager.framework in Frameworks */, + D03E40252304CCFA0049C28B /* OverlayStatusController.framework in Frameworks */, + D03E40232304CCF40049C28B /* ItemListUI.framework in Frameworks */, + D03E40212304CCEE0049C28B /* TelegramUIPreferences.framework in Frameworks */, + D03E401F2304CCE80049C28B /* TelegramPresentationData.framework in Frameworks */, + D03E401D2304CCE50049C28B /* MapKit.framework in Frameworks */, + D03E401B2304CCE10049C28B /* TelegramCore.framework in Frameworks */, + D03E40192304CCDC0049C28B /* Postbox.framework in Frameworks */, + D03E40172304CCD80049C28B /* SwiftSignalKit.framework in Frameworks */, + D03E40152304CCD30049C28B /* Display.framework in Frameworks */, + D03E40132304CCD00049C28B /* UIKit.framework in Frameworks */, + D03E40112304CCCD0049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E3FF22304CC5C0049C28B = { + isa = PBXGroup; + children = ( + D03E40002304CC5C0049C28B /* Info.plist */, + D03E3FFE2304CC5C0049C28B /* Sources */, + D03E3FFD2304CC5C0049C28B /* Products */, + D03E400F2304CCCD0049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E3FFD2304CC5C0049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E3FFC2304CC5C0049C28B /* PeersNearbyUI.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E3FFE2304CC5C0049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E400B2304CCBD0049C28B /* PeersNearbyController.swift */, + D03E400C2304CCBD0049C28B /* PeersNearbyHeaderItem.swift */, + D03E40362304CD6C0049C28B /* FrameworkBundle.swift */, + D03E3FFF2304CC5C0049C28B /* PeersNearbyUI.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E400F2304CCCD0049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E405A2304CE8B0049C28B /* Geocoding.framework */, + D03E40322304CD220049C28B /* PeersNearbyIconNode.framework */, + D03E40302304CD170049C28B /* ItemListPeerActionItem.framework */, + D03E402E2304CD100049C28B /* TelegramPermissionsUI.framework */, + D03E402C2304CD0B0049C28B /* ItemListPeerItem.framework */, + D03E402A2304CD070049C28B /* AlertUI.framework */, + D03E40282304CD030049C28B /* AccountContext.framework */, + D03E40262304CCFF0049C28B /* DeviceLocationManager.framework */, + D03E40242304CCFA0049C28B /* OverlayStatusController.framework */, + D03E40222304CCF40049C28B /* ItemListUI.framework */, + D03E40202304CCEE0049C28B /* TelegramUIPreferences.framework */, + D03E401E2304CCE80049C28B /* TelegramPresentationData.framework */, + D03E401C2304CCE50049C28B /* MapKit.framework */, + D03E401A2304CCE10049C28B /* TelegramCore.framework */, + D03E40182304CCDC0049C28B /* Postbox.framework */, + D03E40162304CCD80049C28B /* SwiftSignalKit.framework */, + D03E40142304CCD30049C28B /* Display.framework */, + D03E40122304CCD00049C28B /* UIKit.framework */, + D03E40102304CCCD0049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E3FF72304CC5C0049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E40012304CC5C0049C28B /* PeersNearbyUI.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E3FFB2304CC5C0049C28B /* PeersNearbyUI */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E40042304CC5C0049C28B /* Build configuration list for PBXNativeTarget "PeersNearbyUI" */; + buildPhases = ( + D03E3FF72304CC5C0049C28B /* Headers */, + D03E3FF82304CC5C0049C28B /* Sources */, + D03E3FF92304CC5C0049C28B /* Frameworks */, + D03E3FFA2304CC5C0049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = PeersNearbyUI; + productName = PeersNearbyUI; + productReference = D03E3FFC2304CC5C0049C28B /* PeersNearbyUI.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E3FF32304CC5C0049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E3FFB2304CC5C0049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E3FF62304CC5C0049C28B /* Build configuration list for PBXProject "PeersNearbyUI_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E3FF22304CC5C0049C28B; + productRefGroup = D03E3FFD2304CC5C0049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E3FFB2304CC5C0049C28B /* PeersNearbyUI */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E3FFA2304CC5C0049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E3FF82304CC5C0049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E400E2304CCBD0049C28B /* PeersNearbyHeaderItem.swift in Sources */, + D03E400D2304CCBD0049C28B /* PeersNearbyController.swift in Sources */, + D03E40372304CD6C0049C28B /* FrameworkBundle.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E40022304CC5C0049C28B /* 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; + }; + D03E40032304CC5C0049C28B /* 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; + }; + D03E40052304CC5C0049C28B /* 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.PeersNearbyUI; + 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; + }; + D03E40062304CC5C0049C28B /* 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.PeersNearbyUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E40072304CC770049C28B /* 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; + }; + D03E40082304CC770049C28B /* 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.PeersNearbyUI; + 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; + }; + D03E40092304CC7F0049C28B /* 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; + }; + D03E400A2304CC7F0049C28B /* 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.PeersNearbyUI; + 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 */ + D03E3FF62304CC5C0049C28B /* Build configuration list for PBXProject "PeersNearbyUI_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E40022304CC5C0049C28B /* DebugAppStoreLLC */, + D03E40072304CC770049C28B /* DebugHockeyapp */, + D03E40032304CC5C0049C28B /* ReleaseAppStoreLLC */, + D03E40092304CC7F0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E40042304CC5C0049C28B /* Build configuration list for PBXNativeTarget "PeersNearbyUI" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E40052304CC5C0049C28B /* DebugAppStoreLLC */, + D03E40082304CC770049C28B /* DebugHockeyapp */, + D03E40062304CC5C0049C28B /* ReleaseAppStoreLLC */, + D03E400A2304CC7F0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E3FF32304CC5C0049C28B /* Project object */; +} diff --git a/submodules/PeersNearbyUI/Sources/FrameworkBundle.swift b/submodules/PeersNearbyUI/Sources/FrameworkBundle.swift new file mode 100644 index 0000000000..8ca13d7d92 --- /dev/null +++ b/submodules/PeersNearbyUI/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/PeersNearbyController.swift b/submodules/PeersNearbyUI/Sources/PeersNearbyController.swift similarity index 98% rename from submodules/TelegramUI/TelegramUI/PeersNearbyController.swift rename to submodules/PeersNearbyUI/Sources/PeersNearbyController.swift index af1fd979d6..d2b0248f05 100644 --- a/submodules/TelegramUI/TelegramUI/PeersNearbyController.swift +++ b/submodules/PeersNearbyUI/Sources/PeersNearbyController.swift @@ -15,6 +15,7 @@ import AlertUI import ItemListPeerItem import TelegramPermissionsUI import ItemListPeerActionItem +import Geocoding private struct PeerNearbyEntry { let peer: (Peer, CachedPeerData?) @@ -337,7 +338,7 @@ public func peersNearbyController(context: AccountContext) -> ViewController { let controller = PermissionController(context: context, splashScreen: true) controller.setState(.custom(icon: PermissionControllerCustomIcon(light: UIImage(bundleImageName: "Location/LocalGroupLightIcon"), dark: UIImage(bundleImageName: "Location/LocalGroupDarkIcon")), title: presentationData.strings.LocalGroup_Title, subtitle: address, text: presentationData.strings.LocalGroup_Text, buttonTitle: presentationData.strings.LocalGroup_ButtonTitle, footerText: presentationData.strings.LocalGroup_IrrelevantWarning), animated: false) controller.proceed = { result in - replaceTopControllerImpl?(createGroupController(context: context, peerIds: [], mode: .locatedGroup(latitude: latitude, longitude: longitude, address: address))) + replaceTopControllerImpl?(context.sharedContext.makeCreateGroupController(context: context, peerIds: [], initialTitle: nil, mode: .locatedGroup(latitude: latitude, longitude: longitude, address: address), completion: nil)) } pushControllerImpl?(controller) } else { @@ -435,7 +436,7 @@ public func peersNearbyController(context: AccountContext) -> ViewController { navigateToChatImpl = { [weak controller] peer in if let navigationController = controller?.navigationController as? NavigationController { context.sharedContext.navigateToChatController(NavigateToChatControllerParams(navigationController: navigationController, context: context, chatLocation: .peer(peer.id), keepStack: .always, purposefulAction: { [weak navigationController] in - if let navigationController = navigationController, let chatController = navigationController.viewControllers.last as? ChatControllerImpl { + if let navigationController = navigationController, let chatController = navigationController.viewControllers.last as? ChatController { replaceAllButRootControllerImpl?(chatController, false) } })) diff --git a/submodules/TelegramUI/TelegramUI/PeersNearbyHeaderItem.swift b/submodules/PeersNearbyUI/Sources/PeersNearbyHeaderItem.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/PeersNearbyHeaderItem.swift rename to submodules/PeersNearbyUI/Sources/PeersNearbyHeaderItem.swift diff --git a/submodules/PeersNearbyUI/Sources/PeersNearbyUI.h b/submodules/PeersNearbyUI/Sources/PeersNearbyUI.h new file mode 100644 index 0000000000..923f1b9d1a --- /dev/null +++ b/submodules/PeersNearbyUI/Sources/PeersNearbyUI.h @@ -0,0 +1,19 @@ +// +// PeersNearbyUI.h +// PeersNearbyUI +// +// Created by Peter on 8/15/19. +// Copyright © 2019 Telegram Messenger LLP. All rights reserved. +// + +#import + +//! Project version number for PeersNearbyUI. +FOUNDATION_EXPORT double PeersNearbyUIVersionNumber; + +//! Project version string for PeersNearbyUI. +FOUNDATION_EXPORT const unsigned char PeersNearbyUIVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/submodules/TelegramUI/TelegramUI/ChannelDiscussionGroupSetupController.swift b/submodules/TelegramUI/TelegramUI/ChannelDiscussionGroupSetupController.swift index cec9b12b20..881ab99e3e 100644 --- a/submodules/TelegramUI/TelegramUI/ChannelDiscussionGroupSetupController.swift +++ b/submodules/TelegramUI/TelegramUI/ChannelDiscussionGroupSetupController.swift @@ -241,7 +241,7 @@ public func channelDiscussionGroupSetupController(context: AccountContext, peerI guard let peer = peer else { return } - pushControllerImpl?(createGroupController(context: context, peerIds: [], initialTitle: peer.displayTitle + " Chat", mode: .supergroup, completion: { groupId, dismiss in + pushControllerImpl?(context.sharedContext.makeCreateGroupController(context: context, peerIds: [], initialTitle: peer.displayTitle + " Chat", mode: .supergroup, completion: { groupId, dismiss in var applySignal = updateGroupDiscussionForChannel(network: context.account.network, postbox: context.account.postbox, channelId: peerId, groupId: groupId) var cancelImpl: (() -> Void)? let progressSignal = Signal { subscriber in diff --git a/submodules/TelegramUI/TelegramUI/ComposeController.swift b/submodules/TelegramUI/TelegramUI/ComposeController.swift index 9b7aff366d..e594370d20 100644 --- a/submodules/TelegramUI/TelegramUI/ComposeController.swift +++ b/submodules/TelegramUI/TelegramUI/ComposeController.swift @@ -126,13 +126,13 @@ public class ComposeController: ViewController { strongSelf.createActionDisposable.set((controller.result |> deliverOnMainQueue).start(next: { [weak controller] peerIds in if let strongSelf = self, let controller = controller { - let createGroup = createGroupController(context: strongSelf.context, peerIds: peerIds.compactMap({ peerId in + let createGroup = strongSelf.context.sharedContext.makeCreateGroupController(context: strongSelf.context, peerIds: peerIds.compactMap({ peerId in if case let .peer(peerId) = peerId { return peerId } else { return nil } - })) + }), initialTitle: nil, mode: .generic, completion: nil) (controller.navigationController as? NavigationController)?.pushViewController(createGroup) } })) diff --git a/submodules/TelegramUI/TelegramUI/CreateGroupController.swift b/submodules/TelegramUI/TelegramUI/CreateGroupController.swift index a338505669..9854473433 100644 --- a/submodules/TelegramUI/TelegramUI/CreateGroupController.swift +++ b/submodules/TelegramUI/TelegramUI/CreateGroupController.swift @@ -17,12 +17,7 @@ import LocationUI import ItemListPeerItem import ItemListAvatarAndNameInfoItem import WebSearchUI - -public enum CreateGroupMode { - case generic - case supergroup - case locatedGroup(latitude: Double, longitude: Double, address: String?) -} +import Geocoding private struct CreateGroupArguments { let account: Account @@ -297,7 +292,7 @@ private func createGroupEntries(presentationData: PresentationData, state: Creat return entries } -public func createGroupController(context: AccountContext, peerIds: [PeerId], initialTitle: String? = nil, mode: CreateGroupMode = .generic, completion: ((PeerId, @escaping () -> Void) -> Void)? = nil) -> ViewController { +public func createGroupControllerImpl(context: AccountContext, peerIds: [PeerId], initialTitle: String? = nil, mode: CreateGroupMode = .generic, completion: ((PeerId, @escaping () -> Void) -> Void)? = nil) -> ViewController { var location: PeerGeoLocation? if case let .locatedGroup(latitude, longitude, address) = mode { location = PeerGeoLocation(latitude: latitude, longitude: longitude, address: address ?? "") diff --git a/submodules/TelegramUI/TelegramUI/DeviceContactInfoController.swift b/submodules/TelegramUI/TelegramUI/DeviceContactInfoController.swift index 9751eac50c..8bc403ac30 100644 --- a/submodules/TelegramUI/TelegramUI/DeviceContactInfoController.swift +++ b/submodules/TelegramUI/TelegramUI/DeviceContactInfoController.swift @@ -13,6 +13,7 @@ import AlertUI import PhotoResources import MediaResources import ItemListAvatarAndNameInfoItem +import Geocoding private enum DeviceContactInfoAction { case sendMessage diff --git a/submodules/TelegramUI/TelegramUI/GroupInfoController.swift b/submodules/TelegramUI/TelegramUI/GroupInfoController.swift index b2c767d92a..d6eed66cef 100644 --- a/submodules/TelegramUI/TelegramUI/GroupInfoController.swift +++ b/submodules/TelegramUI/TelegramUI/GroupInfoController.swift @@ -27,6 +27,7 @@ import ChatListUI import ItemListAvatarAndNameInfoItem import ItemListPeerActionItem import WebSearchUI +import Geocoding private final class GroupInfoArguments { let context: AccountContext diff --git a/submodules/TelegramUI/TelegramUI/SharedAccountContext.swift b/submodules/TelegramUI/TelegramUI/SharedAccountContext.swift index 48722fff9b..fa724f4ccf 100644 --- a/submodules/TelegramUI/TelegramUI/SharedAccountContext.swift +++ b/submodules/TelegramUI/TelegramUI/SharedAccountContext.swift @@ -10,6 +10,7 @@ import AccountContext import DeviceLocationManager import LegacyUI import ChatListUI +import PeersNearbyUI private enum CallStatusText: Equatable { case none @@ -996,4 +997,8 @@ public final class SharedAccountContextImpl: SharedAccountContext { public func openAddContact(context: AccountContext, firstName: String, lastName: String, phoneNumber: String, label: String, present: @escaping (ViewController, Any?) -> Void, pushController: @escaping (ViewController) -> Void, completed: @escaping () -> Void) { openAddContactImpl(context: context, firstName: firstName, lastName: lastName, phoneNumber: phoneNumber, label: label, present: present, pushController: pushController, completed: completed) } + + public func makeCreateGroupController(context: AccountContext, peerIds: [PeerId], initialTitle: String?, mode: CreateGroupMode, completion: ((PeerId, @escaping () -> Void) -> Void)?) -> ViewController { + return createGroupControllerImpl(context: context, peerIds: peerIds, initialTitle: initialTitle, mode: mode, completion: completion) + } } diff --git a/submodules/TelegramUI/TelegramUI/ThemeAutoNightSettingsController.swift b/submodules/TelegramUI/TelegramUI/ThemeAutoNightSettingsController.swift index eeb7ed3e47..6f1fc58160 100644 --- a/submodules/TelegramUI/TelegramUI/ThemeAutoNightSettingsController.swift +++ b/submodules/TelegramUI/TelegramUI/ThemeAutoNightSettingsController.swift @@ -11,6 +11,7 @@ import ItemListUI import TelegramStringFormatting import AccountContext import DeviceLocationManager +import Geocoding private enum TriggerMode { case none diff --git a/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj b/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj index 973b113b52..893365cba7 100644 --- a/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj @@ -13,8 +13,6 @@ 090B48C82200BCA8005083FA /* WallpaperUploadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 090B48C72200BCA8005083FA /* WallpaperUploadManager.swift */; }; 090E63EE2196FE3A00E3C035 /* OpenAddContact.swift in Sources */ = {isa = PBXBuildFile; fileRef = 090E63ED2196FE3A00E3C035 /* OpenAddContact.swift */; }; 090E777922A6A32E00CD99F5 /* ThemeSettingsThemeItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 090E777822A6A32E00CD99F5 /* ThemeSettingsThemeItem.swift */; }; - 090E778622A9B95A00CD99F5 /* PeersNearbyController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 090E778522A9B95A00CD99F5 /* PeersNearbyController.swift */; }; - 090E778822A9B96100CD99F5 /* PeersNearbyHeaderItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 090E778722A9B96000CD99F5 /* PeersNearbyHeaderItem.swift */; }; 090E778A22A9F23C00CD99F5 /* ChannelOwnershipTransferController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 090E778922A9F23C00CD99F5 /* ChannelOwnershipTransferController.swift */; }; 090E778C22AA842300CD99F5 /* anim_success.json in Resources */ = {isa = PBXBuildFile; fileRef = 090E778B22AA842200CD99F5 /* anim_success.json */; }; 0910B0ED21FA178C00F8F87D /* WallpaperPreviewMedia.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0910B0EC21FA178C00F8F87D /* WallpaperPreviewMedia.swift */; }; @@ -89,7 +87,6 @@ 09DD5D5021ECC3C400D7007A /* SuppressContactsWarning.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DD5D4F21ECC3C400D7007A /* SuppressContactsWarning.swift */; }; 09DD5D5221ED175300D7007A /* WallpaperColorPickerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DD5D5121ED175300D7007A /* WallpaperColorPickerNode.swift */; }; 09DD88E921BAF65E000766BC /* ItemListAddressItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DD88E821BAF65E000766BC /* ItemListAddressItem.swift */; }; - 09DD88EF21BDDE2B000766BC /* Geocoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DD88EE21BDDE2B000766BC /* Geocoding.swift */; }; 09DE2F272269D5730045E975 /* PrivacyIntroController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DE2F262269D5730045E975 /* PrivacyIntroController.swift */; }; 09DE2F292269D5E30045E975 /* PrivacyIntroControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DE2F282269D5E30045E975 /* PrivacyIntroControllerNode.swift */; }; 09E2D9EF226F1AFA00EA0AA4 /* Emoji.mapping in Resources */ = {isa = PBXBuildFile; fileRef = 09E2D9ED226F1AF300EA0AA4 /* Emoji.mapping */; }; @@ -217,6 +214,8 @@ D03E3FA02304C59E0049C28B /* LegacyMediaPickerUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3F9F2304C59E0049C28B /* LegacyMediaPickerUI.framework */; }; D03E3FC82304C6AB0049C28B /* MimeTypes.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3FC72304C6AB0049C28B /* MimeTypes.framework */; }; D03E3FF02304C7FA0049C28B /* LocalMediaResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3FEF2304C7FA0049C28B /* LocalMediaResources.framework */; }; + D03E40352304CD2A0049C28B /* PeersNearbyUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40342304CD2A0049C28B /* PeersNearbyUI.framework */; }; + D03E405D2304CE920049C28B /* Geocoding.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E405C2304CE920049C28B /* Geocoding.framework */; }; D04203152037162700490EA5 /* MediaInputPaneTrendingItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04203142037162700490EA5 /* MediaInputPaneTrendingItem.swift */; }; D04281EF200E3D88009DDE36 /* GroupInfoSearchItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04281EE200E3D88009DDE36 /* GroupInfoSearchItem.swift */; }; D04281F1200E4084009DDE36 /* GroupInfoSearchNavigationContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04281F0200E4084009DDE36 /* GroupInfoSearchNavigationContentNode.swift */; }; @@ -772,8 +771,6 @@ 090B48C72200BCA8005083FA /* WallpaperUploadManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallpaperUploadManager.swift; sourceTree = ""; }; 090E63ED2196FE3A00E3C035 /* OpenAddContact.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenAddContact.swift; sourceTree = ""; }; 090E777822A6A32E00CD99F5 /* ThemeSettingsThemeItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeSettingsThemeItem.swift; sourceTree = ""; }; - 090E778522A9B95A00CD99F5 /* PeersNearbyController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeersNearbyController.swift; sourceTree = ""; }; - 090E778722A9B96000CD99F5 /* PeersNearbyHeaderItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeersNearbyHeaderItem.swift; sourceTree = ""; }; 090E778922A9F23C00CD99F5 /* ChannelOwnershipTransferController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelOwnershipTransferController.swift; sourceTree = ""; }; 090E778B22AA842200CD99F5 /* anim_success.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_success.json; sourceTree = ""; }; 0910B0EC21FA178C00F8F87D /* WallpaperPreviewMedia.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallpaperPreviewMedia.swift; sourceTree = ""; }; @@ -847,7 +844,6 @@ 09DD5D4F21ECC3C400D7007A /* SuppressContactsWarning.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SuppressContactsWarning.swift; sourceTree = ""; }; 09DD5D5121ED175300D7007A /* WallpaperColorPickerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallpaperColorPickerNode.swift; sourceTree = ""; }; 09DD88E821BAF65E000766BC /* ItemListAddressItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ItemListAddressItem.swift; sourceTree = ""; }; - 09DD88EE21BDDE2B000766BC /* Geocoding.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Geocoding.swift; sourceTree = ""; }; 09DE2F262269D5730045E975 /* PrivacyIntroController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrivacyIntroController.swift; sourceTree = ""; }; 09DE2F282269D5E30045E975 /* PrivacyIntroControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrivacyIntroControllerNode.swift; sourceTree = ""; }; 09E2D9ED226F1AF300EA0AA4 /* Emoji.mapping */ = {isa = PBXFileReference; lastKnownFileType = file; name = Emoji.mapping; path = TelegramUI/Resources/Emoji.mapping; sourceTree = ""; }; @@ -1027,6 +1023,8 @@ D03E3F9F2304C59E0049C28B /* LegacyMediaPickerUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LegacyMediaPickerUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E3FC72304C6AB0049C28B /* MimeTypes.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MimeTypes.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E3FEF2304C7FA0049C28B /* LocalMediaResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LocalMediaResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40342304CD2A0049C28B /* PeersNearbyUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PeersNearbyUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E405C2304CE920049C28B /* Geocoding.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Geocoding.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E5E081E55C49C0029569A /* DebugAccountsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DebugAccountsController.swift; sourceTree = ""; }; D03E5E0E1E55F8B90029569A /* ChannelVisibilityController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelVisibilityController.swift; sourceTree = ""; }; D04203142037162700490EA5 /* MediaInputPaneTrendingItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaInputPaneTrendingItem.swift; sourceTree = ""; }; @@ -1566,6 +1564,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D03E405D2304CE920049C28B /* Geocoding.framework in Frameworks */, + D03E40352304CD2A0049C28B /* PeersNearbyUI.framework in Frameworks */, D03E3FF02304C7FA0049C28B /* LocalMediaResources.framework in Frameworks */, D03E3FC82304C6AB0049C28B /* MimeTypes.framework in Frameworks */, D03E3FA02304C59E0049C28B /* LegacyMediaPickerUI.framework in Frameworks */, @@ -1722,15 +1722,6 @@ name = "Language Suggestion"; sourceTree = ""; }; - 090E778422A9B94700CD99F5 /* Peers Nearby */ = { - isa = PBXGroup; - children = ( - 090E778522A9B95A00CD99F5 /* PeersNearbyController.swift */, - 090E778722A9B96000CD99F5 /* PeersNearbyHeaderItem.swift */, - ); - name = "Peers Nearby"; - sourceTree = ""; - }; 092F368B2154AAD6001A9F49 /* Fonts */ = { isa = PBXGroup; children = ( @@ -2116,7 +2107,6 @@ D04614352005093B00EC0EF2 /* Location */ = { isa = PBXGroup; children = ( - 09DD88EE21BDDE2B000766BC /* Geocoding.swift */, ); name = Location; sourceTree = ""; @@ -2324,6 +2314,8 @@ D08D45281D5E340200A7428A /* Frameworks */ = { isa = PBXGroup; children = ( + D03E405C2304CE920049C28B /* Geocoding.framework */, + D03E40342304CD2A0049C28B /* PeersNearbyUI.framework */, D03E3FEF2304C7FA0049C28B /* LocalMediaResources.framework */, D03E3FC72304C6AB0049C28B /* MimeTypes.framework */, D03E3F9F2304C59E0049C28B /* LegacyMediaPickerUI.framework */, @@ -3035,7 +3027,6 @@ D0D2689B1D79D31500C422DA /* Peer Selection */, D0F69E791D6B8C3B0046BCD6 /* Settings */, D0C50E361E93CAF200F62E39 /* Notifications */, - 090E778422A9B94700CD99F5 /* Peers Nearby */, ); name = Controllers; sourceTree = ""; @@ -3648,7 +3639,6 @@ D0E8B8BF20447A4600605593 /* SecretChatKeyControllerNode.swift in Sources */, D02B2B9820810DA00062476B /* StickerPaneSearchStickerItem.swift in Sources */, D020A9DC1FEAE6E7008C66F7 /* OverlayPlayerControllerNode.swift in Sources */, - 090E778622A9B95A00CD99F5 /* PeersNearbyController.swift in Sources */, D04ECD721FFBF22B00DE9029 /* OpenUrl.swift in Sources */, D056CD7A1FF3CC2A00880D28 /* ListMessagePlaybackOverlayNode.swift in Sources */, D0EC6CF91EB9F58800EBF1C3 /* MediaManager.swift in Sources */, @@ -3946,7 +3936,6 @@ D081A9A922EB26AE0069C449 /* PhoneLabelController.swift in Sources */, D0EC6DE11EB9F58900EBF1C3 /* ChatMessageSelectionInputPanelNode.swift in Sources */, D04281FA200E5CDC009DDE36 /* ChatRecentActionsControllerState.swift in Sources */, - 09DD88EF21BDDE2B000766BC /* Geocoding.swift in Sources */, D0EC6DE21EB9F58900EBF1C3 /* ChatChannelSubscriberInputPanelNode.swift in Sources */, D0EC6DE31EB9F58900EBF1C3 /* ChatBotStartInputPanelNode.swift in Sources */, D0EC6DE41EB9F58900EBF1C3 /* ChatUnblockInputPanelNode.swift in Sources */, @@ -4109,7 +4098,6 @@ D09E637C1F0E7C28003444CD /* SharedMediaPlayer.swift in Sources */, D0750C8522B2E52400BE5F6E /* ClearNotificationsManager.swift in Sources */, D0EC6E811EB9F58900EBF1C3 /* NotificationContainerController.swift in Sources */, - 090E778822A9B96100CD99F5 /* PeersNearbyHeaderItem.swift in Sources */, 0952D1752176DEB500194860 /* NotificationMuteSettingsController.swift in Sources */, D0EC6E821EB9F58900EBF1C3 /* NotificationContainerControllerNode.swift in Sources */, D0EC6E831EB9F58900EBF1C3 /* NotificationItemContainerNode.swift in Sources */, From b6316ab12c9e3c1637ba19525e38ff971acd141c Mon Sep 17 00:00:00 2001 From: Peter <> Date: Thu, 15 Aug 2019 14:12:19 +0300 Subject: [PATCH 07/11] Refactor PeerInfoUI and related modules --- .../contents.xcworkspacedata | 46 +- .../project.pbxproj | 8 + .../Sources/AccountContext.swift | 4 + .../Sources/ChatListController.swift | 13 + .../ContactMultiselectionController.swift | 36 + .../Sources/ContactSelectionController.swift | 2 + .../Sources/ChatListController.swift | 12 +- .../Sources/ChatListControllerNode.swift | 6 +- .../Sources/ContactListNode.swift | 6 - .../Emoji_Xcode.xcodeproj/project.pbxproj | 547 +++++++++++ submodules/Emoji/Info.plist | 22 + submodules/Emoji/Sources/Emoji.h | 19 + .../Sources}/EmojiUtils.swift | 4 +- .../project.pbxproj | 555 +++++++++++ .../EncryptionKeyVisualization/Info.plist | 22 + .../Sources/EncryptionKeyVisualization.h | 11 + .../Sources}/SecretChatKeyVisualization.h | 0 .../Sources}/SecretChatKeyVisualization.m | 0 .../Sources}/SecretChatKeyVisualization.swift | 3 +- submodules/ItemListAddressItem/Info.plist | 22 + .../project.pbxproj | 579 +++++++++++ .../Sources/FrameworkBundle.swift | 13 + .../Sources/ItemListAddressItem.h | 19 + .../Sources}/ItemListAddressItem.swift | 36 +- submodules/ItemListStickerPackItem/Info.plist | 22 + .../project.pbxproj | 583 +++++++++++ .../Sources/ItemListStickerPackItem.h | 19 + .../Sources}/ItemListStickerPackItem.swift | 67 +- .../MapResourceToAvatarSizes/Info.plist | 22 + .../project.pbxproj | 563 +++++++++++ .../Sources/MapResourceToAvatarSizes.h | 19 + .../Sources}/MapResourceToAvatarSizes.swift | 2 +- .../NotificationMuteSettingsUI/Info.plist | 22 + .../project.pbxproj | 567 +++++++++++ .../NotificationMuteSettingsController.swift | 11 +- .../Sources/NotificationMuteSettingsUI.h | 19 + .../NotificationSoundSelectionUI/Info.plist | 22 + .../project.pbxproj | 583 +++++++++++ .../Sources}/NotificationSoundSelection.swift | 3 +- .../Sources/NotificationSoundSelectionUI.h | 19 + submodules/PeerAvatarGalleryUI/Info.plist | 22 + .../project.pbxproj | 619 ++++++++++++ .../Sources}/AvatarGalleryController.swift | 36 +- .../AvatarGalleryItemFooterContentNode.swift | 0 .../Sources/FrameworkBundle.swift | 13 + .../Sources/PeerAvatarGalleryUI.h | 19 + .../Sources}/PeerAvatarImageGalleryItem.swift | 0 submodules/PeerInfoUI/Info.plist | 22 + .../project.pbxproj | 903 ++++++++++++++++++ .../Sources}/ChannelAdminController.swift | 1 + .../Sources}/ChannelAdminsController.swift | 2 +- .../ChannelBannedMemberController.swift | 0 .../Sources}/ChannelBlacklistController.swift | 0 ...hannelDiscussionGroupActionSheetItem.swift | 0 ...elDiscussionGroupSearchContainerNode.swift | 0 ...hannelDiscussionGroupSetupController.swift | 0 ...hannelDiscussionGroupSetupHeaderItem.swift | 0 ...hannelDiscussionGroupSetupSearchItem.swift | 0 .../Sources}/ChannelInfoController.swift | 7 +- .../Sources}/ChannelMembersController.swift | 2 +- .../ChannelMembersSearchContainerNode.swift | 0 .../ChannelMembersSearchController.swift | 0 .../ChannelMembersSearchControllerNode.swift | 0 .../ChannelOwnershipTransferController.swift | 0 .../ChannelPermissionsController.swift | 0 .../Sources}/ChannelStatsController.swift | 0 .../Sources}/ChannelStatsControllerNode.swift | 0 .../ChannelVisibilityController.swift | 62 +- .../Sources}/ChatSlowmodeItem.swift | 0 .../ConvertToSupergroupController.swift | 2 +- .../DeviceContactInfoController.swift | 3 +- .../PeerInfoUI/Sources/FrameworkBundle.swift | 13 + .../Sources}/GroupInfoController.swift | 17 +- .../Sources}/GroupInfoSearchItem.swift | 0 ...GroupInfoSearchNavigationContentNode.swift | 0 .../GroupPreHistorySetupController.swift | 0 .../GroupStickerPackCurrentItem.swift | 0 .../GroupStickerPackSetupController.swift | 1 + .../Sources}/GroupsInCommonController.swift | 9 +- .../Sources}/ItemListCallListItem.swift | 0 .../Sources}/ItemListSecretChatKeyItem.swift | 1 + .../Sources}/PeerBanTimeoutController.swift | 0 .../Sources}/PeerInfoController.swift | 2 +- submodules/PeerInfoUI/Sources/PeerInfoUI.h | 19 + .../Sources}/PeerReportController.swift | 6 +- .../Sources}/PhoneLabelController.swift | 1 + .../Sources}/SecretChatKeyController.swift | 0 .../SecretChatKeyControllerNode.swift | 1 + .../Sources}/UserInfoController.swift | 5 +- .../UserInfoEditingPhoneActionItem.swift | 0 .../Sources}/UserInfoEditingPhoneItem.swift | 1 + submodules/SinglePhoneInputNode/Info.plist | 22 + .../project.pbxproj | 559 +++++++++++ .../Sources/SinglePhoneInputNode.h | 19 + .../Sources}/SinglePhoneInputNode.swift | 30 +- .../ValidateAddressNameInteractive.swift | 29 + .../project.pbxproj | 4 + .../Sources}/ContactInfoStrings.swift | 4 +- .../PeerNotificationSoundStrings.swift | 2 +- .../project.pbxproj | 16 + .../ArchivedStickerPacksController.swift | 1 + .../TelegramUI/ChatController.swift | 3 + .../ChatHistoryEntriesForView.swift | 1 + .../TelegramUI/ChatHistoryListNode.swift | 1 + .../TelegramUI/TelegramUI/ChatInfo.swift | 2 +- .../ChatInterfaceInputContexts.swift | 1 + .../ChatInterfaceStateContextQueries.swift | 1 + .../TelegramUI/ChatMediaInputNode.swift | 1 + .../ChatMediaInputStickerPackItem.swift | 23 +- .../ChatMessageAnimatedStickerItemNode.swift | 1 + .../ChatMessageBubbleItemNode.swift | 1 + .../TelegramUI/ChatMessageItem.swift | 1 + .../ChatRecentActionsControllerNode.swift | 1 + .../TelegramUI/ComposeController.swift | 2 +- .../ContactMultiselectionController.swift | 20 +- .../TelegramUI/CreateChannelController.swift | 2 + .../TelegramUI/CreateGroupController.swift | 3 + .../TelegramUI/EditSettingsController.swift | 2 + .../TelegramUI/EmojiResources.swift | 1 + .../EmojisChatInputContextPanelNode.swift | 1 + .../FeaturedStickerPacksController.swift | 1 + .../InstalledStickerPacksController.swift | 1 + .../TelegramUI/NavigateToChatController.swift | 1 + .../NotificationExceptionControllerNode.swift | 1 + ...ificationExceptionSettingsController.swift | 2 + .../TelegramUI/NotificationsAndSounds.swift | 2 + .../TelegramUI/OpenAddContact.swift | 1 + .../TelegramUI/OpenChatMessage.swift | 2 + .../PeerMediaCollectionController.swift | 1 + .../TelegramUI/PrefetchManager.swift | 1 + .../SelectivePrivacySettingsController.swift | 2 +- ...ectivePrivacySettingsPeersController.swift | 2 +- .../TelegramUI/SettingsController.swift | 4 +- .../TelegramUI/SettingsSearchableItems.swift | 1 + .../TelegramUI/ShareExtensionContext.swift | 1 + .../TelegramUI/SharedAccountContext.swift | 17 + .../StickerPaneSearchContentNode.swift | 1 + .../TelegramUI/TelegramRootController.swift | 4 +- .../TelegramUIPrivate/module.modulemap | 1 - .../ValidateAddressNameInteractive.swift | 43 - .../project.pbxproj | 286 +----- 141 files changed, 6957 insertions(+), 489 deletions(-) create mode 100644 submodules/AccountContext/Sources/ChatListController.swift create mode 100644 submodules/AccountContext/Sources/ContactMultiselectionController.swift create mode 100644 submodules/Emoji/Emoji_Xcode.xcodeproj/project.pbxproj create mode 100644 submodules/Emoji/Info.plist create mode 100644 submodules/Emoji/Sources/Emoji.h rename submodules/{TelegramUI/TelegramUI => Emoji/Sources}/EmojiUtils.swift (98%) create mode 100644 submodules/EncryptionKeyVisualization/EncryptionKeyVisualization_Xcode.xcodeproj/project.pbxproj create mode 100644 submodules/EncryptionKeyVisualization/Info.plist create mode 100644 submodules/EncryptionKeyVisualization/Sources/EncryptionKeyVisualization.h rename submodules/{TelegramUI/TelegramUI => EncryptionKeyVisualization/Sources}/SecretChatKeyVisualization.h (100%) rename submodules/{TelegramUI/TelegramUI => EncryptionKeyVisualization/Sources}/SecretChatKeyVisualization.m (100%) rename submodules/{TelegramUI/TelegramUI => EncryptionKeyVisualization/Sources}/SecretChatKeyVisualization.swift (65%) create mode 100644 submodules/ItemListAddressItem/Info.plist create mode 100644 submodules/ItemListAddressItem/ItemListAddressItem_Xcode.xcodeproj/project.pbxproj create mode 100644 submodules/ItemListAddressItem/Sources/FrameworkBundle.swift create mode 100644 submodules/ItemListAddressItem/Sources/ItemListAddressItem.h rename submodules/{TelegramUI/TelegramUI => ItemListAddressItem/Sources}/ItemListAddressItem.swift (90%) create mode 100644 submodules/ItemListStickerPackItem/Info.plist create mode 100644 submodules/ItemListStickerPackItem/ItemListStickerPackItem_Xcode.xcodeproj/project.pbxproj create mode 100644 submodules/ItemListStickerPackItem/Sources/ItemListStickerPackItem.h rename submodules/{TelegramUI/TelegramUI => ItemListStickerPackItem/Sources}/ItemListStickerPackItem.swift (93%) create mode 100644 submodules/MapResourceToAvatarSizes/Info.plist create mode 100644 submodules/MapResourceToAvatarSizes/MapResourceToAvatarSizes_Xcode.xcodeproj/project.pbxproj create mode 100644 submodules/MapResourceToAvatarSizes/Sources/MapResourceToAvatarSizes.h rename submodules/{TelegramUI/TelegramUI => MapResourceToAvatarSizes/Sources}/MapResourceToAvatarSizes.swift (80%) create mode 100644 submodules/NotificationMuteSettingsUI/Info.plist create mode 100644 submodules/NotificationMuteSettingsUI/NotificationMuteSettingsUI_Xcode.xcodeproj/project.pbxproj rename submodules/{TelegramUI/TelegramUI => NotificationMuteSettingsUI/Sources}/NotificationMuteSettingsController.swift (86%) create mode 100644 submodules/NotificationMuteSettingsUI/Sources/NotificationMuteSettingsUI.h create mode 100644 submodules/NotificationSoundSelectionUI/Info.plist create mode 100644 submodules/NotificationSoundSelectionUI/NotificationSoundSelectionUI_Xcode.xcodeproj/project.pbxproj rename submodules/{TelegramUI/TelegramUI => NotificationSoundSelectionUI/Sources}/NotificationSoundSelection.swift (98%) create mode 100644 submodules/NotificationSoundSelectionUI/Sources/NotificationSoundSelectionUI.h create mode 100644 submodules/PeerAvatarGalleryUI/Info.plist create mode 100644 submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI_Xcode.xcodeproj/project.pbxproj rename submodules/{TelegramUI/TelegramUI => PeerAvatarGalleryUI/Sources}/AvatarGalleryController.swift (93%) rename submodules/{TelegramUI/TelegramUI => PeerAvatarGalleryUI/Sources}/AvatarGalleryItemFooterContentNode.swift (100%) create mode 100644 submodules/PeerAvatarGalleryUI/Sources/FrameworkBundle.swift create mode 100644 submodules/PeerAvatarGalleryUI/Sources/PeerAvatarGalleryUI.h rename submodules/{TelegramUI/TelegramUI => PeerAvatarGalleryUI/Sources}/PeerAvatarImageGalleryItem.swift (100%) create mode 100644 submodules/PeerInfoUI/Info.plist create mode 100644 submodules/PeerInfoUI/PeerInfoUI_Xcode.xcodeproj/project.pbxproj rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/ChannelAdminController.swift (99%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/ChannelAdminsController.swift (99%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/ChannelBannedMemberController.swift (100%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/ChannelBlacklistController.swift (100%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/ChannelDiscussionGroupActionSheetItem.swift (100%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/ChannelDiscussionGroupSearchContainerNode.swift (100%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/ChannelDiscussionGroupSetupController.swift (100%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/ChannelDiscussionGroupSetupHeaderItem.swift (100%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/ChannelDiscussionGroupSetupSearchItem.swift (100%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/ChannelInfoController.swift (99%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/ChannelMembersController.swift (99%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/ChannelMembersSearchContainerNode.swift (100%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/ChannelMembersSearchController.swift (100%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/ChannelMembersSearchControllerNode.swift (100%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/ChannelOwnershipTransferController.swift (100%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/ChannelPermissionsController.swift (100%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/ChannelStatsController.swift (100%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/ChannelStatsControllerNode.swift (100%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/ChannelVisibilityController.swift (96%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/ChatSlowmodeItem.swift (100%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/ConvertToSupergroupController.swift (97%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/DeviceContactInfoController.swift (99%) create mode 100644 submodules/PeerInfoUI/Sources/FrameworkBundle.swift rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/GroupInfoController.swift (99%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/GroupInfoSearchItem.swift (100%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/GroupInfoSearchNavigationContentNode.swift (100%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/GroupPreHistorySetupController.swift (100%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/GroupStickerPackCurrentItem.swift (100%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/GroupStickerPackSetupController.swift (99%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/GroupsInCommonController.swift (93%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/ItemListCallListItem.swift (100%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/ItemListSecretChatKeyItem.swift (99%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/PeerBanTimeoutController.swift (100%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/PeerInfoController.swift (84%) create mode 100644 submodules/PeerInfoUI/Sources/PeerInfoUI.h rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/PeerReportController.swift (97%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/PhoneLabelController.swift (99%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/SecretChatKeyController.swift (100%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/SecretChatKeyControllerNode.swift (99%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/UserInfoController.swift (99%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/UserInfoEditingPhoneActionItem.swift (100%) rename submodules/{TelegramUI/TelegramUI => PeerInfoUI/Sources}/UserInfoEditingPhoneItem.swift (99%) create mode 100644 submodules/SinglePhoneInputNode/Info.plist create mode 100644 submodules/SinglePhoneInputNode/SinglePhoneInputNode_Xcode.xcodeproj/project.pbxproj create mode 100644 submodules/SinglePhoneInputNode/Sources/SinglePhoneInputNode.h rename submodules/{TelegramUI/TelegramUI => SinglePhoneInputNode/Sources}/SinglePhoneInputNode.swift (81%) create mode 100644 submodules/TelegramCore/TelegramCore/ValidateAddressNameInteractive.swift rename submodules/{TelegramUI/TelegramUI => TelegramStringFormatting/Sources}/ContactInfoStrings.swift (83%) rename submodules/{TelegramUI/TelegramUI => TelegramStringFormatting/Sources}/PeerNotificationSoundStrings.swift (93%) delete mode 100644 submodules/TelegramUI/TelegramUI/ValidateAddressNameInteractive.swift diff --git a/Telegram-iOS.xcworkspace/contents.xcworkspacedata b/Telegram-iOS.xcworkspace/contents.xcworkspacedata index da095b9f65..d2c3c61b5a 100644 --- a/Telegram-iOS.xcworkspace/contents.xcworkspacedata +++ b/Telegram-iOS.xcworkspace/contents.xcworkspacedata @@ -35,9 +35,6 @@ - - @@ -47,6 +44,9 @@ + + @@ -65,9 +65,6 @@ - - @@ -92,6 +89,19 @@ + + + + + + + + @@ -110,6 +120,9 @@ + + + + + + + + + + @@ -442,6 +467,15 @@ + + + + + + diff --git a/submodules/AccountContext/AccountContext_Xcode.xcodeproj/project.pbxproj b/submodules/AccountContext/AccountContext_Xcode.xcodeproj/project.pbxproj index b265aed4b3..f26b508c18 100644 --- a/submodules/AccountContext/AccountContext_Xcode.xcodeproj/project.pbxproj +++ b/submodules/AccountContext/AccountContext_Xcode.xcodeproj/project.pbxproj @@ -7,6 +7,8 @@ objects = { /* Begin PBXBuildFile section */ + D03E4228230565790049C28B /* ChatListController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E4227230565790049C28B /* ChatListController.swift */; }; + D03E422A230567900049C28B /* ContactMultiselectionController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E4229230567900049C28B /* ContactMultiselectionController.swift */; }; D06018E722F36A3F00796784 /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D06018E622F36A3F00796784 /* TelegramPresentationData.framework */; }; D0879A4622F651D400C4D6B3 /* LiveLocationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879A4522F651D400C4D6B3 /* LiveLocationManager.swift */; }; D0879A4A22F6584B00C4D6B3 /* SharedMediaPlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879A4922F6584B00C4D6B3 /* SharedMediaPlayer.swift */; }; @@ -46,6 +48,8 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + D03E4227230565790049C28B /* ChatListController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatListController.swift; sourceTree = ""; }; + D03E4229230567900049C28B /* ContactMultiselectionController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactMultiselectionController.swift; sourceTree = ""; }; D06018E422F36A3900796784 /* DeviceAccess.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DeviceAccess.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D06018E622F36A3F00796784 /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0879A4522F651D400C4D6B3 /* LiveLocationManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveLocationManager.swift; sourceTree = ""; }; @@ -154,7 +158,9 @@ D0C9C3D62300CC2400FAB518 /* FetchMediaUtils.swift */, D0C9C3D82300CC6000FAB518 /* IsMediaStreamable.swift */, D0C9CA892302314400FAB518 /* ContactSelectionController.swift */, + D03E4229230567900049C28B /* ContactMultiselectionController.swift */, D0C9CB832302B4B900FAB518 /* StoredMessageFromSearchPeer.swift */, + D03E4227230565790049C28B /* ChatListController.swift */, ); path = Sources; sourceTree = ""; @@ -263,6 +269,7 @@ D0879A4E22F65B2A00C4D6B3 /* MediaManager.swift in Sources */, D0879A4A22F6584B00C4D6B3 /* SharedMediaPlayer.swift in Sources */, D0879B7122F8425B00C4D6B3 /* WallpaperUploadManager.swift in Sources */, + D03E422A230567900049C28B /* ContactMultiselectionController.swift in Sources */, D0879B6722F7AE6400C4D6B3 /* PresentationCallManager.swift in Sources */, D0879B2922F77C8300C4D6B3 /* FetchManager.swift in Sources */, D0C9CA8A2302314400FAB518 /* ContactSelectionController.swift in Sources */, @@ -272,6 +279,7 @@ D0879B6F22F83F6600C4D6B3 /* DownloadedMediaStoreManager.swift in Sources */, D0879B6922F7AF2A00C4D6B3 /* DeviceContactDataManager.swift in Sources */, D0879B6322F7A97F00C4D6B3 /* OverlayMediaItemNode.swift in Sources */, + D03E4228230565790049C28B /* ChatListController.swift in Sources */, D0879B6B22F7B04400C4D6B3 /* DeviceContactData.swift in Sources */, D0879B1922F70C7400C4D6B3 /* OpenChatMessage.swift in Sources */, D0C9C3D72300CC2500FAB518 /* FetchMediaUtils.swift in Sources */, diff --git a/submodules/AccountContext/Sources/AccountContext.swift b/submodules/AccountContext/Sources/AccountContext.swift index 73b63799a8..d85b8eaa9b 100644 --- a/submodules/AccountContext/Sources/AccountContext.swift +++ b/submodules/AccountContext/Sources/AccountContext.swift @@ -414,11 +414,15 @@ public protocol SharedAccountContext: class { func makeDeviceContactInfoController(context: AccountContext, subject: DeviceContactInfoSubject, completed: (() -> Void)?, cancelled: (() -> Void)?) -> ViewController func makePeersNearbyController(context: AccountContext) -> ViewController func makeComposeController(context: AccountContext) -> ViewController + func makeChatListController(context: AccountContext, groupId: PeerGroupId, controlsHistoryPreload: Bool, hideNetworkActivityStatus: Bool, enableDebugActions: Bool) -> ChatListController func makeChatController(context: AccountContext, chatLocation: ChatLocation, subject: ChatControllerSubject?, botStart: ChatControllerInitialBotStart?, mode: ChatControllerPresentationMode) -> ChatController + func makePeerSharedMediaController(context: AccountContext, peerId: PeerId) -> ViewController? func makeContactSelectionController(_ params: ContactSelectionControllerParams) -> ContactSelectionController + func makeContactMultiselectionController(_ params: ContactMultiselectionControllerParams) -> ContactMultiselectionController func makeProxySettingsController(context: AccountContext) -> ViewController func makeLocalizationListController(context: AccountContext) -> ViewController func makeCreateGroupController(context: AccountContext, peerIds: [PeerId], initialTitle: String?, mode: CreateGroupMode, completion: ((PeerId, @escaping () -> Void) -> Void)?) -> ViewController + func makeChatRecentActionsController(context: AccountContext, peer: Peer) -> ViewController func navigateToChatController(_ params: NavigateToChatControllerParams) func openExternalUrl(context: AccountContext, urlContext: OpenURLContext, url: String, forceExternal: Bool, presentationData: PresentationData, navigationController: NavigationController?, dismissInput: @escaping () -> Void) func chatAvailableMessageActions(postbox: Postbox, accountPeerId: PeerId, messageIds: Set) -> Signal diff --git a/submodules/AccountContext/Sources/ChatListController.swift b/submodules/AccountContext/Sources/ChatListController.swift new file mode 100644 index 0000000000..f0e4304440 --- /dev/null +++ b/submodules/AccountContext/Sources/ChatListController.swift @@ -0,0 +1,13 @@ +import Foundation +import Postbox +import Display + +public protocol ChatListController: ViewController { + var context: AccountContext { get } + var lockViewFrame: CGRect? { get } + + func activateSearch() + func deactivateSearch(animated: Bool) + func activateCompose() + func maybeAskForPeerChatRemoval(peer: RenderedPeer, deleteGloballyIfPossible: Bool, completion: @escaping (Bool) -> Void, removed: @escaping () -> Void) +} diff --git a/submodules/AccountContext/Sources/ContactMultiselectionController.swift b/submodules/AccountContext/Sources/ContactMultiselectionController.swift new file mode 100644 index 0000000000..23ff45ff11 --- /dev/null +++ b/submodules/AccountContext/Sources/ContactMultiselectionController.swift @@ -0,0 +1,36 @@ +import Foundation +import Display +import SwiftSignalKit +import Postbox + +public enum ContactMultiselectionControllerMode { + case groupCreation + case peerSelection(searchChatList: Bool, searchGroups: Bool) + case channelCreation +} + +public enum ContactListFilter { + case excludeSelf + case exclude([PeerId]) + case disable([PeerId]) +} + +public final class ContactMultiselectionControllerParams { + public let context: AccountContext + public let mode: ContactMultiselectionControllerMode + public let options: [ContactListAdditionalOption] + public let filters: [ContactListFilter] + + public init(context: AccountContext, mode: ContactMultiselectionControllerMode, options: [ContactListAdditionalOption], filters: [ContactListFilter] = [.excludeSelf]) { + self.context = context + self.mode = mode + self.options = options + self.filters = filters + } +} + +public protocol ContactMultiselectionController: ViewController { + var result: Signal<[ContactListPeerId], NoError> { get } + var displayProgress: Bool { get set } + var dismissed: (() -> Void)? { get set } +} diff --git a/submodules/AccountContext/Sources/ContactSelectionController.swift b/submodules/AccountContext/Sources/ContactSelectionController.swift index 381fb0e974..f480206f36 100644 --- a/submodules/AccountContext/Sources/ContactSelectionController.swift +++ b/submodules/AccountContext/Sources/ContactSelectionController.swift @@ -4,6 +4,8 @@ import SwiftSignalKit public protocol ContactSelectionController: ViewController { var result: Signal { get } + var displayProgress: Bool { get set } + var dismissed: (() -> Void)? { get set } func dismissSearch() } diff --git a/submodules/ChatListUI/Sources/ChatListController.swift b/submodules/ChatListUI/Sources/ChatListController.swift index d7d29afae8..9a62d8c8ff 100644 --- a/submodules/ChatListUI/Sources/ChatListController.swift +++ b/submodules/ChatListUI/Sources/ChatListController.swift @@ -64,7 +64,7 @@ private func fixListNodeScrolling(_ listNode: ListView, searchNode: NavigationBa return false } -public class ChatListController: TelegramBaseController, UIViewControllerPreviewingDelegate { +public class ChatListControllerImpl: TelegramBaseController, ChatListController, UIViewControllerPreviewingDelegate { private var validLayout: ContainerViewLayout? public let context: AccountContext @@ -711,7 +711,7 @@ public class ChatListController: TelegramBaseController, UIViewControllerPreview self.chatListDisplayNode.chatListNode.groupSelected = { [weak self] groupId in if let strongSelf = self { if let navigationController = strongSelf.navigationController as? NavigationController { - let chatListController = ChatListController(context: strongSelf.context, groupId: groupId, controlsHistoryPreload: false, enableDebugActions: false) + let chatListController = ChatListControllerImpl(context: strongSelf.context, groupId: groupId, controlsHistoryPreload: false, enableDebugActions: false) navigationController.pushViewController(chatListController) strongSelf.chatListDisplayNode.chatListNode.clearHighlightAnimated(true) } @@ -1183,7 +1183,11 @@ public class ChatListController: TelegramBaseController, UIViewControllerPreview } } - @objc public func composePressed() { + public func activateCompose() { + self.composePressed() + } + + @objc private func composePressed() { (self.navigationController as? NavigationController)?.replaceAllButRootController(self.context.sharedContext.makeComposeController(context: self.context), animated: true) } @@ -1260,7 +1264,7 @@ public class ChatListController: TelegramBaseController, UIViewControllerPreview return nil } case let .groupReference(groupId, _, _, _, _): - let chatListController = ChatListController(context: self.context, groupId: groupId, controlsHistoryPreload: false, enableDebugActions: false) + let chatListController = ChatListControllerImpl(context: self.context, groupId: groupId, controlsHistoryPreload: false, enableDebugActions: false) chatListController.containerLayoutUpdated(ContainerViewLayout(size: contentSize, metrics: LayoutMetrics(), intrinsicInsets: UIEdgeInsets(), safeInsets: UIEdgeInsets(), statusBarHeight: nil, inputHeight: nil, standardInputHeight: 216.0, inputHeightIsInteractivellyChanging: false, inVoiceOver: false), transition: .immediate) return (chatListController, sourceRect) } diff --git a/submodules/ChatListUI/Sources/ChatListControllerNode.swift b/submodules/ChatListUI/Sources/ChatListControllerNode.swift index 8e433149cd..348cbd8b6b 100644 --- a/submodules/ChatListUI/Sources/ChatListControllerNode.swift +++ b/submodules/ChatListUI/Sources/ChatListControllerNode.swift @@ -21,7 +21,7 @@ private final class ChatListControllerNodeView: UITracingLayerView, PreviewingHo }) } - weak var controller: ChatListController? + weak var controller: ChatListControllerImpl? } private struct TestItem: Comparable, Identifiable { @@ -49,7 +49,7 @@ final class ChatListControllerNode: ASDisplayNode { private var chatListEmptyIndicator: ActivityIndicator? let chatListNode: ChatListNode var navigationBar: NavigationBar? - weak var controller: ChatListController? + weak var controller: ChatListControllerImpl? var toolbar: Toolbar? private var toolbarNode: ToolbarNode? @@ -69,7 +69,7 @@ final class ChatListControllerNode: ASDisplayNode { let debugListView = ListView() - init(context: AccountContext, groupId: PeerGroupId, controlsHistoryPreload: Bool, presentationData: PresentationData, controller: ChatListController) { + init(context: AccountContext, groupId: PeerGroupId, controlsHistoryPreload: Bool, presentationData: PresentationData, controller: ChatListControllerImpl) { self.context = context self.groupId = groupId self.presentationData = presentationData diff --git a/submodules/ContactListUI/Sources/ContactListNode.swift b/submodules/ContactListUI/Sources/ContactListNode.swift index 4184cf192e..0cd7dbcb7f 100644 --- a/submodules/ContactListUI/Sources/ContactListNode.swift +++ b/submodules/ContactListUI/Sources/ContactListNode.swift @@ -686,12 +686,6 @@ public struct ContactListNodeGroupSelectionState: Equatable { } } -public enum ContactListFilter { - case excludeSelf - case exclude([PeerId]) - case disable([PeerId]) -} - public final class ContactListNode: ASDisplayNode { private let context: AccountContext private var presentation: ContactListPresentation? diff --git a/submodules/Emoji/Emoji_Xcode.xcodeproj/project.pbxproj b/submodules/Emoji/Emoji_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..45c3992f31 --- /dev/null +++ b/submodules/Emoji/Emoji_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,547 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E41822304D6F00049C28B /* Emoji.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E41802304D6F00049C28B /* Emoji.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E418D2304D7610049C28B /* EmojiUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E418C2304D7610049C28B /* EmojiUtils.swift */; }; + D03E41902304D76E0049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E418F2304D76E0049C28B /* Foundation.framework */; }; + D03E41922304D7710049C28B /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41912304D7710049C28B /* CoreText.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E417D2304D6F00049C28B /* Emoji.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Emoji.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41802304D6F00049C28B /* Emoji.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Emoji.h; sourceTree = ""; }; + D03E41812304D6F00049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E418C2304D7610049C28B /* EmojiUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EmojiUtils.swift; sourceTree = ""; }; + D03E418F2304D76E0049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E41912304D7710049C28B /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E417A2304D6F00049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E41922304D7710049C28B /* CoreText.framework in Frameworks */, + D03E41902304D76E0049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E41732304D6F00049C28B = { + isa = PBXGroup; + children = ( + D03E41812304D6F00049C28B /* Info.plist */, + D03E417F2304D6F00049C28B /* Sources */, + D03E417E2304D6F00049C28B /* Products */, + D03E418E2304D76D0049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E417E2304D6F00049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E417D2304D6F00049C28B /* Emoji.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E417F2304D6F00049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E418C2304D7610049C28B /* EmojiUtils.swift */, + D03E41802304D6F00049C28B /* Emoji.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E418E2304D76D0049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E41912304D7710049C28B /* CoreText.framework */, + D03E418F2304D76E0049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E41782304D6F00049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E41822304D6F00049C28B /* Emoji.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E417C2304D6F00049C28B /* Emoji */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E41852304D6F00049C28B /* Build configuration list for PBXNativeTarget "Emoji" */; + buildPhases = ( + D03E41782304D6F00049C28B /* Headers */, + D03E41792304D6F00049C28B /* Sources */, + D03E417A2304D6F00049C28B /* Frameworks */, + D03E417B2304D6F00049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Emoji; + productName = Emoji; + productReference = D03E417D2304D6F00049C28B /* Emoji.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E41742304D6F00049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E417C2304D6F00049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E41772304D6F00049C28B /* Build configuration list for PBXProject "Emoji_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E41732304D6F00049C28B; + productRefGroup = D03E417E2304D6F00049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E417C2304D6F00049C28B /* Emoji */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E417B2304D6F00049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E41792304D6F00049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E418D2304D7610049C28B /* EmojiUtils.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E41832304D6F00049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStoreLLC; + }; + D03E41842304D6F00049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStoreLLC; + }; + D03E41862304D6F00049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Emoji; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugAppStoreLLC; + }; + D03E41872304D6F00049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Emoji; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E41882304D7300049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + D03E41892304D7300049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Emoji; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugHockeyapp; + }; + D03E418A2304D7390049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyappInternal; + }; + D03E418B2304D7390049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Emoji; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseHockeyappInternal; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D03E41772304D6F00049C28B /* Build configuration list for PBXProject "Emoji_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E41832304D6F00049C28B /* DebugAppStoreLLC */, + D03E41882304D7300049C28B /* DebugHockeyapp */, + D03E41842304D6F00049C28B /* ReleaseAppStoreLLC */, + D03E418A2304D7390049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E41852304D6F00049C28B /* Build configuration list for PBXNativeTarget "Emoji" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E41862304D6F00049C28B /* DebugAppStoreLLC */, + D03E41892304D7300049C28B /* DebugHockeyapp */, + D03E41872304D6F00049C28B /* ReleaseAppStoreLLC */, + D03E418B2304D7390049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E41742304D6F00049C28B /* Project object */; +} diff --git a/submodules/Emoji/Info.plist b/submodules/Emoji/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/Emoji/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/submodules/Emoji/Sources/Emoji.h b/submodules/Emoji/Sources/Emoji.h new file mode 100644 index 0000000000..5e70ebcc00 --- /dev/null +++ b/submodules/Emoji/Sources/Emoji.h @@ -0,0 +1,19 @@ +// +// Emoji.h +// Emoji +// +// Created by Peter on 8/15/19. +// Copyright © 2019 Telegram Messenger LLP. All rights reserved. +// + +#import + +//! Project version number for Emoji. +FOUNDATION_EXPORT double EmojiVersionNumber; + +//! Project version string for Emoji. +FOUNDATION_EXPORT const unsigned char EmojiVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/submodules/TelegramUI/TelegramUI/EmojiUtils.swift b/submodules/Emoji/Sources/EmojiUtils.swift similarity index 98% rename from submodules/TelegramUI/TelegramUI/EmojiUtils.swift rename to submodules/Emoji/Sources/EmojiUtils.swift index 42cc09e558..9d3c799fcd 100644 --- a/submodules/TelegramUI/TelegramUI/EmojiUtils.swift +++ b/submodules/Emoji/Sources/EmojiUtils.swift @@ -1,7 +1,7 @@ import Foundation import CoreText -extension UnicodeScalar { +public extension UnicodeScalar { var isEmoji: Bool { switch self.value { case 0x1F600...0x1F64F, // Emoticons @@ -42,7 +42,7 @@ extension UnicodeScalar { } } -extension String { +public extension String { func trimmingTrailingSpaces() -> String { var t = self while t.hasSuffix(" ") { diff --git a/submodules/EncryptionKeyVisualization/EncryptionKeyVisualization_Xcode.xcodeproj/project.pbxproj b/submodules/EncryptionKeyVisualization/EncryptionKeyVisualization_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..1630c63342 --- /dev/null +++ b/submodules/EncryptionKeyVisualization/EncryptionKeyVisualization_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,555 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E429C23056BC20049C28B /* EncryptionKeyVisualization.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E429A23056BC20049C28B /* EncryptionKeyVisualization.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E42A923056C350049C28B /* SecretChatKeyVisualization.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E42A623056C340049C28B /* SecretChatKeyVisualization.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E42AA23056C350049C28B /* SecretChatKeyVisualization.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E42A723056C340049C28B /* SecretChatKeyVisualization.m */; }; + D03E42AB23056C350049C28B /* SecretChatKeyVisualization.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E42A823056C340049C28B /* SecretChatKeyVisualization.swift */; }; + D03E42AE23056C5A0049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42AD23056C5A0049C28B /* Foundation.framework */; }; + D03E42B023056C5C0049C28B /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42AF23056C5C0049C28B /* TelegramCore.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E429723056BC20049C28B /* EncryptionKeyVisualization.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = EncryptionKeyVisualization.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E429A23056BC20049C28B /* EncryptionKeyVisualization.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EncryptionKeyVisualization.h; sourceTree = ""; }; + D03E429B23056BC20049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E42A623056C340049C28B /* SecretChatKeyVisualization.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SecretChatKeyVisualization.h; sourceTree = ""; }; + D03E42A723056C340049C28B /* SecretChatKeyVisualization.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SecretChatKeyVisualization.m; sourceTree = ""; }; + D03E42A823056C340049C28B /* SecretChatKeyVisualization.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatKeyVisualization.swift; sourceTree = ""; }; + D03E42AD23056C5A0049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E42AF23056C5C0049C28B /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E429423056BC20049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E42B023056C5C0049C28B /* TelegramCore.framework in Frameworks */, + D03E42AE23056C5A0049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E428D23056BC20049C28B = { + isa = PBXGroup; + children = ( + D03E429B23056BC20049C28B /* Info.plist */, + D03E429923056BC20049C28B /* Sources */, + D03E429823056BC20049C28B /* Products */, + D03E42AC23056C590049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E429823056BC20049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E429723056BC20049C28B /* EncryptionKeyVisualization.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E429923056BC20049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E42A623056C340049C28B /* SecretChatKeyVisualization.h */, + D03E42A723056C340049C28B /* SecretChatKeyVisualization.m */, + D03E42A823056C340049C28B /* SecretChatKeyVisualization.swift */, + D03E429A23056BC20049C28B /* EncryptionKeyVisualization.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E42AC23056C590049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E42AF23056C5C0049C28B /* TelegramCore.framework */, + D03E42AD23056C5A0049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E429223056BC20049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E429C23056BC20049C28B /* EncryptionKeyVisualization.h in Headers */, + D03E42A923056C350049C28B /* SecretChatKeyVisualization.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E429623056BC20049C28B /* EncryptionKeyVisualization */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E429F23056BC20049C28B /* Build configuration list for PBXNativeTarget "EncryptionKeyVisualization" */; + buildPhases = ( + D03E429223056BC20049C28B /* Headers */, + D03E429323056BC20049C28B /* Sources */, + D03E429423056BC20049C28B /* Frameworks */, + D03E429523056BC20049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = EncryptionKeyVisualization; + productName = EncryptionKeyVisualization; + productReference = D03E429723056BC20049C28B /* EncryptionKeyVisualization.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E428E23056BC20049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E429623056BC20049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E429123056BC20049C28B /* Build configuration list for PBXProject "EncryptionKeyVisualization_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E428D23056BC20049C28B; + productRefGroup = D03E429823056BC20049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E429623056BC20049C28B /* EncryptionKeyVisualization */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E429523056BC20049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E429323056BC20049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E42AB23056C350049C28B /* SecretChatKeyVisualization.swift in Sources */, + D03E42AA23056C350049C28B /* SecretChatKeyVisualization.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E429D23056BC20049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStoreLLC; + }; + D03E429E23056BC20049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStoreLLC; + }; + D03E42A023056BC20049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.EncryptionKeyVisualization; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugAppStoreLLC; + }; + D03E42A123056BC20049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.EncryptionKeyVisualization; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E42A223056BEA0049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + D03E42A323056BEA0049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.EncryptionKeyVisualization; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugHockeyapp; + }; + D03E42A423056BF40049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyappInternal; + }; + D03E42A523056BF40049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.EncryptionKeyVisualization; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseHockeyappInternal; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D03E429123056BC20049C28B /* Build configuration list for PBXProject "EncryptionKeyVisualization_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E429D23056BC20049C28B /* DebugAppStoreLLC */, + D03E42A223056BEA0049C28B /* DebugHockeyapp */, + D03E429E23056BC20049C28B /* ReleaseAppStoreLLC */, + D03E42A423056BF40049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E429F23056BC20049C28B /* Build configuration list for PBXNativeTarget "EncryptionKeyVisualization" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E42A023056BC20049C28B /* DebugAppStoreLLC */, + D03E42A323056BEA0049C28B /* DebugHockeyapp */, + D03E42A123056BC20049C28B /* ReleaseAppStoreLLC */, + D03E42A523056BF40049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E428E23056BC20049C28B /* Project object */; +} diff --git a/submodules/EncryptionKeyVisualization/Info.plist b/submodules/EncryptionKeyVisualization/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/EncryptionKeyVisualization/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/submodules/EncryptionKeyVisualization/Sources/EncryptionKeyVisualization.h b/submodules/EncryptionKeyVisualization/Sources/EncryptionKeyVisualization.h new file mode 100644 index 0000000000..f4cfd58533 --- /dev/null +++ b/submodules/EncryptionKeyVisualization/Sources/EncryptionKeyVisualization.h @@ -0,0 +1,11 @@ +#import + +//! Project version number for EncryptionKeyVisualization. +FOUNDATION_EXPORT double EncryptionKeyVisualizationVersionNumber; + +//! Project version string for EncryptionKeyVisualization. +FOUNDATION_EXPORT const unsigned char EncryptionKeyVisualizationVersionString[]; + +#import + + diff --git a/submodules/TelegramUI/TelegramUI/SecretChatKeyVisualization.h b/submodules/EncryptionKeyVisualization/Sources/SecretChatKeyVisualization.h similarity index 100% rename from submodules/TelegramUI/TelegramUI/SecretChatKeyVisualization.h rename to submodules/EncryptionKeyVisualization/Sources/SecretChatKeyVisualization.h diff --git a/submodules/TelegramUI/TelegramUI/SecretChatKeyVisualization.m b/submodules/EncryptionKeyVisualization/Sources/SecretChatKeyVisualization.m similarity index 100% rename from submodules/TelegramUI/TelegramUI/SecretChatKeyVisualization.m rename to submodules/EncryptionKeyVisualization/Sources/SecretChatKeyVisualization.m diff --git a/submodules/TelegramUI/TelegramUI/SecretChatKeyVisualization.swift b/submodules/EncryptionKeyVisualization/Sources/SecretChatKeyVisualization.swift similarity index 65% rename from submodules/TelegramUI/TelegramUI/SecretChatKeyVisualization.swift rename to submodules/EncryptionKeyVisualization/Sources/SecretChatKeyVisualization.swift index 3c59f84d8d..8252f0f1cf 100644 --- a/submodules/TelegramUI/TelegramUI/SecretChatKeyVisualization.swift +++ b/submodules/EncryptionKeyVisualization/Sources/SecretChatKeyVisualization.swift @@ -1,8 +1,7 @@ import Foundation import TelegramCore -import TelegramUIPrivateModule -func secretChatKeyImage(_ fingerprint: SecretChatKeyFingerprint, size: CGSize) -> UIImage? { +public func secretChatKeyImage(_ fingerprint: SecretChatKeyFingerprint, size: CGSize) -> UIImage? { let keySignatureData = fingerprint.sha1.data() let additionalSignature = fingerprint.sha256.data() return SecretChatKeyVisualization(keySignatureData, additionalSignature, size) diff --git a/submodules/ItemListAddressItem/Info.plist b/submodules/ItemListAddressItem/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/ItemListAddressItem/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/submodules/ItemListAddressItem/ItemListAddressItem_Xcode.xcodeproj/project.pbxproj b/submodules/ItemListAddressItem/ItemListAddressItem_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..01adfaf460 --- /dev/null +++ b/submodules/ItemListAddressItem/ItemListAddressItem_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,579 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E42C4230571620049C28B /* ItemListAddressItem.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E42C2230571620049C28B /* ItemListAddressItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E42CB230571710049C28B /* ItemListAddressItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E42CA230571700049C28B /* ItemListAddressItem.swift */; }; + D03E42D2230571C30049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42D1230571C30049C28B /* Foundation.framework */; }; + D03E42D4230571C60049C28B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42D3230571C60049C28B /* UIKit.framework */; }; + D03E42D6230571C80049C28B /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42D5230571C80049C28B /* Display.framework */; }; + D03E42D8230571CC0049C28B /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42D7230571CC0049C28B /* AsyncDisplayKit.framework */; }; + D03E42DA230571D00049C28B /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42D9230571D00049C28B /* SwiftSignalKit.framework */; }; + D03E42DC230571D70049C28B /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42DB230571D70049C28B /* TelegramPresentationData.framework */; }; + D03E42DE230571DD0049C28B /* ItemListUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42DD230571DD0049C28B /* ItemListUI.framework */; }; + D03E42E0230571E20049C28B /* AccountContext.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42DF230571E20049C28B /* AccountContext.framework */; }; + D03E42E2230571E60049C28B /* TextFormat.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42E1230571E60049C28B /* TextFormat.framework */; }; + D03E42E8230572780049C28B /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E42E7230572780049C28B /* FrameworkBundle.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E42BF230571620049C28B /* ItemListAddressItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ItemListAddressItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E42C2230571620049C28B /* ItemListAddressItem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ItemListAddressItem.h; sourceTree = ""; }; + D03E42C3230571620049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E42CA230571700049C28B /* ItemListAddressItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemListAddressItem.swift; sourceTree = ""; }; + D03E42D1230571C30049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E42D3230571C60049C28B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D03E42D5230571C80049C28B /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E42D7230571CC0049C28B /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E42D9230571D00049C28B /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E42DB230571D70049C28B /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E42DD230571DD0049C28B /* ItemListUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E42DF230571E20049C28B /* AccountContext.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AccountContext.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E42E1230571E60049C28B /* TextFormat.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TextFormat.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E42E7230572780049C28B /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E42BC230571620049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E42E2230571E60049C28B /* TextFormat.framework in Frameworks */, + D03E42E0230571E20049C28B /* AccountContext.framework in Frameworks */, + D03E42DE230571DD0049C28B /* ItemListUI.framework in Frameworks */, + D03E42DC230571D70049C28B /* TelegramPresentationData.framework in Frameworks */, + D03E42DA230571D00049C28B /* SwiftSignalKit.framework in Frameworks */, + D03E42D8230571CC0049C28B /* AsyncDisplayKit.framework in Frameworks */, + D03E42D6230571C80049C28B /* Display.framework in Frameworks */, + D03E42D4230571C60049C28B /* UIKit.framework in Frameworks */, + D03E42D2230571C30049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E42B5230571620049C28B = { + isa = PBXGroup; + children = ( + D03E42C3230571620049C28B /* Info.plist */, + D03E42C1230571620049C28B /* Sources */, + D03E42C0230571620049C28B /* Products */, + D03E42D0230571C20049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E42C0230571620049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E42BF230571620049C28B /* ItemListAddressItem.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E42C1230571620049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E42CA230571700049C28B /* ItemListAddressItem.swift */, + D03E42E7230572780049C28B /* FrameworkBundle.swift */, + D03E42C2230571620049C28B /* ItemListAddressItem.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E42D0230571C20049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E42E1230571E60049C28B /* TextFormat.framework */, + D03E42DF230571E20049C28B /* AccountContext.framework */, + D03E42DD230571DD0049C28B /* ItemListUI.framework */, + D03E42DB230571D70049C28B /* TelegramPresentationData.framework */, + D03E42D9230571D00049C28B /* SwiftSignalKit.framework */, + D03E42D7230571CC0049C28B /* AsyncDisplayKit.framework */, + D03E42D5230571C80049C28B /* Display.framework */, + D03E42D3230571C60049C28B /* UIKit.framework */, + D03E42D1230571C30049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E42BA230571620049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E42C4230571620049C28B /* ItemListAddressItem.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E42BE230571620049C28B /* ItemListAddressItem */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E42C7230571620049C28B /* Build configuration list for PBXNativeTarget "ItemListAddressItem" */; + buildPhases = ( + D03E42BA230571620049C28B /* Headers */, + D03E42BB230571620049C28B /* Sources */, + D03E42BC230571620049C28B /* Frameworks */, + D03E42BD230571620049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = ItemListAddressItem; + productName = ItemListAddressItem; + productReference = D03E42BF230571620049C28B /* ItemListAddressItem.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E42B6230571620049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E42BE230571620049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E42B9230571620049C28B /* Build configuration list for PBXProject "ItemListAddressItem_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E42B5230571620049C28B; + productRefGroup = D03E42C0230571620049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E42BE230571620049C28B /* ItemListAddressItem */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E42BD230571620049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E42BB230571620049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E42E8230572780049C28B /* FrameworkBundle.swift in Sources */, + D03E42CB230571710049C28B /* ItemListAddressItem.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E42C5230571620049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStoreLLC; + }; + D03E42C6230571620049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStoreLLC; + }; + D03E42C8230571620049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.ItemListAddressItem; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugAppStoreLLC; + }; + D03E42C9230571620049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.ItemListAddressItem; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E42CC2305718E0049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + D03E42CD2305718E0049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.ItemListAddressItem; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugHockeyapp; + }; + D03E42CE230571960049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyappInternal; + }; + D03E42CF230571960049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.ItemListAddressItem; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseHockeyappInternal; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D03E42B9230571620049C28B /* Build configuration list for PBXProject "ItemListAddressItem_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E42C5230571620049C28B /* DebugAppStoreLLC */, + D03E42CC2305718E0049C28B /* DebugHockeyapp */, + D03E42C6230571620049C28B /* ReleaseAppStoreLLC */, + D03E42CE230571960049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E42C7230571620049C28B /* Build configuration list for PBXNativeTarget "ItemListAddressItem" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E42C8230571620049C28B /* DebugAppStoreLLC */, + D03E42CD2305718E0049C28B /* DebugHockeyapp */, + D03E42C9230571620049C28B /* ReleaseAppStoreLLC */, + D03E42CF230571960049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E42B6230571620049C28B /* Project object */; +} diff --git a/submodules/ItemListAddressItem/Sources/FrameworkBundle.swift b/submodules/ItemListAddressItem/Sources/FrameworkBundle.swift new file mode 100644 index 0000000000..8ca13d7d92 --- /dev/null +++ b/submodules/ItemListAddressItem/Sources/FrameworkBundle.swift @@ -0,0 +1,13 @@ +import Foundation +import UIKit + +private class FrameworkBundleClass: NSObject { +} + +let frameworkBundle: Bundle = Bundle(for: FrameworkBundleClass.self) + +extension UIImage { + convenience init?(bundleImageName: String) { + self.init(named: bundleImageName, in: frameworkBundle, compatibleWith: nil) + } +} diff --git a/submodules/ItemListAddressItem/Sources/ItemListAddressItem.h b/submodules/ItemListAddressItem/Sources/ItemListAddressItem.h new file mode 100644 index 0000000000..154d3fd620 --- /dev/null +++ b/submodules/ItemListAddressItem/Sources/ItemListAddressItem.h @@ -0,0 +1,19 @@ +// +// ItemListAddressItem.h +// ItemListAddressItem +// +// Created by Peter on 8/15/19. +// Copyright © 2019 Telegram Messenger LLP. All rights reserved. +// + +#import + +//! Project version number for ItemListAddressItem. +FOUNDATION_EXPORT double ItemListAddressItemVersionNumber; + +//! Project version string for ItemListAddressItem. +FOUNDATION_EXPORT const unsigned char ItemListAddressItemVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/submodules/TelegramUI/TelegramUI/ItemListAddressItem.swift b/submodules/ItemListAddressItem/Sources/ItemListAddressItem.swift similarity index 90% rename from submodules/TelegramUI/TelegramUI/ItemListAddressItem.swift rename to submodules/ItemListAddressItem/Sources/ItemListAddressItem.swift index f6dc8c6087..60893ed4a7 100644 --- a/submodules/TelegramUI/TelegramUI/ItemListAddressItem.swift +++ b/submodules/ItemListAddressItem/Sources/ItemListAddressItem.swift @@ -8,21 +8,21 @@ import ItemListUI import AccountContext import TextFormat -final class ItemListAddressItem: ListViewItem, ItemListItem { +public final class ItemListAddressItem: ListViewItem, ItemListItem { let theme: PresentationTheme let label: String let text: String let imageSignal: Signal<(TransformImageArguments) -> DrawingContext?, NoError>? let selected: Bool? - let sectionId: ItemListSectionId + public let sectionId: ItemListSectionId let style: ItemListStyle let action: (() -> Void)? let longTapAction: (() -> Void)? let linkItemAction: ((TextLinkItemActionType, TextLinkItem) -> Void)? - let tag: Any? + public let tag: Any? - init(theme: PresentationTheme, label: String, text: String, imageSignal: Signal<(TransformImageArguments) -> DrawingContext?, NoError>?, selected: Bool? = nil, sectionId: ItemListSectionId, style: ItemListStyle, action: (() -> Void)?, longTapAction: (() -> Void)? = nil, linkItemAction: ((TextLinkItemActionType, TextLinkItem) -> Void)? = nil, tag: Any? = nil) { + public init(theme: PresentationTheme, label: String, text: String, imageSignal: Signal<(TransformImageArguments) -> DrawingContext?, NoError>?, selected: Bool? = nil, sectionId: ItemListSectionId, style: ItemListStyle, action: (() -> Void)?, longTapAction: (() -> Void)? = nil, linkItemAction: ((TextLinkItemActionType, TextLinkItem) -> Void)? = nil, tag: Any? = nil) { self.theme = theme self.label = label self.text = text @@ -36,7 +36,7 @@ final class ItemListAddressItem: ListViewItem, ItemListItem { self.tag = tag } - func nodeConfiguredForParams(async: @escaping (@escaping () -> Void) -> Void, params: ListViewItemLayoutParams, synchronousLoads: Bool, previousItem: ListViewItem?, nextItem: ListViewItem?, completion: @escaping (ListViewItemNode, @escaping () -> (Signal?, (ListViewItemApply) -> Void)) -> Void) { + public func nodeConfiguredForParams(async: @escaping (@escaping () -> Void) -> Void, params: ListViewItemLayoutParams, synchronousLoads: Bool, previousItem: ListViewItem?, nextItem: ListViewItem?, completion: @escaping (ListViewItemNode, @escaping () -> (Signal?, (ListViewItemApply) -> Void)) -> Void) { async { let node = ItemListAddressItemNode() let (layout, apply) = node.asyncLayout()(self, params, itemListNeighbors(item: self, topItem: previousItem as? ItemListItem, bottomItem: nextItem as? ItemListItem)) @@ -52,7 +52,7 @@ final class ItemListAddressItem: ListViewItem, ItemListItem { } } - func updateNode(async: @escaping (@escaping () -> Void) -> Void, node: @escaping () -> ListViewItemNode, params: ListViewItemLayoutParams, previousItem: ListViewItem?, nextItem: ListViewItem?, animation: ListViewItemUpdateAnimation, completion: @escaping (ListViewItemNodeLayout, @escaping (ListViewItemApply) -> Void) -> Void) { + public func updateNode(async: @escaping (@escaping () -> Void) -> Void, node: @escaping () -> ListViewItemNode, params: ListViewItemLayoutParams, previousItem: ListViewItem?, nextItem: ListViewItem?, animation: ListViewItemUpdateAnimation, completion: @escaping (ListViewItemNodeLayout, @escaping (ListViewItemApply) -> Void) -> Void) { Queue.mainQueue().async { if let nodeValue = node() as? ItemListAddressItemNode { let makeLayout = nodeValue.asyncLayout() @@ -69,11 +69,11 @@ final class ItemListAddressItem: ListViewItem, ItemListItem { } } - var selectable: Bool { + public var selectable: Bool { return self.action != nil } - func selected(listView: ListView) { + public func selected(listView: ListView) { listView.clearHighlightAnimated(true) self.action?() } @@ -86,7 +86,7 @@ private let textItalicFont = Font.italic(17.0) private let textBoldItalicFont = Font.semiboldItalic(17.0) private let textFixedFont = Font.regular(17.0) -class ItemListAddressItemNode: ListViewItemNode { +public class ItemListAddressItemNode: ListViewItemNode { let labelNode: TextNode let textNode: TextNode @@ -98,13 +98,13 @@ class ItemListAddressItemNode: ListViewItemNode { private let iconNode: ASImageNode private var selectionNode: ItemListSelectableControlNode? - var item: ItemListAddressItem? + public var item: ItemListAddressItem? - override var canBeLongTapped: Bool { + override public var canBeLongTapped: Bool { return true } - init() { + public init() { self.backgroundNode = ASDisplayNode() self.backgroundNode.isLayerBacked = true @@ -140,7 +140,7 @@ class ItemListAddressItemNode: ListViewItemNode { self.addSubnode(self.iconNode) } - func asyncLayout() -> (_ item: ItemListAddressItem, _ params: ListViewItemLayoutParams, _ insets: ItemListNeighbors) -> (ListViewItemNodeLayout, (ListViewItemUpdateAnimation) -> Void) { + public func asyncLayout() -> (_ item: ItemListAddressItem, _ params: ListViewItemLayoutParams, _ insets: ItemListNeighbors) -> (ListViewItemNodeLayout, (ListViewItemUpdateAnimation) -> Void) { let makeLabelLayout = TextNode.asyncLayout(self.labelNode) let makeTextLayout = TextNode.asyncLayout(self.textNode) let makeImageLayout = self.imageNode.asyncLayout() @@ -314,7 +314,7 @@ class ItemListAddressItemNode: ListViewItemNode { } } - override func setHighlighted(_ highlighted: Bool, at point: CGPoint, animated: Bool) { + override public func setHighlighted(_ highlighted: Bool, at point: CGPoint, animated: Bool) { super.setHighlighted(highlighted, at: point, animated: animated) if highlighted && self.selectionNode == nil { @@ -352,19 +352,19 @@ class ItemListAddressItemNode: ListViewItemNode { } } - override func animateInsertion(_ currentTimestamp: Double, duration: Double, short: Bool) { + override public func animateInsertion(_ currentTimestamp: Double, duration: Double, short: Bool) { self.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.4) } - override func animateRemoved(_ currentTimestamp: Double, duration: Double) { + override public func animateRemoved(_ currentTimestamp: Double, duration: Double) { self.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.15, removeOnCompletion: false) } - override func longTapped() { + override public func longTapped() { self.item?.longTapAction?() } - var tag: Any? { + public var tag: Any? { return self.item?.tag } } diff --git a/submodules/ItemListStickerPackItem/Info.plist b/submodules/ItemListStickerPackItem/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/ItemListStickerPackItem/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/submodules/ItemListStickerPackItem/ItemListStickerPackItem_Xcode.xcodeproj/project.pbxproj b/submodules/ItemListStickerPackItem/ItemListStickerPackItem_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..7853e41a3b --- /dev/null +++ b/submodules/ItemListStickerPackItem/ItemListStickerPackItem_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,583 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E41A82304D8770049C28B /* ItemListStickerPackItem.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E41A62304D8770049C28B /* ItemListStickerPackItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E41B32304D8E00049C28B /* ItemListStickerPackItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E41B22304D8E00049C28B /* ItemListStickerPackItem.swift */; }; + D03E41B62304D8EE0049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41B52304D8EE0049C28B /* Foundation.framework */; }; + D03E41B82304D8F10049C28B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41B72304D8F10049C28B /* UIKit.framework */; }; + D03E41BA2304D8F50049C28B /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41B92304D8F50049C28B /* Display.framework */; }; + D03E41BC2304D8F90049C28B /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41BB2304D8F90049C28B /* AsyncDisplayKit.framework */; }; + D03E41BE2304D8FD0049C28B /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41BD2304D8FD0049C28B /* SwiftSignalKit.framework */; }; + D03E41C02304D9020049C28B /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41BF2304D9020049C28B /* Postbox.framework */; }; + D03E41C22304D9080049C28B /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41C12304D9080049C28B /* TelegramCore.framework */; }; + D03E41C42304D90E0049C28B /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41C32304D90E0049C28B /* TelegramPresentationData.framework */; }; + D03E41C62304D9130049C28B /* ItemListUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41C52304D9130049C28B /* ItemListUI.framework */; }; + D03E41C82304D9170049C28B /* StickerResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41C72304D9170049C28B /* StickerResources.framework */; }; + D03E41CA2304D91C0049C28B /* AnimationUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41C92304D91C0049C28B /* AnimationUI.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E41A32304D8770049C28B /* ItemListStickerPackItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ItemListStickerPackItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41A62304D8770049C28B /* ItemListStickerPackItem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ItemListStickerPackItem.h; sourceTree = ""; }; + D03E41A72304D8770049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E41B22304D8E00049C28B /* ItemListStickerPackItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemListStickerPackItem.swift; sourceTree = ""; }; + D03E41B52304D8EE0049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E41B72304D8F10049C28B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D03E41B92304D8F50049C28B /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41BB2304D8F90049C28B /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41BD2304D8FD0049C28B /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41BF2304D9020049C28B /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41C12304D9080049C28B /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41C32304D90E0049C28B /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41C52304D9130049C28B /* ItemListUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41C72304D9170049C28B /* StickerResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = StickerResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41C92304D91C0049C28B /* AnimationUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AnimationUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E41A02304D8770049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E41CA2304D91C0049C28B /* AnimationUI.framework in Frameworks */, + D03E41C82304D9170049C28B /* StickerResources.framework in Frameworks */, + D03E41C62304D9130049C28B /* ItemListUI.framework in Frameworks */, + D03E41C42304D90E0049C28B /* TelegramPresentationData.framework in Frameworks */, + D03E41C22304D9080049C28B /* TelegramCore.framework in Frameworks */, + D03E41C02304D9020049C28B /* Postbox.framework in Frameworks */, + D03E41BE2304D8FD0049C28B /* SwiftSignalKit.framework in Frameworks */, + D03E41BC2304D8F90049C28B /* AsyncDisplayKit.framework in Frameworks */, + D03E41BA2304D8F50049C28B /* Display.framework in Frameworks */, + D03E41B82304D8F10049C28B /* UIKit.framework in Frameworks */, + D03E41B62304D8EE0049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E41992304D8770049C28B = { + isa = PBXGroup; + children = ( + D03E41A72304D8770049C28B /* Info.plist */, + D03E41A52304D8770049C28B /* Sources */, + D03E41A42304D8770049C28B /* Products */, + D03E41B42304D8ED0049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E41A42304D8770049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E41A32304D8770049C28B /* ItemListStickerPackItem.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E41A52304D8770049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E41B22304D8E00049C28B /* ItemListStickerPackItem.swift */, + D03E41A62304D8770049C28B /* ItemListStickerPackItem.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E41B42304D8ED0049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E41C92304D91C0049C28B /* AnimationUI.framework */, + D03E41C72304D9170049C28B /* StickerResources.framework */, + D03E41C52304D9130049C28B /* ItemListUI.framework */, + D03E41C32304D90E0049C28B /* TelegramPresentationData.framework */, + D03E41C12304D9080049C28B /* TelegramCore.framework */, + D03E41BF2304D9020049C28B /* Postbox.framework */, + D03E41BD2304D8FD0049C28B /* SwiftSignalKit.framework */, + D03E41BB2304D8F90049C28B /* AsyncDisplayKit.framework */, + D03E41B92304D8F50049C28B /* Display.framework */, + D03E41B72304D8F10049C28B /* UIKit.framework */, + D03E41B52304D8EE0049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E419E2304D8770049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E41A82304D8770049C28B /* ItemListStickerPackItem.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E41A22304D8770049C28B /* ItemListStickerPackItem */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E41AB2304D8770049C28B /* Build configuration list for PBXNativeTarget "ItemListStickerPackItem" */; + buildPhases = ( + D03E419E2304D8770049C28B /* Headers */, + D03E419F2304D8770049C28B /* Sources */, + D03E41A02304D8770049C28B /* Frameworks */, + D03E41A12304D8770049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = ItemListStickerPackItem; + productName = ItemListStickerPackItem; + productReference = D03E41A32304D8770049C28B /* ItemListStickerPackItem.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E419A2304D8770049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E41A22304D8770049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E419D2304D8770049C28B /* Build configuration list for PBXProject "ItemListStickerPackItem_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E41992304D8770049C28B; + productRefGroup = D03E41A42304D8770049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E41A22304D8770049C28B /* ItemListStickerPackItem */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E41A12304D8770049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E419F2304D8770049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E41B32304D8E00049C28B /* ItemListStickerPackItem.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E41A92304D8770049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStoreLLC; + }; + D03E41AA2304D8770049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStoreLLC; + }; + D03E41AC2304D8770049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.ItemListStickerPackItem; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugAppStoreLLC; + }; + D03E41AD2304D8770049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.ItemListStickerPackItem; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E41AE2304D8A10049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + D03E41AF2304D8A10049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.ItemListStickerPackItem; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugHockeyapp; + }; + D03E41B02304D8AA0049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyappInternal; + }; + D03E41B12304D8AA0049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.ItemListStickerPackItem; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseHockeyappInternal; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D03E419D2304D8770049C28B /* Build configuration list for PBXProject "ItemListStickerPackItem_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E41A92304D8770049C28B /* DebugAppStoreLLC */, + D03E41AE2304D8A10049C28B /* DebugHockeyapp */, + D03E41AA2304D8770049C28B /* ReleaseAppStoreLLC */, + D03E41B02304D8AA0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E41AB2304D8770049C28B /* Build configuration list for PBXNativeTarget "ItemListStickerPackItem" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E41AC2304D8770049C28B /* DebugAppStoreLLC */, + D03E41AF2304D8A10049C28B /* DebugHockeyapp */, + D03E41AD2304D8770049C28B /* ReleaseAppStoreLLC */, + D03E41B12304D8AA0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E419A2304D8770049C28B /* Project object */; +} diff --git a/submodules/ItemListStickerPackItem/Sources/ItemListStickerPackItem.h b/submodules/ItemListStickerPackItem/Sources/ItemListStickerPackItem.h new file mode 100644 index 0000000000..706ef2a41d --- /dev/null +++ b/submodules/ItemListStickerPackItem/Sources/ItemListStickerPackItem.h @@ -0,0 +1,19 @@ +// +// ItemListStickerPackItem.h +// ItemListStickerPackItem +// +// Created by Peter on 8/15/19. +// Copyright © 2019 Telegram Messenger LLP. All rights reserved. +// + +#import + +//! Project version number for ItemListStickerPackItem. +FOUNDATION_EXPORT double ItemListStickerPackItemVersionNumber; + +//! Project version string for ItemListStickerPackItem. +FOUNDATION_EXPORT const unsigned char ItemListStickerPackItemVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/submodules/TelegramUI/TelegramUI/ItemListStickerPackItem.swift b/submodules/ItemListStickerPackItem/Sources/ItemListStickerPackItem.swift similarity index 93% rename from submodules/TelegramUI/TelegramUI/ItemListStickerPackItem.swift rename to submodules/ItemListStickerPackItem/Sources/ItemListStickerPackItem.swift index ebcb752b22..91b50ea909 100644 --- a/submodules/TelegramUI/TelegramUI/ItemListStickerPackItem.swift +++ b/submodules/ItemListStickerPackItem/Sources/ItemListStickerPackItem.swift @@ -10,36 +10,27 @@ import ItemListUI import StickerResources import AnimationUI -struct ItemListStickerPackItemEditing: Equatable { - let editable: Bool - let editing: Bool - let revealed: Bool - let reorderable: Bool +public struct ItemListStickerPackItemEditing: Equatable { + public var editable: Bool + public var editing: Bool + public var revealed: Bool + public var reorderable: Bool - static func ==(lhs: ItemListStickerPackItemEditing, rhs: ItemListStickerPackItemEditing) -> Bool { - if lhs.editable != rhs.editable { - return false - } - if lhs.editing != rhs.editing { - return false - } - if lhs.revealed != rhs.revealed { - return false - } - if lhs.reorderable != rhs.reorderable { - return false - } - return true + public init(editable: Bool, editing: Bool, revealed: Bool, reorderable: Bool) { + self.editable = editable + self.editing = editing + self.revealed = revealed + self.reorderable = reorderable } } -enum ItemListStickerPackItemControl: Equatable { +public enum ItemListStickerPackItemControl: Equatable { case none case installation(installed: Bool) case selection } -final class ItemListStickerPackItem: ListViewItem, ItemListItem { +public final class ItemListStickerPackItem: ListViewItem, ItemListItem { let theme: PresentationTheme let strings: PresentationStrings let account: Account @@ -51,13 +42,13 @@ final class ItemListStickerPackItem: ListViewItem, ItemListItem { let editing: ItemListStickerPackItemEditing let enabled: Bool let playAnimatedStickers: Bool - let sectionId: ItemListSectionId + public let sectionId: ItemListSectionId let action: (() -> Void)? let setPackIdWithRevealedOptions: (ItemCollectionId?, ItemCollectionId?) -> Void let addPack: () -> Void let removePack: () -> Void - init(theme: PresentationTheme, strings: PresentationStrings, account: Account, packInfo: StickerPackCollectionInfo, itemCount: String, topItem: StickerPackItem?, unread: Bool, control: ItemListStickerPackItemControl, editing: ItemListStickerPackItemEditing, enabled: Bool, playAnimatedStickers: Bool, sectionId: ItemListSectionId, action: (() -> Void)?, setPackIdWithRevealedOptions: @escaping (ItemCollectionId?, ItemCollectionId?) -> Void, addPack: @escaping () -> Void, removePack: @escaping () -> Void) { + public init(theme: PresentationTheme, strings: PresentationStrings, account: Account, packInfo: StickerPackCollectionInfo, itemCount: String, topItem: StickerPackItem?, unread: Bool, control: ItemListStickerPackItemControl, editing: ItemListStickerPackItemEditing, enabled: Bool, playAnimatedStickers: Bool, sectionId: ItemListSectionId, action: (() -> Void)?, setPackIdWithRevealedOptions: @escaping (ItemCollectionId?, ItemCollectionId?) -> Void, addPack: @escaping () -> Void, removePack: @escaping () -> Void) { self.theme = theme self.strings = strings self.account = account @@ -76,7 +67,7 @@ final class ItemListStickerPackItem: ListViewItem, ItemListItem { self.removePack = removePack } - func nodeConfiguredForParams(async: @escaping (@escaping () -> Void) -> Void, params: ListViewItemLayoutParams, synchronousLoads: Bool, previousItem: ListViewItem?, nextItem: ListViewItem?, completion: @escaping (ListViewItemNode, @escaping () -> (Signal?, (ListViewItemApply) -> Void)) -> Void) { + public func nodeConfiguredForParams(async: @escaping (@escaping () -> Void) -> Void, params: ListViewItemLayoutParams, synchronousLoads: Bool, previousItem: ListViewItem?, nextItem: ListViewItem?, completion: @escaping (ListViewItemNode, @escaping () -> (Signal?, (ListViewItemApply) -> Void)) -> Void) { async { let node = ItemListStickerPackItemNode() let (layout, apply) = node.asyncLayout()(self, params, itemListNeighbors(item: self, topItem: previousItem as? ItemListItem, bottomItem: nextItem as? ItemListItem)) @@ -92,7 +83,7 @@ final class ItemListStickerPackItem: ListViewItem, ItemListItem { } } - func updateNode(async: @escaping (@escaping () -> Void) -> Void, node: @escaping () -> ListViewItemNode, params: ListViewItemLayoutParams, previousItem: ListViewItem?, nextItem: ListViewItem?, animation: ListViewItemUpdateAnimation, completion: @escaping (ListViewItemNodeLayout, @escaping (ListViewItemApply) -> Void) -> Void) { + public func updateNode(async: @escaping (@escaping () -> Void) -> Void, node: @escaping () -> ListViewItemNode, params: ListViewItemLayoutParams, previousItem: ListViewItem?, nextItem: ListViewItem?, animation: ListViewItemUpdateAnimation, completion: @escaping (ListViewItemNodeLayout, @escaping (ListViewItemApply) -> Void) -> Void) { Queue.mainQueue().async { if let nodeValue = node() as? ItemListStickerPackItemNode { let makeLayout = nodeValue.asyncLayout() @@ -114,9 +105,9 @@ final class ItemListStickerPackItem: ListViewItem, ItemListItem { } } - var selectable: Bool = true + public var selectable: Bool = true - func selected(listView: ListView){ + public func selected(listView: ListView){ listView.clearHighlightAnimated(true) self.action?() } @@ -125,6 +116,28 @@ final class ItemListStickerPackItem: ListViewItem, ItemListItem { private let titleFont = Font.bold(15.0) private let statusFont = Font.regular(14.0) +public enum StickerPackThumbnailItem: Equatable { + case still(TelegramMediaImageRepresentation) + case animated(MediaResource) + + public static func ==(lhs: StickerPackThumbnailItem, rhs: StickerPackThumbnailItem) -> Bool { + switch lhs { + case let .still(representation): + if case .still(representation) = rhs { + return true + } else { + return false + } + case let .animated(lhsResource): + if case let .animated(rhsResource) = rhs, lhsResource.isEqual(to: rhsResource) { + return true + } else { + return false + } + } + } +} + class ItemListStickerPackItemNode: ItemListRevealOptionsItemNode { private var currentThumbnailItem: StickerPackThumbnailItem? diff --git a/submodules/MapResourceToAvatarSizes/Info.plist b/submodules/MapResourceToAvatarSizes/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/MapResourceToAvatarSizes/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/submodules/MapResourceToAvatarSizes/MapResourceToAvatarSizes_Xcode.xcodeproj/project.pbxproj b/submodules/MapResourceToAvatarSizes/MapResourceToAvatarSizes_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..5d0d0b2649 --- /dev/null +++ b/submodules/MapResourceToAvatarSizes/MapResourceToAvatarSizes_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,563 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E423A230569A20049C28B /* MapResourceToAvatarSizes.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E4238230569A20049C28B /* MapResourceToAvatarSizes.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E424523056A080049C28B /* MapResourceToAvatarSizes.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E424423056A080049C28B /* MapResourceToAvatarSizes.swift */; }; + D03E424823056A170049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E424723056A170049C28B /* Foundation.framework */; }; + D03E424A23056A1A0049C28B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E424923056A1A0049C28B /* UIKit.framework */; }; + D03E424C23056A1D0049C28B /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E424B23056A1D0049C28B /* SwiftSignalKit.framework */; }; + D03E424E23056A210049C28B /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E424D23056A210049C28B /* Postbox.framework */; }; + D03E425023056A250049C28B /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E424F23056A250049C28B /* TelegramCore.framework */; }; + D03E425223056A2B0049C28B /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E425123056A2B0049C28B /* Display.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E4235230569A20049C28B /* MapResourceToAvatarSizes.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MapResourceToAvatarSizes.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E4238230569A20049C28B /* MapResourceToAvatarSizes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MapResourceToAvatarSizes.h; sourceTree = ""; }; + D03E4239230569A20049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E424423056A080049C28B /* MapResourceToAvatarSizes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MapResourceToAvatarSizes.swift; sourceTree = ""; }; + D03E424723056A170049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E424923056A1A0049C28B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D03E424B23056A1D0049C28B /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E424D23056A210049C28B /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E424F23056A250049C28B /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E425123056A2B0049C28B /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E4232230569A20049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E425223056A2B0049C28B /* Display.framework in Frameworks */, + D03E425023056A250049C28B /* TelegramCore.framework in Frameworks */, + D03E424E23056A210049C28B /* Postbox.framework in Frameworks */, + D03E424C23056A1D0049C28B /* SwiftSignalKit.framework in Frameworks */, + D03E424A23056A1A0049C28B /* UIKit.framework in Frameworks */, + D03E424823056A170049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E422B230569A20049C28B = { + isa = PBXGroup; + children = ( + D03E4239230569A20049C28B /* Info.plist */, + D03E4237230569A20049C28B /* Sources */, + D03E4236230569A20049C28B /* Products */, + D03E424623056A160049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E4236230569A20049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E4235230569A20049C28B /* MapResourceToAvatarSizes.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E4237230569A20049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E424423056A080049C28B /* MapResourceToAvatarSizes.swift */, + D03E4238230569A20049C28B /* MapResourceToAvatarSizes.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E424623056A160049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E425123056A2B0049C28B /* Display.framework */, + D03E424F23056A250049C28B /* TelegramCore.framework */, + D03E424D23056A210049C28B /* Postbox.framework */, + D03E424B23056A1D0049C28B /* SwiftSignalKit.framework */, + D03E424923056A1A0049C28B /* UIKit.framework */, + D03E424723056A170049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E4230230569A20049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E423A230569A20049C28B /* MapResourceToAvatarSizes.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E4234230569A20049C28B /* MapResourceToAvatarSizes */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E423D230569A20049C28B /* Build configuration list for PBXNativeTarget "MapResourceToAvatarSizes" */; + buildPhases = ( + D03E4230230569A20049C28B /* Headers */, + D03E4231230569A20049C28B /* Sources */, + D03E4232230569A20049C28B /* Frameworks */, + D03E4233230569A20049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = MapResourceToAvatarSizes; + productName = MapResourceToAvatarSizes; + productReference = D03E4235230569A20049C28B /* MapResourceToAvatarSizes.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E422C230569A20049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E4234230569A20049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E422F230569A20049C28B /* Build configuration list for PBXProject "MapResourceToAvatarSizes_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E422B230569A20049C28B; + productRefGroup = D03E4236230569A20049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E4234230569A20049C28B /* MapResourceToAvatarSizes */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E4233230569A20049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E4231230569A20049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E424523056A080049C28B /* MapResourceToAvatarSizes.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E423B230569A20049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStoreLLC; + }; + D03E423C230569A20049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStoreLLC; + }; + D03E423E230569A20049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.MapResourceToAvatarSizes; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugAppStoreLLC; + }; + D03E423F230569A20049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.MapResourceToAvatarSizes; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E4240230569D30049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + D03E4241230569D30049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.MapResourceToAvatarSizes; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugHockeyapp; + }; + D03E4242230569DC0049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyappInternal; + }; + D03E4243230569DC0049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.MapResourceToAvatarSizes; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseHockeyappInternal; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D03E422F230569A20049C28B /* Build configuration list for PBXProject "MapResourceToAvatarSizes_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E423B230569A20049C28B /* DebugAppStoreLLC */, + D03E4240230569D30049C28B /* DebugHockeyapp */, + D03E423C230569A20049C28B /* ReleaseAppStoreLLC */, + D03E4242230569DC0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E423D230569A20049C28B /* Build configuration list for PBXNativeTarget "MapResourceToAvatarSizes" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E423E230569A20049C28B /* DebugAppStoreLLC */, + D03E4241230569D30049C28B /* DebugHockeyapp */, + D03E423F230569A20049C28B /* ReleaseAppStoreLLC */, + D03E4243230569DC0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E422C230569A20049C28B /* Project object */; +} diff --git a/submodules/MapResourceToAvatarSizes/Sources/MapResourceToAvatarSizes.h b/submodules/MapResourceToAvatarSizes/Sources/MapResourceToAvatarSizes.h new file mode 100644 index 0000000000..ac6e4a60e5 --- /dev/null +++ b/submodules/MapResourceToAvatarSizes/Sources/MapResourceToAvatarSizes.h @@ -0,0 +1,19 @@ +// +// MapResourceToAvatarSizes.h +// MapResourceToAvatarSizes +// +// Created by Peter on 8/15/19. +// Copyright © 2019 Telegram Messenger LLP. All rights reserved. +// + +#import + +//! Project version number for MapResourceToAvatarSizes. +FOUNDATION_EXPORT double MapResourceToAvatarSizesVersionNumber; + +//! Project version string for MapResourceToAvatarSizes. +FOUNDATION_EXPORT const unsigned char MapResourceToAvatarSizesVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/submodules/TelegramUI/TelegramUI/MapResourceToAvatarSizes.swift b/submodules/MapResourceToAvatarSizes/Sources/MapResourceToAvatarSizes.swift similarity index 80% rename from submodules/TelegramUI/TelegramUI/MapResourceToAvatarSizes.swift rename to submodules/MapResourceToAvatarSizes/Sources/MapResourceToAvatarSizes.swift index d949c565d9..460bb3b3c4 100644 --- a/submodules/TelegramUI/TelegramUI/MapResourceToAvatarSizes.swift +++ b/submodules/MapResourceToAvatarSizes/Sources/MapResourceToAvatarSizes.swift @@ -5,7 +5,7 @@ import Postbox import TelegramCore import Display -func mapResourceToAvatarSizes(postbox: Postbox, resource: MediaResource, representations: [TelegramMediaImageRepresentation]) -> Signal<[Int: Data], NoError> { +public func mapResourceToAvatarSizes(postbox: Postbox, resource: MediaResource, representations: [TelegramMediaImageRepresentation]) -> Signal<[Int: Data], NoError> { return postbox.mediaBox.resourceData(resource) |> take(1) |> map { data -> [Int: Data] in diff --git a/submodules/NotificationMuteSettingsUI/Info.plist b/submodules/NotificationMuteSettingsUI/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/NotificationMuteSettingsUI/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/submodules/NotificationMuteSettingsUI/NotificationMuteSettingsUI_Xcode.xcodeproj/project.pbxproj b/submodules/NotificationMuteSettingsUI/NotificationMuteSettingsUI_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..44f0fa662e --- /dev/null +++ b/submodules/NotificationMuteSettingsUI/NotificationMuteSettingsUI_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,567 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E41DE2304DA600049C28B /* NotificationMuteSettingsUI.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E41DC2304DA600049C28B /* NotificationMuteSettingsUI.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E41E9230563080049C28B /* NotificationMuteSettingsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E41E8230563080049C28B /* NotificationMuteSettingsController.swift */; }; + D03E41EC230563140049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41EB230563140049C28B /* Foundation.framework */; }; + D03E41EE230563170049C28B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41ED230563170049C28B /* UIKit.framework */; }; + D03E41F0230563190049C28B /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41EF230563190049C28B /* Display.framework */; }; + D03E41F22305631D0049C28B /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41F12305631D0049C28B /* TelegramCore.framework */; }; + D03E41F4230563210049C28B /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41F3230563210049C28B /* Postbox.framework */; }; + D03E41F6230563250049C28B /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41F5230563250049C28B /* TelegramPresentationData.framework */; }; + D03E41FC230563750049C28B /* TelegramStringFormatting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41FB230563750049C28B /* TelegramStringFormatting.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E41D92304DA600049C28B /* NotificationMuteSettingsUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = NotificationMuteSettingsUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41DC2304DA600049C28B /* NotificationMuteSettingsUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NotificationMuteSettingsUI.h; sourceTree = ""; }; + D03E41DD2304DA600049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E41E8230563080049C28B /* NotificationMuteSettingsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationMuteSettingsController.swift; sourceTree = ""; }; + D03E41EB230563140049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E41ED230563170049C28B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D03E41EF230563190049C28B /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41F12305631D0049C28B /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41F3230563210049C28B /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41F5230563250049C28B /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41FB230563750049C28B /* TelegramStringFormatting.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramStringFormatting.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E41D62304DA600049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E41FC230563750049C28B /* TelegramStringFormatting.framework in Frameworks */, + D03E41F6230563250049C28B /* TelegramPresentationData.framework in Frameworks */, + D03E41F4230563210049C28B /* Postbox.framework in Frameworks */, + D03E41F22305631D0049C28B /* TelegramCore.framework in Frameworks */, + D03E41F0230563190049C28B /* Display.framework in Frameworks */, + D03E41EE230563170049C28B /* UIKit.framework in Frameworks */, + D03E41EC230563140049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E41CF2304DA600049C28B = { + isa = PBXGroup; + children = ( + D03E41DD2304DA600049C28B /* Info.plist */, + D03E41DB2304DA600049C28B /* Sources */, + D03E41DA2304DA600049C28B /* Products */, + D03E41EA230563130049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E41DA2304DA600049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E41D92304DA600049C28B /* NotificationMuteSettingsUI.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E41DB2304DA600049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E41E8230563080049C28B /* NotificationMuteSettingsController.swift */, + D03E41DC2304DA600049C28B /* NotificationMuteSettingsUI.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E41EA230563130049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E41FB230563750049C28B /* TelegramStringFormatting.framework */, + D03E41F5230563250049C28B /* TelegramPresentationData.framework */, + D03E41F3230563210049C28B /* Postbox.framework */, + D03E41F12305631D0049C28B /* TelegramCore.framework */, + D03E41EF230563190049C28B /* Display.framework */, + D03E41ED230563170049C28B /* UIKit.framework */, + D03E41EB230563140049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E41D42304DA600049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E41DE2304DA600049C28B /* NotificationMuteSettingsUI.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E41D82304DA600049C28B /* NotificationMuteSettingsUI */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E41E12304DA600049C28B /* Build configuration list for PBXNativeTarget "NotificationMuteSettingsUI" */; + buildPhases = ( + D03E41D42304DA600049C28B /* Headers */, + D03E41D52304DA600049C28B /* Sources */, + D03E41D62304DA600049C28B /* Frameworks */, + D03E41D72304DA600049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = NotificationMuteSettingsUI; + productName = NotificationMuteSettingsUI; + productReference = D03E41D92304DA600049C28B /* NotificationMuteSettingsUI.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E41D02304DA600049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E41D82304DA600049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E41D32304DA600049C28B /* Build configuration list for PBXProject "NotificationMuteSettingsUI_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E41CF2304DA600049C28B; + productRefGroup = D03E41DA2304DA600049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E41D82304DA600049C28B /* NotificationMuteSettingsUI */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E41D72304DA600049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E41D52304DA600049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E41E9230563080049C28B /* NotificationMuteSettingsController.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E41DF2304DA600049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStoreLLC; + }; + D03E41E02304DA600049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStoreLLC; + }; + D03E41E22304DA600049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.NotificationMuteSettingsUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugAppStoreLLC; + }; + D03E41E32304DA600049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.NotificationMuteSettingsUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E41E4230562B60049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + D03E41E5230562B60049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.NotificationMuteSettingsUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugHockeyapp; + }; + D03E41E6230562BF0049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyappInternal; + }; + D03E41E7230562BF0049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.NotificationMuteSettingsUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseHockeyappInternal; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D03E41D32304DA600049C28B /* Build configuration list for PBXProject "NotificationMuteSettingsUI_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E41DF2304DA600049C28B /* DebugAppStoreLLC */, + D03E41E4230562B60049C28B /* DebugHockeyapp */, + D03E41E02304DA600049C28B /* ReleaseAppStoreLLC */, + D03E41E6230562BF0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E41E12304DA600049C28B /* Build configuration list for PBXNativeTarget "NotificationMuteSettingsUI" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E41E22304DA600049C28B /* DebugAppStoreLLC */, + D03E41E5230562B60049C28B /* DebugHockeyapp */, + D03E41E32304DA600049C28B /* ReleaseAppStoreLLC */, + D03E41E7230562BF0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E41D02304DA600049C28B /* Project object */; +} diff --git a/submodules/TelegramUI/TelegramUI/NotificationMuteSettingsController.swift b/submodules/NotificationMuteSettingsUI/Sources/NotificationMuteSettingsController.swift similarity index 86% rename from submodules/TelegramUI/TelegramUI/NotificationMuteSettingsController.swift rename to submodules/NotificationMuteSettingsUI/Sources/NotificationMuteSettingsController.swift index a0279cb2fa..e3a06112e3 100644 --- a/submodules/TelegramUI/TelegramUI/NotificationMuteSettingsController.swift +++ b/submodules/NotificationMuteSettingsUI/Sources/NotificationMuteSettingsController.swift @@ -4,6 +4,7 @@ import Display import TelegramCore import Postbox import TelegramPresentationData +import TelegramStringFormatting private enum NotificationMuteOption { case `default` @@ -12,11 +13,15 @@ private enum NotificationMuteOption { case disable } -struct NotificationSoundSettings { - var value: PeerMessageSound? +public struct NotificationSoundSettings { + public var value: PeerMessageSound? + + public init(value: PeerMessageSound? = nil) { + self.value = value + } } -func notificationMuteSettingsController(presentationData: PresentationData, notificationSettings: MessageNotificationSettings, soundSettings: NotificationSoundSettings?, openSoundSettings: @escaping () -> Void, updateSettings: @escaping (Int32?) -> Void) -> ViewController { +public func notificationMuteSettingsController(presentationData: PresentationData, notificationSettings: MessageNotificationSettings, soundSettings: NotificationSoundSettings?, openSoundSettings: @escaping () -> Void, updateSettings: @escaping (Int32?) -> Void) -> ViewController { let controller = ActionSheetController(presentationTheme: presentationData.theme) let dismissAction: () -> Void = { [weak controller] in controller?.dismissAnimated() diff --git a/submodules/NotificationMuteSettingsUI/Sources/NotificationMuteSettingsUI.h b/submodules/NotificationMuteSettingsUI/Sources/NotificationMuteSettingsUI.h new file mode 100644 index 0000000000..e690a96e31 --- /dev/null +++ b/submodules/NotificationMuteSettingsUI/Sources/NotificationMuteSettingsUI.h @@ -0,0 +1,19 @@ +// +// NotificationMuteSettingsUI.h +// NotificationMuteSettingsUI +// +// Created by Peter on 8/15/19. +// Copyright © 2019 Telegram Messenger LLP. All rights reserved. +// + +#import + +//! Project version number for NotificationMuteSettingsUI. +FOUNDATION_EXPORT double NotificationMuteSettingsUIVersionNumber; + +//! Project version string for NotificationMuteSettingsUI. +FOUNDATION_EXPORT const unsigned char NotificationMuteSettingsUIVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/submodules/NotificationSoundSelectionUI/Info.plist b/submodules/NotificationSoundSelectionUI/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/NotificationSoundSelectionUI/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/submodules/NotificationSoundSelectionUI/NotificationSoundSelectionUI_Xcode.xcodeproj/project.pbxproj b/submodules/NotificationSoundSelectionUI/NotificationSoundSelectionUI_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..4a9a12e7db --- /dev/null +++ b/submodules/NotificationSoundSelectionUI/NotificationSoundSelectionUI_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,583 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E426623056AA40049C28B /* NotificationSoundSelectionUI.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E426423056AA40049C28B /* NotificationSoundSelectionUI.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E427123056AFB0049C28B /* NotificationSoundSelection.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E427023056AFB0049C28B /* NotificationSoundSelection.swift */; }; + D03E427423056B060049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E427323056B060049C28B /* Foundation.framework */; }; + D03E427623056B080049C28B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E427523056B080049C28B /* UIKit.framework */; }; + D03E427823056B0B0049C28B /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E427723056B0B0049C28B /* Display.framework */; }; + D03E427A23056B0E0049C28B /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E427923056B0E0049C28B /* SwiftSignalKit.framework */; }; + D03E427C23056B120049C28B /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E427B23056B120049C28B /* Postbox.framework */; }; + D03E427E23056B160049C28B /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E427D23056B160049C28B /* TelegramCore.framework */; }; + D03E428023056B190049C28B /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E427F23056B190049C28B /* AVFoundation.framework */; }; + D03E428223056B1E0049C28B /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E428123056B1E0049C28B /* TelegramPresentationData.framework */; }; + D03E428423056B240049C28B /* ItemListUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E428323056B240049C28B /* ItemListUI.framework */; }; + D03E428623056B280049C28B /* AccountContext.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E428523056B280049C28B /* AccountContext.framework */; }; + D03E428C23056B900049C28B /* TelegramStringFormatting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E428B23056B900049C28B /* TelegramStringFormatting.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E426123056AA40049C28B /* NotificationSoundSelectionUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = NotificationSoundSelectionUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E426423056AA40049C28B /* NotificationSoundSelectionUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NotificationSoundSelectionUI.h; sourceTree = ""; }; + D03E426523056AA40049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E427023056AFB0049C28B /* NotificationSoundSelection.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationSoundSelection.swift; sourceTree = ""; }; + D03E427323056B060049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E427523056B080049C28B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D03E427723056B0B0049C28B /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E427923056B0E0049C28B /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E427B23056B120049C28B /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E427D23056B160049C28B /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E427F23056B190049C28B /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + D03E428123056B1E0049C28B /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E428323056B240049C28B /* ItemListUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E428523056B280049C28B /* AccountContext.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AccountContext.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E428B23056B900049C28B /* TelegramStringFormatting.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramStringFormatting.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E425E23056AA40049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E428C23056B900049C28B /* TelegramStringFormatting.framework in Frameworks */, + D03E428623056B280049C28B /* AccountContext.framework in Frameworks */, + D03E428423056B240049C28B /* ItemListUI.framework in Frameworks */, + D03E428223056B1E0049C28B /* TelegramPresentationData.framework in Frameworks */, + D03E428023056B190049C28B /* AVFoundation.framework in Frameworks */, + D03E427E23056B160049C28B /* TelegramCore.framework in Frameworks */, + D03E427C23056B120049C28B /* Postbox.framework in Frameworks */, + D03E427A23056B0E0049C28B /* SwiftSignalKit.framework in Frameworks */, + D03E427823056B0B0049C28B /* Display.framework in Frameworks */, + D03E427623056B080049C28B /* UIKit.framework in Frameworks */, + D03E427423056B060049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E425723056AA40049C28B = { + isa = PBXGroup; + children = ( + D03E426523056AA40049C28B /* Info.plist */, + D03E426323056AA40049C28B /* Sources */, + D03E426223056AA40049C28B /* Products */, + D03E427223056B050049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E426223056AA40049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E426123056AA40049C28B /* NotificationSoundSelectionUI.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E426323056AA40049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E427023056AFB0049C28B /* NotificationSoundSelection.swift */, + D03E426423056AA40049C28B /* NotificationSoundSelectionUI.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E427223056B050049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E428B23056B900049C28B /* TelegramStringFormatting.framework */, + D03E428523056B280049C28B /* AccountContext.framework */, + D03E428323056B240049C28B /* ItemListUI.framework */, + D03E428123056B1E0049C28B /* TelegramPresentationData.framework */, + D03E427F23056B190049C28B /* AVFoundation.framework */, + D03E427D23056B160049C28B /* TelegramCore.framework */, + D03E427B23056B120049C28B /* Postbox.framework */, + D03E427923056B0E0049C28B /* SwiftSignalKit.framework */, + D03E427723056B0B0049C28B /* Display.framework */, + D03E427523056B080049C28B /* UIKit.framework */, + D03E427323056B060049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E425C23056AA40049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E426623056AA40049C28B /* NotificationSoundSelectionUI.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E426023056AA40049C28B /* NotificationSoundSelectionUI */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E426923056AA40049C28B /* Build configuration list for PBXNativeTarget "NotificationSoundSelectionUI" */; + buildPhases = ( + D03E425C23056AA40049C28B /* Headers */, + D03E425D23056AA40049C28B /* Sources */, + D03E425E23056AA40049C28B /* Frameworks */, + D03E425F23056AA40049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = NotificationSoundSelectionUI; + productName = NotificationSoundSelectionUI; + productReference = D03E426123056AA40049C28B /* NotificationSoundSelectionUI.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E425823056AA40049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E426023056AA40049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E425B23056AA40049C28B /* Build configuration list for PBXProject "NotificationSoundSelectionUI_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E425723056AA40049C28B; + productRefGroup = D03E426223056AA40049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E426023056AA40049C28B /* NotificationSoundSelectionUI */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E425F23056AA40049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E425D23056AA40049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E427123056AFB0049C28B /* NotificationSoundSelection.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E426723056AA40049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStoreLLC; + }; + D03E426823056AA40049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStoreLLC; + }; + D03E426A23056AA40049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.NotificationSoundSelectionUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugAppStoreLLC; + }; + D03E426B23056AA40049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.NotificationSoundSelectionUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E426C23056AC00049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + D03E426D23056AC00049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.NotificationSoundSelectionUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugHockeyapp; + }; + D03E426E23056AC80049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyappInternal; + }; + D03E426F23056AC80049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.NotificationSoundSelectionUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseHockeyappInternal; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D03E425B23056AA40049C28B /* Build configuration list for PBXProject "NotificationSoundSelectionUI_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E426723056AA40049C28B /* DebugAppStoreLLC */, + D03E426C23056AC00049C28B /* DebugHockeyapp */, + D03E426823056AA40049C28B /* ReleaseAppStoreLLC */, + D03E426E23056AC80049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E426923056AA40049C28B /* Build configuration list for PBXNativeTarget "NotificationSoundSelectionUI" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E426A23056AA40049C28B /* DebugAppStoreLLC */, + D03E426D23056AC00049C28B /* DebugHockeyapp */, + D03E426B23056AA40049C28B /* ReleaseAppStoreLLC */, + D03E426F23056AC80049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E425823056AA40049C28B /* Project object */; +} diff --git a/submodules/TelegramUI/TelegramUI/NotificationSoundSelection.swift b/submodules/NotificationSoundSelectionUI/Sources/NotificationSoundSelection.swift similarity index 98% rename from submodules/TelegramUI/TelegramUI/NotificationSoundSelection.swift rename to submodules/NotificationSoundSelectionUI/Sources/NotificationSoundSelection.swift index 45a4cbfed1..4bf28ff8ca 100644 --- a/submodules/TelegramUI/TelegramUI/NotificationSoundSelection.swift +++ b/submodules/NotificationSoundSelectionUI/Sources/NotificationSoundSelection.swift @@ -8,6 +8,7 @@ import AVFoundation import TelegramPresentationData import ItemListUI import AccountContext +import TelegramStringFormatting private struct NotificationSoundSelectionArguments { let account: Account @@ -213,7 +214,7 @@ public func fileNameForNotificationSound(_ sound: PeerMessageSound, defaultSound } } -func playSound(context: AccountContext, sound: PeerMessageSound, defaultSound: PeerMessageSound?) -> Signal { +public func playSound(context: AccountContext, sound: PeerMessageSound, defaultSound: PeerMessageSound?) -> Signal { if case .none = sound { return .complete() } else { diff --git a/submodules/NotificationSoundSelectionUI/Sources/NotificationSoundSelectionUI.h b/submodules/NotificationSoundSelectionUI/Sources/NotificationSoundSelectionUI.h new file mode 100644 index 0000000000..42b5c59b45 --- /dev/null +++ b/submodules/NotificationSoundSelectionUI/Sources/NotificationSoundSelectionUI.h @@ -0,0 +1,19 @@ +// +// NotificationSoundSelectionUI.h +// NotificationSoundSelectionUI +// +// Created by Peter on 8/15/19. +// Copyright © 2019 Telegram Messenger LLP. All rights reserved. +// + +#import + +//! Project version number for NotificationSoundSelectionUI. +FOUNDATION_EXPORT double NotificationSoundSelectionUIVersionNumber; + +//! Project version string for NotificationSoundSelectionUI. +FOUNDATION_EXPORT const unsigned char NotificationSoundSelectionUIVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/submodules/PeerAvatarGalleryUI/Info.plist b/submodules/PeerAvatarGalleryUI/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/PeerAvatarGalleryUI/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI_Xcode.xcodeproj/project.pbxproj b/submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..310d6cd141 --- /dev/null +++ b/submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,619 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E41322304D37B0049C28B /* PeerAvatarGalleryUI.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E41302304D37B0049C28B /* PeerAvatarGalleryUI.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E413F2304D3F60049C28B /* AvatarGalleryController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E413C2304D3F50049C28B /* AvatarGalleryController.swift */; }; + D03E41402304D3F60049C28B /* AvatarGalleryItemFooterContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E413D2304D3F60049C28B /* AvatarGalleryItemFooterContentNode.swift */; }; + D03E41412304D3F60049C28B /* PeerAvatarImageGalleryItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E413E2304D3F60049C28B /* PeerAvatarImageGalleryItem.swift */; }; + D03E41462304D40E0049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41452304D40E0049C28B /* Foundation.framework */; }; + D03E41482304D4100049C28B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41472304D4100049C28B /* UIKit.framework */; }; + D03E414A2304D4140049C28B /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41492304D4140049C28B /* Display.framework */; }; + D03E414C2304D4170049C28B /* QuickLook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E414B2304D4170049C28B /* QuickLook.framework */; }; + D03E414E2304D41B0049C28B /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E414D2304D41B0049C28B /* Postbox.framework */; }; + D03E41502304D41E0049C28B /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E414F2304D41E0049C28B /* SwiftSignalKit.framework */; }; + D03E41522304D4220049C28B /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41512304D4220049C28B /* AsyncDisplayKit.framework */; }; + D03E41542304D4280049C28B /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41532304D4280049C28B /* TelegramCore.framework */; }; + D03E41562304D42D0049C28B /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41552304D42D0049C28B /* TelegramPresentationData.framework */; }; + D03E41582304D4340049C28B /* AccountContext.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41572304D4340049C28B /* AccountContext.framework */; }; + D03E415A2304D4390049C28B /* GalleryUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41592304D4390049C28B /* GalleryUI.framework */; }; + D03E415C2304D4440049C28B /* Photos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E415B2304D4440049C28B /* Photos.framework */; }; + D03E415E2304D4520049C28B /* TelegramUIPreferences.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E415D2304D4520049C28B /* TelegramUIPreferences.framework */; }; + D03E41602304D4580049C28B /* TelegramStringFormatting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E415F2304D4580049C28B /* TelegramStringFormatting.framework */; }; + D03E41622304D4650049C28B /* PhotoResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41612304D4650049C28B /* PhotoResources.framework */; }; + D03E41642304D4690049C28B /* RadialStatusNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41632304D4690049C28B /* RadialStatusNode.framework */; }; + D03E41662304D46E0049C28B /* ShareController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41652304D46E0049C28B /* ShareController.framework */; }; + D03E416A2304D4F50049C28B /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E41692304D4F50049C28B /* FrameworkBundle.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E412D2304D37B0049C28B /* PeerAvatarGalleryUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PeerAvatarGalleryUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41302304D37B0049C28B /* PeerAvatarGalleryUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PeerAvatarGalleryUI.h; sourceTree = ""; }; + D03E41312304D37B0049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E413C2304D3F50049C28B /* AvatarGalleryController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarGalleryController.swift; sourceTree = ""; }; + D03E413D2304D3F60049C28B /* AvatarGalleryItemFooterContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarGalleryItemFooterContentNode.swift; sourceTree = ""; }; + D03E413E2304D3F60049C28B /* PeerAvatarImageGalleryItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerAvatarImageGalleryItem.swift; sourceTree = ""; }; + D03E41452304D40E0049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E41472304D4100049C28B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D03E41492304D4140049C28B /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E414B2304D4170049C28B /* QuickLook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickLook.framework; path = System/Library/Frameworks/QuickLook.framework; sourceTree = SDKROOT; }; + D03E414D2304D41B0049C28B /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E414F2304D41E0049C28B /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41512304D4220049C28B /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41532304D4280049C28B /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41552304D42D0049C28B /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41572304D4340049C28B /* AccountContext.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AccountContext.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41592304D4390049C28B /* GalleryUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = GalleryUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E415B2304D4440049C28B /* Photos.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Photos.framework; path = System/Library/Frameworks/Photos.framework; sourceTree = SDKROOT; }; + D03E415D2304D4520049C28B /* TelegramUIPreferences.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramUIPreferences.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E415F2304D4580049C28B /* TelegramStringFormatting.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramStringFormatting.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41612304D4650049C28B /* PhotoResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PhotoResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41632304D4690049C28B /* RadialStatusNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = RadialStatusNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41652304D46E0049C28B /* ShareController.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ShareController.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41692304D4F50049C28B /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E412A2304D37B0049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E41662304D46E0049C28B /* ShareController.framework in Frameworks */, + D03E41642304D4690049C28B /* RadialStatusNode.framework in Frameworks */, + D03E41622304D4650049C28B /* PhotoResources.framework in Frameworks */, + D03E41602304D4580049C28B /* TelegramStringFormatting.framework in Frameworks */, + D03E415E2304D4520049C28B /* TelegramUIPreferences.framework in Frameworks */, + D03E415C2304D4440049C28B /* Photos.framework in Frameworks */, + D03E415A2304D4390049C28B /* GalleryUI.framework in Frameworks */, + D03E41582304D4340049C28B /* AccountContext.framework in Frameworks */, + D03E41562304D42D0049C28B /* TelegramPresentationData.framework in Frameworks */, + D03E41542304D4280049C28B /* TelegramCore.framework in Frameworks */, + D03E41522304D4220049C28B /* AsyncDisplayKit.framework in Frameworks */, + D03E41502304D41E0049C28B /* SwiftSignalKit.framework in Frameworks */, + D03E414E2304D41B0049C28B /* Postbox.framework in Frameworks */, + D03E414C2304D4170049C28B /* QuickLook.framework in Frameworks */, + D03E414A2304D4140049C28B /* Display.framework in Frameworks */, + D03E41482304D4100049C28B /* UIKit.framework in Frameworks */, + D03E41462304D40E0049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E41232304D37B0049C28B = { + isa = PBXGroup; + children = ( + D03E41312304D37B0049C28B /* Info.plist */, + D03E412F2304D37B0049C28B /* Sources */, + D03E412E2304D37B0049C28B /* Products */, + D03E41442304D40D0049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E412E2304D37B0049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E412D2304D37B0049C28B /* PeerAvatarGalleryUI.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E412F2304D37B0049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E413C2304D3F50049C28B /* AvatarGalleryController.swift */, + D03E413D2304D3F60049C28B /* AvatarGalleryItemFooterContentNode.swift */, + D03E413E2304D3F60049C28B /* PeerAvatarImageGalleryItem.swift */, + D03E41692304D4F50049C28B /* FrameworkBundle.swift */, + D03E41302304D37B0049C28B /* PeerAvatarGalleryUI.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E41442304D40D0049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E41652304D46E0049C28B /* ShareController.framework */, + D03E41632304D4690049C28B /* RadialStatusNode.framework */, + D03E41612304D4650049C28B /* PhotoResources.framework */, + D03E415F2304D4580049C28B /* TelegramStringFormatting.framework */, + D03E415D2304D4520049C28B /* TelegramUIPreferences.framework */, + D03E415B2304D4440049C28B /* Photos.framework */, + D03E41592304D4390049C28B /* GalleryUI.framework */, + D03E41572304D4340049C28B /* AccountContext.framework */, + D03E41552304D42D0049C28B /* TelegramPresentationData.framework */, + D03E41532304D4280049C28B /* TelegramCore.framework */, + D03E41512304D4220049C28B /* AsyncDisplayKit.framework */, + D03E414F2304D41E0049C28B /* SwiftSignalKit.framework */, + D03E414D2304D41B0049C28B /* Postbox.framework */, + D03E414B2304D4170049C28B /* QuickLook.framework */, + D03E41492304D4140049C28B /* Display.framework */, + D03E41472304D4100049C28B /* UIKit.framework */, + D03E41452304D40E0049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E41282304D37B0049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E41322304D37B0049C28B /* PeerAvatarGalleryUI.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E412C2304D37B0049C28B /* PeerAvatarGalleryUI */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E41352304D37B0049C28B /* Build configuration list for PBXNativeTarget "PeerAvatarGalleryUI" */; + buildPhases = ( + D03E41282304D37B0049C28B /* Headers */, + D03E41292304D37B0049C28B /* Sources */, + D03E412A2304D37B0049C28B /* Frameworks */, + D03E412B2304D37B0049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = PeerAvatarGalleryUI; + productName = PeerAvatarGalleryUI; + productReference = D03E412D2304D37B0049C28B /* PeerAvatarGalleryUI.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E41242304D37B0049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E412C2304D37B0049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E41272304D37B0049C28B /* Build configuration list for PBXProject "PeerAvatarGalleryUI_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E41232304D37B0049C28B; + productRefGroup = D03E412E2304D37B0049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E412C2304D37B0049C28B /* PeerAvatarGalleryUI */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E412B2304D37B0049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E41292304D37B0049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E416A2304D4F50049C28B /* FrameworkBundle.swift in Sources */, + D03E413F2304D3F60049C28B /* AvatarGalleryController.swift in Sources */, + D03E41402304D3F60049C28B /* AvatarGalleryItemFooterContentNode.swift in Sources */, + D03E41412304D3F60049C28B /* PeerAvatarImageGalleryItem.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E41332304D37B0049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStoreLLC; + }; + D03E41342304D37B0049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStoreLLC; + }; + D03E41362304D37B0049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.PeerAvatarGalleryUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugAppStoreLLC; + }; + D03E41372304D37B0049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.PeerAvatarGalleryUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E41382304D3AB0049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + D03E41392304D3AB0049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.PeerAvatarGalleryUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugHockeyapp; + }; + D03E413A2304D3B50049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyappInternal; + }; + D03E413B2304D3B50049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.PeerAvatarGalleryUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseHockeyappInternal; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D03E41272304D37B0049C28B /* Build configuration list for PBXProject "PeerAvatarGalleryUI_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E41332304D37B0049C28B /* DebugAppStoreLLC */, + D03E41382304D3AB0049C28B /* DebugHockeyapp */, + D03E41342304D37B0049C28B /* ReleaseAppStoreLLC */, + D03E413A2304D3B50049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E41352304D37B0049C28B /* Build configuration list for PBXNativeTarget "PeerAvatarGalleryUI" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E41362304D37B0049C28B /* DebugAppStoreLLC */, + D03E41392304D3AB0049C28B /* DebugHockeyapp */, + D03E41372304D37B0049C28B /* ReleaseAppStoreLLC */, + D03E413B2304D3B50049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E41242304D37B0049C28B /* Project object */; +} diff --git a/submodules/TelegramUI/TelegramUI/AvatarGalleryController.swift b/submodules/PeerAvatarGalleryUI/Sources/AvatarGalleryController.swift similarity index 93% rename from submodules/TelegramUI/TelegramUI/AvatarGalleryController.swift rename to submodules/PeerAvatarGalleryUI/Sources/AvatarGalleryController.swift index 1b8e8275fb..c6fafcb1f3 100644 --- a/submodules/TelegramUI/TelegramUI/AvatarGalleryController.swift +++ b/submodules/PeerAvatarGalleryUI/Sources/AvatarGalleryController.swift @@ -10,11 +10,11 @@ import TelegramPresentationData import AccountContext import GalleryUI -enum AvatarGalleryEntry: Equatable { +public enum AvatarGalleryEntry: Equatable { case topImage([ImageRepresentationWithReference], GalleryItemIndexData?) case image(TelegramMediaImageReference?, [ImageRepresentationWithReference], Peer, Int32, GalleryItemIndexData?, MessageId?) - var representations: [ImageRepresentationWithReference] { + public var representations: [ImageRepresentationWithReference] { switch self { case let .topImage(representations, _): return representations @@ -23,7 +23,7 @@ enum AvatarGalleryEntry: Equatable { } } - var indexData: GalleryItemIndexData? { + public var indexData: GalleryItemIndexData? { switch self { case let .topImage(_, indexData): return indexData @@ -32,7 +32,7 @@ enum AvatarGalleryEntry: Equatable { } } - static func ==(lhs: AvatarGalleryEntry, rhs: AvatarGalleryEntry) -> Bool { + public static func ==(lhs: AvatarGalleryEntry, rhs: AvatarGalleryEntry) -> Bool { switch lhs { case let .topImage(lhsRepresentations, lhsIndexData): if case let .topImage(rhsRepresentations, rhsIndexData) = rhs, lhsRepresentations == rhsRepresentations, lhsIndexData == rhsIndexData { @@ -50,11 +50,11 @@ enum AvatarGalleryEntry: Equatable { } } -final class AvatarGalleryControllerPresentationArguments { +public final class AvatarGalleryControllerPresentationArguments { let animated: Bool let transitionArguments: (AvatarGalleryEntry) -> GalleryTransitionArguments? - init(animated: Bool = true, transitionArguments: @escaping (AvatarGalleryEntry) -> GalleryTransitionArguments?) { + public init(animated: Bool = true, transitionArguments: @escaping (AvatarGalleryEntry) -> GalleryTransitionArguments?) { self.animated = animated self.transitionArguments = transitionArguments } @@ -68,7 +68,7 @@ private func initialAvatarGalleryEntries(peer: Peer) -> [AvatarGalleryEntry]{ return initialEntries } -func fetchedAvatarGalleryEntries(account: Account, peer: Peer) -> Signal<[AvatarGalleryEntry], NoError> { +public func fetchedAvatarGalleryEntries(account: Account, peer: Peer) -> Signal<[AvatarGalleryEntry], NoError> { return requestPeerPhotos(account: account, peerId: peer.id) |> map { photos -> [AvatarGalleryEntry] in var result: [AvatarGalleryEntry] = [] @@ -91,7 +91,7 @@ func fetchedAvatarGalleryEntries(account: Account, peer: Peer) -> Signal<[Avatar } } -class AvatarGalleryController: ViewController { +public class AvatarGalleryController: ViewController { private var galleryNode: GalleryControllerNode { return self.displayNode as! GalleryControllerNode } @@ -102,7 +102,7 @@ class AvatarGalleryController: ViewController { private var presentationData: PresentationData private let _ready = Promise() - override var ready: Promise { + override public var ready: Promise { return self._ready } private var didSetReady = false @@ -121,13 +121,13 @@ class AvatarGalleryController: ViewController { private let centralItemAttributesDisposable = DisposableSet(); private let _hiddenMedia = Promise(nil) - var hiddenMedia: Signal { + public var hiddenMedia: Signal { return self._hiddenMedia.get() } private let replaceRootController: (ViewController, ValuePromise?) -> Void - init(context: AccountContext, peer: Peer, remoteEntries: Promise<[AvatarGalleryEntry]>? = nil, replaceRootController: @escaping (ViewController, ValuePromise?) -> Void, synchronousLoad: Bool = false) { + public init(context: AccountContext, peer: Peer, remoteEntries: Promise<[AvatarGalleryEntry]>? = nil, replaceRootController: @escaping (ViewController, ValuePromise?) -> Void, synchronousLoad: Bool = false) { self.context = context self.peer = peer self.presentationData = context.sharedContext.currentPresentationData.with { $0 } @@ -280,7 +280,7 @@ class AvatarGalleryController: ViewController { }) } - override func loadDisplayNode() { + override public func loadDisplayNode() { let controllerInteraction = GalleryControllerInteraction(presentController: { [weak self] controller, arguments in if let strongSelf = self { strongSelf.present(controller, in: .window(.root), with: arguments, blockInteraction: true) @@ -362,11 +362,11 @@ class AvatarGalleryController: ViewController { self._ready.set(ready |> map { true }) } - override func viewWillAppear(_ animated: Bool) { + override public func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) } - override func viewDidAppear(_ animated: Bool) { + override public func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) var nodeAnimatesItself = false @@ -397,7 +397,7 @@ class AvatarGalleryController: ViewController { } } - override func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) { + override public func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) { super.containerLayoutUpdated(layout, transition: transition) self.galleryNode.frame = CGRect(origin: CGPoint(), size: layout.size) @@ -423,7 +423,7 @@ class AvatarGalleryController: ViewController { let _ = updatePeerPhoto(postbox: self.context.account.postbox, network: self.context.account.network, stateManager: self.context.account.stateManager, accountPeerId: self.context.account.peerId, peerId: self.peer.id, photo: nil, mapResourceToAvatarSizes: { _, _ in .single([:]) }).start() self.dismiss(forceAway: true) } else { - if let index = self.entries.index(of: entry) { + if let index = self.entries.firstIndex(of: entry) { self.entries.remove(at: index) self.galleryNode.pager.transaction(GalleryPagerTransaction(deleteItems: [index], insertItems: [], updateItems: [], focusOnItem: index - 1)) } @@ -437,7 +437,7 @@ class AvatarGalleryController: ViewController { if entry == self.entries.first { self.dismiss(forceAway: true) } else { - if let index = self.entries.index(of: entry) { + if let index = self.entries.firstIndex(of: entry) { self.entries.remove(at: index) self.galleryNode.pager.transaction(GalleryPagerTransaction(deleteItems: [index], insertItems: [], updateItems: [], focusOnItem: index - 1)) } @@ -451,7 +451,7 @@ class AvatarGalleryController: ViewController { let _ = updatePeerPhoto(postbox: self.context.account.postbox, network: self.context.account.network, stateManager: self.context.account.stateManager, accountPeerId: self.context.account.peerId, peerId: self.peer.id, photo: nil, mapResourceToAvatarSizes: { _, _ in .single([:]) }).start() self.dismiss(forceAway: true) } else { - if let index = self.entries.index(of: entry) { + if let index = self.entries.firstIndex(of: entry) { self.entries.remove(at: index) self.galleryNode.pager.transaction(GalleryPagerTransaction(deleteItems: [index], insertItems: [], updateItems: [], focusOnItem: index - 1)) } diff --git a/submodules/TelegramUI/TelegramUI/AvatarGalleryItemFooterContentNode.swift b/submodules/PeerAvatarGalleryUI/Sources/AvatarGalleryItemFooterContentNode.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/AvatarGalleryItemFooterContentNode.swift rename to submodules/PeerAvatarGalleryUI/Sources/AvatarGalleryItemFooterContentNode.swift diff --git a/submodules/PeerAvatarGalleryUI/Sources/FrameworkBundle.swift b/submodules/PeerAvatarGalleryUI/Sources/FrameworkBundle.swift new file mode 100644 index 0000000000..8ca13d7d92 --- /dev/null +++ b/submodules/PeerAvatarGalleryUI/Sources/FrameworkBundle.swift @@ -0,0 +1,13 @@ +import Foundation +import UIKit + +private class FrameworkBundleClass: NSObject { +} + +let frameworkBundle: Bundle = Bundle(for: FrameworkBundleClass.self) + +extension UIImage { + convenience init?(bundleImageName: String) { + self.init(named: bundleImageName, in: frameworkBundle, compatibleWith: nil) + } +} diff --git a/submodules/PeerAvatarGalleryUI/Sources/PeerAvatarGalleryUI.h b/submodules/PeerAvatarGalleryUI/Sources/PeerAvatarGalleryUI.h new file mode 100644 index 0000000000..5a1ba4332b --- /dev/null +++ b/submodules/PeerAvatarGalleryUI/Sources/PeerAvatarGalleryUI.h @@ -0,0 +1,19 @@ +// +// PeerAvatarGalleryUI.h +// PeerAvatarGalleryUI +// +// Created by Peter on 8/15/19. +// Copyright © 2019 Telegram Messenger LLP. All rights reserved. +// + +#import + +//! Project version number for PeerAvatarGalleryUI. +FOUNDATION_EXPORT double PeerAvatarGalleryUIVersionNumber; + +//! Project version string for PeerAvatarGalleryUI. +FOUNDATION_EXPORT const unsigned char PeerAvatarGalleryUIVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/submodules/TelegramUI/TelegramUI/PeerAvatarImageGalleryItem.swift b/submodules/PeerAvatarGalleryUI/Sources/PeerAvatarImageGalleryItem.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/PeerAvatarImageGalleryItem.swift rename to submodules/PeerAvatarGalleryUI/Sources/PeerAvatarImageGalleryItem.swift diff --git a/submodules/PeerInfoUI/Info.plist b/submodules/PeerInfoUI/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/PeerInfoUI/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/submodules/PeerInfoUI/PeerInfoUI_Xcode.xcodeproj/project.pbxproj b/submodules/PeerInfoUI/PeerInfoUI_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..3b58668939 --- /dev/null +++ b/submodules/PeerInfoUI/PeerInfoUI_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,903 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E406E2304D0B30049C28B /* PeerInfoUI.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E406C2304D0B30049C28B /* PeerInfoUI.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E409F2304D1240049C28B /* ChannelAdminsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40782304D1180049C28B /* ChannelAdminsController.swift */; }; + D03E40A02304D1240049C28B /* ChannelDiscussionGroupSearchContainerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40792304D1180049C28B /* ChannelDiscussionGroupSearchContainerNode.swift */; }; + D03E40A12304D1240049C28B /* ChannelInfoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E407A2304D1180049C28B /* ChannelInfoController.swift */; }; + D03E40A22304D1240049C28B /* SecretChatKeyController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E407B2304D1190049C28B /* SecretChatKeyController.swift */; }; + D03E40A32304D1240049C28B /* ChannelMembersController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E407C2304D1190049C28B /* ChannelMembersController.swift */; }; + D03E40A42304D1240049C28B /* SecretChatKeyControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E407D2304D1190049C28B /* SecretChatKeyControllerNode.swift */; }; + D03E40A52304D1240049C28B /* ChannelMembersSearchContainerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E407E2304D1190049C28B /* ChannelMembersSearchContainerNode.swift */; }; + D03E40A62304D1240049C28B /* ChannelDiscussionGroupSetupController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E407F2304D1190049C28B /* ChannelDiscussionGroupSetupController.swift */; }; + D03E40A72304D1240049C28B /* ItemListSecretChatKeyItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40802304D1190049C28B /* ItemListSecretChatKeyItem.swift */; }; + D03E40A82304D1240049C28B /* GroupInfoSearchNavigationContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40812304D11A0049C28B /* GroupInfoSearchNavigationContentNode.swift */; }; + D03E40A92304D1240049C28B /* ChannelVisibilityController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40822304D11A0049C28B /* ChannelVisibilityController.swift */; }; + D03E40AA2304D1240049C28B /* ChannelBlacklistController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40832304D11A0049C28B /* ChannelBlacklistController.swift */; }; + D03E40AB2304D1240049C28B /* GroupInfoSearchItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40842304D11A0049C28B /* GroupInfoSearchItem.swift */; }; + D03E40AC2304D1240049C28B /* ChannelDiscussionGroupActionSheetItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40852304D11A0049C28B /* ChannelDiscussionGroupActionSheetItem.swift */; }; + D03E40AD2304D1240049C28B /* ItemListCallListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40862304D11B0049C28B /* ItemListCallListItem.swift */; }; + D03E40AE2304D1240049C28B /* ChannelMembersSearchController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40872304D11B0049C28B /* ChannelMembersSearchController.swift */; }; + D03E40AF2304D1240049C28B /* PeerBanTimeoutController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40882304D11B0049C28B /* PeerBanTimeoutController.swift */; }; + D03E40B02304D1240049C28B /* ChannelDiscussionGroupSetupHeaderItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40892304D11C0049C28B /* ChannelDiscussionGroupSetupHeaderItem.swift */; }; + D03E40B12304D1240049C28B /* ConvertToSupergroupController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E408A2304D11C0049C28B /* ConvertToSupergroupController.swift */; }; + D03E40B22304D1240049C28B /* ChannelMembersSearchControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E408B2304D11C0049C28B /* ChannelMembersSearchControllerNode.swift */; }; + D03E40B32304D1240049C28B /* ChannelDiscussionGroupSetupSearchItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E408C2304D11C0049C28B /* ChannelDiscussionGroupSetupSearchItem.swift */; }; + D03E40B42304D1240049C28B /* PeerInfoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E408D2304D11D0049C28B /* PeerInfoController.swift */; }; + D03E40B52304D1240049C28B /* UserInfoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E408E2304D11D0049C28B /* UserInfoController.swift */; }; + D03E40B62304D1240049C28B /* DeviceContactInfoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E408F2304D11D0049C28B /* DeviceContactInfoController.swift */; }; + D03E40B72304D1240049C28B /* GroupStickerPackCurrentItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40902304D11E0049C28B /* GroupStickerPackCurrentItem.swift */; }; + D03E40B92304D1240049C28B /* ChatSlowmodeItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40922304D11F0049C28B /* ChatSlowmodeItem.swift */; }; + D03E40BA2304D1240049C28B /* ChannelOwnershipTransferController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40932304D11F0049C28B /* ChannelOwnershipTransferController.swift */; }; + D03E40BB2304D1240049C28B /* GroupPreHistorySetupController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40942304D11F0049C28B /* GroupPreHistorySetupController.swift */; }; + D03E40BC2304D1240049C28B /* ChannelStatsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40952304D1200049C28B /* ChannelStatsController.swift */; }; + D03E40BD2304D1240049C28B /* ChannelStatsControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40962304D1200049C28B /* ChannelStatsControllerNode.swift */; }; + D03E40BE2304D1240049C28B /* ChannelPermissionsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40972304D1200049C28B /* ChannelPermissionsController.swift */; }; + D03E40BF2304D1240049C28B /* PeerReportController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40982304D1210049C28B /* PeerReportController.swift */; }; + D03E40C02304D1240049C28B /* ChannelBannedMemberController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40992304D1210049C28B /* ChannelBannedMemberController.swift */; }; + D03E40C12304D1240049C28B /* GroupStickerPackSetupController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E409A2304D1220049C28B /* GroupStickerPackSetupController.swift */; }; + D03E40C22304D1240049C28B /* GroupInfoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E409B2304D1220049C28B /* GroupInfoController.swift */; }; + D03E40C32304D1240049C28B /* ChannelAdminController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E409C2304D1230049C28B /* ChannelAdminController.swift */; }; + D03E40C42304D1240049C28B /* GroupsInCommonController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E409D2304D1230049C28B /* GroupsInCommonController.swift */; }; + D03E40C52304D1240049C28B /* PhoneLabelController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E409E2304D1240049C28B /* PhoneLabelController.swift */; }; + D03E40CA2304D13E0049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40C92304D13E0049C28B /* Foundation.framework */; }; + D03E40CC2304D13F0049C28B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40CB2304D13F0049C28B /* UIKit.framework */; }; + D03E40CE2304D1420049C28B /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40CD2304D1420049C28B /* Display.framework */; }; + D03E40D02304D1460049C28B /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40CF2304D1460049C28B /* SwiftSignalKit.framework */; }; + D03E40D22304D14A0049C28B /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40D12304D14A0049C28B /* Postbox.framework */; }; + D03E40D42304D14E0049C28B /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40D32304D14E0049C28B /* TelegramCore.framework */; }; + D03E40D62304D1520049C28B /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40D52304D1520049C28B /* TelegramPresentationData.framework */; }; + D03E40D82304D1570049C28B /* ItemListUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40D72304D1570049C28B /* ItemListUI.framework */; }; + D03E40DA2304D15B0049C28B /* AccountContext.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40D92304D15B0049C28B /* AccountContext.framework */; }; + D03E40DC2304D15F0049C28B /* AlertUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40DB2304D15F0049C28B /* AlertUI.framework */; }; + D03E40DE2304D1630049C28B /* ItemListAvatarAndNameInfoItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40DD2304D1630049C28B /* ItemListAvatarAndNameInfoItem.framework */; }; + D03E40E02304D16B0049C28B /* UndoUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40DF2304D16B0049C28B /* UndoUI.framework */; }; + D03E40E22304D1760049C28B /* TelegramUIPreferences.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40E12304D1760049C28B /* TelegramUIPreferences.framework */; }; + D03E40E42304D1810049C28B /* TemporaryCachedPeerDataManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40E32304D1810049C28B /* TemporaryCachedPeerDataManager.framework */; }; + D03E40E62304D18A0049C28B /* ItemListPeerActionItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40E52304D18A0049C28B /* ItemListPeerActionItem.framework */; }; + D03E40E82304D18A0049C28B /* ItemListPeerItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40E72304D18A0049C28B /* ItemListPeerItem.framework */; }; + D03E40EA2304D1940049C28B /* OverlayStatusController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40E92304D1940049C28B /* OverlayStatusController.framework */; }; + D03E40EC2304D19A0049C28B /* TelegramStringFormatting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40EB2304D19A0049C28B /* TelegramStringFormatting.framework */; }; + D03E40EE2304D1A90049C28B /* SearchUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40ED2304D1A90049C28B /* SearchUI.framework */; }; + D03E40F02304D1AD0049C28B /* MergeLists.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40EF2304D1AD0049C28B /* MergeLists.framework */; }; + D03E40F22304D1BA0049C28B /* TextFormat.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40F12304D1BA0049C28B /* TextFormat.framework */; }; + D03E40F42304D1C30049C28B /* LegacyUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40F32304D1C30049C28B /* LegacyUI.framework */; }; + D03E40F62304D1C70049C28B /* GalleryUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40F52304D1C70049C28B /* GalleryUI.framework */; }; + D03E40F82304D1CD0049C28B /* ShareController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40F72304D1CD0049C28B /* ShareController.framework */; }; + D03E40FA2304D1D70049C28B /* WebSearchUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40F92304D1D70049C28B /* WebSearchUI.framework */; }; + D03E40FC2304D1EF0049C28B /* SearchBarNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40FB2304D1EF0049C28B /* SearchBarNode.framework */; }; + D03E40FE2304D1F30049C28B /* ContactsPeerItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40FD2304D1F30049C28B /* ContactsPeerItem.framework */; }; + D03E41002304D1FB0049C28B /* PasswordSetupUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40FF2304D1FB0049C28B /* PasswordSetupUI.framework */; }; + D03E41022304D1FF0049C28B /* ActivityIndicator.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41012304D1FF0049C28B /* ActivityIndicator.framework */; }; + D03E41042304D20A0049C28B /* TelegramPermissionsUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41032304D20A0049C28B /* TelegramPermissionsUI.framework */; }; + D03E41062304D2140049C28B /* ProgressNavigationButtonNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41052304D2140049C28B /* ProgressNavigationButtonNode.framework */; }; + D03E41082304D21D0049C28B /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41072304D21D0049C28B /* WebKit.framework */; }; + D03E410A2304D22A0049C28B /* TelegramNotices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41092304D22A0049C28B /* TelegramNotices.framework */; }; + D03E410C2304D2380049C28B /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E410B2304D2380049C28B /* MessageUI.framework */; }; + D03E410E2304D2410049C28B /* PhotoResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E410D2304D2410049C28B /* PhotoResources.framework */; }; + D03E41102304D2460049C28B /* MediaResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E410F2304D2460049C28B /* MediaResources.framework */; }; + D03E41122304D24B0049C28B /* Geocoding.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41112304D24B0049C28B /* Geocoding.framework */; }; + D03E41142304D25B0049C28B /* SafariServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41132304D25A0049C28B /* SafariServices.framework */; }; + D03E41162304D2600049C28B /* LegacyComponents.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41152304D2600049C28B /* LegacyComponents.framework */; }; + D03E41182304D2690049C28B /* LocationUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41172304D2690049C28B /* LocationUI.framework */; }; + D03E411A2304D27E0049C28B /* StickerResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41192304D27E0049C28B /* StickerResources.framework */; }; + D03E411C2304D2870049C28B /* StickerPackPreviewUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E411B2304D2870049C28B /* StickerPackPreviewUI.framework */; }; + D03E411E2304D2C20049C28B /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E411D2304D2C20049C28B /* FrameworkBundle.swift */; }; + D03E41212304D3040049C28B /* UserInfoEditingPhoneItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E411F2304D3030049C28B /* UserInfoEditingPhoneItem.swift */; }; + D03E41222304D3040049C28B /* UserInfoEditingPhoneActionItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E41202304D3040049C28B /* UserInfoEditingPhoneActionItem.swift */; }; + D03E41432304D4010049C28B /* PeerAvatarGalleryUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41422304D4010049C28B /* PeerAvatarGalleryUI.framework */; }; + D03E41942304D78E0049C28B /* Emoji.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41932304D78E0049C28B /* Emoji.framework */; }; + D03E41CC2304D9790049C28B /* ItemListStickerPackItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41CB2304D9790049C28B /* ItemListStickerPackItem.framework */; }; + D03E41F8230563480049C28B /* NotificationMuteSettingsUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41F7230563480049C28B /* NotificationMuteSettingsUI.framework */; }; + D03E4224230564AA0049C28B /* SinglePhoneInputNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E4223230564AA0049C28B /* SinglePhoneInputNode.framework */; }; + D03E425423056A410049C28B /* MapResourceToAvatarSizes.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E425323056A410049C28B /* MapResourceToAvatarSizes.framework */; }; + D03E428823056B590049C28B /* NotificationSoundSelectionUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E428723056B590049C28B /* NotificationSoundSelectionUI.framework */; }; + D03E42B223056C6E0049C28B /* EncryptionKeyVisualization.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42B123056C6D0049C28B /* EncryptionKeyVisualization.framework */; }; + D03E42E42305724A0049C28B /* ItemListAddressItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42E32305724A0049C28B /* ItemListAddressItem.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E40692304D0B30049C28B /* PeerInfoUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PeerInfoUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E406C2304D0B30049C28B /* PeerInfoUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PeerInfoUI.h; sourceTree = ""; }; + D03E406D2304D0B30049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E40782304D1180049C28B /* ChannelAdminsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelAdminsController.swift; sourceTree = ""; }; + D03E40792304D1180049C28B /* ChannelDiscussionGroupSearchContainerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelDiscussionGroupSearchContainerNode.swift; sourceTree = ""; }; + D03E407A2304D1180049C28B /* ChannelInfoController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelInfoController.swift; sourceTree = ""; }; + D03E407B2304D1190049C28B /* SecretChatKeyController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatKeyController.swift; sourceTree = ""; }; + D03E407C2304D1190049C28B /* ChannelMembersController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelMembersController.swift; sourceTree = ""; }; + D03E407D2304D1190049C28B /* SecretChatKeyControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatKeyControllerNode.swift; sourceTree = ""; }; + D03E407E2304D1190049C28B /* ChannelMembersSearchContainerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelMembersSearchContainerNode.swift; sourceTree = ""; }; + D03E407F2304D1190049C28B /* ChannelDiscussionGroupSetupController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelDiscussionGroupSetupController.swift; sourceTree = ""; }; + D03E40802304D1190049C28B /* ItemListSecretChatKeyItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemListSecretChatKeyItem.swift; sourceTree = ""; }; + D03E40812304D11A0049C28B /* GroupInfoSearchNavigationContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupInfoSearchNavigationContentNode.swift; sourceTree = ""; }; + D03E40822304D11A0049C28B /* ChannelVisibilityController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelVisibilityController.swift; sourceTree = ""; }; + D03E40832304D11A0049C28B /* ChannelBlacklistController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelBlacklistController.swift; sourceTree = ""; }; + D03E40842304D11A0049C28B /* GroupInfoSearchItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupInfoSearchItem.swift; sourceTree = ""; }; + D03E40852304D11A0049C28B /* ChannelDiscussionGroupActionSheetItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelDiscussionGroupActionSheetItem.swift; sourceTree = ""; }; + D03E40862304D11B0049C28B /* ItemListCallListItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemListCallListItem.swift; sourceTree = ""; }; + D03E40872304D11B0049C28B /* ChannelMembersSearchController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelMembersSearchController.swift; sourceTree = ""; }; + D03E40882304D11B0049C28B /* PeerBanTimeoutController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerBanTimeoutController.swift; sourceTree = ""; }; + D03E40892304D11C0049C28B /* ChannelDiscussionGroupSetupHeaderItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelDiscussionGroupSetupHeaderItem.swift; sourceTree = ""; }; + D03E408A2304D11C0049C28B /* ConvertToSupergroupController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConvertToSupergroupController.swift; sourceTree = ""; }; + D03E408B2304D11C0049C28B /* ChannelMembersSearchControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelMembersSearchControllerNode.swift; sourceTree = ""; }; + D03E408C2304D11C0049C28B /* ChannelDiscussionGroupSetupSearchItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelDiscussionGroupSetupSearchItem.swift; sourceTree = ""; }; + D03E408D2304D11D0049C28B /* PeerInfoController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerInfoController.swift; sourceTree = ""; }; + D03E408E2304D11D0049C28B /* UserInfoController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserInfoController.swift; sourceTree = ""; }; + D03E408F2304D11D0049C28B /* DeviceContactInfoController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeviceContactInfoController.swift; sourceTree = ""; }; + D03E40902304D11E0049C28B /* GroupStickerPackCurrentItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupStickerPackCurrentItem.swift; sourceTree = ""; }; + D03E40922304D11F0049C28B /* ChatSlowmodeItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatSlowmodeItem.swift; sourceTree = ""; }; + D03E40932304D11F0049C28B /* ChannelOwnershipTransferController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelOwnershipTransferController.swift; sourceTree = ""; }; + D03E40942304D11F0049C28B /* GroupPreHistorySetupController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupPreHistorySetupController.swift; sourceTree = ""; }; + D03E40952304D1200049C28B /* ChannelStatsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelStatsController.swift; sourceTree = ""; }; + D03E40962304D1200049C28B /* ChannelStatsControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelStatsControllerNode.swift; sourceTree = ""; }; + D03E40972304D1200049C28B /* ChannelPermissionsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelPermissionsController.swift; sourceTree = ""; }; + D03E40982304D1210049C28B /* PeerReportController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerReportController.swift; sourceTree = ""; }; + D03E40992304D1210049C28B /* ChannelBannedMemberController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelBannedMemberController.swift; sourceTree = ""; }; + D03E409A2304D1220049C28B /* GroupStickerPackSetupController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupStickerPackSetupController.swift; sourceTree = ""; }; + D03E409B2304D1220049C28B /* GroupInfoController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupInfoController.swift; sourceTree = ""; }; + D03E409C2304D1230049C28B /* ChannelAdminController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelAdminController.swift; sourceTree = ""; }; + D03E409D2304D1230049C28B /* GroupsInCommonController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupsInCommonController.swift; sourceTree = ""; }; + D03E409E2304D1240049C28B /* PhoneLabelController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PhoneLabelController.swift; sourceTree = ""; }; + D03E40C92304D13E0049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E40CB2304D13F0049C28B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D03E40CD2304D1420049C28B /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40CF2304D1460049C28B /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40D12304D14A0049C28B /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40D32304D14E0049C28B /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40D52304D1520049C28B /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40D72304D1570049C28B /* ItemListUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40D92304D15B0049C28B /* AccountContext.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AccountContext.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40DB2304D15F0049C28B /* AlertUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AlertUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40DD2304D1630049C28B /* ItemListAvatarAndNameInfoItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListAvatarAndNameInfoItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40DF2304D16B0049C28B /* UndoUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = UndoUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40E12304D1760049C28B /* TelegramUIPreferences.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramUIPreferences.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40E32304D1810049C28B /* TemporaryCachedPeerDataManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TemporaryCachedPeerDataManager.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40E52304D18A0049C28B /* ItemListPeerActionItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListPeerActionItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40E72304D18A0049C28B /* ItemListPeerItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListPeerItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40E92304D1940049C28B /* OverlayStatusController.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = OverlayStatusController.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40EB2304D19A0049C28B /* TelegramStringFormatting.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramStringFormatting.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40ED2304D1A90049C28B /* SearchUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SearchUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40EF2304D1AD0049C28B /* MergeLists.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MergeLists.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40F12304D1BA0049C28B /* TextFormat.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TextFormat.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40F32304D1C30049C28B /* LegacyUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LegacyUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40F52304D1C70049C28B /* GalleryUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = GalleryUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40F72304D1CD0049C28B /* ShareController.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ShareController.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40F92304D1D70049C28B /* WebSearchUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WebSearchUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40FB2304D1EF0049C28B /* SearchBarNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SearchBarNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40FD2304D1F30049C28B /* ContactsPeerItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ContactsPeerItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40FF2304D1FB0049C28B /* PasswordSetupUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PasswordSetupUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41012304D1FF0049C28B /* ActivityIndicator.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ActivityIndicator.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41032304D20A0049C28B /* TelegramPermissionsUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPermissionsUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41052304D2140049C28B /* ProgressNavigationButtonNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ProgressNavigationButtonNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41072304D21D0049C28B /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; + D03E41092304D22A0049C28B /* TelegramNotices.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramNotices.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E410B2304D2380049C28B /* MessageUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MessageUI.framework; path = System/Library/Frameworks/MessageUI.framework; sourceTree = SDKROOT; }; + D03E410D2304D2410049C28B /* PhotoResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PhotoResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E410F2304D2460049C28B /* MediaResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MediaResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41112304D24B0049C28B /* Geocoding.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Geocoding.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41132304D25A0049C28B /* SafariServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SafariServices.framework; path = System/Library/Frameworks/SafariServices.framework; sourceTree = SDKROOT; }; + D03E41152304D2600049C28B /* LegacyComponents.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LegacyComponents.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41172304D2690049C28B /* LocationUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LocationUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41192304D27E0049C28B /* StickerResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = StickerResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E411B2304D2870049C28B /* StickerPackPreviewUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = StickerPackPreviewUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E411D2304D2C20049C28B /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; + D03E411F2304D3030049C28B /* UserInfoEditingPhoneItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserInfoEditingPhoneItem.swift; sourceTree = ""; }; + D03E41202304D3040049C28B /* UserInfoEditingPhoneActionItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserInfoEditingPhoneActionItem.swift; sourceTree = ""; }; + D03E41422304D4010049C28B /* PeerAvatarGalleryUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PeerAvatarGalleryUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41932304D78E0049C28B /* Emoji.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Emoji.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41CB2304D9790049C28B /* ItemListStickerPackItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListStickerPackItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41F7230563480049C28B /* NotificationMuteSettingsUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = NotificationMuteSettingsUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E4223230564AA0049C28B /* SinglePhoneInputNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SinglePhoneInputNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E425323056A410049C28B /* MapResourceToAvatarSizes.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MapResourceToAvatarSizes.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E428723056B590049C28B /* NotificationSoundSelectionUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = NotificationSoundSelectionUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E42B123056C6D0049C28B /* EncryptionKeyVisualization.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = EncryptionKeyVisualization.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E42E32305724A0049C28B /* ItemListAddressItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListAddressItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E40662304D0B30049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E42E42305724A0049C28B /* ItemListAddressItem.framework in Frameworks */, + D03E42B223056C6E0049C28B /* EncryptionKeyVisualization.framework in Frameworks */, + D03E428823056B590049C28B /* NotificationSoundSelectionUI.framework in Frameworks */, + D03E425423056A410049C28B /* MapResourceToAvatarSizes.framework in Frameworks */, + D03E4224230564AA0049C28B /* SinglePhoneInputNode.framework in Frameworks */, + D03E41F8230563480049C28B /* NotificationMuteSettingsUI.framework in Frameworks */, + D03E41CC2304D9790049C28B /* ItemListStickerPackItem.framework in Frameworks */, + D03E41942304D78E0049C28B /* Emoji.framework in Frameworks */, + D03E41432304D4010049C28B /* PeerAvatarGalleryUI.framework in Frameworks */, + D03E411C2304D2870049C28B /* StickerPackPreviewUI.framework in Frameworks */, + D03E411A2304D27E0049C28B /* StickerResources.framework in Frameworks */, + D03E41182304D2690049C28B /* LocationUI.framework in Frameworks */, + D03E41162304D2600049C28B /* LegacyComponents.framework in Frameworks */, + D03E41142304D25B0049C28B /* SafariServices.framework in Frameworks */, + D03E41122304D24B0049C28B /* Geocoding.framework in Frameworks */, + D03E41102304D2460049C28B /* MediaResources.framework in Frameworks */, + D03E410E2304D2410049C28B /* PhotoResources.framework in Frameworks */, + D03E410C2304D2380049C28B /* MessageUI.framework in Frameworks */, + D03E410A2304D22A0049C28B /* TelegramNotices.framework in Frameworks */, + D03E41082304D21D0049C28B /* WebKit.framework in Frameworks */, + D03E41062304D2140049C28B /* ProgressNavigationButtonNode.framework in Frameworks */, + D03E41042304D20A0049C28B /* TelegramPermissionsUI.framework in Frameworks */, + D03E41022304D1FF0049C28B /* ActivityIndicator.framework in Frameworks */, + D03E41002304D1FB0049C28B /* PasswordSetupUI.framework in Frameworks */, + D03E40FE2304D1F30049C28B /* ContactsPeerItem.framework in Frameworks */, + D03E40FC2304D1EF0049C28B /* SearchBarNode.framework in Frameworks */, + D03E40FA2304D1D70049C28B /* WebSearchUI.framework in Frameworks */, + D03E40F82304D1CD0049C28B /* ShareController.framework in Frameworks */, + D03E40F62304D1C70049C28B /* GalleryUI.framework in Frameworks */, + D03E40F42304D1C30049C28B /* LegacyUI.framework in Frameworks */, + D03E40F22304D1BA0049C28B /* TextFormat.framework in Frameworks */, + D03E40F02304D1AD0049C28B /* MergeLists.framework in Frameworks */, + D03E40EE2304D1A90049C28B /* SearchUI.framework in Frameworks */, + D03E40EC2304D19A0049C28B /* TelegramStringFormatting.framework in Frameworks */, + D03E40EA2304D1940049C28B /* OverlayStatusController.framework in Frameworks */, + D03E40E62304D18A0049C28B /* ItemListPeerActionItem.framework in Frameworks */, + D03E40E82304D18A0049C28B /* ItemListPeerItem.framework in Frameworks */, + D03E40E42304D1810049C28B /* TemporaryCachedPeerDataManager.framework in Frameworks */, + D03E40E22304D1760049C28B /* TelegramUIPreferences.framework in Frameworks */, + D03E40E02304D16B0049C28B /* UndoUI.framework in Frameworks */, + D03E40DE2304D1630049C28B /* ItemListAvatarAndNameInfoItem.framework in Frameworks */, + D03E40DC2304D15F0049C28B /* AlertUI.framework in Frameworks */, + D03E40DA2304D15B0049C28B /* AccountContext.framework in Frameworks */, + D03E40D82304D1570049C28B /* ItemListUI.framework in Frameworks */, + D03E40D62304D1520049C28B /* TelegramPresentationData.framework in Frameworks */, + D03E40D42304D14E0049C28B /* TelegramCore.framework in Frameworks */, + D03E40D22304D14A0049C28B /* Postbox.framework in Frameworks */, + D03E40D02304D1460049C28B /* SwiftSignalKit.framework in Frameworks */, + D03E40CE2304D1420049C28B /* Display.framework in Frameworks */, + D03E40CC2304D13F0049C28B /* UIKit.framework in Frameworks */, + D03E40CA2304D13E0049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E405F2304D0B30049C28B = { + isa = PBXGroup; + children = ( + D03E406D2304D0B30049C28B /* Info.plist */, + D03E406B2304D0B30049C28B /* Sources */, + D03E406A2304D0B30049C28B /* Products */, + D03E40C82304D13C0049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E406A2304D0B30049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E40692304D0B30049C28B /* PeerInfoUI.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E406B2304D0B30049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E41202304D3040049C28B /* UserInfoEditingPhoneActionItem.swift */, + D03E411F2304D3030049C28B /* UserInfoEditingPhoneItem.swift */, + D03E409C2304D1230049C28B /* ChannelAdminController.swift */, + D03E40782304D1180049C28B /* ChannelAdminsController.swift */, + D03E40992304D1210049C28B /* ChannelBannedMemberController.swift */, + D03E40832304D11A0049C28B /* ChannelBlacklistController.swift */, + D03E40852304D11A0049C28B /* ChannelDiscussionGroupActionSheetItem.swift */, + D03E40792304D1180049C28B /* ChannelDiscussionGroupSearchContainerNode.swift */, + D03E407F2304D1190049C28B /* ChannelDiscussionGroupSetupController.swift */, + D03E40892304D11C0049C28B /* ChannelDiscussionGroupSetupHeaderItem.swift */, + D03E408C2304D11C0049C28B /* ChannelDiscussionGroupSetupSearchItem.swift */, + D03E407A2304D1180049C28B /* ChannelInfoController.swift */, + D03E407C2304D1190049C28B /* ChannelMembersController.swift */, + D03E407E2304D1190049C28B /* ChannelMembersSearchContainerNode.swift */, + D03E40872304D11B0049C28B /* ChannelMembersSearchController.swift */, + D03E408B2304D11C0049C28B /* ChannelMembersSearchControllerNode.swift */, + D03E40932304D11F0049C28B /* ChannelOwnershipTransferController.swift */, + D03E40972304D1200049C28B /* ChannelPermissionsController.swift */, + D03E40952304D1200049C28B /* ChannelStatsController.swift */, + D03E40962304D1200049C28B /* ChannelStatsControllerNode.swift */, + D03E40822304D11A0049C28B /* ChannelVisibilityController.swift */, + D03E40922304D11F0049C28B /* ChatSlowmodeItem.swift */, + D03E408A2304D11C0049C28B /* ConvertToSupergroupController.swift */, + D03E408F2304D11D0049C28B /* DeviceContactInfoController.swift */, + D03E409B2304D1220049C28B /* GroupInfoController.swift */, + D03E40842304D11A0049C28B /* GroupInfoSearchItem.swift */, + D03E40812304D11A0049C28B /* GroupInfoSearchNavigationContentNode.swift */, + D03E40942304D11F0049C28B /* GroupPreHistorySetupController.swift */, + D03E409D2304D1230049C28B /* GroupsInCommonController.swift */, + D03E40902304D11E0049C28B /* GroupStickerPackCurrentItem.swift */, + D03E409A2304D1220049C28B /* GroupStickerPackSetupController.swift */, + D03E40862304D11B0049C28B /* ItemListCallListItem.swift */, + D03E40802304D1190049C28B /* ItemListSecretChatKeyItem.swift */, + D03E40882304D11B0049C28B /* PeerBanTimeoutController.swift */, + D03E408D2304D11D0049C28B /* PeerInfoController.swift */, + D03E40982304D1210049C28B /* PeerReportController.swift */, + D03E409E2304D1240049C28B /* PhoneLabelController.swift */, + D03E407B2304D1190049C28B /* SecretChatKeyController.swift */, + D03E407D2304D1190049C28B /* SecretChatKeyControllerNode.swift */, + D03E408E2304D11D0049C28B /* UserInfoController.swift */, + D03E411D2304D2C20049C28B /* FrameworkBundle.swift */, + D03E406C2304D0B30049C28B /* PeerInfoUI.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E40C82304D13C0049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E42E32305724A0049C28B /* ItemListAddressItem.framework */, + D03E42B123056C6D0049C28B /* EncryptionKeyVisualization.framework */, + D03E428723056B590049C28B /* NotificationSoundSelectionUI.framework */, + D03E425323056A410049C28B /* MapResourceToAvatarSizes.framework */, + D03E4223230564AA0049C28B /* SinglePhoneInputNode.framework */, + D03E41F7230563480049C28B /* NotificationMuteSettingsUI.framework */, + D03E41CB2304D9790049C28B /* ItemListStickerPackItem.framework */, + D03E41932304D78E0049C28B /* Emoji.framework */, + D03E41422304D4010049C28B /* PeerAvatarGalleryUI.framework */, + D03E411B2304D2870049C28B /* StickerPackPreviewUI.framework */, + D03E41192304D27E0049C28B /* StickerResources.framework */, + D03E41172304D2690049C28B /* LocationUI.framework */, + D03E41152304D2600049C28B /* LegacyComponents.framework */, + D03E41132304D25A0049C28B /* SafariServices.framework */, + D03E41112304D24B0049C28B /* Geocoding.framework */, + D03E410F2304D2460049C28B /* MediaResources.framework */, + D03E410D2304D2410049C28B /* PhotoResources.framework */, + D03E410B2304D2380049C28B /* MessageUI.framework */, + D03E41092304D22A0049C28B /* TelegramNotices.framework */, + D03E41072304D21D0049C28B /* WebKit.framework */, + D03E41052304D2140049C28B /* ProgressNavigationButtonNode.framework */, + D03E41032304D20A0049C28B /* TelegramPermissionsUI.framework */, + D03E41012304D1FF0049C28B /* ActivityIndicator.framework */, + D03E40FF2304D1FB0049C28B /* PasswordSetupUI.framework */, + D03E40FD2304D1F30049C28B /* ContactsPeerItem.framework */, + D03E40FB2304D1EF0049C28B /* SearchBarNode.framework */, + D03E40F92304D1D70049C28B /* WebSearchUI.framework */, + D03E40F72304D1CD0049C28B /* ShareController.framework */, + D03E40F52304D1C70049C28B /* GalleryUI.framework */, + D03E40F32304D1C30049C28B /* LegacyUI.framework */, + D03E40F12304D1BA0049C28B /* TextFormat.framework */, + D03E40EF2304D1AD0049C28B /* MergeLists.framework */, + D03E40ED2304D1A90049C28B /* SearchUI.framework */, + D03E40EB2304D19A0049C28B /* TelegramStringFormatting.framework */, + D03E40E92304D1940049C28B /* OverlayStatusController.framework */, + D03E40E52304D18A0049C28B /* ItemListPeerActionItem.framework */, + D03E40E72304D18A0049C28B /* ItemListPeerItem.framework */, + D03E40E32304D1810049C28B /* TemporaryCachedPeerDataManager.framework */, + D03E40E12304D1760049C28B /* TelegramUIPreferences.framework */, + D03E40DF2304D16B0049C28B /* UndoUI.framework */, + D03E40DD2304D1630049C28B /* ItemListAvatarAndNameInfoItem.framework */, + D03E40DB2304D15F0049C28B /* AlertUI.framework */, + D03E40D92304D15B0049C28B /* AccountContext.framework */, + D03E40D72304D1570049C28B /* ItemListUI.framework */, + D03E40D52304D1520049C28B /* TelegramPresentationData.framework */, + D03E40D32304D14E0049C28B /* TelegramCore.framework */, + D03E40D12304D14A0049C28B /* Postbox.framework */, + D03E40CF2304D1460049C28B /* SwiftSignalKit.framework */, + D03E40CD2304D1420049C28B /* Display.framework */, + D03E40CB2304D13F0049C28B /* UIKit.framework */, + D03E40C92304D13E0049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E40642304D0B30049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E406E2304D0B30049C28B /* PeerInfoUI.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E40682304D0B30049C28B /* PeerInfoUI */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E40712304D0B30049C28B /* Build configuration list for PBXNativeTarget "PeerInfoUI" */; + buildPhases = ( + D03E40642304D0B30049C28B /* Headers */, + D03E40652304D0B30049C28B /* Sources */, + D03E40662304D0B30049C28B /* Frameworks */, + D03E40672304D0B30049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = PeerInfoUI; + productName = PeerInfoUI; + productReference = D03E40692304D0B30049C28B /* PeerInfoUI.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E40602304D0B30049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E40682304D0B30049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E40632304D0B30049C28B /* Build configuration list for PBXProject "PeerInfoUI_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E405F2304D0B30049C28B; + productRefGroup = D03E406A2304D0B30049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E40682304D0B30049C28B /* PeerInfoUI */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E40672304D0B30049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E40652304D0B30049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E409F2304D1240049C28B /* ChannelAdminsController.swift in Sources */, + D03E40A82304D1240049C28B /* GroupInfoSearchNavigationContentNode.swift in Sources */, + D03E40BB2304D1240049C28B /* GroupPreHistorySetupController.swift in Sources */, + D03E40A52304D1240049C28B /* ChannelMembersSearchContainerNode.swift in Sources */, + D03E40B92304D1240049C28B /* ChatSlowmodeItem.swift in Sources */, + D03E40B42304D1240049C28B /* PeerInfoController.swift in Sources */, + D03E40A32304D1240049C28B /* ChannelMembersController.swift in Sources */, + D03E40C02304D1240049C28B /* ChannelBannedMemberController.swift in Sources */, + D03E40A12304D1240049C28B /* ChannelInfoController.swift in Sources */, + D03E40C22304D1240049C28B /* GroupInfoController.swift in Sources */, + D03E40AB2304D1240049C28B /* GroupInfoSearchItem.swift in Sources */, + D03E40A42304D1240049C28B /* SecretChatKeyControllerNode.swift in Sources */, + D03E40BC2304D1240049C28B /* ChannelStatsController.swift in Sources */, + D03E40BF2304D1240049C28B /* PeerReportController.swift in Sources */, + D03E40B62304D1240049C28B /* DeviceContactInfoController.swift in Sources */, + D03E40AD2304D1240049C28B /* ItemListCallListItem.swift in Sources */, + D03E40BE2304D1240049C28B /* ChannelPermissionsController.swift in Sources */, + D03E40B52304D1240049C28B /* UserInfoController.swift in Sources */, + D03E40C42304D1240049C28B /* GroupsInCommonController.swift in Sources */, + D03E40C12304D1240049C28B /* GroupStickerPackSetupController.swift in Sources */, + D03E40B72304D1240049C28B /* GroupStickerPackCurrentItem.swift in Sources */, + D03E40B12304D1240049C28B /* ConvertToSupergroupController.swift in Sources */, + D03E41222304D3040049C28B /* UserInfoEditingPhoneActionItem.swift in Sources */, + D03E40A72304D1240049C28B /* ItemListSecretChatKeyItem.swift in Sources */, + D03E411E2304D2C20049C28B /* FrameworkBundle.swift in Sources */, + D03E40BD2304D1240049C28B /* ChannelStatsControllerNode.swift in Sources */, + D03E40AC2304D1240049C28B /* ChannelDiscussionGroupActionSheetItem.swift in Sources */, + D03E40A62304D1240049C28B /* ChannelDiscussionGroupSetupController.swift in Sources */, + D03E40C52304D1240049C28B /* PhoneLabelController.swift in Sources */, + D03E40A92304D1240049C28B /* ChannelVisibilityController.swift in Sources */, + D03E40A02304D1240049C28B /* ChannelDiscussionGroupSearchContainerNode.swift in Sources */, + D03E40C32304D1240049C28B /* ChannelAdminController.swift in Sources */, + D03E40AE2304D1240049C28B /* ChannelMembersSearchController.swift in Sources */, + D03E40B32304D1240049C28B /* ChannelDiscussionGroupSetupSearchItem.swift in Sources */, + D03E41212304D3040049C28B /* UserInfoEditingPhoneItem.swift in Sources */, + D03E40AA2304D1240049C28B /* ChannelBlacklistController.swift in Sources */, + D03E40A22304D1240049C28B /* SecretChatKeyController.swift in Sources */, + D03E40BA2304D1240049C28B /* ChannelOwnershipTransferController.swift in Sources */, + D03E40AF2304D1240049C28B /* PeerBanTimeoutController.swift in Sources */, + D03E40B02304D1240049C28B /* ChannelDiscussionGroupSetupHeaderItem.swift in Sources */, + D03E40B22304D1240049C28B /* ChannelMembersSearchControllerNode.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E406F2304D0B30049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStoreLLC; + }; + D03E40702304D0B30049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStoreLLC; + }; + D03E40722304D0B30049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.PeerInfoUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugAppStoreLLC; + }; + D03E40732304D0B30049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.PeerInfoUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E40742304D0D90049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + D03E40752304D0D90049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.PeerInfoUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugHockeyapp; + }; + D03E40762304D0E10049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyappInternal; + }; + D03E40772304D0E10049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.PeerInfoUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseHockeyappInternal; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D03E40632304D0B30049C28B /* Build configuration list for PBXProject "PeerInfoUI_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E406F2304D0B30049C28B /* DebugAppStoreLLC */, + D03E40742304D0D90049C28B /* DebugHockeyapp */, + D03E40702304D0B30049C28B /* ReleaseAppStoreLLC */, + D03E40762304D0E10049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E40712304D0B30049C28B /* Build configuration list for PBXNativeTarget "PeerInfoUI" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E40722304D0B30049C28B /* DebugAppStoreLLC */, + D03E40752304D0D90049C28B /* DebugHockeyapp */, + D03E40732304D0B30049C28B /* ReleaseAppStoreLLC */, + D03E40772304D0E10049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E40602304D0B30049C28B /* Project object */; +} diff --git a/submodules/TelegramUI/TelegramUI/ChannelAdminController.swift b/submodules/PeerInfoUI/Sources/ChannelAdminController.swift similarity index 99% rename from submodules/TelegramUI/TelegramUI/ChannelAdminController.swift rename to submodules/PeerInfoUI/Sources/ChannelAdminController.swift index aa1f14d837..4458f265a0 100644 --- a/submodules/TelegramUI/TelegramUI/ChannelAdminController.swift +++ b/submodules/PeerInfoUI/Sources/ChannelAdminController.swift @@ -9,6 +9,7 @@ import ItemListUI import AccountContext import AlertUI import ItemListAvatarAndNameInfoItem +import Emoji private let rankMaxLength: Int32 = 16 diff --git a/submodules/TelegramUI/TelegramUI/ChannelAdminsController.swift b/submodules/PeerInfoUI/Sources/ChannelAdminsController.swift similarity index 99% rename from submodules/TelegramUI/TelegramUI/ChannelAdminsController.swift rename to submodules/PeerInfoUI/Sources/ChannelAdminsController.swift index 5cbe125deb..a0d5d79081 100644 --- a/submodules/TelegramUI/TelegramUI/ChannelAdminsController.swift +++ b/submodules/PeerInfoUI/Sources/ChannelAdminsController.swift @@ -536,7 +536,7 @@ public func channelAdminsController(context: AccountContext, peerId: PeerId, loa |> deliverOnMainQueue).start(next: { peer in if peer is TelegramGroup { } else { - pushControllerImpl?(ChatRecentActionsController(context: context, peer: peer)) + pushControllerImpl?(context.sharedContext.makeChatRecentActionsController(context: context, peer: peer)) } }) }, setPeerIdWithRevealedOptions: { peerId, fromPeerId in diff --git a/submodules/TelegramUI/TelegramUI/ChannelBannedMemberController.swift b/submodules/PeerInfoUI/Sources/ChannelBannedMemberController.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/ChannelBannedMemberController.swift rename to submodules/PeerInfoUI/Sources/ChannelBannedMemberController.swift diff --git a/submodules/TelegramUI/TelegramUI/ChannelBlacklistController.swift b/submodules/PeerInfoUI/Sources/ChannelBlacklistController.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/ChannelBlacklistController.swift rename to submodules/PeerInfoUI/Sources/ChannelBlacklistController.swift diff --git a/submodules/TelegramUI/TelegramUI/ChannelDiscussionGroupActionSheetItem.swift b/submodules/PeerInfoUI/Sources/ChannelDiscussionGroupActionSheetItem.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/ChannelDiscussionGroupActionSheetItem.swift rename to submodules/PeerInfoUI/Sources/ChannelDiscussionGroupActionSheetItem.swift diff --git a/submodules/TelegramUI/TelegramUI/ChannelDiscussionGroupSearchContainerNode.swift b/submodules/PeerInfoUI/Sources/ChannelDiscussionGroupSearchContainerNode.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/ChannelDiscussionGroupSearchContainerNode.swift rename to submodules/PeerInfoUI/Sources/ChannelDiscussionGroupSearchContainerNode.swift diff --git a/submodules/TelegramUI/TelegramUI/ChannelDiscussionGroupSetupController.swift b/submodules/PeerInfoUI/Sources/ChannelDiscussionGroupSetupController.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/ChannelDiscussionGroupSetupController.swift rename to submodules/PeerInfoUI/Sources/ChannelDiscussionGroupSetupController.swift diff --git a/submodules/TelegramUI/TelegramUI/ChannelDiscussionGroupSetupHeaderItem.swift b/submodules/PeerInfoUI/Sources/ChannelDiscussionGroupSetupHeaderItem.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/ChannelDiscussionGroupSetupHeaderItem.swift rename to submodules/PeerInfoUI/Sources/ChannelDiscussionGroupSetupHeaderItem.swift diff --git a/submodules/TelegramUI/TelegramUI/ChannelDiscussionGroupSetupSearchItem.swift b/submodules/PeerInfoUI/Sources/ChannelDiscussionGroupSetupSearchItem.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/ChannelDiscussionGroupSetupSearchItem.swift rename to submodules/PeerInfoUI/Sources/ChannelDiscussionGroupSetupSearchItem.swift diff --git a/submodules/TelegramUI/TelegramUI/ChannelInfoController.swift b/submodules/PeerInfoUI/Sources/ChannelInfoController.swift similarity index 99% rename from submodules/TelegramUI/TelegramUI/ChannelInfoController.swift rename to submodules/PeerInfoUI/Sources/ChannelInfoController.swift index dfaf5eb5d4..1261d6fde9 100644 --- a/submodules/TelegramUI/TelegramUI/ChannelInfoController.swift +++ b/submodules/PeerInfoUI/Sources/ChannelInfoController.swift @@ -16,9 +16,12 @@ import ShareController import AlertUI import GalleryUI import LegacyUI -import ChatListUI import ItemListAvatarAndNameInfoItem import WebSearchUI +import PeerAvatarGalleryUI +import NotificationMuteSettingsUI +import MapResourceToAvatarSizes +import NotificationSoundSelectionUI private final class ChannelInfoControllerArguments { let account: Account @@ -837,7 +840,7 @@ public func channelInfoController(context: AccountContext, peerId: PeerId) -> Vi presentControllerImpl?(controller, ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) }) }, openSharedMedia: { - if let controller = peerSharedMediaController(context: context, peerId: peerId) { + if let controller = context.sharedContext.makePeerSharedMediaController(context: context, peerId: peerId) { pushControllerImpl?(controller) } }, openStats: { diff --git a/submodules/TelegramUI/TelegramUI/ChannelMembersController.swift b/submodules/PeerInfoUI/Sources/ChannelMembersController.swift similarity index 99% rename from submodules/TelegramUI/TelegramUI/ChannelMembersController.swift rename to submodules/PeerInfoUI/Sources/ChannelMembersController.swift index 7228103a42..f1dbed3542 100644 --- a/submodules/TelegramUI/TelegramUI/ChannelMembersController.swift +++ b/submodules/PeerInfoUI/Sources/ChannelMembersController.swift @@ -351,7 +351,7 @@ public func channelMembersController(context: AccountContext, peerId: PeerId) -> |> take(1) |> deliverOnMainQueue).start(next: { members in let disabledIds = members?.compactMap({$0.peer.id}) ?? [] - let contactsController = ContactMultiselectionController(context: context, mode: .peerSelection(searchChatList: false, searchGroups: false), options: [], filters: [.excludeSelf, .disable(disabledIds)]) + let contactsController = context.sharedContext.makeContactMultiselectionController(ContactMultiselectionControllerParams(context: context, mode: .peerSelection(searchChatList: false, searchGroups: false), options: [], filters: [.excludeSelf, .disable(disabledIds)])) addMembersDisposable.set((contactsController.result |> deliverOnMainQueue diff --git a/submodules/TelegramUI/TelegramUI/ChannelMembersSearchContainerNode.swift b/submodules/PeerInfoUI/Sources/ChannelMembersSearchContainerNode.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/ChannelMembersSearchContainerNode.swift rename to submodules/PeerInfoUI/Sources/ChannelMembersSearchContainerNode.swift diff --git a/submodules/TelegramUI/TelegramUI/ChannelMembersSearchController.swift b/submodules/PeerInfoUI/Sources/ChannelMembersSearchController.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/ChannelMembersSearchController.swift rename to submodules/PeerInfoUI/Sources/ChannelMembersSearchController.swift diff --git a/submodules/TelegramUI/TelegramUI/ChannelMembersSearchControllerNode.swift b/submodules/PeerInfoUI/Sources/ChannelMembersSearchControllerNode.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/ChannelMembersSearchControllerNode.swift rename to submodules/PeerInfoUI/Sources/ChannelMembersSearchControllerNode.swift diff --git a/submodules/TelegramUI/TelegramUI/ChannelOwnershipTransferController.swift b/submodules/PeerInfoUI/Sources/ChannelOwnershipTransferController.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/ChannelOwnershipTransferController.swift rename to submodules/PeerInfoUI/Sources/ChannelOwnershipTransferController.swift diff --git a/submodules/TelegramUI/TelegramUI/ChannelPermissionsController.swift b/submodules/PeerInfoUI/Sources/ChannelPermissionsController.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/ChannelPermissionsController.swift rename to submodules/PeerInfoUI/Sources/ChannelPermissionsController.swift diff --git a/submodules/TelegramUI/TelegramUI/ChannelStatsController.swift b/submodules/PeerInfoUI/Sources/ChannelStatsController.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/ChannelStatsController.swift rename to submodules/PeerInfoUI/Sources/ChannelStatsController.swift diff --git a/submodules/TelegramUI/TelegramUI/ChannelStatsControllerNode.swift b/submodules/PeerInfoUI/Sources/ChannelStatsControllerNode.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/ChannelStatsControllerNode.swift rename to submodules/PeerInfoUI/Sources/ChannelStatsControllerNode.swift diff --git a/submodules/TelegramUI/TelegramUI/ChannelVisibilityController.swift b/submodules/PeerInfoUI/Sources/ChannelVisibilityController.swift similarity index 96% rename from submodules/TelegramUI/TelegramUI/ChannelVisibilityController.swift rename to submodules/PeerInfoUI/Sources/ChannelVisibilityController.swift index 6dd93ab980..a8dd5615eb 100644 --- a/submodules/TelegramUI/TelegramUI/ChannelVisibilityController.swift +++ b/submodules/PeerInfoUI/Sources/ChannelVisibilityController.swift @@ -1229,42 +1229,44 @@ public func channelVisibilityController(context: AccountContext, peerId: PeerId, nextImpl = { [weak controller] in if let controller = controller { if case .initialSetup = mode { - let selectionController = ContactMultiselectionController(context: context, mode: .channelCreation, options: []) + let selectionController = context.sharedContext.makeContactMultiselectionController(ContactMultiselectionControllerParams(context: context, mode: .channelCreation, options: [])) (controller.navigationController as? NavigationController)?.replaceAllButRootController(selectionController, animated: true) let _ = (selectionController.result - |> deliverOnMainQueue).start(next: { [weak selectionController] peerIds in - guard let selectionController = selectionController, let navigationController = selectionController.navigationController as? NavigationController else { - return - } - let filteredPeerIds = peerIds.compactMap({ peerId -> PeerId? in - if case let .peer(id) = peerId { - return id - } else { - return nil - } - }) - if filteredPeerIds.isEmpty { - context.sharedContext.navigateToChatController(NavigateToChatControllerParams(navigationController: navigationController, chatController: nil, context: context, chatLocation: .peer(peerId), keepStack: .never, animated: true)) + |> deliverOnMainQueue).start(next: { [weak selectionController] peerIds in + guard let selectionController = selectionController, let navigationController = selectionController.navigationController as? NavigationController else { + return + } + let filteredPeerIds = peerIds.compactMap({ peerId -> PeerId? in + if case let .peer(id) = peerId { + return id } else { - selectionController.displayProgress = true - let _ = (addChannelMembers(account: context.account, peerId: peerId, memberIds: filteredPeerIds) - |> deliverOnMainQueue).start(error: { [weak selectionController] _ in - guard let selectionController = selectionController, let navigationController = selectionController.navigationController as? NavigationController else { - return - } - - context.sharedContext.navigateToChatController(NavigateToChatControllerParams(navigationController: navigationController, chatController: nil, context: context, chatLocation: .peer(peerId), keepStack: .never, animated: true)) - }, completed: { [weak selectionController] in - guard let selectionController = selectionController, let navigationController = selectionController.navigationController as? NavigationController else { - return - } - - context.sharedContext.navigateToChatController(NavigateToChatControllerParams(navigationController: navigationController, chatController: nil, context: context, chatLocation: .peer(peerId), keepStack: .never, animated: true)) - }) + return nil } }) + if filteredPeerIds.isEmpty { + context.sharedContext.navigateToChatController(NavigateToChatControllerParams(navigationController: navigationController, chatController: nil, context: context, chatLocation: .peer(peerId), keepStack: .never, animated: true)) + } else { + selectionController.displayProgress = true + let _ = (addChannelMembers(account: context.account, peerId: peerId, memberIds: filteredPeerIds) + |> deliverOnMainQueue).start(error: { [weak selectionController] _ in + guard let selectionController = selectionController, let navigationController = selectionController.navigationController as? NavigationController else { + return + } + + context.sharedContext.navigateToChatController(NavigateToChatControllerParams(navigationController: navigationController, chatController: nil, context: context, chatLocation: .peer(peerId), keepStack: .never, animated: true)) + }, completed: { [weak selectionController] in + guard let selectionController = selectionController, let navigationController = selectionController.navigationController as? NavigationController else { + return + } + + context.sharedContext.navigateToChatController(NavigateToChatControllerParams(navigationController: navigationController, chatController: nil, context: context, chatLocation: .peer(peerId), keepStack: .never, animated: true)) + }) + } + }) } else { - (controller.navigationController as? NavigationController)?.replaceAllButRootController(ChatControllerImpl(context: context, chatLocation: .peer(peerId)), animated: true) + if let navigationController = controller.navigationController as? NavigationController { + navigationController.replaceAllButRootController(context.sharedContext.makeChatController(context: context, chatLocation: .peer(peerId), subject: nil, botStart: nil, mode: .standard(previewing: false)), animated: true) + } } } } diff --git a/submodules/TelegramUI/TelegramUI/ChatSlowmodeItem.swift b/submodules/PeerInfoUI/Sources/ChatSlowmodeItem.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/ChatSlowmodeItem.swift rename to submodules/PeerInfoUI/Sources/ChatSlowmodeItem.swift diff --git a/submodules/TelegramUI/TelegramUI/ConvertToSupergroupController.swift b/submodules/PeerInfoUI/Sources/ConvertToSupergroupController.swift similarity index 97% rename from submodules/TelegramUI/TelegramUI/ConvertToSupergroupController.swift rename to submodules/PeerInfoUI/Sources/ConvertToSupergroupController.swift index ab2a7dd41d..a8a274cf45 100644 --- a/submodules/TelegramUI/TelegramUI/ConvertToSupergroupController.swift +++ b/submodules/PeerInfoUI/Sources/ConvertToSupergroupController.swift @@ -147,7 +147,7 @@ public func convertToSupergroupController(context: AccountContext, peerId: PeerI if !alreadyConverting { convertDisposable.set((convertGroupToSupergroup(account: context.account, peerId: peerId) |> deliverOnMainQueue).start(next: { createdPeerId in - replaceControllerImpl?(ChatControllerImpl(context: context, chatLocation: .peer(createdPeerId))) + replaceControllerImpl?(context.sharedContext.makeChatController(context: context, chatLocation: .peer(createdPeerId), subject: nil, botStart: nil, mode: .standard(previewing: false))) })) } })]), nil) diff --git a/submodules/TelegramUI/TelegramUI/DeviceContactInfoController.swift b/submodules/PeerInfoUI/Sources/DeviceContactInfoController.swift similarity index 99% rename from submodules/TelegramUI/TelegramUI/DeviceContactInfoController.swift rename to submodules/PeerInfoUI/Sources/DeviceContactInfoController.swift index 8bc403ac30..899696b586 100644 --- a/submodules/TelegramUI/TelegramUI/DeviceContactInfoController.swift +++ b/submodules/PeerInfoUI/Sources/DeviceContactInfoController.swift @@ -14,6 +14,7 @@ import PhotoResources import MediaResources import ItemListAvatarAndNameInfoItem import Geocoding +import ItemListAddressItem private enum DeviceContactInfoAction { case sendMessage @@ -1291,7 +1292,7 @@ public func deviceContactInfoController(context: AccountContext, subject: Device } private func addContactToExisting(context: AccountContext, parentController: ViewController, contactData: DeviceContactExtendedData, completion: @escaping (Peer?, DeviceContactStableId, DeviceContactExtendedData) -> Void) { - let contactsController = ContactSelectionControllerImpl(ContactSelectionControllerParams(context: context, title: { $0.Contacts_Title }, displayDeviceContacts: true)) + let contactsController = context.sharedContext.makeContactSelectionController(ContactSelectionControllerParams(context: context, title: { $0.Contacts_Title }, displayDeviceContacts: true)) parentController.present(contactsController, in: .window(.root), with: ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) let _ = (contactsController.result |> deliverOnMainQueue).start(next: { peer in diff --git a/submodules/PeerInfoUI/Sources/FrameworkBundle.swift b/submodules/PeerInfoUI/Sources/FrameworkBundle.swift new file mode 100644 index 0000000000..8ca13d7d92 --- /dev/null +++ b/submodules/PeerInfoUI/Sources/FrameworkBundle.swift @@ -0,0 +1,13 @@ +import Foundation +import UIKit + +private class FrameworkBundleClass: NSObject { +} + +let frameworkBundle: Bundle = Bundle(for: FrameworkBundleClass.self) + +extension UIImage { + convenience init?(bundleImageName: String) { + self.init(named: bundleImageName, in: frameworkBundle, compatibleWith: nil) + } +} diff --git a/submodules/TelegramUI/TelegramUI/GroupInfoController.swift b/submodules/PeerInfoUI/Sources/GroupInfoController.swift similarity index 99% rename from submodules/TelegramUI/TelegramUI/GroupInfoController.swift rename to submodules/PeerInfoUI/Sources/GroupInfoController.swift index d6eed66cef..29ef37b4f3 100644 --- a/submodules/TelegramUI/TelegramUI/GroupInfoController.swift +++ b/submodules/PeerInfoUI/Sources/GroupInfoController.swift @@ -23,11 +23,16 @@ import LegacyUI import LocationUI import ItemListPeerItem import ContactListUI -import ChatListUI import ItemListAvatarAndNameInfoItem import ItemListPeerActionItem import WebSearchUI import Geocoding +import PeerAvatarGalleryUI +import Emoji +import NotificationMuteSettingsUI +import MapResourceToAvatarSizes +import NotificationSoundSelectionUI +import ItemListAddressItem private final class GroupInfoArguments { let context: AccountContext @@ -1515,7 +1520,7 @@ public func groupInfoController(context: AccountContext, peerId originalPeerId: let _ = (peerView.get() |> take(1) |> deliverOnMainQueue).start(next: { peerView in - if let controller = peerSharedMediaController(context: context, peerId: peerView.peerId) { + if let controller = context.sharedContext.makePeerSharedMediaController(context: context, peerId: peerView.peerId) { pushControllerImpl?(controller) } }) @@ -1601,7 +1606,7 @@ public func groupInfoController(context: AccountContext, peerId originalPeerId: let contactsController: ViewController if peerView.peerId.namespace == Namespaces.Peer.CloudGroup { - contactsController = ContactSelectionControllerImpl(ContactSelectionControllerParams(context: context, autoDismiss: false, title: { $0.GroupInfo_AddParticipantTitle }, options: options, confirmation: { peer in + contactsController = context.sharedContext.makeContactSelectionController(ContactSelectionControllerParams(context: context, autoDismiss: false, title: { $0.GroupInfo_AddParticipantTitle }, options: options, confirmation: { peer in if let confirmationImpl = confirmationImpl, case let .peer(peer, _, _) = peer { return confirmationImpl(peer.id) } else { @@ -1609,7 +1614,7 @@ public func groupInfoController(context: AccountContext, peerId originalPeerId: } })) } else { - contactsController = ContactMultiselectionController(context: context, mode: .peerSelection(searchChatList: false, searchGroups: false), options: options, filters: [.excludeSelf, .disable(recentIds)]) + contactsController = context.sharedContext.makeContactMultiselectionController(ContactMultiselectionControllerParams(context: context, mode: .peerSelection(searchChatList: false, searchGroups: false), options: options, filters: [.excludeSelf, .disable(recentIds)])) } confirmationImpl = { [weak contactsController] peerId in @@ -1808,7 +1813,7 @@ public func groupInfoController(context: AccountContext, peerId originalPeerId: } presentControllerImpl?(contactsController, ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) - if let contactsController = contactsController as? ContactSelectionControllerImpl { + if let contactsController = contactsController as? ContactSelectionController { selectAddMemberDisposable.set((contactsController.result |> deliverOnMainQueue).start(next: { [weak contactsController] memberPeer in guard let memberPeer = memberPeer else { @@ -2306,7 +2311,7 @@ public func groupInfoController(context: AccountContext, peerId originalPeerId: let infoController = groupInfoController(context: context, peerId: upgradedPeerId, membersLoaded: { f() }) - let chatController = ChatControllerImpl(context: context, chatLocation: .peer(upgradedPeerId), mode: .standard(previewing: false)) + let chatController = context.sharedContext.makeChatController(context: context, chatLocation: .peer(upgradedPeerId), subject: nil, botStart: nil, mode: .standard(previewing: false)) var viewControllers: [UIViewController] = [] if let first = navigationController.viewControllers.first { viewControllers.append(first) diff --git a/submodules/TelegramUI/TelegramUI/GroupInfoSearchItem.swift b/submodules/PeerInfoUI/Sources/GroupInfoSearchItem.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/GroupInfoSearchItem.swift rename to submodules/PeerInfoUI/Sources/GroupInfoSearchItem.swift diff --git a/submodules/TelegramUI/TelegramUI/GroupInfoSearchNavigationContentNode.swift b/submodules/PeerInfoUI/Sources/GroupInfoSearchNavigationContentNode.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/GroupInfoSearchNavigationContentNode.swift rename to submodules/PeerInfoUI/Sources/GroupInfoSearchNavigationContentNode.swift diff --git a/submodules/TelegramUI/TelegramUI/GroupPreHistorySetupController.swift b/submodules/PeerInfoUI/Sources/GroupPreHistorySetupController.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/GroupPreHistorySetupController.swift rename to submodules/PeerInfoUI/Sources/GroupPreHistorySetupController.swift diff --git a/submodules/TelegramUI/TelegramUI/GroupStickerPackCurrentItem.swift b/submodules/PeerInfoUI/Sources/GroupStickerPackCurrentItem.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/GroupStickerPackCurrentItem.swift rename to submodules/PeerInfoUI/Sources/GroupStickerPackCurrentItem.swift diff --git a/submodules/TelegramUI/TelegramUI/GroupStickerPackSetupController.swift b/submodules/PeerInfoUI/Sources/GroupStickerPackSetupController.swift similarity index 99% rename from submodules/TelegramUI/TelegramUI/GroupStickerPackSetupController.swift rename to submodules/PeerInfoUI/Sources/GroupStickerPackSetupController.swift index 5b91e6caba..29a18dd5f8 100644 --- a/submodules/TelegramUI/TelegramUI/GroupStickerPackSetupController.swift +++ b/submodules/PeerInfoUI/Sources/GroupStickerPackSetupController.swift @@ -9,6 +9,7 @@ import TelegramUIPreferences import ItemListUI import AccountContext import StickerPackPreviewUI +import ItemListStickerPackItem private final class GroupStickerPackSetupControllerArguments { let account: Account diff --git a/submodules/TelegramUI/TelegramUI/GroupsInCommonController.swift b/submodules/PeerInfoUI/Sources/GroupsInCommonController.swift similarity index 93% rename from submodules/TelegramUI/TelegramUI/GroupsInCommonController.swift rename to submodules/PeerInfoUI/Sources/GroupsInCommonController.swift index 324f4b47d9..07204dd178 100644 --- a/submodules/TelegramUI/TelegramUI/GroupsInCommonController.swift +++ b/submodules/PeerInfoUI/Sources/GroupsInCommonController.swift @@ -129,9 +129,13 @@ public func groupsInCommonController(context: AccountContext, peerId: PeerId) -> let peersPromise = Promise<[Peer]?>(nil) var pushControllerImpl: ((ViewController) -> Void)? + var getNavigationControllerImpl: (() -> NavigationController?)? let arguments = GroupsInCommonControllerArguments(account: context.account, openPeer: { memberId in - pushControllerImpl?(ChatControllerImpl(context: context, chatLocation: .peer(memberId))) + guard let navigationController = getNavigationControllerImpl?() else { + return + } + context.sharedContext.navigateToChatController(NavigateToChatControllerParams(navigationController: navigationController, context: context, chatLocation: .peer(memberId), animated: true)) }) let peersSignal: Signal<[Peer]?, NoError> = .single(nil) |> then(groupsInCommon(account: context.account, peerId: peerId) |> mapToSignal { peerIds -> Signal<[Peer], NoError> in @@ -176,5 +180,8 @@ public func groupsInCommonController(context: AccountContext, peerId: PeerId) -> (controller.navigationController as? NavigationController)?.pushViewController(c) } } + getNavigationControllerImpl = { [weak controller] in + return controller?.navigationController as? NavigationController + } return controller } diff --git a/submodules/TelegramUI/TelegramUI/ItemListCallListItem.swift b/submodules/PeerInfoUI/Sources/ItemListCallListItem.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/ItemListCallListItem.swift rename to submodules/PeerInfoUI/Sources/ItemListCallListItem.swift diff --git a/submodules/TelegramUI/TelegramUI/ItemListSecretChatKeyItem.swift b/submodules/PeerInfoUI/Sources/ItemListSecretChatKeyItem.swift similarity index 99% rename from submodules/TelegramUI/TelegramUI/ItemListSecretChatKeyItem.swift rename to submodules/PeerInfoUI/Sources/ItemListSecretChatKeyItem.swift index ad91fa855c..0eec849879 100644 --- a/submodules/TelegramUI/TelegramUI/ItemListSecretChatKeyItem.swift +++ b/submodules/PeerInfoUI/Sources/ItemListSecretChatKeyItem.swift @@ -6,6 +6,7 @@ import SwiftSignalKit import TelegramCore import TelegramPresentationData import ItemListUI +import EncryptionKeyVisualization class ItemListSecretChatKeyItem: ListViewItem, ItemListItem { let theme: PresentationTheme diff --git a/submodules/TelegramUI/TelegramUI/PeerBanTimeoutController.swift b/submodules/PeerInfoUI/Sources/PeerBanTimeoutController.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/PeerBanTimeoutController.swift rename to submodules/PeerInfoUI/Sources/PeerBanTimeoutController.swift diff --git a/submodules/TelegramUI/TelegramUI/PeerInfoController.swift b/submodules/PeerInfoUI/Sources/PeerInfoController.swift similarity index 84% rename from submodules/TelegramUI/TelegramUI/PeerInfoController.swift rename to submodules/PeerInfoUI/Sources/PeerInfoController.swift index 3db64333ce..c5792efe4b 100644 --- a/submodules/TelegramUI/TelegramUI/PeerInfoController.swift +++ b/submodules/PeerInfoUI/Sources/PeerInfoController.swift @@ -6,7 +6,7 @@ import SwiftSignalKit import TelegramCore import AccountContext -func peerInfoControllerImpl(context: AccountContext, peer: Peer, mode: PeerInfoControllerMode) -> ViewController? { +public func peerInfoControllerImpl(context: AccountContext, peer: Peer, mode: PeerInfoControllerMode) -> ViewController? { if let _ = peer as? TelegramGroup { return groupInfoController(context: context, peerId: peer.id) } else if let channel = peer as? TelegramChannel { diff --git a/submodules/PeerInfoUI/Sources/PeerInfoUI.h b/submodules/PeerInfoUI/Sources/PeerInfoUI.h new file mode 100644 index 0000000000..a54f44d256 --- /dev/null +++ b/submodules/PeerInfoUI/Sources/PeerInfoUI.h @@ -0,0 +1,19 @@ +// +// PeerInfoUI.h +// PeerInfoUI +// +// Created by Peter on 8/15/19. +// Copyright © 2019 Telegram Messenger LLP. All rights reserved. +// + +#import + +//! Project version number for PeerInfoUI. +FOUNDATION_EXPORT double PeerInfoUIVersionNumber; + +//! Project version string for PeerInfoUI. +FOUNDATION_EXPORT const unsigned char PeerInfoUIVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/submodules/TelegramUI/TelegramUI/PeerReportController.swift b/submodules/PeerInfoUI/Sources/PeerReportController.swift similarity index 97% rename from submodules/TelegramUI/TelegramUI/PeerReportController.swift rename to submodules/PeerInfoUI/Sources/PeerReportController.swift index 39ffdacc65..e827dff690 100644 --- a/submodules/TelegramUI/TelegramUI/PeerReportController.swift +++ b/submodules/PeerInfoUI/Sources/PeerReportController.swift @@ -10,7 +10,7 @@ import AccountContext import ContextUI import AlertUI -enum PeerReportSubject { +public enum PeerReportSubject { case peer(PeerId) case messages([MessageId]) } @@ -24,7 +24,7 @@ private enum PeerReportOption { case other } -func presentPeerReportOptions(context: AccountContext, parent: ViewController, contextController: ContextController?, subject: PeerReportSubject, completion: @escaping (Bool) -> Void) { +public func presentPeerReportOptions(context: AccountContext, parent: ViewController, contextController: ContextController?, subject: PeerReportSubject, completion: @escaping (Bool) -> Void) { if let contextController = contextController { let presentationData = context.sharedContext.currentPresentationData.with { $0 } let options: [PeerReportOption] = [ @@ -104,7 +104,7 @@ func presentPeerReportOptions(context: AccountContext, parent: ViewController, c } } -func peerReportOptionsController(context: AccountContext, subject: PeerReportSubject, present: @escaping (ViewController, Any?) -> Void, completion: @escaping (Bool) -> Void) -> ViewController { +public func peerReportOptionsController(context: AccountContext, subject: PeerReportSubject, present: @escaping (ViewController, Any?) -> Void, completion: @escaping (Bool) -> Void) -> ViewController { let presentationData = context.sharedContext.currentPresentationData.with { $0 } let controller = ActionSheetController(theme: ActionSheetControllerTheme(presentationTheme: presentationData.theme)) diff --git a/submodules/TelegramUI/TelegramUI/PhoneLabelController.swift b/submodules/PeerInfoUI/Sources/PhoneLabelController.swift similarity index 99% rename from submodules/TelegramUI/TelegramUI/PhoneLabelController.swift rename to submodules/PeerInfoUI/Sources/PhoneLabelController.swift index e04db33087..36018f2cc9 100644 --- a/submodules/TelegramUI/TelegramUI/PhoneLabelController.swift +++ b/submodules/PeerInfoUI/Sources/PhoneLabelController.swift @@ -7,6 +7,7 @@ import TelegramCore import TelegramPresentationData import ItemListUI import AccountContext +import TelegramStringFormatting private struct PhoneLabelArguments { let selectLabel: (String) -> Void diff --git a/submodules/TelegramUI/TelegramUI/SecretChatKeyController.swift b/submodules/PeerInfoUI/Sources/SecretChatKeyController.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/SecretChatKeyController.swift rename to submodules/PeerInfoUI/Sources/SecretChatKeyController.swift diff --git a/submodules/TelegramUI/TelegramUI/SecretChatKeyControllerNode.swift b/submodules/PeerInfoUI/Sources/SecretChatKeyControllerNode.swift similarity index 99% rename from submodules/TelegramUI/TelegramUI/SecretChatKeyControllerNode.swift rename to submodules/PeerInfoUI/Sources/SecretChatKeyControllerNode.swift index 534623a394..44de3f4f84 100644 --- a/submodules/TelegramUI/TelegramUI/SecretChatKeyControllerNode.swift +++ b/submodules/PeerInfoUI/Sources/SecretChatKeyControllerNode.swift @@ -7,6 +7,7 @@ import Postbox import TelegramPresentationData import TextFormat import AccountContext +import EncryptionKeyVisualization private func processHexString(_ string: String) -> String { var result = "" diff --git a/submodules/TelegramUI/TelegramUI/UserInfoController.swift b/submodules/PeerInfoUI/Sources/UserInfoController.swift similarity index 99% rename from submodules/TelegramUI/TelegramUI/UserInfoController.swift rename to submodules/PeerInfoUI/Sources/UserInfoController.swift index f5e6f9b0dd..9e93dc7bb2 100644 --- a/submodules/TelegramUI/TelegramUI/UserInfoController.swift +++ b/submodules/PeerInfoUI/Sources/UserInfoController.swift @@ -18,6 +18,9 @@ import AlertUI import TelegramNotices import GalleryUI import ItemListAvatarAndNameInfoItem +import PeerAvatarGalleryUI +import NotificationMuteSettingsUI +import NotificationSoundSelectionUI private final class UserInfoControllerArguments { let account: Account @@ -941,7 +944,7 @@ public func userInfoController(context: AccountContext, peerId: PeerId, mode: Pe presentControllerImpl?(controller, ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) }) }, openSharedMedia: { - if let controller = peerSharedMediaController(context: context, peerId: peerId) { + if let controller = context.sharedContext.makePeerSharedMediaController(context: context, peerId: peerId) { pushControllerImpl?(controller) } }, openGroupsInCommon: { diff --git a/submodules/TelegramUI/TelegramUI/UserInfoEditingPhoneActionItem.swift b/submodules/PeerInfoUI/Sources/UserInfoEditingPhoneActionItem.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/UserInfoEditingPhoneActionItem.swift rename to submodules/PeerInfoUI/Sources/UserInfoEditingPhoneActionItem.swift diff --git a/submodules/TelegramUI/TelegramUI/UserInfoEditingPhoneItem.swift b/submodules/PeerInfoUI/Sources/UserInfoEditingPhoneItem.swift similarity index 99% rename from submodules/TelegramUI/TelegramUI/UserInfoEditingPhoneItem.swift rename to submodules/PeerInfoUI/Sources/UserInfoEditingPhoneItem.swift index c006750808..99ac0e408a 100644 --- a/submodules/TelegramUI/TelegramUI/UserInfoEditingPhoneItem.swift +++ b/submodules/PeerInfoUI/Sources/UserInfoEditingPhoneItem.swift @@ -5,6 +5,7 @@ import AsyncDisplayKit import SwiftSignalKit import TelegramPresentationData import ItemListUI +import SinglePhoneInputNode private func generateClearIcon(color: UIColor) -> UIImage? { return generateTintedImage(image: UIImage(bundleImageName: "Components/Search Bar/Clear"), color: color) diff --git a/submodules/SinglePhoneInputNode/Info.plist b/submodules/SinglePhoneInputNode/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/SinglePhoneInputNode/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/submodules/SinglePhoneInputNode/SinglePhoneInputNode_Xcode.xcodeproj/project.pbxproj b/submodules/SinglePhoneInputNode/SinglePhoneInputNode_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..acd6ce8071 --- /dev/null +++ b/submodules/SinglePhoneInputNode/SinglePhoneInputNode_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,559 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E420C230563DB0049C28B /* SinglePhoneInputNode.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E420A230563DB0049C28B /* SinglePhoneInputNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E4217230564570049C28B /* SinglePhoneInputNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E4216230564570049C28B /* SinglePhoneInputNode.swift */; }; + D03E421A230564650049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E4219230564650049C28B /* Foundation.framework */; }; + D03E421C230564680049C28B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E421B230564680049C28B /* UIKit.framework */; }; + D03E421E2305646D0049C28B /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E421D2305646D0049C28B /* AsyncDisplayKit.framework */; }; + D03E4220230564700049C28B /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E421F230564700049C28B /* Display.framework */; }; + D03E4222230564760049C28B /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E4221230564760049C28B /* TelegramCore.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E4207230563DB0049C28B /* SinglePhoneInputNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SinglePhoneInputNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E420A230563DB0049C28B /* SinglePhoneInputNode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SinglePhoneInputNode.h; sourceTree = ""; }; + D03E420B230563DB0049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E4216230564570049C28B /* SinglePhoneInputNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SinglePhoneInputNode.swift; sourceTree = ""; }; + D03E4219230564650049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E421B230564680049C28B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D03E421D2305646D0049C28B /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E421F230564700049C28B /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E4221230564760049C28B /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E4204230563DB0049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E4222230564760049C28B /* TelegramCore.framework in Frameworks */, + D03E4220230564700049C28B /* Display.framework in Frameworks */, + D03E421E2305646D0049C28B /* AsyncDisplayKit.framework in Frameworks */, + D03E421C230564680049C28B /* UIKit.framework in Frameworks */, + D03E421A230564650049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E41FD230563DB0049C28B = { + isa = PBXGroup; + children = ( + D03E420B230563DB0049C28B /* Info.plist */, + D03E4209230563DB0049C28B /* Sources */, + D03E4208230563DB0049C28B /* Products */, + D03E4218230564650049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E4208230563DB0049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E4207230563DB0049C28B /* SinglePhoneInputNode.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E4209230563DB0049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E4216230564570049C28B /* SinglePhoneInputNode.swift */, + D03E420A230563DB0049C28B /* SinglePhoneInputNode.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E4218230564650049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E4221230564760049C28B /* TelegramCore.framework */, + D03E421F230564700049C28B /* Display.framework */, + D03E421D2305646D0049C28B /* AsyncDisplayKit.framework */, + D03E421B230564680049C28B /* UIKit.framework */, + D03E4219230564650049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E4202230563DB0049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E420C230563DB0049C28B /* SinglePhoneInputNode.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E4206230563DB0049C28B /* SinglePhoneInputNode */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E420F230563DB0049C28B /* Build configuration list for PBXNativeTarget "SinglePhoneInputNode" */; + buildPhases = ( + D03E4202230563DB0049C28B /* Headers */, + D03E4203230563DB0049C28B /* Sources */, + D03E4204230563DB0049C28B /* Frameworks */, + D03E4205230563DB0049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = SinglePhoneInputNode; + productName = SinglePhoneInputNode; + productReference = D03E4207230563DB0049C28B /* SinglePhoneInputNode.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E41FE230563DB0049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E4206230563DB0049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E4201230563DB0049C28B /* Build configuration list for PBXProject "SinglePhoneInputNode_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E41FD230563DB0049C28B; + productRefGroup = D03E4208230563DB0049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E4206230563DB0049C28B /* SinglePhoneInputNode */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E4205230563DB0049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E4203230563DB0049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E4217230564570049C28B /* SinglePhoneInputNode.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E420D230563DB0049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStoreLLC; + }; + D03E420E230563DB0049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStoreLLC; + }; + D03E4210230563DB0049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.SinglePhoneInputNode; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugAppStoreLLC; + }; + D03E4211230563DB0049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.SinglePhoneInputNode; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E4212230564170049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + D03E4213230564170049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.SinglePhoneInputNode; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugHockeyapp; + }; + D03E4214230564210049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyappInternal; + }; + D03E4215230564210049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.SinglePhoneInputNode; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseHockeyappInternal; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D03E4201230563DB0049C28B /* Build configuration list for PBXProject "SinglePhoneInputNode_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E420D230563DB0049C28B /* DebugAppStoreLLC */, + D03E4212230564170049C28B /* DebugHockeyapp */, + D03E420E230563DB0049C28B /* ReleaseAppStoreLLC */, + D03E4214230564210049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E420F230563DB0049C28B /* Build configuration list for PBXNativeTarget "SinglePhoneInputNode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E4210230563DB0049C28B /* DebugAppStoreLLC */, + D03E4213230564170049C28B /* DebugHockeyapp */, + D03E4211230563DB0049C28B /* ReleaseAppStoreLLC */, + D03E4215230564210049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E41FE230563DB0049C28B /* Project object */; +} diff --git a/submodules/SinglePhoneInputNode/Sources/SinglePhoneInputNode.h b/submodules/SinglePhoneInputNode/Sources/SinglePhoneInputNode.h new file mode 100644 index 0000000000..36afe0ff2c --- /dev/null +++ b/submodules/SinglePhoneInputNode/Sources/SinglePhoneInputNode.h @@ -0,0 +1,19 @@ +// +// SinglePhoneInputNode.h +// SinglePhoneInputNode +// +// Created by Peter on 8/15/19. +// Copyright © 2019 Telegram Messenger LLP. All rights reserved. +// + +#import + +//! Project version number for SinglePhoneInputNode. +FOUNDATION_EXPORT double SinglePhoneInputNodeVersionNumber; + +//! Project version string for SinglePhoneInputNode. +FOUNDATION_EXPORT const unsigned char SinglePhoneInputNodeVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/submodules/TelegramUI/TelegramUI/SinglePhoneInputNode.swift b/submodules/SinglePhoneInputNode/Sources/SinglePhoneInputNode.swift similarity index 81% rename from submodules/TelegramUI/TelegramUI/SinglePhoneInputNode.swift rename to submodules/SinglePhoneInputNode/Sources/SinglePhoneInputNode.swift index 62689797e2..5c488cc5c2 100644 --- a/submodules/TelegramUI/TelegramUI/SinglePhoneInputNode.swift +++ b/submodules/SinglePhoneInputNode/Sources/SinglePhoneInputNode.swift @@ -76,36 +76,36 @@ private func cleanSuffix(_ text: String) -> String { return result } -final class SinglePhoneInputNode: ASDisplayNode, UITextFieldDelegate { +public final class SinglePhoneInputNode: ASDisplayNode, UITextFieldDelegate { private let fontSize: CGFloat - var numberField: TextFieldNode? - var numberFieldText: String? + public var numberField: TextFieldNode? + public var numberFieldText: String? - var enableEditing: Bool = true + public var enableEditing: Bool = true - var number: String { + public var number: String { get { return cleanPhoneNumber(self.numberField?.textField.text ?? "") } set(value) { self.updateNumber(value) } } - var numberUpdated: ((String) -> Void)? - var beginEditing: (() -> Void)? - var endEditing: (() -> Void)? + public var numberUpdated: ((String) -> Void)? + public var beginEditing: (() -> Void)? + public var endEditing: (() -> Void)? private let phoneFormatter = InteractivePhoneFormatter() private var validLayout: CGSize? - init(fontSize: CGFloat = 20.0) { + public init(fontSize: CGFloat = 20.0) { self.fontSize = fontSize super.init() } - override func didLoad() { + override public func didLoad() { super.didLoad() let numberField = TextFieldNode() @@ -125,19 +125,19 @@ final class SinglePhoneInputNode: ASDisplayNode, UITextFieldDelegate { } } - @objc func numberTextChanged(_ textField: UITextField) { + @objc private func numberTextChanged(_ textField: UITextField) { self.updateNumberFromTextFields() } - func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { + public func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { return self.enableEditing } - func textFieldDidBeginEditing(_ textField: UITextField) { + public func textFieldDidBeginEditing(_ textField: UITextField) { self.beginEditing?() } - func textFieldDidEndEditing(_ textField: UITextField) { + public func textFieldDidEndEditing(_ textField: UITextField) { self.endEditing?() } @@ -162,7 +162,7 @@ final class SinglePhoneInputNode: ASDisplayNode, UITextFieldDelegate { } } - func updateLayout(size: CGSize) { + public func updateLayout(size: CGSize) { self.validLayout = size self.numberField?.frame = CGRect(origin: CGPoint(), size: size) } diff --git a/submodules/TelegramCore/TelegramCore/ValidateAddressNameInteractive.swift b/submodules/TelegramCore/TelegramCore/ValidateAddressNameInteractive.swift new file mode 100644 index 0000000000..aca1c16b80 --- /dev/null +++ b/submodules/TelegramCore/TelegramCore/ValidateAddressNameInteractive.swift @@ -0,0 +1,29 @@ +import Foundation +#if os(macOS) +import PostboxMac +import SwiftSignalKitMac +#else +import Postbox +import SwiftSignalKit +#endif + +public enum AddressNameValidationStatus: Equatable { + case checking + case invalidFormat(AddressNameFormatError) + case availability(AddressNameAvailability) +} + +public func validateAddressNameInteractive(account: Account, domain: AddressNameDomain, name: String) -> Signal { + if let error = checkAddressNameFormat(name) { + return .single(.invalidFormat(error)) + } else { + return .single(.checking) + |> then( + addressNameAvailability(account: account, domain: domain, name: name) + |> delay(0.3, queue: Queue.concurrentDefaultQueue()) + |> map { result -> AddressNameValidationStatus in + .availability(result) + } + ) + } +} diff --git a/submodules/TelegramCore/TelegramCore_Xcode.xcodeproj/project.pbxproj b/submodules/TelegramCore/TelegramCore_Xcode.xcodeproj/project.pbxproj index f126a85d63..40792cf43d 100644 --- a/submodules/TelegramCore/TelegramCore_Xcode.xcodeproj/project.pbxproj +++ b/submodules/TelegramCore/TelegramCore_Xcode.xcodeproj/project.pbxproj @@ -293,6 +293,7 @@ D03DC9141F82F89D001D584C /* RegularChatState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03DC9121F82F89D001D584C /* RegularChatState.swift */; }; D03E3D28230447960049C28B /* RestrictedContentMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3D27230447960049C28B /* RestrictedContentMessageAttribute.swift */; }; D03E3D29230447960049C28B /* RestrictedContentMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3D27230447960049C28B /* RestrictedContentMessageAttribute.swift */; }; + D03E416C2304D5B30049C28B /* ValidateAddressNameInteractive.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E416B2304D5B30049C28B /* ValidateAddressNameInteractive.swift */; }; D03E5E0C1E55E02D0029569A /* LoggedOutAccountAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E5E0B1E55E02D0029569A /* LoggedOutAccountAttribute.swift */; }; D03E5E0D1E55E02D0029569A /* LoggedOutAccountAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E5E0B1E55E02D0029569A /* LoggedOutAccountAttribute.swift */; }; D041E3F51E535464008C24B4 /* AddPeerMember.swift in Sources */ = {isa = PBXBuildFile; fileRef = D041E3F41E535464008C24B4 /* AddPeerMember.swift */; }; @@ -1002,6 +1003,7 @@ D03DC90F1F82E344001D584C /* AccountStateReset.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountStateReset.swift; sourceTree = ""; }; D03DC9121F82F89D001D584C /* RegularChatState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegularChatState.swift; sourceTree = ""; }; D03E3D27230447960049C28B /* RestrictedContentMessageAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RestrictedContentMessageAttribute.swift; sourceTree = ""; }; + D03E416B2304D5B30049C28B /* ValidateAddressNameInteractive.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ValidateAddressNameInteractive.swift; sourceTree = ""; }; D03E5E0B1E55E02D0029569A /* LoggedOutAccountAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoggedOutAccountAttribute.swift; sourceTree = ""; }; D041E3F41E535464008C24B4 /* AddPeerMember.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddPeerMember.swift; sourceTree = ""; }; D041E3F71E535A88008C24B4 /* RemovePeerMember.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RemovePeerMember.swift; sourceTree = ""; }; @@ -2028,6 +2030,7 @@ 090E778222A9862100CD99F5 /* ChannelOwnershipTransfer.swift */, 090E778F22AAABC600CD99F5 /* PeersNearby.swift */, D0D376E522DCCFD600FA7D7C /* SlowMode.swift */, + D03E416B2304D5B30049C28B /* ValidateAddressNameInteractive.swift */, ); name = Peers; sourceTree = ""; @@ -2264,6 +2267,7 @@ 090E778322A9862100CD99F5 /* ChannelOwnershipTransfer.swift in Sources */, D03E3D28230447960049C28B /* RestrictedContentMessageAttribute.swift in Sources */, D03B0CE01D62249100955575 /* StoreMessage_Telegram.swift in Sources */, + D03E416C2304D5B30049C28B /* ValidateAddressNameInteractive.swift in Sources */, D08774FE1E3E3A3500A97350 /* GlobalNotificationSettings.swift in Sources */, D023E67821540624008C27D1 /* UpdateMessageMedia.swift in Sources */, D0EE7FC420986C5300981319 /* SecureIdPassportRegistrationValue.swift in Sources */, diff --git a/submodules/TelegramUI/TelegramUI/ContactInfoStrings.swift b/submodules/TelegramStringFormatting/Sources/ContactInfoStrings.swift similarity index 83% rename from submodules/TelegramUI/TelegramUI/ContactInfoStrings.swift rename to submodules/TelegramStringFormatting/Sources/ContactInfoStrings.swift index e9d3c7e292..e8cdba5b09 100644 --- a/submodules/TelegramUI/TelegramUI/ContactInfoStrings.swift +++ b/submodules/TelegramStringFormatting/Sources/ContactInfoStrings.swift @@ -3,7 +3,7 @@ import Contacts import AddressBook import TelegramPresentationData -func localizedPhoneNumberLabel(label: String, strings: PresentationStrings) -> String { +public func localizedPhoneNumberLabel(label: String, strings: PresentationStrings) -> String { if #available(iOSApplicationExtension 9.0, iOS 9.0, *) { if label.isEmpty { return strings.ContactInfo_PhoneLabelMain @@ -24,7 +24,7 @@ func localizedPhoneNumberLabel(label: String, strings: PresentationStrings) -> S } } -func localizedGenericContactFieldLabel(label: String, strings: PresentationStrings) -> String { +public func localizedGenericContactFieldLabel(label: String, strings: PresentationStrings) -> String { if #available(iOSApplicationExtension 9.0, iOS 9.0, *) { if label.isEmpty { return strings.ContactInfo_PhoneLabelMain diff --git a/submodules/TelegramUI/TelegramUI/PeerNotificationSoundStrings.swift b/submodules/TelegramStringFormatting/Sources/PeerNotificationSoundStrings.swift similarity index 93% rename from submodules/TelegramUI/TelegramUI/PeerNotificationSoundStrings.swift rename to submodules/TelegramStringFormatting/Sources/PeerNotificationSoundStrings.swift index 8da9be20e1..b968ba58b2 100644 --- a/submodules/TelegramUI/TelegramUI/PeerNotificationSoundStrings.swift +++ b/submodules/TelegramStringFormatting/Sources/PeerNotificationSoundStrings.swift @@ -47,7 +47,7 @@ private func soundName(strings: PresentationStrings, sound: PeerMessageSound) -> } } -func localizedPeerNotificationSoundString(strings: PresentationStrings, sound: PeerMessageSound, default: PeerMessageSound? = nil) -> String { +public func localizedPeerNotificationSoundString(strings: PresentationStrings, sound: PeerMessageSound, default: PeerMessageSound? = nil) -> String { switch sound { case .default: if let defaultSound = `default` { diff --git a/submodules/TelegramStringFormatting/TelegramStringFormatting_Xcode.xcodeproj/project.pbxproj b/submodules/TelegramStringFormatting/TelegramStringFormatting_Xcode.xcodeproj/project.pbxproj index a078c688a8..5d6b2727fc 100644 --- a/submodules/TelegramStringFormatting/TelegramStringFormatting_Xcode.xcodeproj/project.pbxproj +++ b/submodules/TelegramStringFormatting/TelegramStringFormatting_Xcode.xcodeproj/project.pbxproj @@ -8,6 +8,10 @@ /* Begin PBXBuildFile section */ D03E3D4F23045E510049C28B /* PlatformRestrictionMatching.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3D4E23045E510049C28B /* PlatformRestrictionMatching.framework */; }; + D03E416E2304D68E0049C28B /* ContactInfoStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E416D2304D68E0049C28B /* ContactInfoStrings.swift */; }; + D03E41702304D6970049C28B /* AddressBook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E416F2304D6970049C28B /* AddressBook.framework */; }; + D03E41722304D6B80049C28B /* Contacts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41712304D6B80049C28B /* Contacts.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + D03E41982304D7D60049C28B /* PeerNotificationSoundStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E41972304D7D50049C28B /* PeerNotificationSoundStrings.swift */; }; D0879AB222F7021000C4D6B3 /* TelegramStringFormatting.h in Headers */ = {isa = PBXBuildFile; fileRef = D0879AB022F7021000C4D6B3 /* TelegramStringFormatting.h */; settings = {ATTRIBUTES = (Public, ); }; }; D0879ABD22F705AE00C4D6B3 /* PresenceStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879ABC22F705AE00C4D6B3 /* PresenceStrings.swift */; }; D0879AC022F705B800C4D6B3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879ABF22F705B800C4D6B3 /* Foundation.framework */; }; @@ -30,6 +34,10 @@ /* Begin PBXFileReference section */ D03E3D4E23045E510049C28B /* PlatformRestrictionMatching.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PlatformRestrictionMatching.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E416D2304D68E0049C28B /* ContactInfoStrings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContactInfoStrings.swift; sourceTree = ""; }; + D03E416F2304D6970049C28B /* AddressBook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AddressBook.framework; path = System/Library/Frameworks/AddressBook.framework; sourceTree = SDKROOT; }; + D03E41712304D6B80049C28B /* Contacts.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Contacts.framework; path = System/Library/Frameworks/Contacts.framework; sourceTree = SDKROOT; }; + D03E41972304D7D50049C28B /* PeerNotificationSoundStrings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerNotificationSoundStrings.swift; sourceTree = ""; }; D0879AAD22F7021000C4D6B3 /* TelegramStringFormatting.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = TelegramStringFormatting.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0879AB022F7021000C4D6B3 /* TelegramStringFormatting.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TelegramStringFormatting.h; sourceTree = ""; }; D0879AB122F7021000C4D6B3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -57,6 +65,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D03E41722304D6B80049C28B /* Contacts.framework in Frameworks */, + D03E41702304D6970049C28B /* AddressBook.framework in Frameworks */, D03E3D4F23045E510049C28B /* PlatformRestrictionMatching.framework in Frameworks */, D0C9C35E2300AEF100FAB518 /* Display.framework in Frameworks */, D0C9C35C2300AEBA00FAB518 /* LocalizedPeerData.framework in Frameworks */, @@ -93,6 +103,8 @@ D0879AAF22F7021000C4D6B3 /* Sources */ = { isa = PBXGroup; children = ( + D03E41972304D7D50049C28B /* PeerNotificationSoundStrings.swift */, + D03E416D2304D68E0049C28B /* ContactInfoStrings.swift */, D0C9CA3723022A8300FAB518 /* NumberFormat.swift */, D0C9C3612300AFCB00FAB518 /* CurrencyFormat.swift */, D0C9C3552300AD9900FAB518 /* MessageContentKind.swift */, @@ -110,6 +122,8 @@ D0879ABE22F705B700C4D6B3 /* Frameworks */ = { isa = PBXGroup; children = ( + D03E41712304D6B80049C28B /* Contacts.framework */, + D03E416F2304D6970049C28B /* AddressBook.framework */, D03E3D4E23045E510049C28B /* PlatformRestrictionMatching.framework */, D0C9C35D2300AEF100FAB518 /* Display.framework */, D0C9C35B2300AEBA00FAB518 /* LocalizedPeerData.framework */, @@ -205,11 +219,13 @@ files = ( D0C9C3642300AFE800FAB518 /* FrameworkBundle.swift in Sources */, D0C9C3622300AFCC00FAB518 /* CurrencyFormat.swift in Sources */, + D03E41982304D7D60049C28B /* PeerNotificationSoundStrings.swift in Sources */, D0C9C3562300AD9900FAB518 /* MessageContentKind.swift in Sources */, D0C9CA3823022A8300FAB518 /* NumberFormat.swift in Sources */, D0879ACA22F7063300C4D6B3 /* DateFormat.swift in Sources */, D0879ABD22F705AE00C4D6B3 /* PresenceStrings.swift in Sources */, D0C9C3542300AD7000FAB518 /* StringForDuration.swift in Sources */, + D03E416E2304D68E0049C28B /* ContactInfoStrings.swift in Sources */, D0C9C3582300ADCF00FAB518 /* ServiceMessageStrings.swift in Sources */, D0879ACE22F7069200C4D6B3 /* Locale.swift in Sources */, ); diff --git a/submodules/TelegramUI/TelegramUI/ArchivedStickerPacksController.swift b/submodules/TelegramUI/TelegramUI/ArchivedStickerPacksController.swift index 7fd8a0a2f3..c1bb994fba 100644 --- a/submodules/TelegramUI/TelegramUI/ArchivedStickerPacksController.swift +++ b/submodules/TelegramUI/TelegramUI/ArchivedStickerPacksController.swift @@ -10,6 +10,7 @@ import ItemListUI import OverlayStatusController import AccountContext import StickerPackPreviewUI +import ItemListStickerPackItem public enum ArchivedStickerPacksControllerMode { case stickers diff --git a/submodules/TelegramUI/TelegramUI/ChatController.swift b/submodules/TelegramUI/TelegramUI/ChatController.swift index b3d1060b3d..6a3687607f 100644 --- a/submodules/TelegramUI/TelegramUI/ChatController.swift +++ b/submodules/TelegramUI/TelegramUI/ChatController.swift @@ -38,6 +38,9 @@ import DeleteChatPeerActionSheetItem import HashtagSearchUI import LegacyMediaPickerUI import WebSearchUI +import Emoji +import PeerAvatarGalleryUI +import PeerInfoUI public enum ChatControllerPeekActions { case standard diff --git a/submodules/TelegramUI/TelegramUI/ChatHistoryEntriesForView.swift b/submodules/TelegramUI/TelegramUI/ChatHistoryEntriesForView.swift index 57db539fd1..35adb0d555 100644 --- a/submodules/TelegramUI/TelegramUI/ChatHistoryEntriesForView.swift +++ b/submodules/TelegramUI/TelegramUI/ChatHistoryEntriesForView.swift @@ -2,6 +2,7 @@ import Foundation import Postbox import TelegramCore import TemporaryCachedPeerDataManager +import Emoji func chatHistoryEntriesForView(location: ChatLocation, view: MessageHistoryView, includeUnreadEntry: Bool, includeEmptyEntry: Bool, includeChatInfoEntry: Bool, includeSearchEntry: Bool, reverse: Bool, groupMessages: Bool, selectedMessages: Set?, presentationData: ChatPresentationData, historyAppearsCleared: Bool, associatedData: ChatMessageItemAssociatedData) -> [ChatHistoryEntry] { if historyAppearsCleared { diff --git a/submodules/TelegramUI/TelegramUI/ChatHistoryListNode.swift b/submodules/TelegramUI/TelegramUI/ChatHistoryListNode.swift index fa94441913..6efa58a4db 100644 --- a/submodules/TelegramUI/TelegramUI/ChatHistoryListNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatHistoryListNode.swift @@ -11,6 +11,7 @@ import MediaResources import AccountContext import TemporaryCachedPeerDataManager import ChatListSearchItemNode +import Emoji private let historyMessageCount: Int = 100 diff --git a/submodules/TelegramUI/TelegramUI/ChatInfo.swift b/submodules/TelegramUI/TelegramUI/ChatInfo.swift index 2d6839c659..26afc6f80b 100644 --- a/submodules/TelegramUI/TelegramUI/ChatInfo.swift +++ b/submodules/TelegramUI/TelegramUI/ChatInfo.swift @@ -4,6 +4,6 @@ import TelegramCore import Display import AccountContext -func peerSharedMediaController(context: AccountContext, peerId: PeerId) -> ViewController? { +func peerSharedMediaControllerImpl(context: AccountContext, peerId: PeerId) -> ViewController? { return PeerMediaCollectionController(context: context, peerId: peerId) } diff --git a/submodules/TelegramUI/TelegramUI/ChatInterfaceInputContexts.swift b/submodules/TelegramUI/TelegramUI/ChatInterfaceInputContexts.swift index 3886c3ea5f..4b14c69a62 100644 --- a/submodules/TelegramUI/TelegramUI/ChatInterfaceInputContexts.swift +++ b/submodules/TelegramUI/TelegramUI/ChatInterfaceInputContexts.swift @@ -4,6 +4,7 @@ import TelegramCore import Postbox import Display import AccountContext +import Emoji struct PossibleContextQueryTypes: OptionSet { var rawValue: Int32 diff --git a/submodules/TelegramUI/TelegramUI/ChatInterfaceStateContextQueries.swift b/submodules/TelegramUI/TelegramUI/ChatInterfaceStateContextQueries.swift index 54c653cda7..71c0d11dac 100644 --- a/submodules/TelegramUI/TelegramUI/ChatInterfaceStateContextQueries.swift +++ b/submodules/TelegramUI/TelegramUI/ChatInterfaceStateContextQueries.swift @@ -8,6 +8,7 @@ import TelegramUIPrivateModule import LegacyComponents import TextFormat import AccountContext +import Emoji enum ChatContextQueryError { case inlineBotLocationRequest(PeerId) diff --git a/submodules/TelegramUI/TelegramUI/ChatMediaInputNode.swift b/submodules/TelegramUI/TelegramUI/ChatMediaInputNode.swift index 6609bc5d86..b30fe77c18 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMediaInputNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMediaInputNode.swift @@ -9,6 +9,7 @@ import TelegramPresentationData import MergeLists import AccountContext import StickerPackPreviewUI +import PeerInfoUI private struct PeerSpecificPackData { let peer: Peer diff --git a/submodules/TelegramUI/TelegramUI/ChatMediaInputStickerPackItem.swift b/submodules/TelegramUI/TelegramUI/ChatMediaInputStickerPackItem.swift index 841ba69cf5..6314859f33 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMediaInputStickerPackItem.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMediaInputStickerPackItem.swift @@ -8,6 +8,7 @@ import Postbox import TelegramPresentationData import StickerResources import AnimationUI +import ItemListStickerPackItem final class ChatMediaInputStickerPackItem: ListViewItem { let account: Account @@ -69,28 +70,6 @@ private let boundingImageSize = CGSize(width: 28.0, height: 28.0) private let highlightSize = CGSize(width: 35.0, height: 35.0) private let verticalOffset: CGFloat = 3.0 -enum StickerPackThumbnailItem: Equatable { - case still(TelegramMediaImageRepresentation) - case animated(MediaResource) - - static func ==(lhs: StickerPackThumbnailItem, rhs: StickerPackThumbnailItem) -> Bool { - switch lhs { - case let .still(representation): - if case .still(representation) = rhs { - return true - } else { - return false - } - case let .animated(lhsResource): - if case let .animated(rhsResource) = rhs, lhsResource.isEqual(to: rhsResource) { - return true - } else { - return false - } - } - } -} - final class ChatMediaInputStickerPackItemNode: ListViewItemNode { private let imageNode: TransformImageNode private var animatedStickerNode: AnimatedStickerNode? diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageAnimatedStickerItemNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageAnimatedStickerItemNode.swift index 142d556664..94612b26b5 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageAnimatedStickerItemNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageAnimatedStickerItemNode.swift @@ -14,6 +14,7 @@ import MediaResources import StickerResources import ContextUI import AnimationUI +import Emoji private let nameFont = Font.medium(14.0) private let inlineBotPrefixFont = Font.regular(14.0) diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift index 2768a4c63d..ed99325865 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift @@ -15,6 +15,7 @@ import TelegramUniversalVideoContent import MosaicLayout import TextSelectionNode import PlatformRestrictionMatching +import Emoji private func contentNodeMessagesAndClassesForItem(_ item: ChatMessageItem) -> [(Message, AnyClass)] { var result: [(Message, AnyClass)] = [] diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageItem.swift b/submodules/TelegramUI/TelegramUI/ChatMessageItem.swift index ea364c24e0..8d36e6ca21 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageItem.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageItem.swift @@ -8,6 +8,7 @@ import TelegramCore import TelegramPresentationData import TelegramUIPreferences import AccountContext +import Emoji public enum ChatMessageItemContent: Sequence { case message(message: Message, read: Bool, selection: ChatHistoryMessageSelection, attributes: ChatMessageEntryAttributes) diff --git a/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift b/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift index 5316e9b0c0..f8436d5c2e 100644 --- a/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift @@ -17,6 +17,7 @@ import HashtagSearchUI import StickerPackPreviewUI import JoinLinkPreviewUI import LanguageLinkPreviewUI +import PeerInfoUI private final class ChatRecentActionsListOpaqueState { let entries: [ChatRecentActionsEntry] diff --git a/submodules/TelegramUI/TelegramUI/ComposeController.swift b/submodules/TelegramUI/TelegramUI/ComposeController.swift index e594370d20..080321eaca 100644 --- a/submodules/TelegramUI/TelegramUI/ComposeController.swift +++ b/submodules/TelegramUI/TelegramUI/ComposeController.swift @@ -117,7 +117,7 @@ public class ComposeController: ViewController { self.contactsNode.openCreateNewGroup = { [weak self] in if let strongSelf = self { - let controller = ContactMultiselectionController(context: strongSelf.context, mode: .groupCreation, options: []) + let controller = strongSelf.context.sharedContext.makeContactMultiselectionController(ContactMultiselectionControllerParams(context: strongSelf.context, mode: .groupCreation, options: [])) (strongSelf.navigationController as? NavigationController)?.pushViewController(controller, completion: { [weak self] in if let strongSelf = self { strongSelf.contactsNode.contactListNode.listNode.clearHighlightAnimated(true) diff --git a/submodules/TelegramUI/TelegramUI/ContactMultiselectionController.swift b/submodules/TelegramUI/TelegramUI/ContactMultiselectionController.swift index 21e18b5e4a..f7206140dd 100644 --- a/submodules/TelegramUI/TelegramUI/ContactMultiselectionController.swift +++ b/submodules/TelegramUI/TelegramUI/ContactMultiselectionController.swift @@ -11,13 +11,7 @@ import AccountContext import AlertUI import ContactListUI -enum ContactMultiselectionControllerMode { - case groupCreation - case peerSelection(searchChatList: Bool, searchGroups: Bool) - case channelCreation -} - -class ContactMultiselectionController: ViewController { +class ContactMultiselectionControllerImpl: ViewController, ContactMultiselectionController { private let context: AccountContext private let mode: ContactMultiselectionControllerMode @@ -68,12 +62,12 @@ class ContactMultiselectionController: ViewController { private let options: [ContactListAdditionalOption] private let filters: [ContactListFilter] - init(context: AccountContext, mode: ContactMultiselectionControllerMode, options: [ContactListAdditionalOption], filters: [ContactListFilter] = [.excludeSelf]) { - self.context = context - self.mode = mode - self.options = options - self.filters = filters - self.presentationData = context.sharedContext.currentPresentationData.with { $0 } + init(_ params: ContactMultiselectionControllerParams) { + self.context = params.context + self.mode = params.mode + self.options = params.options + self.filters = params.filters + self.presentationData = self.context.sharedContext.currentPresentationData.with { $0 } self.titleView = CounterContollerTitleView(theme: self.presentationData.theme) diff --git a/submodules/TelegramUI/TelegramUI/CreateChannelController.swift b/submodules/TelegramUI/TelegramUI/CreateChannelController.swift index fa1382600b..3849e891d0 100644 --- a/submodules/TelegramUI/TelegramUI/CreateChannelController.swift +++ b/submodules/TelegramUI/TelegramUI/CreateChannelController.swift @@ -12,6 +12,8 @@ import AlertUI import LegacyUI import ItemListAvatarAndNameInfoItem import WebSearchUI +import PeerInfoUI +import MapResourceToAvatarSizes private struct CreateChannelArguments { let account: Account diff --git a/submodules/TelegramUI/TelegramUI/CreateGroupController.swift b/submodules/TelegramUI/TelegramUI/CreateGroupController.swift index 9854473433..76f02f88e9 100644 --- a/submodules/TelegramUI/TelegramUI/CreateGroupController.swift +++ b/submodules/TelegramUI/TelegramUI/CreateGroupController.swift @@ -18,6 +18,9 @@ import ItemListPeerItem import ItemListAvatarAndNameInfoItem import WebSearchUI import Geocoding +import PeerInfoUI +import MapResourceToAvatarSizes +import ItemListAddressItem private struct CreateGroupArguments { let account: Account diff --git a/submodules/TelegramUI/TelegramUI/EditSettingsController.swift b/submodules/TelegramUI/TelegramUI/EditSettingsController.swift index c63abdd13b..adebb90fd5 100644 --- a/submodules/TelegramUI/TelegramUI/EditSettingsController.swift +++ b/submodules/TelegramUI/TelegramUI/EditSettingsController.swift @@ -13,6 +13,8 @@ import GalleryUI import LegacyUI import ItemListAvatarAndNameInfoItem import WebSearchUI +import PeerAvatarGalleryUI +import MapResourceToAvatarSizes private struct EditSettingsItemArguments { let context: AccountContext diff --git a/submodules/TelegramUI/TelegramUI/EmojiResources.swift b/submodules/TelegramUI/TelegramUI/EmojiResources.swift index 9c6c7ad3ac..045c0e8a71 100644 --- a/submodules/TelegramUI/TelegramUI/EmojiResources.swift +++ b/submodules/TelegramUI/TelegramUI/EmojiResources.swift @@ -10,6 +10,7 @@ import WebPImage import WebP #endif import MediaResources +import Emoji public struct EmojiThumbnailResourceId: MediaResourceId { public let emoji: String diff --git a/submodules/TelegramUI/TelegramUI/EmojisChatInputContextPanelNode.swift b/submodules/TelegramUI/TelegramUI/EmojisChatInputContextPanelNode.swift index 34d4c64e00..8180a53f24 100644 --- a/submodules/TelegramUI/TelegramUI/EmojisChatInputContextPanelNode.swift +++ b/submodules/TelegramUI/TelegramUI/EmojisChatInputContextPanelNode.swift @@ -7,6 +7,7 @@ import Display import TelegramPresentationData import MergeLists import AccountContext +import Emoji private struct EmojisChatInputContextPanelEntryStableId: Hashable, Equatable { let symbol: String diff --git a/submodules/TelegramUI/TelegramUI/FeaturedStickerPacksController.swift b/submodules/TelegramUI/TelegramUI/FeaturedStickerPacksController.swift index d3f9261d7c..11a6ab9ea3 100644 --- a/submodules/TelegramUI/TelegramUI/FeaturedStickerPacksController.swift +++ b/submodules/TelegramUI/TelegramUI/FeaturedStickerPacksController.swift @@ -9,6 +9,7 @@ import TelegramUIPreferences import ItemListUI import AccountContext import StickerPackPreviewUI +import ItemListStickerPackItem private final class FeaturedStickerPacksControllerArguments { let account: Account diff --git a/submodules/TelegramUI/TelegramUI/InstalledStickerPacksController.swift b/submodules/TelegramUI/TelegramUI/InstalledStickerPacksController.swift index 123e11d297..9f55c85589 100644 --- a/submodules/TelegramUI/TelegramUI/InstalledStickerPacksController.swift +++ b/submodules/TelegramUI/TelegramUI/InstalledStickerPacksController.swift @@ -10,6 +10,7 @@ import ItemListUI import TextFormat import AccountContext import StickerPackPreviewUI +import ItemListStickerPackItem private final class InstalledStickerPacksControllerArguments { let account: Account diff --git a/submodules/TelegramUI/TelegramUI/NavigateToChatController.swift b/submodules/TelegramUI/TelegramUI/NavigateToChatController.swift index 6f4615c083..48d8e757b3 100644 --- a/submodules/TelegramUI/TelegramUI/NavigateToChatController.swift +++ b/submodules/TelegramUI/TelegramUI/NavigateToChatController.swift @@ -7,6 +7,7 @@ import AccountContext import GalleryUI import InstantPageUI import ChatListUI +import PeerAvatarGalleryUI public func navigateToChatControllerImpl(_ params: NavigateToChatControllerParams) { var found = false diff --git a/submodules/TelegramUI/TelegramUI/NotificationExceptionControllerNode.swift b/submodules/TelegramUI/TelegramUI/NotificationExceptionControllerNode.swift index bc983464f7..0026cd939f 100644 --- a/submodules/TelegramUI/TelegramUI/NotificationExceptionControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/NotificationExceptionControllerNode.swift @@ -17,6 +17,7 @@ import ContactsPeerItem import ChatListSearchItemHeader import ChatListUI import ItemListPeerActionItem +import TelegramStringFormatting private final class NotificationExceptionState : Equatable { let mode:NotificationExceptionMode diff --git a/submodules/TelegramUI/TelegramUI/NotificationExceptionSettingsController.swift b/submodules/TelegramUI/TelegramUI/NotificationExceptionSettingsController.swift index 7a39a0f840..a0d223bf0c 100644 --- a/submodules/TelegramUI/TelegramUI/NotificationExceptionSettingsController.swift +++ b/submodules/TelegramUI/TelegramUI/NotificationExceptionSettingsController.swift @@ -9,6 +9,8 @@ import TelegramPresentationData import ItemListUI import AccountContext import LocalizedPeerData +import TelegramStringFormatting +import NotificationSoundSelectionUI private enum NotificationPeerExceptionSection: Int32 { case remove diff --git a/submodules/TelegramUI/TelegramUI/NotificationsAndSounds.swift b/submodules/TelegramUI/TelegramUI/NotificationsAndSounds.swift index e99ed25239..42b87d5796 100644 --- a/submodules/TelegramUI/TelegramUI/NotificationsAndSounds.swift +++ b/submodules/TelegramUI/TelegramUI/NotificationsAndSounds.swift @@ -11,6 +11,8 @@ import ItemListUI import AccountContext import AlertUI import TelegramNotices +import NotificationSoundSelectionUI +import TelegramStringFormatting private final class NotificationsAndSoundsArguments { let context: AccountContext diff --git a/submodules/TelegramUI/TelegramUI/OpenAddContact.swift b/submodules/TelegramUI/TelegramUI/OpenAddContact.swift index 22a56ed5a9..e4df366ee3 100644 --- a/submodules/TelegramUI/TelegramUI/OpenAddContact.swift +++ b/submodules/TelegramUI/TelegramUI/OpenAddContact.swift @@ -5,6 +5,7 @@ import Display import DeviceAccess import AccountContext import AlertUI +import PeerInfoUI func openAddContactImpl(context: AccountContext, firstName: String = "", lastName: String = "", phoneNumber: String, label: String = "_$!!$_", present: @escaping (ViewController, Any?) -> Void, pushController: @escaping (ViewController) -> Void, completed: @escaping () -> Void = {}) { let _ = (DeviceAccess.authorizationStatus(subject: .contacts) diff --git a/submodules/TelegramUI/TelegramUI/OpenChatMessage.swift b/submodules/TelegramUI/TelegramUI/OpenChatMessage.swift index 7d142e3a17..dfa8455669 100644 --- a/submodules/TelegramUI/TelegramUI/OpenChatMessage.swift +++ b/submodules/TelegramUI/TelegramUI/OpenChatMessage.swift @@ -13,6 +13,8 @@ import GalleryUI import InstantPageUI import LocationUI import StickerPackPreviewUI +import PeerAvatarGalleryUI +import PeerInfoUI private enum ChatMessageGalleryControllerData { case url(String) diff --git a/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift b/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift index 7741bf05df..ae332ef3f2 100644 --- a/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift +++ b/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift @@ -13,6 +13,7 @@ import OverlayStatusController import AccountContext import ShareController import OpenInExternalAppUI +import PeerInfoUI public class PeerMediaCollectionController: TelegramBaseController { private var validLayout: ContainerViewLayout? diff --git a/submodules/TelegramUI/TelegramUI/PrefetchManager.swift b/submodules/TelegramUI/TelegramUI/PrefetchManager.swift index 0c73d4f8da..da6d49999d 100644 --- a/submodules/TelegramUI/TelegramUI/PrefetchManager.swift +++ b/submodules/TelegramUI/TelegramUI/PrefetchManager.swift @@ -5,6 +5,7 @@ import TelegramCore import TelegramUIPreferences import AccountContext import PhotoResources +import Emoji private final class PrefetchMediaContext { let fetchDisposable = MetaDisposable() diff --git a/submodules/TelegramUI/TelegramUI/SelectivePrivacySettingsController.swift b/submodules/TelegramUI/TelegramUI/SelectivePrivacySettingsController.swift index a9360c7e9c..c08f21f910 100644 --- a/submodules/TelegramUI/TelegramUI/SelectivePrivacySettingsController.swift +++ b/submodules/TelegramUI/TelegramUI/SelectivePrivacySettingsController.swift @@ -689,7 +689,7 @@ func selectivePrivacySettingsController(context: AccountContext, kind: Selective return state } if peerIds.isEmpty { - let controller = ContactMultiselectionController(context: context, mode: .peerSelection(searchChatList: true, searchGroups: true), options: []) + let controller = context.sharedContext.makeContactMultiselectionController(ContactMultiselectionControllerParams(context: context, mode: .peerSelection(searchChatList: true, searchGroups: true), options: [])) addPeerDisposable.set((controller.result |> take(1) |> deliverOnMainQueue).start(next: { [weak controller] peerIds in diff --git a/submodules/TelegramUI/TelegramUI/SelectivePrivacySettingsPeersController.swift b/submodules/TelegramUI/TelegramUI/SelectivePrivacySettingsPeersController.swift index a57298d29e..9d21882e34 100644 --- a/submodules/TelegramUI/TelegramUI/SelectivePrivacySettingsPeersController.swift +++ b/submodules/TelegramUI/TelegramUI/SelectivePrivacySettingsPeersController.swift @@ -287,7 +287,7 @@ public func selectivePrivacyPeersController(context: AccountContext, title: Stri removePeerDisposable.set(applyPeers.start()) }, addPeer: { - let controller = ContactMultiselectionController(context: context, mode: .peerSelection(searchChatList: true, searchGroups: true), options: []) + let controller = context.sharedContext.makeContactMultiselectionController(ContactMultiselectionControllerParams(context: context, mode: .peerSelection(searchChatList: true, searchGroups: true), options: [])) addPeerDisposable.set((controller.result |> take(1) |> deliverOnMainQueue).start(next: { [weak controller] peerIds in diff --git a/submodules/TelegramUI/TelegramUI/SettingsController.swift b/submodules/TelegramUI/TelegramUI/SettingsController.swift index dc5eabc0b3..617811e201 100644 --- a/submodules/TelegramUI/TelegramUI/SettingsController.swift +++ b/submodules/TelegramUI/TelegramUI/SettingsController.swift @@ -30,6 +30,8 @@ import ChatListUI import ItemListAvatarAndNameInfoItem import ItemListPeerActionItem import WebSearchUI +import PeerAvatarGalleryUI +import MapResourceToAvatarSizes private let maximumNumberOfAccounts = 3 @@ -1387,7 +1389,7 @@ public func settingsController(context: AccountContext, accountManager: AccountM }) if let selectedAccount = selectedAccount, let sharedContext = sharedContext { let accountContext = sharedContext.makeTempAccountContext(account: selectedAccount) - let chatListController = ChatListController(context: accountContext, groupId: .root, controlsHistoryPreload: false, hideNetworkActivityStatus: true, enableDebugActions: !GlobalExperimentalSettings.isAppStoreBuild) + let chatListController = accountContext.sharedContext.makeChatListController(context: accountContext, groupId: .root, controlsHistoryPreload: false, hideNetworkActivityStatus: true, enableDebugActions: !GlobalExperimentalSettings.isAppStoreBuild) return chatListController } } diff --git a/submodules/TelegramUI/TelegramUI/SettingsSearchableItems.swift b/submodules/TelegramUI/TelegramUI/SettingsSearchableItems.swift index 6ce890f171..3045df777a 100644 --- a/submodules/TelegramUI/TelegramUI/SettingsSearchableItems.swift +++ b/submodules/TelegramUI/TelegramUI/SettingsSearchableItems.swift @@ -11,6 +11,7 @@ import AccountContext import PassportUI import LocalAuth import CallListUI +import NotificationSoundSelectionUI private let maximumNumberOfAccounts = 3 diff --git a/submodules/TelegramUI/TelegramUI/ShareExtensionContext.swift b/submodules/TelegramUI/TelegramUI/ShareExtensionContext.swift index 4b870ac1ab..2ea5a49f19 100644 --- a/submodules/TelegramUI/TelegramUI/ShareExtensionContext.swift +++ b/submodules/TelegramUI/TelegramUI/ShareExtensionContext.swift @@ -9,6 +9,7 @@ import TelegramUIPrivateModule import AccountContext import ShareController import LegacyUI +import PeerInfoUI private let inForeground = ValuePromise(false, ignoreRepeated: true) diff --git a/submodules/TelegramUI/TelegramUI/SharedAccountContext.swift b/submodules/TelegramUI/TelegramUI/SharedAccountContext.swift index fa724f4ccf..44fb7e492e 100644 --- a/submodules/TelegramUI/TelegramUI/SharedAccountContext.swift +++ b/submodules/TelegramUI/TelegramUI/SharedAccountContext.swift @@ -11,6 +11,7 @@ import DeviceLocationManager import LegacyUI import ChatListUI import PeersNearbyUI +import PeerInfoUI private enum CallStatusText: Equatable { case none @@ -974,6 +975,14 @@ public final class SharedAccountContextImpl: SharedAccountContext { return ChatControllerImpl(context: context, chatLocation: chatLocation, subject: subject, botStart: botStart, mode: mode) } + public func makePeerSharedMediaController(context: AccountContext, peerId: PeerId) -> ViewController? { + return peerSharedMediaControllerImpl(context: context, peerId: peerId) + } + + public func makeChatRecentActionsController(context: AccountContext, peer: Peer) -> ViewController { + return ChatRecentActionsController(context: context, peer: peer) + } + public func presentContactsWarningSuppression(context: AccountContext, present: (ViewController, Any?) -> Void) { presentContactsWarningSuppressionImpl(context: context, present: present) } @@ -982,6 +991,10 @@ public final class SharedAccountContextImpl: SharedAccountContext { return ContactSelectionControllerImpl(params) } + public func makeContactMultiselectionController(_ params: ContactMultiselectionControllerParams) -> ContactMultiselectionController { + return ContactMultiselectionControllerImpl(params) + } + public func makeComposeController(context: AccountContext) -> ViewController { return ComposeController(context: context) } @@ -1001,4 +1014,8 @@ public final class SharedAccountContextImpl: SharedAccountContext { public func makeCreateGroupController(context: AccountContext, peerIds: [PeerId], initialTitle: String?, mode: CreateGroupMode, completion: ((PeerId, @escaping () -> Void) -> Void)?) -> ViewController { return createGroupControllerImpl(context: context, peerIds: peerIds, initialTitle: initialTitle, mode: mode, completion: completion) } + + public func makeChatListController(context: AccountContext, groupId: PeerGroupId, controlsHistoryPreload: Bool, hideNetworkActivityStatus: Bool, enableDebugActions: Bool) -> ChatListController { + return ChatListControllerImpl(context: context, groupId: groupId, controlsHistoryPreload: controlsHistoryPreload, hideNetworkActivityStatus: hideNetworkActivityStatus, enableDebugActions: enableDebugActions) + } } diff --git a/submodules/TelegramUI/TelegramUI/StickerPaneSearchContentNode.swift b/submodules/TelegramUI/TelegramUI/StickerPaneSearchContentNode.swift index 0c4a462ccc..cc0e408b5a 100644 --- a/submodules/TelegramUI/TelegramUI/StickerPaneSearchContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/StickerPaneSearchContentNode.swift @@ -11,6 +11,7 @@ import TelegramUIPrivateModule import MergeLists import AccountContext import StickerPackPreviewUI +import Emoji final class StickerPaneSearchInteraction { let open: (StickerPackCollectionInfo) -> Void diff --git a/submodules/TelegramUI/TelegramUI/TelegramRootController.swift b/submodules/TelegramUI/TelegramUI/TelegramRootController.swift index eba357651f..3d03cd1495 100644 --- a/submodules/TelegramUI/TelegramUI/TelegramRootController.swift +++ b/submodules/TelegramUI/TelegramUI/TelegramRootController.swift @@ -84,7 +84,7 @@ public final class TelegramRootController: NavigationController { public func addRootControllers(showCallsTab: Bool) { let tabBarController = TabBarController(navigationBarPresentationData: NavigationBarPresentationData(presentationData: self.presentationData), theme: TabBarControllerTheme(rootControllerTheme: self.presentationData.theme)) - let chatListController = ChatListController(context: self.context, groupId: .root, controlsHistoryPreload: true, enableDebugActions: !GlobalExperimentalSettings.isAppStoreBuild) + let chatListController = self.context.sharedContext.makeChatListController(context: self.context, groupId: .root, controlsHistoryPreload: true, hideNetworkActivityStatus: false, enableDebugActions: !GlobalExperimentalSettings.isAppStoreBuild) if let sharedContext = self.context.sharedContext as? SharedAccountContextImpl { chatListController.tabBarItem.badgeValue = sharedContext.switchingData.chatListBadge } @@ -159,7 +159,7 @@ public final class TelegramRootController: NavigationController { } public func openRootCompose() { - self.chatListController?.composePressed() + self.chatListController?.activateCompose() } public func openRootCamera() { diff --git a/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap b/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap index 594f238933..c035290575 100644 --- a/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap +++ b/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap @@ -1,7 +1,6 @@ module TelegramUIPrivateModule { header "../../third-party/opusenc/opusenc.h" header "../TGDataItem.h" - header "../SecretChatKeyVisualization.h" header "../DeviceProximityManager.h" header "../RaiseToListenActivator.h" header "../Bridge Audio/TGBridgeAudioDecoder.h" diff --git a/submodules/TelegramUI/TelegramUI/ValidateAddressNameInteractive.swift b/submodules/TelegramUI/TelegramUI/ValidateAddressNameInteractive.swift deleted file mode 100644 index 04ea82a825..0000000000 --- a/submodules/TelegramUI/TelegramUI/ValidateAddressNameInteractive.swift +++ /dev/null @@ -1,43 +0,0 @@ -import Foundation -import TelegramCore -import SwiftSignalKit -import Postbox - -enum AddressNameValidationStatus: Equatable { - case checking - case invalidFormat(AddressNameFormatError) - case availability(AddressNameAvailability) - - static func ==(lhs: AddressNameValidationStatus, rhs: AddressNameValidationStatus) -> Bool { - switch lhs { - case .checking: - if case .checking = rhs { - return true - } else { - return false - } - case let .invalidFormat(error): - if case .invalidFormat(error) = rhs { - return true - } else { - return false - } - case let .availability(availability): - if case .availability(availability) = rhs { - return true - } else { - return false - } - } - } -} - -func validateAddressNameInteractive(account: Account, domain: AddressNameDomain, name: String) -> Signal { - if let error = checkAddressNameFormat(name) { - return .single(.invalidFormat(error)) - } else { - return .single(.checking) |> then(addressNameAvailability(account: account, domain: domain, name: name) - |> delay(0.3, queue: Queue.concurrentDefaultQueue()) - |> map { result -> AddressNameValidationStatus in .availability(result) }) - } -} diff --git a/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj b/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj index 893365cba7..7fcffb8f64 100644 --- a/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj @@ -13,7 +13,6 @@ 090B48C82200BCA8005083FA /* WallpaperUploadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 090B48C72200BCA8005083FA /* WallpaperUploadManager.swift */; }; 090E63EE2196FE3A00E3C035 /* OpenAddContact.swift in Sources */ = {isa = PBXBuildFile; fileRef = 090E63ED2196FE3A00E3C035 /* OpenAddContact.swift */; }; 090E777922A6A32E00CD99F5 /* ThemeSettingsThemeItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 090E777822A6A32E00CD99F5 /* ThemeSettingsThemeItem.swift */; }; - 090E778A22A9F23C00CD99F5 /* ChannelOwnershipTransferController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 090E778922A9F23C00CD99F5 /* ChannelOwnershipTransferController.swift */; }; 090E778C22AA842300CD99F5 /* anim_success.json in Resources */ = {isa = PBXBuildFile; fileRef = 090E778B22AA842200CD99F5 /* anim_success.json */; }; 0910B0ED21FA178C00F8F87D /* WallpaperPreviewMedia.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0910B0EC21FA178C00F8F87D /* WallpaperPreviewMedia.swift */; }; 0910B0EF21FA532D00F8F87D /* WallpaperResources.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0910B0EE21FA532D00F8F87D /* WallpaperResources.swift */; }; @@ -23,7 +22,6 @@ 091BEAB3214552D9003AEA30 /* Vision.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D02DADBE2138D76F00116225 /* Vision.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 0921F60E228EE000001A13D7 /* ChatMessageActionUrlAuthController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0921F60D228EE000001A13D7 /* ChatMessageActionUrlAuthController.swift */; }; 092F368D2154AAEA001A9F49 /* SFCompactRounded-Semibold.otf in Resources */ = {isa = PBXBuildFile; fileRef = 092F368C2154AAE9001A9F49 /* SFCompactRounded-Semibold.otf */; }; - 092F36902157AB46001A9F49 /* ItemListCallListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 092F368F2157AB46001A9F49 /* ItemListCallListItem.swift */; }; 09310D32213ED5FC0020033A /* anim_ungroup.json in Resources */ = {isa = PBXBuildFile; fileRef = 09310D1A213BC5DE0020033A /* anim_ungroup.json */; }; 09310D33213ED5FC0020033A /* anim_group.json in Resources */ = {isa = PBXBuildFile; fileRef = 09310D1B213BC5DE0020033A /* anim_group.json */; }; 0940932422E73DFB003846A3 /* ChatSendMessageActionSheetController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0940932322E73DFB003846A3 /* ChatSendMessageActionSheetController.swift */; }; @@ -44,7 +42,6 @@ 09510B0F22F9347E0078CAB7 /* BundleResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09510B0E22F9347E0078CAB7 /* BundleResource.swift */; }; 09510B1322F96E5B0078CAB7 /* ChatScheduleTimeController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09510B1222F96E5B0078CAB7 /* ChatScheduleTimeController.swift */; }; 09510B1522F96E6C0078CAB7 /* ChatScheduleTimeControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09510B1422F96E6C0078CAB7 /* ChatScheduleTimeControllerNode.swift */; }; - 0952D1752176DEB500194860 /* NotificationMuteSettingsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0952D1742176DEB500194860 /* NotificationMuteSettingsController.swift */; }; 0957DE2322DE28FB001B4D57 /* ThemePreviewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0957DE2222DE28FB001B4D57 /* ThemePreviewController.swift */; }; 0957DE2522DE2909001B4D57 /* ThemePreviewControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0957DE2422DE2909001B4D57 /* ThemePreviewControllerNode.swift */; }; 0962E67921B67A9800245FD9 /* ChatMessageAnimatedStickerItemNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0962E67821B67A9800245FD9 /* ChatMessageAnimatedStickerItemNode.swift */; }; @@ -86,7 +83,6 @@ 09D96899221DE92600B1458A /* ID3ArtworkReader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09D96898221DE92600B1458A /* ID3ArtworkReader.swift */; }; 09DD5D5021ECC3C400D7007A /* SuppressContactsWarning.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DD5D4F21ECC3C400D7007A /* SuppressContactsWarning.swift */; }; 09DD5D5221ED175300D7007A /* WallpaperColorPickerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DD5D5121ED175300D7007A /* WallpaperColorPickerNode.swift */; }; - 09DD88E921BAF65E000766BC /* ItemListAddressItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DD88E821BAF65E000766BC /* ItemListAddressItem.swift */; }; 09DE2F272269D5730045E975 /* PrivacyIntroController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DE2F262269D5730045E975 /* PrivacyIntroController.swift */; }; 09DE2F292269D5E30045E975 /* PrivacyIntroControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DE2F282269D5E30045E975 /* PrivacyIntroControllerNode.swift */; }; 09E2D9EF226F1AFA00EA0AA4 /* Emoji.mapping in Resources */ = {isa = PBXBuildFile; fileRef = 09E2D9ED226F1AF300EA0AA4 /* Emoji.mapping */; }; @@ -116,7 +112,6 @@ 09FFBCD72281BB2D00C33B4B /* ChatTextLinkEditController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09FFBCD62281BB2D00C33B4B /* ChatTextLinkEditController.swift */; }; 9F06830921A404AB001D8EDB /* NotificationExceptionControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F06830821A404AB001D8EDB /* NotificationExceptionControllerNode.swift */; }; 9F06830B21A404C4001D8EDB /* NotificationExceptionSettingsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F06830A21A404C4001D8EDB /* NotificationExceptionSettingsController.swift */; }; - D000CABA21EE130D0011B15D /* MapResourceToAvatarSizes.swift in Sources */ = {isa = PBXBuildFile; fileRef = D000CAB921EE130D0011B15D /* MapResourceToAvatarSizes.swift */; }; D000CABC21F158AD0011B15D /* PrepareSecretThumbnailData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D000CABB21F158AD0011B15D /* PrepareSecretThumbnailData.swift */; }; D0068FA821760FA300D1B315 /* StoreDownloadedMedia.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0068FA721760FA300D1B315 /* StoreDownloadedMedia.swift */; }; D007019C2029E8F2006B9E34 /* LegacyICloudFileController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D007019B2029E8F2006B9E34 /* LegacyICloudFileController.swift */; }; @@ -158,7 +153,6 @@ D00818CD22B595CB008A895F /* LightweightAccountData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00818CC22B595CB008A895F /* LightweightAccountData.framework */; }; D00ACA4B20222C280045D427 /* libtgvoip.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00ACA4C20222C280045D427 /* libtgvoip.framework */; }; D00ACA5A2022897D0045D427 /* ProcessedPeerRestrictionText.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00ACA592022897D0045D427 /* ProcessedPeerRestrictionText.swift */; }; - D00BDA1F1EE5B69200C64C5E /* ChannelAdminController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00BDA1E1EE5B69200C64C5E /* ChannelAdminController.swift */; }; D010E17D22C238BC009324D4 /* RLottie.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D010E17C22C238BC009324D4 /* RLottie.framework */; }; D015E04F225D2E5900CB9E8A /* WebP.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D015E04E225D2E5900CB9E8A /* WebP.framework */; }; D017734C22049BF800DA06A7 /* UpgradedAccounts.swift in Sources */ = {isa = PBXBuildFile; fileRef = D017734B22049BF800DA06A7 /* UpgradedAccounts.swift */; }; @@ -179,7 +173,6 @@ D0208ADC1FA346A4001F0D5F /* RaiseToListen.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0208ADB1FA346A4001F0D5F /* RaiseToListen.swift */; }; D020A9DA1FEAE675008C66F7 /* OverlayAudioPlayerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D020A9D91FEAE675008C66F7 /* OverlayAudioPlayerController.swift */; }; D020A9DC1FEAE6E7008C66F7 /* OverlayPlayerControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D020A9DB1FEAE6E7008C66F7 /* OverlayPlayerControllerNode.swift */; }; - D025402322E1C92D00AC0195 /* ChatSlowmodeItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D025402222E1C92D00AC0195 /* ChatSlowmodeItem.swift */; }; D025402522E1E00100AC0195 /* ChatSlowmodeHintController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D025402422E1E00100AC0195 /* ChatSlowmodeHintController.swift */; }; D025402722E1F23000AC0195 /* ChatSendButtonRadialStatusNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D025402622E1F23000AC0195 /* ChatSendButtonRadialStatusNode.swift */; }; D025402922E1F7F500AC0195 /* ChatTextInputSlowmodePlaceholderNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D025402822E1F7F500AC0195 /* ChatTextInputSlowmodePlaceholderNode.swift */; }; @@ -216,9 +209,17 @@ D03E3FF02304C7FA0049C28B /* LocalMediaResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3FEF2304C7FA0049C28B /* LocalMediaResources.framework */; }; D03E40352304CD2A0049C28B /* PeersNearbyUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40342304CD2A0049C28B /* PeersNearbyUI.framework */; }; D03E405D2304CE920049C28B /* Geocoding.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E405C2304CE920049C28B /* Geocoding.framework */; }; + D03E40C72304D12D0049C28B /* PeerInfoUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40C62304D12D0049C28B /* PeerInfoUI.framework */; }; + D03E41682304D4820049C28B /* PeerAvatarGalleryUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41672304D4820049C28B /* PeerAvatarGalleryUI.framework */; }; + D03E41962304D79A0049C28B /* Emoji.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41952304D79A0049C28B /* Emoji.framework */; }; + D03E41CE2304D9800049C28B /* ItemListStickerPackItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41CD2304D9800049C28B /* ItemListStickerPackItem.framework */; }; + D03E41FA2305634F0049C28B /* NotificationMuteSettingsUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41F92305634F0049C28B /* NotificationMuteSettingsUI.framework */; }; + D03E4226230564B20049C28B /* SinglePhoneInputNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E4225230564B20049C28B /* SinglePhoneInputNode.framework */; }; + D03E425623056A4A0049C28B /* MapResourceToAvatarSizes.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E425523056A4A0049C28B /* MapResourceToAvatarSizes.framework */; }; + D03E428A23056B610049C28B /* NotificationSoundSelectionUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E428923056B610049C28B /* NotificationSoundSelectionUI.framework */; }; + D03E42B423056C730049C28B /* EncryptionKeyVisualization.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42B323056C730049C28B /* EncryptionKeyVisualization.framework */; }; + D03E42E6230572530049C28B /* ItemListAddressItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42E5230572530049C28B /* ItemListAddressItem.framework */; }; D04203152037162700490EA5 /* MediaInputPaneTrendingItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04203142037162700490EA5 /* MediaInputPaneTrendingItem.swift */; }; - D04281EF200E3D88009DDE36 /* GroupInfoSearchItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04281EE200E3D88009DDE36 /* GroupInfoSearchItem.swift */; }; - D04281F1200E4084009DDE36 /* GroupInfoSearchNavigationContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04281F0200E4084009DDE36 /* GroupInfoSearchNavigationContentNode.swift */; }; D04281F4200E5AB0009DDE36 /* ChatRecentActionsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04281F3200E5AB0009DDE36 /* ChatRecentActionsController.swift */; }; D04281F6200E5AC2009DDE36 /* ChatRecentActionsControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04281F5200E5AC2009DDE36 /* ChatRecentActionsControllerNode.swift */; }; D04281FA200E5CDC009DDE36 /* ChatRecentActionsControllerState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04281F9200E5CDC009DDE36 /* ChatRecentActionsControllerState.swift */; }; @@ -230,8 +231,6 @@ D048B339203C532800038D05 /* ChatMediaInputPane.swift in Sources */ = {isa = PBXBuildFile; fileRef = D048B338203C532800038D05 /* ChatMediaInputPane.swift */; }; D04B4D131EEA0A6500711AF6 /* ChatMessageMapBubbleContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04B4D121EEA0A6500711AF6 /* ChatMessageMapBubbleContentNode.swift */; }; D04ECD721FFBF22B00DE9029 /* OpenUrl.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04ECD711FFBF22B00DE9029 /* OpenUrl.swift */; }; - D050A464229C052A0044F11A /* ChannelDiscussionGroupSetupSearchItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D050A463229C052A0044F11A /* ChannelDiscussionGroupSetupSearchItem.swift */; }; - D050A466229C06460044F11A /* ChannelDiscussionGroupSearchContainerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D050A465229C06460044F11A /* ChannelDiscussionGroupSearchContainerNode.swift */; }; D053B4371F1A9CA000E2D58A /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D053B4361F1A9CA000E2D58A /* WebKit.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; D053DADC201AAAB100993D32 /* ChatTextInputMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = D053DADB201AAAB100993D32 /* ChatTextInputMenu.swift */; }; D056CD701FF147B000880D28 /* IconButtonNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D056CD6F1FF147B000880D28 /* IconButtonNode.swift */; }; @@ -271,9 +270,6 @@ D077C5C122B59A800097D617 /* ApplicationContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D077C5C022B59A800097D617 /* ApplicationContext.swift */; }; D07BCBFE1F2B792300ED97AA /* LegacyComponents.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D07BCBFD1F2B792300ED97AA /* LegacyComponents.framework */; }; D07E413D208A494D00FCA8F0 /* ProxyServerActionSheetController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07E413C208A494D00FCA8F0 /* ProxyServerActionSheetController.swift */; }; - D081A9A922EB26AE0069C449 /* PhoneLabelController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D081A9A822EB26AE0069C449 /* PhoneLabelController.swift */; }; - D083491C209361DC008CFD52 /* AvatarGalleryItemFooterContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D083491B209361DC008CFD52 /* AvatarGalleryItemFooterContentNode.swift */; }; - D084023420E295F000065674 /* GroupStickerPackSetupController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D084023320E295F000065674 /* GroupStickerPackSetupController.swift */; }; D08799F022F649A600C4D6B3 /* TelegramBaseController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D08799EF22F649A600C4D6B3 /* TelegramBaseController.framework */; }; D0879A0D22F64E4C00C4D6B3 /* DeviceLocationManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879A0C22F64E4C00C4D6B3 /* DeviceLocationManager.framework */; }; D0879B1F22F7189600C4D6B3 /* AvatarNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879B1E22F7189600C4D6B3 /* AvatarNode.framework */; }; @@ -288,7 +284,6 @@ D0879C9622F875C000C4D6B3 /* PeerPresenceStatusManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879C9522F875C000C4D6B3 /* PeerPresenceStatusManager.framework */; }; D0879CCC22F876DD00C4D6B3 /* ChatListSearchRecentPeersNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879CCB22F876DD00C4D6B3 /* ChatListSearchRecentPeersNode.framework */; }; D08803C51F6064CF00DD7951 /* TelegramUI.h in Headers */ = {isa = PBXBuildFile; fileRef = D0FC40821D5B8E7400261D9D /* TelegramUI.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D08984EE2114964700918162 /* GroupPreHistorySetupController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08984ED2114964700918162 /* GroupPreHistorySetupController.swift */; }; D08984F02114AE0C00918162 /* DataPrivacySettingsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08984EF2114AE0C00918162 /* DataPrivacySettingsController.swift */; }; D08BDF641FA37BEA009D08E1 /* ChatRecordingPreviewInputPanelNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08BDF631FA37BEA009D08E1 /* ChatRecordingPreviewInputPanelNode.swift */; }; D08BDF661FA8CB10009D08E1 /* EditSettingsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08BDF651FA8CB10009D08E1 /* EditSettingsController.swift */; }; @@ -299,7 +294,6 @@ D0943B051FDDFDA0001522CC /* OverlayInstantVideoNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0943B041FDDFDA0001522CC /* OverlayInstantVideoNode.swift */; }; D0943B071FDEC529001522CC /* InstantVideoRadialStatusNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0943B061FDEC528001522CC /* InstantVideoRadialStatusNode.swift */; }; D0955FB521912B6000F89427 /* PresentationStrings.mapping in Resources */ = {isa = PBXBuildFile; fileRef = D0955FB32191278C00F89427 /* PresentationStrings.mapping */; }; - D097C26820DD0A1D007BB4B8 /* PeerReportController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D097C26720DD0A1D007BB4B8 /* PeerReportController.swift */; }; D099E220229405BB00561B75 /* Weak.swift in Sources */ = {isa = PBXBuildFile; fileRef = D099E21F229405BB00561B75 /* Weak.swift */; }; D09D88731F86D56B00BEB4C9 /* AuthorizationLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = D09D88721F86D56B00BEB4C9 /* AuthorizationLayout.swift */; }; D09E637C1F0E7C28003444CD /* SharedMediaPlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D09E637B1F0E7C28003444CD /* SharedMediaPlayer.swift */; }; @@ -327,7 +321,6 @@ D0A8998D217A294100759EE6 /* SaveIncomingMediaController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0A8998C217A294100759EE6 /* SaveIncomingMediaController.swift */; }; D0AA840C1FEB2BA3005C6E91 /* OverlayPlayerControlsNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AA840B1FEB2BA3005C6E91 /* OverlayPlayerControlsNode.swift */; }; D0AB262921C307D7008F6685 /* ChatMessagePollBubbleContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB262821C307D7008F6685 /* ChatMessagePollBubbleContentNode.swift */; }; - D0AB269E21D56A12008F6685 /* ChannelPermissionsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB269D21D56A12008F6685 /* ChannelPermissionsController.swift */; }; D0ACCB1C1EC5FF4B0079D8BF /* ChatMessageCallBubbleContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0ACCB1B1EC5FF4B0079D8BF /* ChatMessageCallBubbleContentNode.swift */; }; D0AD02EA1FFFEBEF00C1DCFF /* ChatMessageLiveLocationTextNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AD02E91FFFEBEF00C1DCFF /* ChatMessageLiveLocationTextNode.swift */; }; D0ADF966212E05A300310BBC /* TonePlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0ADF965212E05A300310BBC /* TonePlayer.swift */; }; @@ -348,9 +341,6 @@ D0B21B17220D85E7003F741D /* TabBarAccountSwitchControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B21B16220D85E7003F741D /* TabBarAccountSwitchControllerNode.swift */; }; D0B21B1F22156D92003F741D /* LegacyCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B21B1E22156D92003F741D /* LegacyCache.swift */; }; D0B21B212215B539003F741D /* LogoutOptionsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B21B202215B539003F741D /* LogoutOptionsController.swift */; }; - D0B2F76820528E3D00D3BFB9 /* UserInfoEditingPhoneActionItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B2F76720528E3D00D3BFB9 /* UserInfoEditingPhoneActionItem.swift */; }; - D0B2F76A2052920D00D3BFB9 /* UserInfoEditingPhoneItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B2F7692052920D00D3BFB9 /* UserInfoEditingPhoneItem.swift */; }; - D0B2F76C2052A7D600D3BFB9 /* SinglePhoneInputNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B2F76B2052A7D600D3BFB9 /* SinglePhoneInputNode.swift */; }; D0B37C5C1F8D22AE004252DF /* ThemeSettingsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B37C5B1F8D22AE004252DF /* ThemeSettingsController.swift */; }; D0B37C5E1F8D26A8004252DF /* ThemeSettingsChatPreviewItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B37C5D1F8D26A8004252DF /* ThemeSettingsChatPreviewItem.swift */; }; D0B37C601F8D286E004252DF /* ThemeSettingsFontSizeItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B37C5F1F8D286E004252DF /* ThemeSettingsFontSizeItem.swift */; }; @@ -366,7 +356,6 @@ D0BCC3D620404CD8008126C2 /* ChatMessageActionSheetControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BCC3D520404CD8008126C2 /* ChatMessageActionSheetControllerNode.swift */; }; D0BFAE4620AB04FB00793CF2 /* ChatRestrictedInputPanelNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BFAE4520AB04FB00793CF2 /* ChatRestrictedInputPanelNode.swift */; }; D0BFAE4E20AB1D7B00793CF2 /* DisabledContextResultsChatInputContextPanelNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BFAE4D20AB1D7B00793CF2 /* DisabledContextResultsChatInputContextPanelNode.swift */; }; - D0BFAE5020AB2A1300793CF2 /* PeerBanTimeoutController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BFAE4F20AB2A1300793CF2 /* PeerBanTimeoutController.swift */; }; D0C0B59B1EE019E5000F4D2C /* ChatSearchNavigationContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C0B59A1EE019E5000F4D2C /* ChatSearchNavigationContentNode.swift */; }; D0C0B59F1EE082F5000F4D2C /* ChatSearchInputPanelNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C0B59E1EE082F5000F4D2C /* ChatSearchInputPanelNode.swift */; }; D0C0B5B11EE1C421000F4D2C /* ChatDateSelectionSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C0B5B01EE1C421000F4D2C /* ChatDateSelectionSheet.swift */; }; @@ -440,9 +429,6 @@ D0D4345C1F97CEAA00CC1806 /* ProxyServerSettingsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D4345B1F97CEAA00CC1806 /* ProxyServerSettingsController.swift */; }; D0DE66061F9A51E200EF4AE9 /* GalleryHiddenMediaManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DE66051F9A51E200EF4AE9 /* GalleryHiddenMediaManager.swift */; }; D0DFD5E21FCE2BA50039B3B1 /* CalculatingCacheSizeItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DFD5E11FCE2BA50039B3B1 /* CalculatingCacheSizeItem.swift */; }; - D0E1199A2297F9C6008CAE3A /* ChannelDiscussionGroupSetupController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E119992297F9C6008CAE3A /* ChannelDiscussionGroupSetupController.swift */; }; - D0E1199C229808B8008CAE3A /* ChannelDiscussionGroupSetupHeaderItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E1199B229808B8008CAE3A /* ChannelDiscussionGroupSetupHeaderItem.swift */; }; - D0E1199E229809B6008CAE3A /* ChannelDiscussionGroupActionSheetItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E1199D229809B6008CAE3A /* ChannelDiscussionGroupActionSheetItem.swift */; }; D0E2CE6C222930540084E3DD /* PrefetchManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E2CE6B222930540084E3DD /* PrefetchManager.swift */; }; D0E8174C2011F8A300B82BBB /* ChatMessageEventLogPreviousMessageContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E8174B2011F8A300B82BBB /* ChatMessageEventLogPreviousMessageContentNode.swift */; }; D0E8174E2011FC3800B82BBB /* ChatMessageEventLogPreviousDescriptionContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E8174D2011FC3800B82BBB /* ChatMessageEventLogPreviousDescriptionContentNode.swift */; }; @@ -450,10 +436,6 @@ D0E8175720122DAD00B82BBB /* ChatRecentActionsSearchNavigationContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E8175620122DAD00B82BBB /* ChatRecentActionsSearchNavigationContentNode.swift */; }; D0E8175920122FE100B82BBB /* ChatRecentActionsFilterController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E8175820122FE100B82BBB /* ChatRecentActionsFilterController.swift */; }; D0E8175B201254FA00B82BBB /* ChatRecentActionsEmptyNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E8175A201254FA00B82BBB /* ChatRecentActionsEmptyNode.swift */; }; - D0E8B8B9204477B600605593 /* SecretChatKeyVisualization.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E8B8B8204477B600605593 /* SecretChatKeyVisualization.swift */; }; - D0E8B8BB2044780600605593 /* ItemListSecretChatKeyItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E8B8BA2044780600605593 /* ItemListSecretChatKeyItem.swift */; }; - D0E8B8BD204479A500605593 /* SecretChatKeyController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E8B8BC204479A500605593 /* SecretChatKeyController.swift */; }; - D0E8B8BF20447A4600605593 /* SecretChatKeyControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E8B8BE20447A4600605593 /* SecretChatKeyControllerNode.swift */; }; D0E9B9EA1F00853C00F079A4 /* PhoneCountries.txt in Resources */ = {isa = PBXBuildFile; fileRef = D0E9B9E91F00853C00F079A4 /* PhoneCountries.txt */; }; D0E9BA911F056F4C00F079A4 /* stp_card_amex@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA691F056F4C00F079A4 /* stp_card_amex@2x.png */; }; D0E9BA921F056F4C00F079A4 /* stp_card_amex@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA6A1F056F4C00F079A4 /* stp_card_amex@3x.png */; }; @@ -500,14 +482,11 @@ D0EC55A3210231D600D1992C /* SearchPeerMembers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EC55A2210231D600D1992C /* SearchPeerMembers.swift */; }; D0EC6CC11EB9F58800EBF1C3 /* LegacyCamera.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00E15251DDBD4E700ACF65C /* LegacyCamera.swift */; }; D0EC6CC51EB9F58800EBF1C3 /* TGDataItem.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D03B221DECB1AD00220C46 /* TGDataItem.m */; }; - D0EC6CC71EB9F58800EBF1C3 /* PeerNotificationSoundStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08775081E3E59DE00A97350 /* PeerNotificationSoundStrings.swift */; }; D0EC6CC91EB9F58800EBF1C3 /* ConvertToWebP.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69E941D6B8C9B0046BCD6 /* ConvertToWebP.swift */; }; D0EC6CCC1EB9F58800EBF1C3 /* ServiceSoundManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D073CE641DCBC26B007511FD /* ServiceSoundManager.swift */; }; D0EC6CCD1EB9F58800EBF1C3 /* DeclareEncodables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D073CE701DCBF23F007511FD /* DeclareEncodables.swift */; }; D0EC6CCE1EB9F58800EBF1C3 /* AccountContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05811931DD5F9380057C769 /* AccountContext.swift */; }; D0EC6CD11EB9F58800EBF1C3 /* UrlHandling.swift in Sources */ = {isa = PBXBuildFile; fileRef = D023836F1DDF0462004018B6 /* UrlHandling.swift */; }; - D0EC6CD71EB9F58800EBF1C3 /* EmojiUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01D6BFB1E42AB3C006151C6 /* EmojiUtils.swift */; }; - D0EC6CD91EB9F58800EBF1C3 /* ValidateAddressNameInteractive.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E305A41E5B2BFB00D7A3A2 /* ValidateAddressNameInteractive.swift */; }; D0EC6CDC1EB9F58800EBF1C3 /* TelegramAccountAuxiliaryMethods.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F3A8AA1E82D83E00B4C64C /* TelegramAccountAuxiliaryMethods.swift */; }; D0EC6CF91EB9F58800EBF1C3 /* MediaManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69CD61D6B87D30046BCD6 /* MediaManager.swift */; }; D0EC6CFB1EB9F58800EBF1C3 /* ManagedAudioRecorder.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D03AE41DECAE8900220C46 /* ManagedAudioRecorder.swift */; }; @@ -670,8 +649,6 @@ D0EC6DF61EB9F58900EBF1C3 /* PeerMediaCollectionControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B7F8E71D8A1F5F0045D939 /* PeerMediaCollectionControllerNode.swift */; }; D0EC6DF81EB9F58900EBF1C3 /* PeerMediaCollectionInterfaceState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DE77221D932043002B8809 /* PeerMediaCollectionInterfaceState.swift */; }; D0EC6DF91EB9F58900EBF1C3 /* PeerMediaCollectionInterfaceStateButtons.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DE77241D93225E002B8809 /* PeerMediaCollectionInterfaceStateButtons.swift */; }; - D0EC6DFB1EB9F58900EBF1C3 /* AvatarGalleryController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0575AF91EA0FDA7006F2541 /* AvatarGalleryController.swift */; }; - D0EC6E0E1EB9F58900EBF1C3 /* PeerAvatarImageGalleryItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0575AFB1EA104A6006F2541 /* PeerAvatarImageGalleryItem.swift */; }; D0EC6E2B1EB9F58900EBF1C3 /* ComposeController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D087750F1E3F46A400A97350 /* ComposeController.swift */; }; D0EC6E2C1EB9F58900EBF1C3 /* ComposeControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08775111E3F46AB00A97350 /* ComposeControllerNode.swift */; }; D0EC6E2D1EB9F58900EBF1C3 /* CounterContollerTitleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D087751D1E3F579300A97350 /* CounterContollerTitleView.swift */; }; @@ -681,16 +658,6 @@ D0EC6E311EB9F58900EBF1C3 /* ContactSelectionControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BC38801E40F1D80044D6FE /* ContactSelectionControllerNode.swift */; }; D0EC6E321EB9F58900EBF1C3 /* CreateGroupController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BC38691E3FB94D0044D6FE /* CreateGroupController.swift */; }; D0EC6E331EB9F58900EBF1C3 /* CreateChannelController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D018D3341E6489EC00C5E089 /* CreateChannelController.swift */; }; - D0EC6E4D1EB9F58900EBF1C3 /* PeerInfoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B843CC1DA903BB005F29E1 /* PeerInfoController.swift */; }; - D0EC6E4E1EB9F58900EBF1C3 /* GroupInfoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0486F091E523C8500091F0C /* GroupInfoController.swift */; }; - D0EC6E4F1EB9F58900EBF1C3 /* ChannelVisibilityController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E5E0E1E55F8B90029569A /* ChannelVisibilityController.swift */; }; - D0EC6E501EB9F58900EBF1C3 /* ChannelAdminsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0561DE71E574C3200E6B9E9 /* ChannelAdminsController.swift */; }; - D0EC6E511EB9F58900EBF1C3 /* ChannelBlacklistController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B98E7E1E575D2C008084B1 /* ChannelBlacklistController.swift */; }; - D0EC6E521EB9F58900EBF1C3 /* ChannelInfoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0613FC71E5F8AB100202CDB /* ChannelInfoController.swift */; }; - D0EC6E531EB9F58900EBF1C3 /* ChannelMembersController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0613FCC1E60482300202CDB /* ChannelMembersController.swift */; }; - D0EC6E541EB9F58900EBF1C3 /* ConvertToSupergroupController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0613FD41E6064D200202CDB /* ConvertToSupergroupController.swift */; }; - D0EC6E561EB9F58900EBF1C3 /* UserInfoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0528E621E65BECA00E2FEF5 /* UserInfoController.swift */; }; - D0EC6E571EB9F58900EBF1C3 /* GroupsInCommonController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D099261E1E69791E00D95539 /* GroupsInCommonController.swift */; }; D0EC6E581EB9F58900EBF1C3 /* PeerSelectionController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07CFF731DCA207200761F81 /* PeerSelectionController.swift */; }; D0EC6E591EB9F58900EBF1C3 /* PeerSelectionControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07CFF751DCA224100761F81 /* PeerSelectionControllerNode.swift */; }; D0EC6E5D1EB9F58900EBF1C3 /* PrivacyAndSecurityController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05A32DD1E6F0097002760B4 /* PrivacyAndSecurityController.swift */; }; @@ -709,14 +676,12 @@ D0EC6E6A1EB9F58900EBF1C3 /* StorageUsageController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA35001EA6127000E56FFA /* StorageUsageController.swift */; }; D0EC6E6B1EB9F58900EBF1C3 /* InstalledStickerPacksController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA0AC41E77431A005BB9B7 /* InstalledStickerPacksController.swift */; }; D0EC6E6C1EB9F58900EBF1C3 /* FeaturedStickerPacksController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E23DD71E805E2600B9B6D2 /* FeaturedStickerPacksController.swift */; }; - D0EC6E6D1EB9F58900EBF1C3 /* ItemListStickerPackItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04791661E79A22000F18979 /* ItemListStickerPackItem.swift */; }; D0EC6E6E1EB9F58900EBF1C3 /* ArchivedStickerPacksController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E23DDC1E8081A200B9B6D2 /* ArchivedStickerPacksController.swift */; }; D0EC6E731EB9F58900EBF1C3 /* WallpaperGalleryToolbarNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05174AA1EAA5B4700A1BF36 /* WallpaperGalleryToolbarNode.swift */; }; D0EC6E741EB9F58900EBF1C3 /* ThemeGridController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EC6B351EB88D0A00EBF1C3 /* ThemeGridController.swift */; }; D0EC6E751EB9F58900EBF1C3 /* ThemeGridControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EC6B371EB88D1600EBF1C3 /* ThemeGridControllerNode.swift */; }; D0EC6E761EB9F58900EBF1C3 /* SettingsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01B279A1E39386C0022A4C0 /* SettingsController.swift */; }; D0EC6E771EB9F58900EBF1C3 /* NotificationsAndSounds.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01B279C1E394A500022A4C0 /* NotificationsAndSounds.swift */; }; - D0EC6E781EB9F58900EBF1C3 /* NotificationSoundSelection.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0A749961E3AA25200AD786E /* NotificationSoundSelection.swift */; }; D0EC6E7A1EB9F58900EBF1C3 /* DebugController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CE1BD21E51BC6100404327 /* DebugController.swift */; }; D0EC6E7B1EB9F58900EBF1C3 /* DebugAccountsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E5E081E55C49C0029569A /* DebugAccountsController.swift */; }; D0EC6E7C1EB9F58900EBF1C3 /* UsernameSetupController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0528E671E65CB2C00E2FEF5 /* UsernameSetupController.swift */; }; @@ -730,7 +695,6 @@ D0EC6E841EB9F58900EBF1C3 /* NotificationItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C50E3B1E93CC2600F62E39 /* NotificationItem.swift */; }; D0EC6E851EB9F58900EBF1C3 /* ChatMessageNotificationItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C50E3F1E93D3B000F62E39 /* ChatMessageNotificationItem.swift */; }; D0EC6E891EB9F58900EBF1C3 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69E831D6B8C850046BCD6 /* FrameworkBundle.swift */; }; - D0EC6E8D1EB9F58900EBF1C3 /* SecretChatKeyVisualization.m in Sources */ = {isa = PBXBuildFile; fileRef = D00C7CF61E37BF680080C3D5 /* SecretChatKeyVisualization.m */; }; D0EC6E8F1EB9F5B200EBF1C3 /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D08D45291D5E340300A7428A /* AsyncDisplayKit.framework */; }; D0EC6E901EB9F5B200EBF1C3 /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D08D452A1D5E340300A7428A /* Display.framework */; }; D0EC6E911EB9F5B200EBF1C3 /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D08D452B1D5E340300A7428A /* Postbox.framework */; }; @@ -744,16 +708,7 @@ D0EC6EA61EB9FC2400EBF1C3 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D07551901DDA4FC70073E051 /* libc++.tbd */; }; D0EC6EBD1EBA100F00EBF1C3 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EC6EBC1EBA100F00EBF1C3 /* CoreAudio.framework */; }; D0EEE9A12165585F001292A6 /* DocumentPreviewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EEE9A02165585F001292A6 /* DocumentPreviewController.swift */; }; - D0F19F6220E5694D00EEC860 /* GroupStickerPackCurrentItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F19F6120E5694D00EEC860 /* GroupStickerPackCurrentItem.swift */; }; D0F19F6420E5A15B00EEC860 /* ChatMediaInputPeerSpecificItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F19F6320E5A15B00EEC860 /* ChatMediaInputPeerSpecificItem.swift */; }; - D0F4B01A211073C500912B92 /* DeviceContactInfoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F4B019211073C500912B92 /* DeviceContactInfoController.swift */; }; - D0F4B0222110972300912B92 /* ContactInfoStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F4B0212110972300912B92 /* ContactInfoStrings.swift */; }; - D0F67FF01EE6B8A8000E5906 /* ChannelMembersSearchController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F67FEF1EE6B8A8000E5906 /* ChannelMembersSearchController.swift */; }; - D0F67FF21EE6B915000E5906 /* ChannelMembersSearchControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F67FF11EE6B915000E5906 /* ChannelMembersSearchControllerNode.swift */; }; - D0F67FF41EE6C10F000E5906 /* ChannelMembersSearchContainerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F67FF31EE6C10F000E5906 /* ChannelMembersSearchContainerNode.swift */; }; - D0F6800A1EE750EE000E5906 /* ChannelBannedMemberController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F680091EE750EE000E5906 /* ChannelBannedMemberController.swift */; }; - D0F760DB222034910074F7E5 /* ChannelStatsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F760DA222034910074F7E5 /* ChannelStatsController.swift */; }; - D0F760DD222034980074F7E5 /* ChannelStatsControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F760DC222034980074F7E5 /* ChannelStatsControllerNode.swift */; }; D0F9720F1FFE4BD5002595C8 /* notification.caf in Resources */ = {isa = PBXBuildFile; fileRef = D0C50E431E93FCD200F62E39 /* notification.caf */; }; D0F972101FFE4BD5002595C8 /* MessageSent.caf in Resources */ = {isa = PBXBuildFile; fileRef = D073CE621DCBBE5D007511FD /* MessageSent.caf */; }; D0FA08C8204982DC00DD23FC /* ChatTextInputActionButtonsNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA08C7204982DC00DD23FC /* ChatTextInputActionButtonsNode.swift */; }; @@ -771,7 +726,6 @@ 090B48C72200BCA8005083FA /* WallpaperUploadManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallpaperUploadManager.swift; sourceTree = ""; }; 090E63ED2196FE3A00E3C035 /* OpenAddContact.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenAddContact.swift; sourceTree = ""; }; 090E777822A6A32E00CD99F5 /* ThemeSettingsThemeItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeSettingsThemeItem.swift; sourceTree = ""; }; - 090E778922A9F23C00CD99F5 /* ChannelOwnershipTransferController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelOwnershipTransferController.swift; sourceTree = ""; }; 090E778B22AA842200CD99F5 /* anim_success.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_success.json; sourceTree = ""; }; 0910B0EC21FA178C00F8F87D /* WallpaperPreviewMedia.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallpaperPreviewMedia.swift; sourceTree = ""; }; 0910B0EE21FA532D00F8F87D /* WallpaperResources.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallpaperResources.swift; sourceTree = ""; }; @@ -780,7 +734,6 @@ 091417F321EF4F5F00C8325A /* WallpaperGalleryItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallpaperGalleryItem.swift; sourceTree = ""; }; 0921F60D228EE000001A13D7 /* ChatMessageActionUrlAuthController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageActionUrlAuthController.swift; sourceTree = ""; }; 092F368C2154AAE9001A9F49 /* SFCompactRounded-Semibold.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "SFCompactRounded-Semibold.otf"; sourceTree = ""; }; - 092F368F2157AB46001A9F49 /* ItemListCallListItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ItemListCallListItem.swift; sourceTree = ""; }; 09310D1A213BC5DE0020033A /* anim_ungroup.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_ungroup.json; sourceTree = ""; }; 09310D1B213BC5DE0020033A /* anim_group.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_group.json; sourceTree = ""; }; 0940932322E73DFB003846A3 /* ChatSendMessageActionSheetController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatSendMessageActionSheetController.swift; sourceTree = ""; }; @@ -801,7 +754,6 @@ 09510B0E22F9347E0078CAB7 /* BundleResource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BundleResource.swift; sourceTree = ""; }; 09510B1222F96E5B0078CAB7 /* ChatScheduleTimeController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatScheduleTimeController.swift; sourceTree = ""; }; 09510B1422F96E6C0078CAB7 /* ChatScheduleTimeControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatScheduleTimeControllerNode.swift; sourceTree = ""; }; - 0952D1742176DEB500194860 /* NotificationMuteSettingsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationMuteSettingsController.swift; sourceTree = ""; }; 0957DE2222DE28FB001B4D57 /* ThemePreviewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemePreviewController.swift; sourceTree = ""; }; 0957DE2422DE2909001B4D57 /* ThemePreviewControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemePreviewControllerNode.swift; sourceTree = ""; }; 0962E67821B67A9800245FD9 /* ChatMessageAnimatedStickerItemNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageAnimatedStickerItemNode.swift; sourceTree = ""; }; @@ -843,7 +795,6 @@ 09D96898221DE92600B1458A /* ID3ArtworkReader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ID3ArtworkReader.swift; sourceTree = ""; }; 09DD5D4F21ECC3C400D7007A /* SuppressContactsWarning.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SuppressContactsWarning.swift; sourceTree = ""; }; 09DD5D5121ED175300D7007A /* WallpaperColorPickerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallpaperColorPickerNode.swift; sourceTree = ""; }; - 09DD88E821BAF65E000766BC /* ItemListAddressItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ItemListAddressItem.swift; sourceTree = ""; }; 09DE2F262269D5730045E975 /* PrivacyIntroController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrivacyIntroController.swift; sourceTree = ""; }; 09DE2F282269D5E30045E975 /* PrivacyIntroControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrivacyIntroControllerNode.swift; sourceTree = ""; }; 09E2D9ED226F1AF300EA0AA4 /* Emoji.mapping */ = {isa = PBXFileReference; lastKnownFileType = file; name = Emoji.mapping; path = TelegramUI/Resources/Emoji.mapping; sourceTree = ""; }; @@ -873,7 +824,6 @@ 09FFBCD62281BB2D00C33B4B /* ChatTextLinkEditController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTextLinkEditController.swift; sourceTree = ""; }; 9F06830821A404AB001D8EDB /* NotificationExceptionControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationExceptionControllerNode.swift; sourceTree = ""; }; 9F06830A21A404C4001D8EDB /* NotificationExceptionSettingsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationExceptionSettingsController.swift; sourceTree = ""; }; - D000CAB921EE130D0011B15D /* MapResourceToAvatarSizes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapResourceToAvatarSizes.swift; sourceTree = ""; }; D000CABB21F158AD0011B15D /* PrepareSecretThumbnailData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrepareSecretThumbnailData.swift; sourceTree = ""; }; D002A0D21E9BBE6700A81812 /* MultiplexedSoftwareVideoSourceManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MultiplexedSoftwareVideoSourceManager.swift; sourceTree = ""; }; D002A0D41E9BD48400A81812 /* SampleBufferPool.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SampleBufferPool.swift; sourceTree = ""; }; @@ -921,11 +871,8 @@ D00818CC22B595CB008A895F /* LightweightAccountData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LightweightAccountData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D00ACA4C20222C280045D427 /* libtgvoip.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = libtgvoip.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D00ACA592022897D0045D427 /* ProcessedPeerRestrictionText.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProcessedPeerRestrictionText.swift; sourceTree = ""; }; - D00BDA1E1EE5B69200C64C5E /* ChannelAdminController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelAdminController.swift; sourceTree = ""; }; D00C7CE51E378FD00080C3D5 /* RadialTimeoutNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadialTimeoutNode.swift; sourceTree = ""; }; D00C7CE81E379B820080C3D5 /* ChatSecretAutoremoveTimerActionSheet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatSecretAutoremoveTimerActionSheet.swift; sourceTree = ""; }; - D00C7CF51E37BF680080C3D5 /* SecretChatKeyVisualization.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SecretChatKeyVisualization.h; sourceTree = ""; }; - D00C7CF61E37BF680080C3D5 /* SecretChatKeyVisualization.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SecretChatKeyVisualization.m; sourceTree = ""; }; D00D34361E6E14E30057B307 /* ChatMessageThrottledProcessingManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageThrottledProcessingManager.swift; sourceTree = ""; }; D00DBBDC1E65650800DB5485 /* ChatReportPeerTitlePanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatReportPeerTitlePanelNode.swift; sourceTree = ""; }; D00E15251DDBD4E700ACF65C /* LegacyCamera.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyCamera.swift; sourceTree = ""; }; @@ -952,7 +899,6 @@ D01C06B41FBB7720001561AB /* ChatMediaInputSettingsItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMediaInputSettingsItem.swift; sourceTree = ""; }; D01C2AA01E758F90001F6F9A /* NavigateToChatController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NavigateToChatController.swift; sourceTree = ""; }; D01C2AAA1E75E010001F6F9A /* TwoStepVerificationUnlockController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TwoStepVerificationUnlockController.swift; sourceTree = ""; }; - D01D6BFB1E42AB3C006151C6 /* EmojiUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EmojiUtils.swift; sourceTree = ""; }; D01DBA9A209CC6AD00C64E64 /* ChatLinkPreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatLinkPreview.swift; sourceTree = ""; }; D01F66121DE8903300345CBE /* ChatTextInputMediaRecordingButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatTextInputMediaRecordingButton.swift; sourceTree = ""; }; D01FB436217CEC62009C6134 /* FetchVideoThumbnail.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchVideoThumbnail.swift; sourceTree = ""; }; @@ -977,7 +923,6 @@ D02383781DDF1A4D004018B6 /* ChatRequestInProgressTitlePanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatRequestInProgressTitlePanelNode.swift; sourceTree = ""; }; D023837D1DDF50FD004018B6 /* ChatToastAlertPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatToastAlertPanelNode.swift; sourceTree = ""; }; D02383831DDFA22C004018B6 /* ListMessageHoleItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ListMessageHoleItem.swift; sourceTree = ""; }; - D025402222E1C92D00AC0195 /* ChatSlowmodeItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatSlowmodeItem.swift; sourceTree = ""; }; D025402422E1E00100AC0195 /* ChatSlowmodeHintController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatSlowmodeHintController.swift; sourceTree = ""; }; D025402622E1F23000AC0195 /* ChatSendButtonRadialStatusNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatSendButtonRadialStatusNode.swift; sourceTree = ""; }; D025402822E1F7F500AC0195 /* ChatTextInputSlowmodePlaceholderNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTextInputSlowmodePlaceholderNode.swift; sourceTree = ""; }; @@ -1025,11 +970,18 @@ D03E3FEF2304C7FA0049C28B /* LocalMediaResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LocalMediaResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E40342304CD2A0049C28B /* PeersNearbyUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PeersNearbyUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E405C2304CE920049C28B /* Geocoding.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Geocoding.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E40C62304D12D0049C28B /* PeerInfoUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PeerInfoUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41672304D4820049C28B /* PeerAvatarGalleryUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PeerAvatarGalleryUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41952304D79A0049C28B /* Emoji.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Emoji.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41CD2304D9800049C28B /* ItemListStickerPackItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListStickerPackItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E41F92305634F0049C28B /* NotificationMuteSettingsUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = NotificationMuteSettingsUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E4225230564B20049C28B /* SinglePhoneInputNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SinglePhoneInputNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E425523056A4A0049C28B /* MapResourceToAvatarSizes.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MapResourceToAvatarSizes.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E428923056B610049C28B /* NotificationSoundSelectionUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = NotificationSoundSelectionUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E42B323056C730049C28B /* EncryptionKeyVisualization.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = EncryptionKeyVisualization.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E42E5230572530049C28B /* ItemListAddressItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListAddressItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E5E081E55C49C0029569A /* DebugAccountsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DebugAccountsController.swift; sourceTree = ""; }; - D03E5E0E1E55F8B90029569A /* ChannelVisibilityController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelVisibilityController.swift; sourceTree = ""; }; D04203142037162700490EA5 /* MediaInputPaneTrendingItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaInputPaneTrendingItem.swift; sourceTree = ""; }; - D04281EE200E3D88009DDE36 /* GroupInfoSearchItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupInfoSearchItem.swift; sourceTree = ""; }; - D04281F0200E4084009DDE36 /* GroupInfoSearchNavigationContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupInfoSearchNavigationContentNode.swift; sourceTree = ""; }; D04281F3200E5AB0009DDE36 /* ChatRecentActionsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatRecentActionsController.swift; sourceTree = ""; }; D04281F5200E5AC2009DDE36 /* ChatRecentActionsControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatRecentActionsControllerNode.swift; sourceTree = ""; }; D04281F9200E5CDC009DDE36 /* ChatRecentActionsControllerState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatRecentActionsControllerState.swift; sourceTree = ""; }; @@ -1040,8 +992,6 @@ D04554A321B42982007A6DD9 /* ConfirmPhoneNumberController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfirmPhoneNumberController.swift; sourceTree = ""; }; D04662801E68BA64006FAFC4 /* TransformOutgoingMessageMedia.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TransformOutgoingMessageMedia.swift; sourceTree = ""; }; D0471B531EFD8ECA0074D609 /* currencies.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = currencies.json; path = TelegramUI/Resources/currencies.json; sourceTree = ""; }; - D04791661E79A22000F18979 /* ItemListStickerPackItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemListStickerPackItem.swift; sourceTree = ""; }; - D0486F091E523C8500091F0C /* GroupInfoController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupInfoController.swift; sourceTree = ""; }; D048B338203C532800038D05 /* ChatMediaInputPane.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMediaInputPane.swift; sourceTree = ""; }; D049EAE11E447AD500A2CD3A /* StickersChatInputContextPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StickersChatInputContextPanelNode.swift; sourceTree = ""; }; D049EAE51E44AD5600A2CD3A /* ChatMediaInputMetaSectionItemNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMediaInputMetaSectionItemNode.swift; sourceTree = ""; }; @@ -1056,18 +1006,14 @@ D04BB2C21E45020A00650E93 /* AuthorizationSequencePasswordEntryController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthorizationSequencePasswordEntryController.swift; sourceTree = ""; }; D04BB2C41E45022C00650E93 /* AuthorizationSequencePasswordEntryControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthorizationSequencePasswordEntryControllerNode.swift; sourceTree = ""; }; D04ECD711FFBF22B00DE9029 /* OpenUrl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenUrl.swift; sourceTree = ""; }; - D050A463229C052A0044F11A /* ChannelDiscussionGroupSetupSearchItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelDiscussionGroupSetupSearchItem.swift; sourceTree = ""; }; - D050A465229C06460044F11A /* ChannelDiscussionGroupSearchContainerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelDiscussionGroupSearchContainerNode.swift; sourceTree = ""; }; D05174AA1EAA5B4700A1BF36 /* WallpaperGalleryToolbarNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WallpaperGalleryToolbarNode.swift; sourceTree = ""; }; D05174C21EAE583800A1BF36 /* TelegramRootController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramRootController.swift; sourceTree = ""; }; D0528E551E65750600E2FEF5 /* SecretChatHandshakeStatusInputPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatHandshakeStatusInputPanelNode.swift; sourceTree = ""; }; D0528E571E65773300E2FEF5 /* DeleteChatInputPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeleteChatInputPanelNode.swift; sourceTree = ""; }; - D0528E621E65BECA00E2FEF5 /* UserInfoController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserInfoController.swift; sourceTree = ""; }; D0528E671E65CB2C00E2FEF5 /* UsernameSetupController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UsernameSetupController.swift; sourceTree = ""; }; D0528E6C1E65DE3B00E2FEF5 /* WebpagePreviewAccessoryPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebpagePreviewAccessoryPanelNode.swift; sourceTree = ""; }; D053B4361F1A9CA000E2D58A /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; D053DADB201AAAB100993D32 /* ChatTextInputMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTextInputMenu.swift; sourceTree = ""; }; - D0561DE71E574C3200E6B9E9 /* ChannelAdminsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelAdminsController.swift; sourceTree = ""; }; D0568AAC1DF198130022E7DA /* AudioWaveformNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AudioWaveformNode.swift; sourceTree = ""; }; D056CD6F1FF147B000880D28 /* IconButtonNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconButtonNode.swift; sourceTree = ""; }; D056CD751FF2A30900880D28 /* ChatSwipeToReplyRecognizer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatSwipeToReplyRecognizer.swift; sourceTree = ""; }; @@ -1076,8 +1022,6 @@ D0575AEC1E9FF1AD006F2541 /* ChatMediaInputTrendingPane.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMediaInputTrendingPane.swift; sourceTree = ""; }; D0575AEE1E9FF881006F2541 /* ChatMediaInputTrendingItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMediaInputTrendingItem.swift; sourceTree = ""; }; D0575AF61EA0ED4F006F2541 /* ChatMessageInstantVideoItemNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageInstantVideoItemNode.swift; sourceTree = ""; }; - D0575AF91EA0FDA7006F2541 /* AvatarGalleryController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarGalleryController.swift; sourceTree = ""; }; - D0575AFB1EA104A6006F2541 /* PeerAvatarImageGalleryItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerAvatarImageGalleryItem.swift; sourceTree = ""; }; D05811931DD5F9380057C769 /* AccountContext.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountContext.swift; sourceTree = ""; }; D05A32DD1E6F0097002760B4 /* PrivacyAndSecurityController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PrivacyAndSecurityController.swift; sourceTree = ""; }; D05A32E91E6F143C002760B4 /* RecentSessionsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RecentSessionsController.swift; sourceTree = ""; }; @@ -1094,9 +1038,6 @@ D060184322F35D2400796784 /* ProgressNavigationButtonNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ProgressNavigationButtonNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D060184522F35D2B00796784 /* ItemListUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D06018B422F3659900796784 /* ChatTextFormat.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTextFormat.swift; sourceTree = ""; }; - D0613FC71E5F8AB100202CDB /* ChannelInfoController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelInfoController.swift; sourceTree = ""; }; - D0613FCC1E60482300202CDB /* ChannelMembersController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelMembersController.swift; sourceTree = ""; }; - D0613FD41E6064D200202CDB /* ConvertToSupergroupController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConvertToSupergroupController.swift; sourceTree = ""; }; D06350AD2229A7F800FA2B32 /* InChatPrefetchManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InChatPrefetchManager.swift; sourceTree = ""; }; D0642EFB1F3E1E7B00792790 /* ChatHistoryNavigationButtons.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatHistoryNavigationButtons.swift; sourceTree = ""; }; D06879561DB8F22200424BBD /* FetchCachedRepresentations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FetchCachedRepresentations.swift; sourceTree = ""; }; @@ -1136,10 +1077,6 @@ D07CFF751DCA224100761F81 /* PeerSelectionControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerSelectionControllerNode.swift; sourceTree = ""; }; D07CFF861DCAAE5E00761F81 /* ForwardAccessoryPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ForwardAccessoryPanelNode.swift; sourceTree = ""; }; D07E413C208A494D00FCA8F0 /* ProxyServerActionSheetController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProxyServerActionSheetController.swift; sourceTree = ""; }; - D081A9A822EB26AE0069C449 /* PhoneLabelController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhoneLabelController.swift; sourceTree = ""; }; - D083491B209361DC008CFD52 /* AvatarGalleryItemFooterContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AvatarGalleryItemFooterContentNode.swift; sourceTree = ""; }; - D084023320E295F000065674 /* GroupStickerPackSetupController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupStickerPackSetupController.swift; sourceTree = ""; }; - D08775081E3E59DE00A97350 /* PeerNotificationSoundStrings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerNotificationSoundStrings.swift; sourceTree = ""; }; D087750F1E3F46A400A97350 /* ComposeController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ComposeController.swift; sourceTree = ""; }; D08775111E3F46AB00A97350 /* ComposeControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ComposeControllerNode.swift; sourceTree = ""; }; D08775181E3F53FC00A97350 /* ContactMultiselectionController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContactMultiselectionController.swift; sourceTree = ""; }; @@ -1158,7 +1095,6 @@ D0879C7322F874E100C4D6B3 /* PeerOnlineMarkerNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PeerOnlineMarkerNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0879C9522F875C000C4D6B3 /* PeerPresenceStatusManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PeerPresenceStatusManager.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0879CCB22F876DD00C4D6B3 /* ChatListSearchRecentPeersNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ChatListSearchRecentPeersNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D08984ED2114964700918162 /* GroupPreHistorySetupController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupPreHistorySetupController.swift; sourceTree = ""; }; D08984EF2114AE0C00918162 /* DataPrivacySettingsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataPrivacySettingsController.swift; sourceTree = ""; }; D08BDF631FA37BEA009D08E1 /* ChatRecordingPreviewInputPanelNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatRecordingPreviewInputPanelNode.swift; sourceTree = ""; }; D08BDF651FA8CB10009D08E1 /* EditSettingsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditSettingsController.swift; sourceTree = ""; }; @@ -1177,8 +1113,6 @@ D0943B041FDDFDA0001522CC /* OverlayInstantVideoNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverlayInstantVideoNode.swift; sourceTree = ""; }; D0943B061FDEC528001522CC /* InstantVideoRadialStatusNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InstantVideoRadialStatusNode.swift; sourceTree = ""; }; D0955FB32191278C00F89427 /* PresentationStrings.mapping */ = {isa = PBXFileReference; lastKnownFileType = file; name = PresentationStrings.mapping; path = TelegramUI/Resources/PresentationStrings.mapping; sourceTree = ""; }; - D097C26720DD0A1D007BB4B8 /* PeerReportController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerReportController.swift; sourceTree = ""; }; - D099261E1E69791E00D95539 /* GroupsInCommonController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupsInCommonController.swift; sourceTree = ""; }; D099E21F229405BB00561B75 /* Weak.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Weak.swift; sourceTree = ""; }; D099EA1E1DE7450B001AF5A8 /* HorizontalListContextResultsChatInputContextPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HorizontalListContextResultsChatInputContextPanelNode.swift; sourceTree = ""; }; D099EA201DE7451D001AF5A8 /* HorizontalListContextResultsChatInputPanelItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HorizontalListContextResultsChatInputPanelItem.swift; sourceTree = ""; }; @@ -1208,7 +1142,6 @@ D0A11BF91E7836C20081CE03 /* ChangePhoneNumberIntroController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangePhoneNumberIntroController.swift; sourceTree = ""; }; D0A11BFB1E7840750081CE03 /* ChangePhoneNumberController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangePhoneNumberController.swift; sourceTree = ""; }; D0A11BFD1E7840A50081CE03 /* ChangePhoneNumberControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangePhoneNumberControllerNode.swift; sourceTree = ""; }; - D0A749961E3AA25200AD786E /* NotificationSoundSelection.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationSoundSelection.swift; sourceTree = ""; }; D0A8998C217A294100759EE6 /* SaveIncomingMediaController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SaveIncomingMediaController.swift; sourceTree = ""; }; D0AA840B1FEB2BA3005C6E91 /* OverlayPlayerControlsNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverlayPlayerControlsNode.swift; sourceTree = ""; }; D0AB0BB01D6718DA002C78E7 /* libiconv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libiconv.tbd; path = usr/lib/libiconv.tbd; sourceTree = SDKROOT; }; @@ -1218,7 +1151,6 @@ D0AB0BB71D67191C002C78E7 /* SSignalKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SSignalKit.framework; path = "../../../../Library/Developer/Xcode/DerivedData/Telegram-iOS-diblohvjozhgaifjcniwdlixlilx/Build/Products/Debug-iphoneos/SSignalKit.framework"; sourceTree = ""; }; D0AB0BBA1D6719B5002C78E7 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; D0AB262821C307D7008F6685 /* ChatMessagePollBubbleContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessagePollBubbleContentNode.swift; sourceTree = ""; }; - D0AB269D21D56A12008F6685 /* ChannelPermissionsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelPermissionsController.swift; sourceTree = ""; }; D0ACCB1B1EC5FF4B0079D8BF /* ChatMessageCallBubbleContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageCallBubbleContentNode.swift; sourceTree = ""; }; D0AD02E91FFFEBEF00C1DCFF /* ChatMessageLiveLocationTextNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageLiveLocationTextNode.swift; sourceTree = ""; }; D0ADF965212E05A300310BBC /* TonePlayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TonePlayer.swift; sourceTree = ""; }; @@ -1239,9 +1171,6 @@ D0B21B16220D85E7003F741D /* TabBarAccountSwitchControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabBarAccountSwitchControllerNode.swift; sourceTree = ""; }; D0B21B1E22156D92003F741D /* LegacyCache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyCache.swift; sourceTree = ""; }; D0B21B202215B539003F741D /* LogoutOptionsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogoutOptionsController.swift; sourceTree = ""; }; - D0B2F76720528E3D00D3BFB9 /* UserInfoEditingPhoneActionItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInfoEditingPhoneActionItem.swift; sourceTree = ""; }; - D0B2F7692052920D00D3BFB9 /* UserInfoEditingPhoneItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInfoEditingPhoneItem.swift; sourceTree = ""; }; - D0B2F76B2052A7D600D3BFB9 /* SinglePhoneInputNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SinglePhoneInputNode.swift; sourceTree = ""; }; D0B37C5B1F8D22AE004252DF /* ThemeSettingsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeSettingsController.swift; sourceTree = ""; }; D0B37C5D1F8D26A8004252DF /* ThemeSettingsChatPreviewItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeSettingsChatPreviewItem.swift; sourceTree = ""; }; D0B37C5F1F8D286E004252DF /* ThemeSettingsFontSizeItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeSettingsFontSizeItem.swift; sourceTree = ""; }; @@ -1250,12 +1179,10 @@ D0B69C3820EBB397003632C7 /* ChatMessageInteractiveInstantVideoNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageInteractiveInstantVideoNode.swift; sourceTree = ""; }; D0B7F8E11D8A18070045D939 /* PeerMediaCollectionController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerMediaCollectionController.swift; sourceTree = ""; }; D0B7F8E71D8A1F5F0045D939 /* PeerMediaCollectionControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerMediaCollectionControllerNode.swift; sourceTree = ""; }; - D0B843CC1DA903BB005F29E1 /* PeerInfoController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerInfoController.swift; sourceTree = ""; }; D0B85C1B1FF6F76000E795B4 /* AuthorizationSequencePasswordRecoveryController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthorizationSequencePasswordRecoveryController.swift; sourceTree = ""; }; D0B85C1D1FF6F76600E795B4 /* AuthorizationSequencePasswordRecoveryControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthorizationSequencePasswordRecoveryControllerNode.swift; sourceTree = ""; }; D0B85C201FF70BEC00E795B4 /* AuthorizationSequenceAwaitingAccountResetControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthorizationSequenceAwaitingAccountResetControllerNode.swift; sourceTree = ""; }; D0B85C221FF70BF400E795B4 /* AuthorizationSequenceAwaitingAccountResetController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthorizationSequenceAwaitingAccountResetController.swift; sourceTree = ""; }; - D0B98E7E1E575D2C008084B1 /* ChannelBlacklistController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelBlacklistController.swift; sourceTree = ""; }; D0BA6F821D784C520034826E /* ChatInputPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatInputPanelNode.swift; sourceTree = ""; }; D0BA6F841D784ECD0034826E /* ChatInterfaceStateInputPanels.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatInterfaceStateInputPanels.swift; sourceTree = ""; }; D0BA6F871D784F880034826E /* ChatMessageSelectionInputPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageSelectionInputPanelNode.swift; sourceTree = ""; }; @@ -1268,7 +1195,6 @@ D0BCC3D520404CD8008126C2 /* ChatMessageActionSheetControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageActionSheetControllerNode.swift; sourceTree = ""; }; D0BFAE4520AB04FB00793CF2 /* ChatRestrictedInputPanelNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatRestrictedInputPanelNode.swift; sourceTree = ""; }; D0BFAE4D20AB1D7B00793CF2 /* DisabledContextResultsChatInputContextPanelNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DisabledContextResultsChatInputContextPanelNode.swift; sourceTree = ""; }; - D0BFAE4F20AB2A1300793CF2 /* PeerBanTimeoutController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerBanTimeoutController.swift; sourceTree = ""; }; D0C0B59A1EE019E5000F4D2C /* ChatSearchNavigationContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatSearchNavigationContentNode.swift; sourceTree = ""; }; D0C0B59E1EE082F5000F4D2C /* ChatSearchInputPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatSearchInputPanelNode.swift; sourceTree = ""; }; D0C0B5B01EE1C421000F4D2C /* ChatDateSelectionSheet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatDateSelectionSheet.swift; sourceTree = ""; }; @@ -1408,13 +1334,9 @@ D0DF0CA01D821B28008AEB01 /* HashtagChatInputPanelItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HashtagChatInputPanelItem.swift; sourceTree = ""; }; D0DF0CA31D82BCD0008AEB01 /* MentionChatInputContextPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MentionChatInputContextPanelNode.swift; sourceTree = ""; }; D0DFD5E11FCE2BA50039B3B1 /* CalculatingCacheSizeItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CalculatingCacheSizeItem.swift; sourceTree = ""; }; - D0E119992297F9C6008CAE3A /* ChannelDiscussionGroupSetupController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelDiscussionGroupSetupController.swift; sourceTree = ""; }; - D0E1199B229808B8008CAE3A /* ChannelDiscussionGroupSetupHeaderItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelDiscussionGroupSetupHeaderItem.swift; sourceTree = ""; }; - D0E1199D229809B6008CAE3A /* ChannelDiscussionGroupActionSheetItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelDiscussionGroupActionSheetItem.swift; sourceTree = ""; }; D0E23DD71E805E2600B9B6D2 /* FeaturedStickerPacksController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FeaturedStickerPacksController.swift; sourceTree = ""; }; D0E23DDC1E8081A200B9B6D2 /* ArchivedStickerPacksController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ArchivedStickerPacksController.swift; sourceTree = ""; }; D0E2CE6B222930540084E3DD /* PrefetchManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrefetchManager.swift; sourceTree = ""; }; - D0E305A41E5B2BFB00D7A3A2 /* ValidateAddressNameInteractive.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ValidateAddressNameInteractive.swift; sourceTree = ""; }; D0E35A061DE4803400BC6096 /* VerticalListContextResultsChatInputContextPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VerticalListContextResultsChatInputContextPanelNode.swift; sourceTree = ""; }; D0E35A081DE4804900BC6096 /* VerticalListContextResultsChatInputPanelItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VerticalListContextResultsChatInputPanelItem.swift; sourceTree = ""; }; D0E7A1BC1D8C246D00C37A6F /* ChatHistoryListNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatHistoryListNode.swift; sourceTree = ""; }; @@ -1427,10 +1349,6 @@ D0E8175620122DAD00B82BBB /* ChatRecentActionsSearchNavigationContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatRecentActionsSearchNavigationContentNode.swift; sourceTree = ""; }; D0E8175820122FE100B82BBB /* ChatRecentActionsFilterController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatRecentActionsFilterController.swift; sourceTree = ""; }; D0E8175A201254FA00B82BBB /* ChatRecentActionsEmptyNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatRecentActionsEmptyNode.swift; sourceTree = ""; }; - D0E8B8B8204477B600605593 /* SecretChatKeyVisualization.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretChatKeyVisualization.swift; sourceTree = ""; }; - D0E8B8BA2044780600605593 /* ItemListSecretChatKeyItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ItemListSecretChatKeyItem.swift; sourceTree = ""; }; - D0E8B8BC204479A500605593 /* SecretChatKeyController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretChatKeyController.swift; sourceTree = ""; }; - D0E8B8BE20447A4600605593 /* SecretChatKeyControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretChatKeyControllerNode.swift; sourceTree = ""; }; D0E9B9E91F00853C00F079A4 /* PhoneCountries.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PhoneCountries.txt; path = TelegramUI/Resources/PhoneCountries.txt; sourceTree = ""; }; D0E9BA691F056F4C00F079A4 /* stp_card_amex@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_amex@2x.png"; sourceTree = ""; }; D0E9BA6A1F056F4C00F079A4 /* stp_card_amex@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_amex@3x.png"; sourceTree = ""; }; @@ -1490,20 +1408,13 @@ D0EF40DE1E73100D000DFCD4 /* ChatHistoryNavigationStack.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatHistoryNavigationStack.swift; sourceTree = ""; }; D0F02CCB1E96EF350065DEE2 /* ChatMediaInputStickerPane.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMediaInputStickerPane.swift; sourceTree = ""; }; D0F02CCD1E96FACE0065DEE2 /* ChatMediaInputGifPane.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMediaInputGifPane.swift; sourceTree = ""; }; - D0F19F6120E5694D00EEC860 /* GroupStickerPackCurrentItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupStickerPackCurrentItem.swift; sourceTree = ""; }; D0F19F6320E5A15B00EEC860 /* ChatMediaInputPeerSpecificItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMediaInputPeerSpecificItem.swift; sourceTree = ""; }; D0F3A8AA1E82D83E00B4C64C /* TelegramAccountAuxiliaryMethods.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramAccountAuxiliaryMethods.swift; sourceTree = ""; }; D0F3A8B51E83120A00B4C64C /* FetchResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FetchResource.swift; sourceTree = ""; }; D0F3A8B91E831E6300B4C64C /* FetchVideoMediaResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FetchVideoMediaResource.swift; sourceTree = ""; }; - D0F4B019211073C500912B92 /* DeviceContactInfoController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceContactInfoController.swift; sourceTree = ""; }; - D0F4B0212110972300912B92 /* ContactInfoStrings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactInfoStrings.swift; sourceTree = ""; }; D0F53BEB1E784DA900117362 /* ChangePhoneNumberCodeController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangePhoneNumberCodeController.swift; sourceTree = ""; }; D0F53BF61E79593500117362 /* AuthorizationSequenceSignUpController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthorizationSequenceSignUpController.swift; sourceTree = ""; }; D0F53BF81E79593F00117362 /* AuthorizationSequenceSignUpControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthorizationSequenceSignUpControllerNode.swift; sourceTree = ""; }; - D0F67FEF1EE6B8A8000E5906 /* ChannelMembersSearchController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelMembersSearchController.swift; sourceTree = ""; }; - D0F67FF11EE6B915000E5906 /* ChannelMembersSearchControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelMembersSearchControllerNode.swift; sourceTree = ""; }; - D0F67FF31EE6C10F000E5906 /* ChannelMembersSearchContainerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelMembersSearchContainerNode.swift; sourceTree = ""; }; - D0F680091EE750EE000E5906 /* ChannelBannedMemberController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelBannedMemberController.swift; sourceTree = ""; }; D0F69CD61D6B87D30046BCD6 /* MediaManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MediaManager.swift; sourceTree = ""; }; D0F69DB91D6B88190046BCD6 /* TelegramUI.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = TelegramUI.xcconfig; path = TelegramUI/Config/TelegramUI.xcconfig; sourceTree = ""; }; D0F69DC41D6B89E10046BCD6 /* RadialProgressNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadialProgressNode.swift; sourceTree = ""; }; @@ -1540,8 +1451,6 @@ D0F69EA91D6B9BCB0046BCD6 /* libavformat.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libavformat.a; path = "third-party/FFmpeg-iOS/lib/libavformat.a"; sourceTree = ""; }; D0F69EAA1D6B9BCB0046BCD6 /* libavutil.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libavutil.a; path = "third-party/FFmpeg-iOS/lib/libavutil.a"; sourceTree = ""; }; D0F69EAB1D6B9BCB0046BCD6 /* libswresample.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libswresample.a; path = "third-party/FFmpeg-iOS/lib/libswresample.a"; sourceTree = ""; }; - D0F760DA222034910074F7E5 /* ChannelStatsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelStatsController.swift; sourceTree = ""; }; - D0F760DC222034980074F7E5 /* ChannelStatsControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelStatsControllerNode.swift; sourceTree = ""; }; D0F7AB381DCFF87B009AD9A1 /* ChatMessageDateHeader.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageDateHeader.swift; sourceTree = ""; }; D0FA08C7204982DC00DD23FC /* ChatTextInputActionButtonsNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTextInputActionButtonsNode.swift; sourceTree = ""; }; D0FA08C92049BEAC00DD23FC /* ChatEmptyNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatEmptyNode.swift; sourceTree = ""; }; @@ -1564,6 +1473,16 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D03E42E6230572530049C28B /* ItemListAddressItem.framework in Frameworks */, + D03E42B423056C730049C28B /* EncryptionKeyVisualization.framework in Frameworks */, + D03E428A23056B610049C28B /* NotificationSoundSelectionUI.framework in Frameworks */, + D03E425623056A4A0049C28B /* MapResourceToAvatarSizes.framework in Frameworks */, + D03E4226230564B20049C28B /* SinglePhoneInputNode.framework in Frameworks */, + D03E41FA2305634F0049C28B /* NotificationMuteSettingsUI.framework in Frameworks */, + D03E41CE2304D9800049C28B /* ItemListStickerPackItem.framework in Frameworks */, + D03E41962304D79A0049C28B /* Emoji.framework in Frameworks */, + D03E41682304D4820049C28B /* PeerAvatarGalleryUI.framework in Frameworks */, + D03E40C72304D12D0049C28B /* PeerInfoUI.framework in Frameworks */, D03E405D2304CE920049C28B /* Geocoding.framework in Frameworks */, D03E40352304CD2A0049C28B /* PeersNearbyUI.framework in Frameworks */, D03E3FF02304C7FA0049C28B /* LocalMediaResources.framework in Frameworks */, @@ -1814,7 +1733,6 @@ isa = PBXGroup; children = ( D000CABB21F158AD0011B15D /* PrepareSecretThumbnailData.swift */, - D0E8B8B8204477B600605593 /* SecretChatKeyVisualization.swift */, D0F69E941D6B8C9B0046BCD6 /* ConvertToWebP.swift */, ); name = Images; @@ -1921,8 +1839,6 @@ children = ( D0BCC3D1203F0A6C008126C2 /* StringForMessageTimestampStatus.swift */, D00ACA592022897D0045D427 /* ProcessedPeerRestrictionText.swift */, - D01D6BFB1E42AB3C006151C6 /* EmojiUtils.swift */, - D08775081E3E59DE00A97350 /* PeerNotificationSoundStrings.swift */, 0900678E21ED8E0E00530762 /* HexColor.swift */, 0947FCAF224055990086741C /* StringHash.swift */, 09F2158C225CF5BC00AEDF6D /* Pasteboard.swift */, @@ -1942,7 +1858,6 @@ isa = PBXGroup; children = ( D0192D43210A5AA50005FA10 /* DeviceContactDataManager.swift */, - D0F4B0212110972300912B92 /* ContactInfoStrings.swift */, 090E63ED2196FE3A00E3C035 /* OpenAddContact.swift */, ); name = "Device Contacts"; @@ -2041,7 +1956,6 @@ children = ( D0579E6D2179178700495DC7 /* Exceptions */, D01B279C1E394A500022A4C0 /* NotificationsAndSounds.swift */, - D0A749961E3AA25200AD786E /* NotificationSoundSelection.swift */, D02C81722177AC5900CD1006 /* NotificationSearchItem.swift */, ); name = Notifications; @@ -2192,15 +2106,6 @@ name = Root; sourceTree = ""; }; - D0575AF81EA0FD94006F2541 /* Avatar Gallery */ = { - isa = PBXGroup; - children = ( - D0575AF91EA0FDA7006F2541 /* AvatarGalleryController.swift */, - D083491B209361DC008CFD52 /* AvatarGalleryItemFooterContentNode.swift */, - ); - name = "Avatar Gallery"; - sourceTree = ""; - }; D0579E6D2179178700495DC7 /* Exceptions */ = { isa = PBXGroup; children = ( @@ -2314,6 +2219,16 @@ D08D45281D5E340200A7428A /* Frameworks */ = { isa = PBXGroup; children = ( + D03E42E5230572530049C28B /* ItemListAddressItem.framework */, + D03E42B323056C730049C28B /* EncryptionKeyVisualization.framework */, + D03E428923056B610049C28B /* NotificationSoundSelectionUI.framework */, + D03E425523056A4A0049C28B /* MapResourceToAvatarSizes.framework */, + D03E4225230564B20049C28B /* SinglePhoneInputNode.framework */, + D03E41F92305634F0049C28B /* NotificationMuteSettingsUI.framework */, + D03E41CD2304D9800049C28B /* ItemListStickerPackItem.framework */, + D03E41952304D79A0049C28B /* Emoji.framework */, + D03E41672304D4820049C28B /* PeerAvatarGalleryUI.framework */, + D03E40C62304D12D0049C28B /* PeerInfoUI.framework */, D03E405C2304CE920049C28B /* Geocoding.framework */, D03E40342304CD2A0049C28B /* PeersNearbyUI.framework */, D03E3FEF2304C7FA0049C28B /* LocalMediaResources.framework */, @@ -2619,7 +2534,6 @@ D0C50E3D1E93D09200F62E39 /* NotificationItemContainerNode.swift */, D0C50E3B1E93CC2600F62E39 /* NotificationItem.swift */, D0C50E3F1E93D3B000F62E39 /* ChatMessageNotificationItem.swift */, - 0952D1742176DEB500194860 /* NotificationMuteSettingsController.swift */, ); name = Notifications; sourceTree = ""; @@ -2903,52 +2817,6 @@ path = TelegramUI/Resources/Stripe; sourceTree = ""; }; - D0EE97131D88BB1A006C18E1 /* Peer Info */ = { - isa = PBXGroup; - children = ( - D0B843CC1DA903BB005F29E1 /* PeerInfoController.swift */, - D0486F091E523C8500091F0C /* GroupInfoController.swift */, - D03E5E0E1E55F8B90029569A /* ChannelVisibilityController.swift */, - D0561DE71E574C3200E6B9E9 /* ChannelAdminsController.swift */, - D00BDA1E1EE5B69200C64C5E /* ChannelAdminController.swift */, - D0F680091EE750EE000E5906 /* ChannelBannedMemberController.swift */, - D0B98E7E1E575D2C008084B1 /* ChannelBlacklistController.swift */, - D0AB269D21D56A12008F6685 /* ChannelPermissionsController.swift */, - D0613FC71E5F8AB100202CDB /* ChannelInfoController.swift */, - D0613FCC1E60482300202CDB /* ChannelMembersController.swift */, - D0613FD41E6064D200202CDB /* ConvertToSupergroupController.swift */, - D08984ED2114964700918162 /* GroupPreHistorySetupController.swift */, - D0528E621E65BECA00E2FEF5 /* UserInfoController.swift */, - D099261E1E69791E00D95539 /* GroupsInCommonController.swift */, - D0F67FEF1EE6B8A8000E5906 /* ChannelMembersSearchController.swift */, - D0F67FF11EE6B915000E5906 /* ChannelMembersSearchControllerNode.swift */, - D0F67FF31EE6C10F000E5906 /* ChannelMembersSearchContainerNode.swift */, - D04281EE200E3D88009DDE36 /* GroupInfoSearchItem.swift */, - D04281F0200E4084009DDE36 /* GroupInfoSearchNavigationContentNode.swift */, - D0E8B8BA2044780600605593 /* ItemListSecretChatKeyItem.swift */, - D0E8B8BC204479A500605593 /* SecretChatKeyController.swift */, - D0E8B8BE20447A4600605593 /* SecretChatKeyControllerNode.swift */, - D0BFAE4F20AB2A1300793CF2 /* PeerBanTimeoutController.swift */, - D097C26720DD0A1D007BB4B8 /* PeerReportController.swift */, - D084023320E295F000065674 /* GroupStickerPackSetupController.swift */, - D0F19F6120E5694D00EEC860 /* GroupStickerPackCurrentItem.swift */, - D0F4B019211073C500912B92 /* DeviceContactInfoController.swift */, - 092F368F2157AB46001A9F49 /* ItemListCallListItem.swift */, - 09DD88E821BAF65E000766BC /* ItemListAddressItem.swift */, - D0F760DA222034910074F7E5 /* ChannelStatsController.swift */, - D0F760DC222034980074F7E5 /* ChannelStatsControllerNode.swift */, - D0E119992297F9C6008CAE3A /* ChannelDiscussionGroupSetupController.swift */, - D0E1199B229808B8008CAE3A /* ChannelDiscussionGroupSetupHeaderItem.swift */, - D0E1199D229809B6008CAE3A /* ChannelDiscussionGroupActionSheetItem.swift */, - D050A463229C052A0044F11A /* ChannelDiscussionGroupSetupSearchItem.swift */, - D050A465229C06460044F11A /* ChannelDiscussionGroupSearchContainerNode.swift */, - 090E778922A9F23C00CD99F5 /* ChannelOwnershipTransferController.swift */, - D025402222E1C92D00AC0195 /* ChatSlowmodeItem.swift */, - D081A9A822EB26AE0069C449 /* PhoneLabelController.swift */, - ); - name = "Peer Info"; - sourceTree = ""; - }; D0EEE99F2165583B001292A6 /* Document */ = { isa = PBXGroup; children = ( @@ -3003,7 +2871,6 @@ D00C7CE51E378FD00080C3D5 /* RadialTimeoutNode.swift */, D0568AAC1DF198130022E7DA /* AudioWaveformNode.swift */, D0BC38621E3F9EFA0044D6FE /* EditableTokenListNode.swift */, - D0B2F76B2052A7D600D3BFB9 /* SinglePhoneInputNode.swift */, D056CD6F1FF147B000880D28 /* IconButtonNode.swift */, 09F85BA621E7DA5F00D73170 /* BlurredImageNode.swift */, 09749BCE21F236F2008FDDE9 /* ModernCheckNode.swift */, @@ -3021,9 +2888,7 @@ D00DE6961E8E8E21003F0D76 /* Share */, D008178022B47450008A895F /* Notification Content */, D0F69E4E1D6B8BB90046BCD6 /* Media */, - D0F69E6C1D6B8C220046BCD6 /* Contacts */, D0BC38681E3FB92B0044D6FE /* Compose */, - D0EE97131D88BB1A006C18E1 /* Peer Info */, D0D2689B1D79D31500C422DA /* Peer Selection */, D0F69E791D6B8C3B0046BCD6 /* Settings */, D0C50E361E93CAF200F62E39 /* Notifications */, @@ -3179,7 +3044,6 @@ children = ( D0B7F8DF1D8A17D20045D939 /* Collection */, D0F69E4F1D6B8BC40046BCD6 /* Gallery */, - D0575AF81EA0FD94006F2541 /* Avatar Gallery */, D0EEE99F2165583B001292A6 /* Document */, D07827CC1E03F32C00071108 /* Instant Page */, D020A9D81FEAE611008C66F7 /* Player */, @@ -3199,20 +3063,10 @@ D0F69E5A1D6B8BDD0046BCD6 /* Items */ = { isa = PBXGroup; children = ( - D0575AFB1EA104A6006F2541 /* PeerAvatarImageGalleryItem.swift */, ); name = Items; sourceTree = ""; }; - D0F69E6C1D6B8C220046BCD6 /* Contacts */ = { - isa = PBXGroup; - children = ( - D0B2F76720528E3D00D3BFB9 /* UserInfoEditingPhoneActionItem.swift */, - D0B2F7692052920D00D3BFB9 /* UserInfoEditingPhoneItem.swift */, - ); - name = Contacts; - sourceTree = ""; - }; D0F69E791D6B8C3B0046BCD6 /* Settings */ = { isa = PBXGroup; children = ( @@ -3246,8 +3100,6 @@ isa = PBXGroup; children = ( D0F69E831D6B8C850046BCD6 /* FrameworkBundle.swift */, - D00C7CF51E37BF680080C3D5 /* SecretChatKeyVisualization.h */, - D00C7CF61E37BF680080C3D5 /* SecretChatKeyVisualization.m */, D0208AD31FA33D14001F0D5F /* RaiseToListenActivator.h */, D0208AD41FA33D14001F0D5F /* RaiseToListenActivator.m */, D0208AD71FA34017001F0D5F /* DeviceProximityManager.h */, @@ -3270,10 +3122,8 @@ D01848F021A2323D00B6DEBD /* Strings */, D073CE701DCBF23F007511FD /* DeclareEncodables.swift */, D073CE641DCBC26B007511FD /* ServiceSoundManager.swift */, - D0E305A41E5B2BFB00D7A3A2 /* ValidateAddressNameInteractive.swift */, D0F3A8AA1E82D83E00B4C64C /* TelegramAccountAuxiliaryMethods.swift */, D01DBA9A209CC6AD00C64E64 /* ChatLinkPreview.swift */, - D000CAB921EE130D0011B15D /* MapResourceToAvatarSizes.swift */, 090B48C72200BCA8005083FA /* WallpaperUploadManager.swift */, 09D96898221DE92600B1458A /* ID3ArtworkReader.swift */, 09E4A806223D4B860038140F /* AccountUtils.swift */, @@ -3329,7 +3179,6 @@ children = ( D0FA0AC41E77431A005BB9B7 /* InstalledStickerPacksController.swift */, D0E23DD71E805E2600B9B6D2 /* FeaturedStickerPacksController.swift */, - D04791661E79A22000F18979 /* ItemListStickerPackItem.swift */, D0E23DDC1E8081A200B9B6D2 /* ArchivedStickerPacksController.swift */, ); name = Stickers; @@ -3588,16 +3437,10 @@ D0383EE6207D299600C45548 /* EmojisChatInputPanelItem.swift in Sources */, D00817E322B47A14008A895F /* TGPresentationAutoNightPreferences.m in Sources */, D03E3D2B23045B120049C28B /* ChatMessageRestrictedBubbleContentNode.swift in Sources */, - D0E1199E229809B6008CAE3A /* ChannelDiscussionGroupActionSheetItem.swift in Sources */, 09EDAD2A220DA6A40012A50B /* VolumeButtons.swift in Sources */, - D0E1199A2297F9C6008CAE3A /* ChannelDiscussionGroupSetupController.swift in Sources */, - D083491C209361DC008CFD52 /* AvatarGalleryItemFooterContentNode.swift in Sources */, - 090E778A22A9F23C00CD99F5 /* ChannelOwnershipTransferController.swift in Sources */, D06E4C352134AE3C00088087 /* ThemeAutoNightSettingsController.swift in Sources */, - D0B2F76C2052A7D600D3BFB9 /* SinglePhoneInputNode.swift in Sources */, D04281F6200E5AC2009DDE36 /* ChatRecentActionsControllerNode.swift in Sources */, 09DD5D5221ED175300D7007A /* WallpaperColorPickerNode.swift in Sources */, - D0B2F76820528E3D00D3BFB9 /* UserInfoEditingPhoneActionItem.swift in Sources */, D01848E821A03BDA00B6DEBD /* ChatSearchState.swift in Sources */, D0208ADC1FA346A4001F0D5F /* RaiseToListen.swift in Sources */, 09D304182173C15700C00567 /* WatchSettingsController.swift in Sources */, @@ -3607,12 +3450,9 @@ D0EC6CC11EB9F58800EBF1C3 /* LegacyCamera.swift in Sources */, D0754D1E1EEDDF6200884F6E /* ChatMessageAttachedContentNode.swift in Sources */, D0CFBB911FD881A600B65C0D /* AudioRecordningToneData.swift in Sources */, - D050A466229C06460044F11A /* ChannelDiscussionGroupSearchContainerNode.swift in Sources */, D0EC6CC51EB9F58800EBF1C3 /* TGDataItem.m in Sources */, - 092F36902157AB46001A9F49 /* ItemListCallListItem.swift in Sources */, D00817D522B47A14008A895F /* ApplicationShortcutItem.swift in Sources */, D077C5C122B59A800097D617 /* ApplicationContext.swift in Sources */, - D0EC6CC71EB9F58800EBF1C3 /* PeerNotificationSoundStrings.swift in Sources */, D0EC6CC91EB9F58800EBF1C3 /* ConvertToWebP.swift in Sources */, D09E637F1F0E8C9F003444CD /* PeerMessagesMediaPlaylist.swift in Sources */, D0EC6CCC1EB9F58800EBF1C3 /* ServiceSoundManager.swift in Sources */, @@ -3623,20 +3463,15 @@ D0EC6CD11EB9F58800EBF1C3 /* UrlHandling.swift in Sources */, 09F85BA521E7821500D73170 /* ThemeGridSelectionPanelNode.swift in Sources */, 09CE950E2237E45E00A7D2C3 /* CachedFaqInstantPage.swift in Sources */, - D0EC6CD71EB9F58800EBF1C3 /* EmojiUtils.swift in Sources */, - D0EC6CD91EB9F58800EBF1C3 /* ValidateAddressNameInteractive.swift in Sources */, 09F664CA21EB4F2700AB7E26 /* ThemeGridSearchColorsItem.swift in Sources */, D025402922E1F7F500AC0195 /* ChatTextInputSlowmodePlaceholderNode.swift in Sources */, D0380DB8204EE0A5000414AB /* ChatInstantVideoMessageDurationNode.swift in Sources */, D0EC6CDC1EB9F58800EBF1C3 /* TelegramAccountAuxiliaryMethods.swift in Sources */, D0642EFC1F3E1E7B00792790 /* ChatHistoryNavigationButtons.swift in Sources */, - D025402322E1C92D00AC0195 /* ChatSlowmodeItem.swift in Sources */, D05D8B3F2192FC6E0064586F /* LocalizationListControllerNode.swift in Sources */, D0AA840C1FEB2BA3005C6E91 /* OverlayPlayerControlsNode.swift in Sources */, 09DD5D5021ECC3C400D7007A /* SuppressContactsWarning.swift in Sources */, D02B198A21F1DA9E0094A764 /* SharedAccountContext.swift in Sources */, - D0F67FF21EE6B915000E5906 /* ChannelMembersSearchControllerNode.swift in Sources */, - D0E8B8BF20447A4600605593 /* SecretChatKeyControllerNode.swift in Sources */, D02B2B9820810DA00062476B /* StickerPaneSearchStickerItem.swift in Sources */, D020A9DC1FEAE6E7008C66F7 /* OverlayPlayerControllerNode.swift in Sources */, D04ECD721FFBF22B00DE9029 /* OpenUrl.swift in Sources */, @@ -3675,10 +3510,8 @@ D0EC6D0C1EB9F58800EBF1C3 /* stream.c in Sources */, 09FFBCD72281BB2D00C33B4B /* ChatTextLinkEditController.swift in Sources */, 09CE95042236C6B300A7D2C3 /* CachedInstantPages.swift in Sources */, - D0AB269E21D56A12008F6685 /* ChannelPermissionsController.swift in Sources */, D0B69C3920EBB397003632C7 /* ChatMessageInteractiveInstantVideoNode.swift in Sources */, D056CD701FF147B000880D28 /* IconButtonNode.swift in Sources */, - D0F760DB222034910074F7E5 /* ChannelStatsController.swift in Sources */, D0FA08CA2049BEAC00DD23FC /* ChatEmptyNode.swift in Sources */, 09CE95002232729A00A7D2C3 /* StickerPaneSearchContentNode.swift in Sources */, D00817D122B47A14008A895F /* LegacyDataImport.swift in Sources */, @@ -3693,7 +3526,6 @@ D0B21B15220D85DD003F741D /* TabBarAccountSwitchController.swift in Sources */, D0ADF966212E05A300310BBC /* TonePlayer.swift in Sources */, D007019E2029EFDD006B9E34 /* ICloudResources.swift in Sources */, - D0F760DD222034980074F7E5 /* ChannelStatsControllerNode.swift in Sources */, D0EC6D251EB9F58800EBF1C3 /* FetchCachedRepresentations.swift in Sources */, D0EC6D261EB9F58800EBF1C3 /* TransformOutgoingMessageMedia.swift in Sources */, D0EC6D271EB9F58800EBF1C3 /* FetchResource.swift in Sources */, @@ -3702,8 +3534,6 @@ 09EDAD2E221164440012A50B /* AutodownloadSizeLimitItem.swift in Sources */, D008177E22B46B7E008A895F /* TGItemProviderSignals.m in Sources */, 099529B421D3E5D800805E13 /* CheckDiskSpace.swift in Sources */, - D04281EF200E3D88009DDE36 /* GroupInfoSearchItem.swift in Sources */, - D0F67FF41EE6C10F000E5906 /* ChannelMembersSearchContainerNode.swift in Sources */, D0EC6D2A1EB9F58800EBF1C3 /* FetchPhotoLibraryImageResource.swift in Sources */, D0EC6D2B1EB9F58800EBF1C3 /* FileMediaResourceStatus.swift in Sources */, 09510B0F22F9347E0078CAB7 /* BundleResource.swift in Sources */, @@ -3711,11 +3541,9 @@ D008177D22B46B7E008A895F /* TGContactModel.m in Sources */, D0EC6D301EB9F58800EBF1C3 /* RadialProgressNode.swift in Sources */, D0EC6D311EB9F58800EBF1C3 /* RadialTimeoutNode.swift in Sources */, - D0BFAE5020AB2A1300793CF2 /* PeerBanTimeoutController.swift in Sources */, 09CE950A2237B93500A7D2C3 /* SettingsSearchResultItem.swift in Sources */, D0AE303922B1D3620058D3BC /* LegacyBridgeAudio.swift in Sources */, D008177F22B46B7E008A895F /* TGShareLocationSignals.m in Sources */, - D0E8B8B9204477B600605593 /* SecretChatKeyVisualization.swift in Sources */, D0185E8C208A025A005E1A6C /* ProxySettingsServerItem.swift in Sources */, 090E63EE2196FE3A00E3C035 /* OpenAddContact.swift in Sources */, D06F1EA41F6C0A5D00FE8B74 /* ChatHistorySearchContainerNode.swift in Sources */, @@ -3723,10 +3551,8 @@ D0EC6D3B1EB9F58800EBF1C3 /* EditableTokenListNode.swift in Sources */, D0E2CE6C222930540084E3DD /* PrefetchManager.swift in Sources */, D0CE8CE51F6F354400AA2DB0 /* ChatTextInputAccessoryItem.swift in Sources */, - D097C26820DD0A1D007BB4B8 /* PeerReportController.swift in Sources */, 09F664C621EB400A00AB7E26 /* ThemeGridSearchContentNode.swift in Sources */, 0962E67921B67A9800245FD9 /* ChatMessageAnimatedStickerItemNode.swift in Sources */, - D0B2F76A2052920D00D3BFB9 /* UserInfoEditingPhoneItem.swift in Sources */, D0AEAE272080D6970013176E /* PaneSearchBarNode.swift in Sources */, D0EC6D531EB9F58800EBF1C3 /* ChatHistoryViewForLocation.swift in Sources */, D06BB8821F58994B0084FC30 /* LegacyInstantVideoController.swift in Sources */, @@ -3742,7 +3568,6 @@ D025402722E1F23000AC0195 /* ChatSendButtonRadialStatusNode.swift in Sources */, D0BFAE4620AB04FB00793CF2 /* ChatRestrictedInputPanelNode.swift in Sources */, 09EDAD30221164530012A50B /* AutodownloadDataUsagePickerItem.swift in Sources */, - D000CABA21EE130D0011B15D /* MapResourceToAvatarSizes.swift in Sources */, D06E0F8E1F79ABFB003CF3DD /* ChatLoadingNode.swift in Sources */, D0EC6D5A1EB9F58800EBF1C3 /* ListMessageItem.swift in Sources */, D0EC6D5B1EB9F58800EBF1C3 /* ListMessageNode.swift in Sources */, @@ -3755,7 +3580,6 @@ D0EC6D601EB9F58800EBF1C3 /* GridHoleItem.swift in Sources */, D0EC6D611EB9F58800EBF1C3 /* GridMessageSelectionNode.swift in Sources */, D0754D201EEDEBA000884F6E /* ChatMessageGameBubbleContentNode.swift in Sources */, - D050A464229C052A0044F11A /* ChannelDiscussionGroupSetupSearchItem.swift in Sources */, D0B85C1E1FF6F76600E795B4 /* AuthorizationSequencePasswordRecoveryControllerNode.swift in Sources */, 09B4EE4721A6D33F00847FA6 /* RecentSessionsEmptyStateItem.swift in Sources */, 09F664C421EAB98300AB7E26 /* ThemeColorsGridControllerItem.swift in Sources */, @@ -3780,7 +3604,6 @@ D0C12EB01F9A8D1300600BB2 /* ListMessageDateHeader.swift in Sources */, D0EC6D741EB9F58800EBF1C3 /* AuthorizationSequenceSignUpControllerNode.swift in Sources */, D0EC6D751EB9F58800EBF1C3 /* TelegramRootController.swift in Sources */, - D0F6800A1EE750EE000E5906 /* ChannelBannedMemberController.swift in Sources */, D03AA4DF202DBF6F0056C405 /* ChatContextResultPeekContentNode.swift in Sources */, D00817D622B47A14008A895F /* TGProxyItem.m in Sources */, 0910B0ED21FA178C00F8F87D /* WallpaperPreviewMedia.swift in Sources */, @@ -3812,7 +3635,6 @@ D01DBA9B209CC6AD00C64E64 /* ChatLinkPreview.swift in Sources */, D0EC6D901EB9F58900EBF1C3 /* ChatMessageBubbleContentNode.swift in Sources */, D0EC6D911EB9F58900EBF1C3 /* ChatMessageBubbleItemNode.swift in Sources */, - D0E8B8BD204479A500605593 /* SecretChatKeyController.swift in Sources */, D0B85C1C1FF6F76000E795B4 /* AuthorizationSequencePasswordRecoveryController.swift in Sources */, D0EC6D921EB9F58900EBF1C3 /* ChatMessageDateAndStatusNode.swift in Sources */, D0EC6D931EB9F58900EBF1C3 /* ChatMessageFileBubbleContentNode.swift in Sources */, @@ -3862,7 +3684,6 @@ D0EC6DAD1EB9F58900EBF1C3 /* ChatInterfaceStateNavigationButtons.swift in Sources */, D0EC6DAE1EB9F58900EBF1C3 /* ChatInterfaceStateContextMenus.swift in Sources */, 09DE2F292269D5E30045E975 /* PrivacyIntroControllerNode.swift in Sources */, - D0F67FF01EE6B8A8000E5906 /* ChannelMembersSearchController.swift in Sources */, D0EC6DAF1EB9F58900EBF1C3 /* ChatInterfaceInputContexts.swift in Sources */, 09B4819323028A4200D5B32B /* ThemeAccentColorController.swift in Sources */, 0921F60E228EE000001A13D7 /* ChatMessageActionUrlAuthController.swift in Sources */, @@ -3881,7 +3702,6 @@ D0EC6DBA1EB9F58900EBF1C3 /* ChatMediaInputNode.swift in Sources */, D0EC6DBB1EB9F58900EBF1C3 /* ChatMediaInputStickerPane.swift in Sources */, 0910B0F121FB3DE100F8F87D /* WallpaperPatternPanelNode.swift in Sources */, - D08984EE2114964700918162 /* GroupPreHistorySetupController.swift in Sources */, D0EC6DBC1EB9F58900EBF1C3 /* ChatMediaInputGifPane.swift in Sources */, D0EC6DBD1EB9F58900EBF1C3 /* ChatMediaInputPanelEntries.swift in Sources */, D008178222B47464008A895F /* NotificationContentContext.swift in Sources */, @@ -3933,7 +3753,6 @@ D0EC6DDE1EB9F58900EBF1C3 /* ChatTextInputAudioRecordingOverlayButton.swift in Sources */, D0EC6DDF1EB9F58900EBF1C3 /* ChatTextInputAudioRecordingTimeNode.swift in Sources */, D0EC6DE01EB9F58900EBF1C3 /* ChatTextInputAudioRecordingCancelIndicator.swift in Sources */, - D081A9A922EB26AE0069C449 /* PhoneLabelController.swift in Sources */, D0EC6DE11EB9F58900EBF1C3 /* ChatMessageSelectionInputPanelNode.swift in Sources */, D04281FA200E5CDC009DDE36 /* ChatRecentActionsControllerState.swift in Sources */, D0EC6DE21EB9F58900EBF1C3 /* ChatChannelSubscriberInputPanelNode.swift in Sources */, @@ -3953,7 +3772,6 @@ D0EC6DEB1EB9F58900EBF1C3 /* ChatRequestInProgressTitlePanelNode.swift in Sources */, D0EC6DEC1EB9F58900EBF1C3 /* ChatToastAlertPanelNode.swift in Sources */, D0EC6DED1EB9F58900EBF1C3 /* ChatHistoryNavigationButtonNode.swift in Sources */, - D0F4B01A211073C500912B92 /* DeviceContactInfoController.swift in Sources */, D0EC6DF51EB9F58900EBF1C3 /* PeerMediaCollectionController.swift in Sources */, D06E4C332134A59700088087 /* ThemeAccentColorActionSheet.swift in Sources */, D0EC6DF61EB9F58900EBF1C3 /* PeerMediaCollectionControllerNode.swift in Sources */, @@ -3963,11 +3781,9 @@ 09A218D9229EE1B600DE6898 /* HorizontalStickerGridItem.swift in Sources */, 09EC0DED22CB583C00E7185B /* TextLinkHandling.swift in Sources */, D08984F02114AE0C00918162 /* DataPrivacySettingsController.swift in Sources */, - D0EC6DFB1EB9F58900EBF1C3 /* AvatarGalleryController.swift in Sources */, D00817DB22B47A14008A895F /* LegacyChatImport.swift in Sources */, 09EDAD2C2211552F0012A50B /* AutodownloadMediaCategoryController.swift in Sources */, 090B48C82200BCA8005083FA /* WallpaperUploadManager.swift in Sources */, - D0E8B8BB2044780600605593 /* ItemListSecretChatKeyItem.swift in Sources */, D06F31E62135A41C001A0F12 /* ThemeSettingsBrightnessItem.swift in Sources */, 09F2158D225CF5BC00AEDF6D /* Pasteboard.swift in Sources */, D0C26D571FDF2388004ABF18 /* OpenChatMessage.swift in Sources */, @@ -3978,7 +3794,6 @@ D000CABC21F158AD0011B15D /* PrepareSecretThumbnailData.swift in Sources */, D0208AD61FA33D14001F0D5F /* RaiseToListenActivator.m in Sources */, D04554A421B42982007A6DD9 /* ConfirmPhoneNumberController.swift in Sources */, - D0EC6E0E1EB9F58900EBF1C3 /* PeerAvatarImageGalleryItem.swift in Sources */, D0D4345C1F97CEAA00CC1806 /* ProxyServerSettingsController.swift in Sources */, D08BDF641FA37BEA009D08E1 /* ChatRecordingPreviewInputPanelNode.swift in Sources */, D0943B071FDEC529001522CC /* InstantVideoRadialStatusNode.swift in Sources */, @@ -3987,9 +3802,7 @@ D091C7A61F8ECEA300D7DE13 /* SettingsThemeWallpaperNode.swift in Sources */, D00817CC22B47A14008A895F /* WatchCommunicationManager.swift in Sources */, D0AE303522B1D3620058D3BC /* TGBridgeAudioEncoder.m in Sources */, - D04281F1200E4084009DDE36 /* GroupInfoSearchNavigationContentNode.swift in Sources */, D00817D922B47A14008A895F /* AppDelegate.swift in Sources */, - D0E1199C229808B8008CAE3A /* ChannelDiscussionGroupSetupHeaderItem.swift in Sources */, 091417F221EF4E5D00C8325A /* WallpaperGalleryController.swift in Sources */, D0FC194D201F82A000FEDBB2 /* OpenResolvedUrl.swift in Sources */, D00817D422B47A14008A895F /* LegacyUserDataImport.swift in Sources */, @@ -4001,7 +3814,6 @@ D0EC6E2C1EB9F58900EBF1C3 /* ComposeControllerNode.swift in Sources */, D0EC6E2D1EB9F58900EBF1C3 /* CounterContollerTitleView.swift in Sources */, D0AEAE292080FD660013176E /* StickerPaneSearchGlobaltem.swift in Sources */, - D0F19F6220E5694D00EEC860 /* GroupStickerPackCurrentItem.swift in Sources */, D0EC6E2E1EB9F58900EBF1C3 /* ContactMultiselectionController.swift in Sources */, D0EC6E2F1EB9F58900EBF1C3 /* ContactMultiselectionControllerNode.swift in Sources */, D0EC6E301EB9F58900EBF1C3 /* ContactSelectionController.swift in Sources */, @@ -4016,7 +3828,6 @@ 0940932622E73E12003846A3 /* ChatSendMessageActionSheetControllerNode.swift in Sources */, D00817D022B47A14008A895F /* WakeupManager.swift in Sources */, D0E8175920122FE100B82BBB /* ChatRecentActionsFilterController.swift in Sources */, - D084023420E295F000065674 /* GroupStickerPackSetupController.swift in Sources */, 0900678D21ED5EA800530762 /* WallpaperColorPanelNode.swift in Sources */, 0957DE2522DE2909001B4D57 /* ThemePreviewControllerNode.swift in Sources */, 09A218DA229EE1B600DE6898 /* HorizontalStickersChatContextPanelNode.swift in Sources */, @@ -4028,31 +3839,19 @@ D0B37C5C1F8D22AE004252DF /* ThemeSettingsController.swift in Sources */, D05D8B412192FC8A0064586F /* LocalizationListItem.swift in Sources */, D0AE303822B1D3620058D3BC /* TGBridgeAudioDecoder.mm in Sources */, - D0EC6E4D1EB9F58900EBF1C3 /* PeerInfoController.swift in Sources */, - D0EC6E4E1EB9F58900EBF1C3 /* GroupInfoController.swift in Sources */, D00817D322B47A14008A895F /* LegacyResourceImport.swift in Sources */, D0380DAD204ED434000414AB /* LegacyLiveUploadInterface.swift in Sources */, D00817D222B47A14008A895F /* LegacyPreferencesImport.swift in Sources */, D0185E882089ED5F005E1A6C /* ProxyListSettingsController.swift in Sources */, - D0EC6E4F1EB9F58900EBF1C3 /* ChannelVisibilityController.swift in Sources */, D09250061FE5371D003F693F /* GlobalExperimentalSettings.swift in Sources */, D025A4231F79344500563950 /* FetchManager.swift in Sources */, D0CB27CF20C17A4A001ACF93 /* TermsOfServiceController.swift in Sources */, - D00BDA1F1EE5B69200C64C5E /* ChannelAdminController.swift in Sources */, D09E778F22FA239B00B9CCA7 /* ChatMessageContextControllerContentSource.swift in Sources */, - D0EC6E501EB9F58900EBF1C3 /* ChannelAdminsController.swift in Sources */, - D0EC6E511EB9F58900EBF1C3 /* ChannelBlacklistController.swift in Sources */, - D0EC6E521EB9F58900EBF1C3 /* ChannelInfoController.swift in Sources */, - D0EC6E531EB9F58900EBF1C3 /* ChannelMembersController.swift in Sources */, D02B676320800A00001A864A /* PaneSearchBarPlaceholderItem.swift in Sources */, 098CF79222B924E200AF6134 /* ThemeSettingsAccentColorItem.swift in Sources */, - D0EC6E541EB9F58900EBF1C3 /* ConvertToSupergroupController.swift in Sources */, - D0EC6E561EB9F58900EBF1C3 /* UserInfoController.swift in Sources */, - D0EC6E571EB9F58900EBF1C3 /* GroupsInCommonController.swift in Sources */, D0EC6E581EB9F58900EBF1C3 /* PeerSelectionController.swift in Sources */, D0EC6E591EB9F58900EBF1C3 /* PeerSelectionControllerNode.swift in Sources */, D0AB262921C307D7008F6685 /* ChatMessagePollBubbleContentNode.swift in Sources */, - D0F4B0222110972300912B92 /* ContactInfoStrings.swift in Sources */, D0EC6E5D1EB9F58900EBF1C3 /* PrivacyAndSecurityController.swift in Sources */, D0EC6E5E1EB9F58900EBF1C3 /* ItemListRecentSessionItem.swift in Sources */, D0EC6E5F1EB9F58900EBF1C3 /* RecentSessionsController.swift in Sources */, @@ -4073,7 +3872,6 @@ D0EC6E6B1EB9F58900EBF1C3 /* InstalledStickerPacksController.swift in Sources */, D0EC6E6C1EB9F58900EBF1C3 /* FeaturedStickerPacksController.swift in Sources */, D0B85C231FF70BF400E795B4 /* AuthorizationSequenceAwaitingAccountResetController.swift in Sources */, - D0EC6E6D1EB9F58900EBF1C3 /* ItemListStickerPackItem.swift in Sources */, D0EC6E6E1EB9F58900EBF1C3 /* ArchivedStickerPacksController.swift in Sources */, D0C0B5B11EE1C421000F4D2C /* ChatDateSelectionSheet.swift in Sources */, D0EC6E731EB9F58900EBF1C3 /* WallpaperGalleryToolbarNode.swift in Sources */, @@ -4083,7 +3881,6 @@ D0EC6E761EB9F58900EBF1C3 /* SettingsController.swift in Sources */, D0FAB13E22EBC25300D8BED2 /* ChatMessageBubbleBackdrop.swift in Sources */, D0EC6E771EB9F58900EBF1C3 /* NotificationsAndSounds.swift in Sources */, - D0EC6E781EB9F58900EBF1C3 /* NotificationSoundSelection.swift in Sources */, D0EC6E7A1EB9F58900EBF1C3 /* DebugController.swift in Sources */, 09E2D9F1226F214000EA0AA4 /* EmojiResources.swift in Sources */, D0EC6E7B1EB9F58900EBF1C3 /* DebugAccountsController.swift in Sources */, @@ -4098,10 +3895,8 @@ D09E637C1F0E7C28003444CD /* SharedMediaPlayer.swift in Sources */, D0750C8522B2E52400BE5F6E /* ClearNotificationsManager.swift in Sources */, D0EC6E811EB9F58900EBF1C3 /* NotificationContainerController.swift in Sources */, - 0952D1752176DEB500194860 /* NotificationMuteSettingsController.swift in Sources */, D0EC6E821EB9F58900EBF1C3 /* NotificationContainerControllerNode.swift in Sources */, D0EC6E831EB9F58900EBF1C3 /* NotificationItemContainerNode.swift in Sources */, - 09DD88E921BAF65E000766BC /* ItemListAddressItem.swift in Sources */, D0CB27D220C17A7F001ACF93 /* TermsOfServiceControllerNode.swift in Sources */, D0EC6E841EB9F58900EBF1C3 /* NotificationItem.swift in Sources */, D0EC6E851EB9F58900EBF1C3 /* ChatMessageNotificationItem.swift in Sources */, @@ -4110,7 +3905,6 @@ D0ACCB1C1EC5FF4B0079D8BF /* ChatMessageCallBubbleContentNode.swift in Sources */, D0EC6E891EB9F58900EBF1C3 /* FrameworkBundle.swift in Sources */, D0FA08C8204982DC00DD23FC /* ChatTextInputActionButtonsNode.swift in Sources */, - D0EC6E8D1EB9F58900EBF1C3 /* SecretChatKeyVisualization.m in Sources */, 09F664C221EAAFCB00AB7E26 /* ThemeColorsGridControllerNode.swift in Sources */, D0BCC3D420404CC7008126C2 /* ChatMessageActionSheetController.swift in Sources */, 0957DE2322DE28FB001B4D57 /* ThemePreviewController.swift in Sources */, From 376fd0fc0aa54fc45271f11363f173591648d15c Mon Sep 17 00:00:00 2001 From: Peter <> Date: Thu, 15 Aug 2019 14:36:41 +0300 Subject: [PATCH 08/11] Refactor RaiseToListen [skip ci] --- .../contents.xcworkspacedata | 34 +- .../project.pbxproj | 540 +++++++++++++++++ submodules/DeviceProximity/Info.plist | 22 + .../DeviceProximity/Sources/DeviceProximity.h | 11 + .../Sources/DeviceProximityBag.h | 15 + .../Sources/DeviceProximityBag.m | 63 ++ .../Sources}/DeviceProximityManager.h | 0 .../Sources}/DeviceProximityManager.m | 7 +- submodules/RaiseToListen/Info.plist | 22 + .../project.pbxproj | 551 ++++++++++++++++++ .../RaiseToListen/Sources/RaiseToListen.h | 11 + .../Sources}/RaiseToListen.swift | 12 +- .../Sources}/RaiseToListenActivator.h | 0 .../Sources}/RaiseToListenActivator.m | 78 ++- .../TelegramUI/ChatController.swift | 1 + .../TelegramUI/TelegramUI/MediaManager.swift | 1 + .../TelegramUI/SharedMediaPlayer.swift | 1 + .../TelegramUIPrivate/module.modulemap | 2 - .../project.pbxproj | 28 +- 19 files changed, 1325 insertions(+), 74 deletions(-) create mode 100644 submodules/DeviceProximity/DeviceProximity_Xcode.xcodeproj/project.pbxproj create mode 100644 submodules/DeviceProximity/Info.plist create mode 100644 submodules/DeviceProximity/Sources/DeviceProximity.h create mode 100644 submodules/DeviceProximity/Sources/DeviceProximityBag.h create mode 100644 submodules/DeviceProximity/Sources/DeviceProximityBag.m rename submodules/{TelegramUI/TelegramUI => DeviceProximity/Sources}/DeviceProximityManager.h (100%) rename submodules/{TelegramUI/TelegramUI => DeviceProximity/Sources}/DeviceProximityManager.m (96%) create mode 100644 submodules/RaiseToListen/Info.plist create mode 100644 submodules/RaiseToListen/RaiseToListen_Xcode.xcodeproj/project.pbxproj create mode 100644 submodules/RaiseToListen/Sources/RaiseToListen.h rename submodules/{TelegramUI/TelegramUI => RaiseToListen/Sources}/RaiseToListen.swift (63%) rename submodules/{TelegramUI/TelegramUI => RaiseToListen/Sources}/RaiseToListenActivator.h (100%) rename submodules/{TelegramUI/TelegramUI => RaiseToListen/Sources}/RaiseToListenActivator.m (74%) diff --git a/Telegram-iOS.xcworkspace/contents.xcworkspacedata b/Telegram-iOS.xcworkspace/contents.xcworkspacedata index d2c3c61b5a..9545731036 100644 --- a/Telegram-iOS.xcworkspace/contents.xcworkspacedata +++ b/Telegram-iOS.xcworkspace/contents.xcworkspacedata @@ -29,12 +29,6 @@ - - - - @@ -56,9 +50,6 @@ - - @@ -80,15 +71,34 @@ - - + + + + + + + + + + + + + + diff --git a/submodules/DeviceProximity/DeviceProximity_Xcode.xcodeproj/project.pbxproj b/submodules/DeviceProximity/DeviceProximity_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..1deb657ffd --- /dev/null +++ b/submodules/DeviceProximity/DeviceProximity_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,540 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E42F9230575D50049C28B /* DeviceProximity.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E42F7230575D50049C28B /* DeviceProximity.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E4305230576480049C28B /* DeviceProximityManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E4303230576470049C28B /* DeviceProximityManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E4306230576480049C28B /* DeviceProximityManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E4304230576470049C28B /* DeviceProximityManager.m */; }; + D03E4309230576890049C28B /* DeviceProximityBag.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E4307230576890049C28B /* DeviceProximityBag.h */; }; + D03E430A230576890049C28B /* DeviceProximityBag.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E4308230576890049C28B /* DeviceProximityBag.m */; }; + D03E430D230576D60049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E430C230576D60049C28B /* Foundation.framework */; }; + D03E43112305776F0049C28B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E43102305776F0049C28B /* UIKit.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E42F4230575D50049C28B /* DeviceProximity.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DeviceProximity.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E42F7230575D50049C28B /* DeviceProximity.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DeviceProximity.h; sourceTree = ""; }; + D03E42F8230575D50049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E4303230576470049C28B /* DeviceProximityManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeviceProximityManager.h; sourceTree = ""; }; + D03E4304230576470049C28B /* DeviceProximityManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DeviceProximityManager.m; sourceTree = ""; }; + D03E4307230576890049C28B /* DeviceProximityBag.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DeviceProximityBag.h; sourceTree = ""; }; + D03E4308230576890049C28B /* DeviceProximityBag.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DeviceProximityBag.m; sourceTree = ""; }; + D03E430C230576D60049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E43102305776F0049C28B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E42F1230575D50049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E43112305776F0049C28B /* UIKit.framework in Frameworks */, + D03E430D230576D60049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E42EA230575D50049C28B = { + isa = PBXGroup; + children = ( + D03E42F8230575D50049C28B /* Info.plist */, + D03E42F6230575D50049C28B /* Sources */, + D03E42F5230575D50049C28B /* Products */, + D03E430B230576D50049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E42F5230575D50049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E42F4230575D50049C28B /* DeviceProximity.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E42F6230575D50049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E4303230576470049C28B /* DeviceProximityManager.h */, + D03E4304230576470049C28B /* DeviceProximityManager.m */, + D03E4307230576890049C28B /* DeviceProximityBag.h */, + D03E4308230576890049C28B /* DeviceProximityBag.m */, + D03E42F7230575D50049C28B /* DeviceProximity.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E430B230576D50049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E43102305776F0049C28B /* UIKit.framework */, + D03E430C230576D60049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E42EF230575D50049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E4309230576890049C28B /* DeviceProximityBag.h in Headers */, + D03E4305230576480049C28B /* DeviceProximityManager.h in Headers */, + D03E42F9230575D50049C28B /* DeviceProximity.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E42F3230575D50049C28B /* DeviceProximity */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E42FC230575D50049C28B /* Build configuration list for PBXNativeTarget "DeviceProximity" */; + buildPhases = ( + D03E42EF230575D50049C28B /* Headers */, + D03E42F0230575D50049C28B /* Sources */, + D03E42F1230575D50049C28B /* Frameworks */, + D03E42F2230575D50049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = DeviceProximity; + productName = DeviceProximity; + productReference = D03E42F4230575D50049C28B /* DeviceProximity.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E42EB230575D50049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E42F3230575D50049C28B = { + CreatedOnToolsVersion = 10.3; + }; + }; + }; + buildConfigurationList = D03E42EE230575D50049C28B /* Build configuration list for PBXProject "DeviceProximity_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E42EA230575D50049C28B; + productRefGroup = D03E42F5230575D50049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E42F3230575D50049C28B /* DeviceProximity */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E42F2230575D50049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E42F0230575D50049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E430A230576890049C28B /* DeviceProximityBag.m in Sources */, + D03E4306230576480049C28B /* DeviceProximityManager.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E42FA230575D50049C28B /* 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; + }; + D03E42FB230575D50049C28B /* 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; + }; + D03E42FD230575D50049C28B /* 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.DeviceProximity; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugAppStoreLLC; + }; + D03E42FE230575D50049C28B /* 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.DeviceProximity; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E42FF230576130049C28B /* 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; + }; + D03E4300230576130049C28B /* 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.DeviceProximity; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugHockeyapp; + }; + D03E43012305761C0049C28B /* 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; + }; + D03E43022305761C0049C28B /* 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.DeviceProximity; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseHockeyappInternal; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D03E42EE230575D50049C28B /* Build configuration list for PBXProject "DeviceProximity_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E42FA230575D50049C28B /* DebugAppStoreLLC */, + D03E42FF230576130049C28B /* DebugHockeyapp */, + D03E42FB230575D50049C28B /* ReleaseAppStoreLLC */, + D03E43012305761C0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E42FC230575D50049C28B /* Build configuration list for PBXNativeTarget "DeviceProximity" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E42FD230575D50049C28B /* DebugAppStoreLLC */, + D03E4300230576130049C28B /* DebugHockeyapp */, + D03E42FE230575D50049C28B /* ReleaseAppStoreLLC */, + D03E43022305761C0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E42EB230575D50049C28B /* Project object */; +} diff --git a/submodules/DeviceProximity/Info.plist b/submodules/DeviceProximity/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/DeviceProximity/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/DeviceProximity/Sources/DeviceProximity.h b/submodules/DeviceProximity/Sources/DeviceProximity.h new file mode 100644 index 0000000000..449c242823 --- /dev/null +++ b/submodules/DeviceProximity/Sources/DeviceProximity.h @@ -0,0 +1,11 @@ +#import + +//! Project version number for DeviceProximity. +FOUNDATION_EXPORT double DeviceProximityVersionNumber; + +//! Project version string for DeviceProximity. +FOUNDATION_EXPORT const unsigned char DeviceProximityVersionString[]; + +#import + + diff --git a/submodules/DeviceProximity/Sources/DeviceProximityBag.h b/submodules/DeviceProximity/Sources/DeviceProximityBag.h new file mode 100644 index 0000000000..f6d9ebe249 --- /dev/null +++ b/submodules/DeviceProximity/Sources/DeviceProximityBag.h @@ -0,0 +1,15 @@ +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface DeviceProximityBag : NSObject + +- (NSInteger)addItem:(id)item; +- (void)enumerateItems:(void (^)(id))block; +- (void)removeItem:(NSInteger)key; +- (bool)isEmpty; +- (NSArray *)copyItems; + +@end + +NS_ASSUME_NONNULL_END diff --git a/submodules/DeviceProximity/Sources/DeviceProximityBag.m b/submodules/DeviceProximity/Sources/DeviceProximityBag.m new file mode 100644 index 0000000000..b1c5a50058 --- /dev/null +++ b/submodules/DeviceProximity/Sources/DeviceProximityBag.m @@ -0,0 +1,63 @@ +#import "DeviceProximityBag.h" + +@interface DeviceProximityBag () { + NSInteger _nextKey; + NSMutableArray *_items; + NSMutableArray *_itemKeys; +} + +@end + +@implementation DeviceProximityBag + +- (instancetype)init { + self = [super init]; + if (self != nil) { + _items = [[NSMutableArray alloc] init]; + _itemKeys = [[NSMutableArray alloc] init]; + } + return self; +} + +- (NSInteger)addItem:(id)item { + if (item == nil) { + return -1; + } + + NSInteger key = _nextKey; + [_items addObject:item]; + [_itemKeys addObject:@(key)]; + _nextKey++; + + return key; +} + +- (void)enumerateItems:(void (^)(id))block { + if (block) { + for (id item in _items) { + block(item); + } + } +} + +- (void)removeItem:(NSInteger)key { + NSUInteger index = 0; + for (NSNumber *itemKey in _itemKeys) { + if ([itemKey integerValue] == key) { + [_items removeObjectAtIndex:index]; + [_itemKeys removeObjectAtIndex:index]; + break; + } + index++; + } +} + +- (bool)isEmpty { + return _items.count == 0; +} + +- (NSArray *)copyItems { + return [[NSArray alloc] initWithArray:_items]; +} + +@end diff --git a/submodules/TelegramUI/TelegramUI/DeviceProximityManager.h b/submodules/DeviceProximity/Sources/DeviceProximityManager.h similarity index 100% rename from submodules/TelegramUI/TelegramUI/DeviceProximityManager.h rename to submodules/DeviceProximity/Sources/DeviceProximityManager.h diff --git a/submodules/TelegramUI/TelegramUI/DeviceProximityManager.m b/submodules/DeviceProximity/Sources/DeviceProximityManager.m similarity index 96% rename from submodules/TelegramUI/TelegramUI/DeviceProximityManager.m rename to submodules/DeviceProximity/Sources/DeviceProximityManager.m index e5ab4fc277..3061832dcf 100644 --- a/submodules/TelegramUI/TelegramUI/DeviceProximityManager.m +++ b/submodules/DeviceProximity/Sources/DeviceProximityManager.m @@ -2,11 +2,10 @@ #import -#import -#import +#import "DeviceProximityBag.h" @interface DeviceProximityManager () { - SBag *_subscribers; + DeviceProximityBag *_subscribers; bool _proximityState; bool _globallyEnabled; } @@ -31,7 +30,7 @@ - (instancetype)init { self = [super init]; if (self != nil) { - _subscribers = [[SBag alloc] init]; + _subscribers = [[DeviceProximityBag alloc] init]; __weak DeviceProximityManager *weakSelf = self; [[NSNotificationCenter defaultCenter] addObserverForName:UIDeviceProximityStateDidChangeNotification object:[UIDevice currentDevice] queue:[NSOperationQueue mainQueue] usingBlock:^(__unused NSNotification *notification) diff --git a/submodules/RaiseToListen/Info.plist b/submodules/RaiseToListen/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/RaiseToListen/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/RaiseToListen/RaiseToListen_Xcode.xcodeproj/project.pbxproj b/submodules/RaiseToListen/RaiseToListen_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..90df53808f --- /dev/null +++ b/submodules/RaiseToListen/RaiseToListen_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,551 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E4321230577950049C28B /* RaiseToListen.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E431F230577950049C28B /* RaiseToListen.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E432E230577F30049C28B /* RaiseToListen.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E432B230577F20049C28B /* RaiseToListen.swift */; }; + D03E432F230577F30049C28B /* RaiseToListenActivator.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E432C230577F30049C28B /* RaiseToListenActivator.m */; }; + D03E4330230577F30049C28B /* RaiseToListenActivator.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E432D230577F30049C28B /* RaiseToListenActivator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E4333230578130049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E4332230578130049C28B /* Foundation.framework */; }; + D03E4335230578260049C28B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E4334230578260049C28B /* UIKit.framework */; }; + D03E43372305784A0049C28B /* DeviceProximity.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E43362305784A0049C28B /* DeviceProximity.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E431C230577950049C28B /* RaiseToListen.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RaiseToListen.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E431F230577950049C28B /* RaiseToListen.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RaiseToListen.h; sourceTree = ""; }; + D03E4320230577950049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E432B230577F20049C28B /* RaiseToListen.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RaiseToListen.swift; sourceTree = ""; }; + D03E432C230577F30049C28B /* RaiseToListenActivator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RaiseToListenActivator.m; sourceTree = ""; }; + D03E432D230577F30049C28B /* RaiseToListenActivator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RaiseToListenActivator.h; sourceTree = ""; }; + D03E4332230578130049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E4334230578260049C28B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D03E43362305784A0049C28B /* DeviceProximity.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DeviceProximity.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E4319230577950049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E43372305784A0049C28B /* DeviceProximity.framework in Frameworks */, + D03E4335230578260049C28B /* UIKit.framework in Frameworks */, + D03E4333230578130049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E4312230577950049C28B = { + isa = PBXGroup; + children = ( + D03E4320230577950049C28B /* Info.plist */, + D03E431E230577950049C28B /* Sources */, + D03E431D230577950049C28B /* Products */, + D03E4331230578130049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E431D230577950049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E431C230577950049C28B /* RaiseToListen.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E431E230577950049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E432B230577F20049C28B /* RaiseToListen.swift */, + D03E432D230577F30049C28B /* RaiseToListenActivator.h */, + D03E432C230577F30049C28B /* RaiseToListenActivator.m */, + D03E431F230577950049C28B /* RaiseToListen.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E4331230578130049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E43362305784A0049C28B /* DeviceProximity.framework */, + D03E4334230578260049C28B /* UIKit.framework */, + D03E4332230578130049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E4317230577950049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E4321230577950049C28B /* RaiseToListen.h in Headers */, + D03E4330230577F30049C28B /* RaiseToListenActivator.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E431B230577950049C28B /* RaiseToListen */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E4324230577950049C28B /* Build configuration list for PBXNativeTarget "RaiseToListen" */; + buildPhases = ( + D03E4317230577950049C28B /* Headers */, + D03E4318230577950049C28B /* Sources */, + D03E4319230577950049C28B /* Frameworks */, + D03E431A230577950049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = RaiseToListen; + productName = RaiseToListen; + productReference = D03E431C230577950049C28B /* RaiseToListen.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E4313230577950049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E431B230577950049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E4316230577950049C28B /* Build configuration list for PBXProject "RaiseToListen_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E4312230577950049C28B; + productRefGroup = D03E431D230577950049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E431B230577950049C28B /* RaiseToListen */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E431A230577950049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E4318230577950049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E432F230577F30049C28B /* RaiseToListenActivator.m in Sources */, + D03E432E230577F30049C28B /* RaiseToListen.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E4322230577950049C28B /* 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; + }; + D03E4323230577950049C28B /* 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; + }; + D03E4325230577950049C28B /* 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.RaiseToListen; + 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; + }; + D03E4326230577950049C28B /* 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.RaiseToListen; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E4327230577B40049C28B /* 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; + }; + D03E4328230577B40049C28B /* 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.RaiseToListen; + 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; + }; + D03E4329230577BD0049C28B /* 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; + }; + D03E432A230577BD0049C28B /* 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.RaiseToListen; + 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 */ + D03E4316230577950049C28B /* Build configuration list for PBXProject "RaiseToListen_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E4322230577950049C28B /* DebugAppStoreLLC */, + D03E4327230577B40049C28B /* DebugHockeyapp */, + D03E4323230577950049C28B /* ReleaseAppStoreLLC */, + D03E4329230577BD0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E4324230577950049C28B /* Build configuration list for PBXNativeTarget "RaiseToListen" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E4325230577950049C28B /* DebugAppStoreLLC */, + D03E4328230577B40049C28B /* DebugHockeyapp */, + D03E4326230577950049C28B /* ReleaseAppStoreLLC */, + D03E432A230577BD0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E4313230577950049C28B /* Project object */; +} diff --git a/submodules/RaiseToListen/Sources/RaiseToListen.h b/submodules/RaiseToListen/Sources/RaiseToListen.h new file mode 100644 index 0000000000..4bae0bc1e3 --- /dev/null +++ b/submodules/RaiseToListen/Sources/RaiseToListen.h @@ -0,0 +1,11 @@ +#import + +//! Project version number for RaiseToListen. +FOUNDATION_EXPORT double RaiseToListenVersionNumber; + +//! Project version string for RaiseToListen. +FOUNDATION_EXPORT const unsigned char RaiseToListenVersionString[]; + +#import + + diff --git a/submodules/TelegramUI/TelegramUI/RaiseToListen.swift b/submodules/RaiseToListen/Sources/RaiseToListen.swift similarity index 63% rename from submodules/TelegramUI/TelegramUI/RaiseToListen.swift rename to submodules/RaiseToListen/Sources/RaiseToListen.swift index 71dd1d46da..d92435cd10 100644 --- a/submodules/TelegramUI/TelegramUI/RaiseToListen.swift +++ b/submodules/RaiseToListen/Sources/RaiseToListen.swift @@ -1,17 +1,15 @@ import Foundation -import TelegramUIPrivateModule - -final class RaiseToListenManager { +public final class RaiseToListenManager { private let activator: RaiseToListenActivator - var enabled: Bool = false { + public var enabled: Bool = false { didSet { self.activator.enabled = self.enabled } } - init(shouldActivate: @escaping () -> Bool, activate: @escaping () -> Void, deactivate: @escaping () -> Void) { + public init(shouldActivate: @escaping () -> Bool, activate: @escaping () -> Void, deactivate: @escaping () -> Void) { self.activator = RaiseToListenActivator(shouldActivate: { return shouldActivate() }, activate: { @@ -21,11 +19,11 @@ final class RaiseToListenManager { }) } - func activateBasedOnProximity(delay: Double) { + public func activateBasedOnProximity(delay: Double) { self.activator.activateBasedOnProximity(withDelay: delay) } - func applicationResignedActive() { + public func applicationResignedActive() { self.activator.applicationResignedActive() } } diff --git a/submodules/TelegramUI/TelegramUI/RaiseToListenActivator.h b/submodules/RaiseToListen/Sources/RaiseToListenActivator.h similarity index 100% rename from submodules/TelegramUI/TelegramUI/RaiseToListenActivator.h rename to submodules/RaiseToListen/Sources/RaiseToListenActivator.h diff --git a/submodules/TelegramUI/TelegramUI/RaiseToListenActivator.m b/submodules/RaiseToListen/Sources/RaiseToListenActivator.m similarity index 74% rename from submodules/TelegramUI/TelegramUI/RaiseToListenActivator.m rename to submodules/RaiseToListen/Sources/RaiseToListenActivator.m index a819505c83..f26f11fc28 100644 --- a/submodules/TelegramUI/TelegramUI/RaiseToListenActivator.m +++ b/submodules/RaiseToListen/Sources/RaiseToListenActivator.m @@ -1,16 +1,12 @@ #import "RaiseToListenActivator.h" #import -#import +#import -#import "DeviceProximityManager.h" - -static NSString *TGEncodeText(NSString *string, int key) -{ +static NSString *TGEncodeText(NSString *string, int key) { NSMutableString *result = [[NSMutableString alloc] init]; - for (int i = 0; i < (int)[string length]; i++) - { + for (int i = 0; i < (int)[string length]; i++) { unichar c = [string characterAtIndex:i]; c += key; [result appendString:[NSString stringWithCharacters:&c length:1]]; @@ -19,14 +15,38 @@ static NSString *TGEncodeText(NSString *string, int key) return result; } -static void TGDispatchOnMainThread(dispatch_block_t block) -{ - if ([NSThread isMainThread]) +static void TGDispatchOnMainThread(dispatch_block_t block) { + if ([NSThread isMainThread]) { block(); - else + } else { dispatch_async(dispatch_get_main_queue(), block); + } } +@interface RaiseToListenTimerTarget : NSObject + +@property (nonatomic, copy) void (^block)(void); + +@end + +@implementation RaiseToListenTimerTarget + +- (instancetype)initWithBlock:(void (^)(void))block { + self = [super init]; + if (self != nil) { + _block = [block copy]; + } + return self; +} + +- (void)timerEvent { + if (_block) { + _block(); + } +} + +@end + @protocol RaiseManager - (id)initWithPriority:(int)priority; @@ -42,7 +62,7 @@ static void TGDispatchOnMainThread(dispatch_block_t block) void (^_deactivate)(void); bool _proximityState; - STimer *_timer; + NSTimer *_timer; id _manager; CFTimeInterval _activationTimestamp; @@ -143,40 +163,40 @@ static void TGDispatchOnMainThread(dispatch_block_t block) _timer = nil; } else if (_timer == nil) { __weak RaiseToListenActivator *weakSelf = self; - _timer = [[STimer alloc] initWithTimeout:1.0 repeat:false completion:^{ + _timer = [[NSTimer alloc] initWithFireDate:[NSDate dateWithTimeIntervalSinceNow:1.0] interval:1.0 target:[[RaiseToListenTimerTarget alloc] initWithBlock:^{ __strong RaiseToListenActivator *strongSelf = weakSelf; if (strongSelf != nil) { strongSelf->_timer = nil; [strongSelf stopCheckingProximity]; } - } queue:[SQueue mainQueue]]; - [_timer start]; + }] selector:@selector(timerEvent) userInfo:nil repeats:false]; + [[NSRunLoop mainRunLoop] addTimer:_timer forMode:NSRunLoopCommonModes]; } } } - (void)proximityChanged:(bool)proximityState { TGDispatchOnMainThread(^{ - if (_proximityState != proximityState) { - _proximityState = proximityState; + if (self->_proximityState != proximityState) { + self->_proximityState = proximityState; - if (proximityState && _timer != nil) { - [_timer invalidate]; - _timer = nil; - _activated = true; - _activationTimestamp = CACurrentMediaTime(); + if (proximityState && self->_timer != nil) { + [self->_timer invalidate]; + self->_timer = nil; + self->_activated = true; + self->_activationTimestamp = CACurrentMediaTime(); - if (_activate) { - _activate(); + if (self->_activate) { + self->_activate(); } } else if (!proximityState) { - [_timer invalidate]; - _timer = nil; + [self->_timer invalidate]; + self->_timer = nil; [self stopCheckingProximity]; - _activated = false; - if (_deactivate) { - _deactivate(); + self->_activated = false; + if (self->_deactivate) { + self->_deactivate(); } } } diff --git a/submodules/TelegramUI/TelegramUI/ChatController.swift b/submodules/TelegramUI/TelegramUI/ChatController.swift index 6a3687607f..6fcfac0e9c 100644 --- a/submodules/TelegramUI/TelegramUI/ChatController.swift +++ b/submodules/TelegramUI/TelegramUI/ChatController.swift @@ -41,6 +41,7 @@ import WebSearchUI import Emoji import PeerAvatarGalleryUI import PeerInfoUI +import RaiseToListen public enum ChatControllerPeekActions { case standard diff --git a/submodules/TelegramUI/TelegramUI/MediaManager.swift b/submodules/TelegramUI/TelegramUI/MediaManager.swift index 7a1f1c7358..63d8685754 100644 --- a/submodules/TelegramUI/TelegramUI/MediaManager.swift +++ b/submodules/TelegramUI/TelegramUI/MediaManager.swift @@ -11,6 +11,7 @@ import UniversalMediaPlayer import TelegramUIPreferences import AccountContext import TelegramUniversalVideoContent +import DeviceProximity enum SharedMediaPlayerGroup: Int { case music = 0 diff --git a/submodules/TelegramUI/TelegramUI/SharedMediaPlayer.swift b/submodules/TelegramUI/TelegramUI/SharedMediaPlayer.swift index 3bc2b93d30..29c72679c4 100644 --- a/submodules/TelegramUI/TelegramUI/SharedMediaPlayer.swift +++ b/submodules/TelegramUI/TelegramUI/SharedMediaPlayer.swift @@ -9,6 +9,7 @@ import UniversalMediaPlayer import TelegramAudio import AccountContext import TelegramUniversalVideoContent +import DeviceProximity private enum SharedMediaPlaybackItem: Equatable { case audio(MediaPlayer) diff --git a/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap b/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap index c035290575..715ab75f60 100644 --- a/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap +++ b/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap @@ -1,8 +1,6 @@ module TelegramUIPrivateModule { header "../../third-party/opusenc/opusenc.h" header "../TGDataItem.h" - header "../DeviceProximityManager.h" - header "../RaiseToListenActivator.h" header "../Bridge Audio/TGBridgeAudioDecoder.h" header "../Bridge Audio/TGBridgeAudioEncoder.h" header "../TGContactModel.h" diff --git a/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj b/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj index 7fcffb8f64..076d144013 100644 --- a/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj @@ -166,11 +166,6 @@ D01C06B51FBB7720001561AB /* ChatMediaInputSettingsItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01C06B41FBB7720001561AB /* ChatMediaInputSettingsItem.swift */; }; D01DBA9B209CC6AD00C64E64 /* ChatLinkPreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01DBA9A209CC6AD00C64E64 /* ChatLinkPreview.swift */; }; D01FB437217CEC62009C6134 /* FetchVideoThumbnail.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01FB436217CEC62009C6134 /* FetchVideoThumbnail.swift */; }; - D0208AD51FA33D14001F0D5F /* RaiseToListenActivator.h in Headers */ = {isa = PBXBuildFile; fileRef = D0208AD31FA33D14001F0D5F /* RaiseToListenActivator.h */; }; - D0208AD61FA33D14001F0D5F /* RaiseToListenActivator.m in Sources */ = {isa = PBXBuildFile; fileRef = D0208AD41FA33D14001F0D5F /* RaiseToListenActivator.m */; }; - D0208AD91FA34017001F0D5F /* DeviceProximityManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D0208AD71FA34017001F0D5F /* DeviceProximityManager.h */; }; - D0208ADA1FA34017001F0D5F /* DeviceProximityManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D0208AD81FA34017001F0D5F /* DeviceProximityManager.m */; }; - D0208ADC1FA346A4001F0D5F /* RaiseToListen.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0208ADB1FA346A4001F0D5F /* RaiseToListen.swift */; }; D020A9DA1FEAE675008C66F7 /* OverlayAudioPlayerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D020A9D91FEAE675008C66F7 /* OverlayAudioPlayerController.swift */; }; D020A9DC1FEAE6E7008C66F7 /* OverlayPlayerControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D020A9DB1FEAE6E7008C66F7 /* OverlayPlayerControllerNode.swift */; }; D025402522E1E00100AC0195 /* ChatSlowmodeHintController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D025402422E1E00100AC0195 /* ChatSlowmodeHintController.swift */; }; @@ -219,6 +214,8 @@ D03E428A23056B610049C28B /* NotificationSoundSelectionUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E428923056B610049C28B /* NotificationSoundSelectionUI.framework */; }; D03E42B423056C730049C28B /* EncryptionKeyVisualization.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42B323056C730049C28B /* EncryptionKeyVisualization.framework */; }; D03E42E6230572530049C28B /* ItemListAddressItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42E5230572530049C28B /* ItemListAddressItem.framework */; }; + D03E430F2305775D0049C28B /* DeviceProximity.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E430E2305775D0049C28B /* DeviceProximity.framework */; }; + D03E4339230578550049C28B /* RaiseToListen.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E4338230578550049C28B /* RaiseToListen.framework */; }; D04203152037162700490EA5 /* MediaInputPaneTrendingItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04203142037162700490EA5 /* MediaInputPaneTrendingItem.swift */; }; D04281F4200E5AB0009DDE36 /* ChatRecentActionsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04281F3200E5AB0009DDE36 /* ChatRecentActionsController.swift */; }; D04281F6200E5AC2009DDE36 /* ChatRecentActionsControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04281F5200E5AC2009DDE36 /* ChatRecentActionsControllerNode.swift */; }; @@ -902,11 +899,6 @@ D01DBA9A209CC6AD00C64E64 /* ChatLinkPreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatLinkPreview.swift; sourceTree = ""; }; D01F66121DE8903300345CBE /* ChatTextInputMediaRecordingButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatTextInputMediaRecordingButton.swift; sourceTree = ""; }; D01FB436217CEC62009C6134 /* FetchVideoThumbnail.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchVideoThumbnail.swift; sourceTree = ""; }; - D0208AD31FA33D14001F0D5F /* RaiseToListenActivator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RaiseToListenActivator.h; sourceTree = ""; }; - D0208AD41FA33D14001F0D5F /* RaiseToListenActivator.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RaiseToListenActivator.m; sourceTree = ""; }; - D0208AD71FA34017001F0D5F /* DeviceProximityManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DeviceProximityManager.h; sourceTree = ""; }; - D0208AD81FA34017001F0D5F /* DeviceProximityManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DeviceProximityManager.m; sourceTree = ""; }; - D0208ADB1FA346A4001F0D5F /* RaiseToListen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RaiseToListen.swift; sourceTree = ""; }; D020A9D91FEAE675008C66F7 /* OverlayAudioPlayerController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverlayAudioPlayerController.swift; sourceTree = ""; }; D020A9DB1FEAE6E7008C66F7 /* OverlayPlayerControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverlayPlayerControllerNode.swift; sourceTree = ""; }; D021E0CD1DB4135500C6B04F /* ChatMediaInputNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMediaInputNode.swift; sourceTree = ""; }; @@ -980,6 +972,8 @@ D03E428923056B610049C28B /* NotificationSoundSelectionUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = NotificationSoundSelectionUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E42B323056C730049C28B /* EncryptionKeyVisualization.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = EncryptionKeyVisualization.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E42E5230572530049C28B /* ItemListAddressItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListAddressItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E430E2305775D0049C28B /* DeviceProximity.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DeviceProximity.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E4338230578550049C28B /* RaiseToListen.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = RaiseToListen.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E5E081E55C49C0029569A /* DebugAccountsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DebugAccountsController.swift; sourceTree = ""; }; D04203142037162700490EA5 /* MediaInputPaneTrendingItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaInputPaneTrendingItem.swift; sourceTree = ""; }; D04281F3200E5AB0009DDE36 /* ChatRecentActionsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatRecentActionsController.swift; sourceTree = ""; }; @@ -1473,6 +1467,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D03E4339230578550049C28B /* RaiseToListen.framework in Frameworks */, + D03E430F2305775D0049C28B /* DeviceProximity.framework in Frameworks */, D03E42E6230572530049C28B /* ItemListAddressItem.framework in Frameworks */, D03E42B423056C730049C28B /* EncryptionKeyVisualization.framework in Frameworks */, D03E428A23056B610049C28B /* NotificationSoundSelectionUI.framework in Frameworks */, @@ -2219,6 +2215,8 @@ D08D45281D5E340200A7428A /* Frameworks */ = { isa = PBXGroup; children = ( + D03E4338230578550049C28B /* RaiseToListen.framework */, + D03E430E2305775D0049C28B /* DeviceProximity.framework */, D03E42E5230572530049C28B /* ItemListAddressItem.framework */, D03E42B323056C730049C28B /* EncryptionKeyVisualization.framework */, D03E428923056B610049C28B /* NotificationSoundSelectionUI.framework */, @@ -2432,7 +2430,6 @@ children = ( 09DD5D4F21ECC3C400D7007A /* SuppressContactsWarning.swift */, 099529B321D3E5D800805E13 /* CheckDiskSpace.swift */, - D0208ADB1FA346A4001F0D5F /* RaiseToListen.swift */, 09D304142173C0E900C00567 /* WatchManager.swift */, 09EDAD29220DA6A40012A50B /* VolumeButtons.swift */, ); @@ -3100,10 +3097,6 @@ isa = PBXGroup; children = ( D0F69E831D6B8C850046BCD6 /* FrameworkBundle.swift */, - D0208AD31FA33D14001F0D5F /* RaiseToListenActivator.h */, - D0208AD41FA33D14001F0D5F /* RaiseToListenActivator.m */, - D0208AD71FA34017001F0D5F /* DeviceProximityManager.h */, - D0208AD81FA34017001F0D5F /* DeviceProximityManager.m */, ); name = "Supporting Files"; sourceTree = ""; @@ -3241,12 +3234,10 @@ buildActionMask = 2147483647; files = ( D0AE303622B1D3620058D3BC /* TGBridgeAudioDecoder.h in Headers */, - D0208AD51FA33D14001F0D5F /* RaiseToListenActivator.h in Headers */, D00817DA22B47A14008A895F /* TGPresentationAutoNightPreferences.h in Headers */, D00817E022B47A14008A895F /* UIImage+ImageEffects.h in Headers */, D08803C51F6064CF00DD7951 /* TelegramUI.h in Headers */, D008177B22B46B7E008A895F /* TGContactModel.h in Headers */, - D0208AD91FA34017001F0D5F /* DeviceProximityManager.h in Headers */, D0AE303722B1D3620058D3BC /* TGBridgeAudioEncoder.h in Headers */, D00817CD22B47A14008A895F /* TGAutoDownloadPreferences.h in Headers */, D008177C22B46B7E008A895F /* TGItemProviderSignals.h in Headers */, @@ -3442,7 +3433,6 @@ D04281F6200E5AC2009DDE36 /* ChatRecentActionsControllerNode.swift in Sources */, 09DD5D5221ED175300D7007A /* WallpaperColorPickerNode.swift in Sources */, D01848E821A03BDA00B6DEBD /* ChatSearchState.swift in Sources */, - D0208ADC1FA346A4001F0D5F /* RaiseToListen.swift in Sources */, 09D304182173C15700C00567 /* WatchSettingsController.swift in Sources */, D0C0B5B71EE1DEF1000F4D2C /* ThemeGridControllerItem.swift in Sources */, D0943B001FDAE852001522CC /* ChatFeedNavigationInputPanelNode.swift in Sources */, @@ -3559,7 +3549,6 @@ D0EC6D541EB9F58800EBF1C3 /* ChatHistoryEntriesForView.swift in Sources */, D0943B051FDDFDA0001522CC /* OverlayInstantVideoNode.swift in Sources */, D0EC6D551EB9F58800EBF1C3 /* PreparedChatHistoryViewTransition.swift in Sources */, - D0208ADA1FA34017001F0D5F /* DeviceProximityManager.m in Sources */, D04281FC200E61BC009DDE36 /* ChatRecentActionsInteraction.swift in Sources */, D0EC6D561EB9F58800EBF1C3 /* ChatHistoryNode.swift in Sources */, D0EC6D571EB9F58800EBF1C3 /* ChatHistoryListNode.swift in Sources */, @@ -3792,7 +3781,6 @@ D007019C2029E8F2006B9E34 /* LegacyICloudFileController.swift in Sources */, 09B4819523028A8A00D5B32B /* ThemeAccentColorControllerNode.swift in Sources */, D000CABC21F158AD0011B15D /* PrepareSecretThumbnailData.swift in Sources */, - D0208AD61FA33D14001F0D5F /* RaiseToListenActivator.m in Sources */, D04554A421B42982007A6DD9 /* ConfirmPhoneNumberController.swift in Sources */, D0D4345C1F97CEAA00CC1806 /* ProxyServerSettingsController.swift in Sources */, D08BDF641FA37BEA009D08E1 /* ChatRecordingPreviewInputPanelNode.swift in Sources */, From b01b245de617010e769affe4863dc2c5c66054d8 Mon Sep 17 00:00:00 2001 From: Peter <> Date: Thu, 15 Aug 2019 18:34:56 +0300 Subject: [PATCH 09/11] Refactor opus and OpusBinding --- .../contents.xcworkspacedata | 10 +- .../ImageBlur_Xcode.xcodeproj/project.pbxproj | 8 + .../ImageBlur/Sources/ApplyScreenshotEffect.h | 4 + .../Sources/ApplyScreenshotEffect.m} | 77 +- submodules/ImageBlur/Sources/ImageBlur.h | 1 + submodules/Opus/Info.plist | 22 + .../Sources}/opus/lib/libopus.a | Bin .../opus/include => Opus/Sources}/opus/opus.h | 4 +- .../opus => Opus/Sources}/opus_defines.h | 2 +- .../opus => Opus/Sources}/opus_multistream.h | 2 +- .../opus => Opus/Sources}/opus_projection.h | 2 +- .../opus => Opus/Sources}/opus_types.h | 0 .../Opus/opus_Xcode.xcodeproj/project.pbxproj | 540 ++++++++++++++ submodules/OpusBinding/Info.plist | 22 + .../project.pbxproj | 672 ++++++++++++++++++ .../OpusBinding/Sources/OggOpusReader.h | 13 + .../OpusBinding/Sources/OggOpusReader.m | 35 + submodules/OpusBinding/Sources/OpusBinding.h | 11 + .../Sources}/TGDataItem.h | 0 .../Sources}/TGDataItem.m | 0 .../Sources/TGOggOpusWriter.h} | 9 +- .../ogg => OpusBinding/Sources}/ogg/bitwise.c | 0 .../ogg => OpusBinding/Sources}/ogg/framing.c | 0 .../ogg => OpusBinding/Sources}/ogg/ogg.h | 0 .../Sources}/ogg/os_types.h | 0 .../Sources}/opusenc/diag_range.c | 4 - .../Sources}/opusenc/diag_range.h | 0 .../Sources}/opusenc/opus_header.c | 0 .../Sources}/opusenc/opus_header.h | 0 .../Sources}/opusenc/opusenc.m | 13 +- .../Sources}/opusenc/picture.c | 0 .../Sources}/opusenc/picture.h | 0 .../Sources}/opusenc/wav_io.c | 0 .../Sources}/opusenc/wav_io.h | 4 - .../Sources}/opusfile/info.c | 0 .../Sources}/opusfile/internal.c | 0 .../Sources}/opusfile/internal.h | 2 +- .../Sources}/opusfile/opusfile.c | 0 .../Sources}/opusfile/opusfile.h | 4 - .../Sources}/opusfile/stream.c | 0 .../TelegramUI/ApplicationContext.swift | 3 +- .../Bridge Audio/TGBridgeAudioDecoder.mm | 13 +- .../Bridge Audio/TGBridgeAudioEncoder.m | 8 +- .../TelegramUI/ManagedAudioRecorder.swift | 1 + .../TelegramUIPrivate/module.modulemap | 3 - .../TelegramUI/UIImage+ImageEffects.h | 9 - .../project.pbxproj | 152 +--- submodules/libtgvoip/OpusDecoder.cpp | 4 - submodules/libtgvoip/OpusEncoder.cpp | 4 - 49 files changed, 1412 insertions(+), 246 deletions(-) create mode 100644 submodules/ImageBlur/Sources/ApplyScreenshotEffect.h rename submodules/{TelegramUI/TelegramUI/UIImage+ImageEffects.m => ImageBlur/Sources/ApplyScreenshotEffect.m} (80%) create mode 100644 submodules/Opus/Info.plist rename submodules/{TelegramUI/third-party => Opus/Sources}/opus/lib/libopus.a (100%) rename submodules/{TelegramUI/third-party/opus/include => Opus/Sources}/opus/opus.h (99%) rename submodules/{TelegramUI/third-party/opus/include/opus => Opus/Sources}/opus_defines.h (99%) rename submodules/{TelegramUI/third-party/opus/include/opus => Opus/Sources}/opus_multistream.h (99%) rename submodules/{TelegramUI/third-party/opus/include/opus => Opus/Sources}/opus_projection.h (99%) rename submodules/{TelegramUI/third-party/opus/include/opus => Opus/Sources}/opus_types.h (100%) create mode 100644 submodules/Opus/opus_Xcode.xcodeproj/project.pbxproj create mode 100644 submodules/OpusBinding/Info.plist create mode 100644 submodules/OpusBinding/OpusBinding_Xcode.xcodeproj/project.pbxproj create mode 100644 submodules/OpusBinding/Sources/OggOpusReader.h create mode 100644 submodules/OpusBinding/Sources/OggOpusReader.m create mode 100644 submodules/OpusBinding/Sources/OpusBinding.h rename submodules/{TelegramUI/TelegramUI => OpusBinding/Sources}/TGDataItem.h (100%) rename submodules/{TelegramUI/TelegramUI => OpusBinding/Sources}/TGDataItem.m (100%) rename submodules/{TelegramUI/third-party/opusenc/opusenc.h => OpusBinding/Sources/TGOggOpusWriter.h} (58%) rename submodules/{TelegramUI/third-party/ogg => OpusBinding/Sources}/ogg/bitwise.c (100%) rename submodules/{TelegramUI/third-party/ogg => OpusBinding/Sources}/ogg/framing.c (100%) rename submodules/{TelegramUI/third-party/ogg => OpusBinding/Sources}/ogg/ogg.h (100%) rename submodules/{TelegramUI/third-party/ogg => OpusBinding/Sources}/ogg/os_types.h (100%) rename submodules/{TelegramUI/third-party => OpusBinding/Sources}/opusenc/diag_range.c (99%) rename submodules/{TelegramUI/third-party => OpusBinding/Sources}/opusenc/diag_range.h (100%) rename submodules/{TelegramUI/third-party => OpusBinding/Sources}/opusenc/opus_header.c (100%) rename submodules/{TelegramUI/third-party => OpusBinding/Sources}/opusenc/opus_header.h (100%) rename submodules/{TelegramUI/third-party => OpusBinding/Sources}/opusenc/opusenc.m (98%) rename submodules/{TelegramUI/third-party => OpusBinding/Sources}/opusenc/picture.c (100%) rename submodules/{TelegramUI/third-party => OpusBinding/Sources}/opusenc/picture.h (100%) rename submodules/{TelegramUI/third-party => OpusBinding/Sources}/opusenc/wav_io.c (100%) rename submodules/{TelegramUI/third-party => OpusBinding/Sources}/opusenc/wav_io.h (97%) rename submodules/{TelegramUI/third-party => OpusBinding/Sources}/opusfile/info.c (100%) rename submodules/{TelegramUI/third-party => OpusBinding/Sources}/opusfile/internal.c (100%) rename submodules/{TelegramUI/third-party => OpusBinding/Sources}/opusfile/internal.h (99%) rename submodules/{TelegramUI/third-party => OpusBinding/Sources}/opusfile/opusfile.c (100%) rename submodules/{TelegramUI/third-party => OpusBinding/Sources}/opusfile/opusfile.h (99%) rename submodules/{TelegramUI/third-party => OpusBinding/Sources}/opusfile/stream.c (100%) delete mode 100644 submodules/TelegramUI/TelegramUI/UIImage+ImageEffects.h diff --git a/Telegram-iOS.xcworkspace/contents.xcworkspacedata b/Telegram-iOS.xcworkspace/contents.xcworkspacedata index 9545731036..1fd1843193 100644 --- a/Telegram-iOS.xcworkspace/contents.xcworkspacedata +++ b/Telegram-iOS.xcworkspace/contents.xcworkspacedata @@ -19,6 +19,12 @@ + + + + + location = "group:submodules/DeviceProximity/DeviceProximity_Xcode.xcodeproj"> + location = "group:submodules/RaiseToListen/RaiseToListen_Xcode.xcodeproj"> +#import + +UIImage * _Nullable applyScreenshotEffectToImage(UIImage * _Nonnull image); diff --git a/submodules/TelegramUI/TelegramUI/UIImage+ImageEffects.m b/submodules/ImageBlur/Sources/ApplyScreenshotEffect.m similarity index 80% rename from submodules/TelegramUI/TelegramUI/UIImage+ImageEffects.m rename to submodules/ImageBlur/Sources/ApplyScreenshotEffect.m index cdb6322cf2..769a870df3 100644 --- a/submodules/TelegramUI/TelegramUI/UIImage+ImageEffects.m +++ b/submodules/ImageBlur/Sources/ApplyScreenshotEffect.m @@ -1,73 +1,62 @@ - - -#import "UIImage+ImageEffects.h" +#import "ApplyScreenshotEffect.h" #import #import -@implementation UIImage (ImageEffects) - -- (UIImage *)applyScreenshotEffect -{ - UIColor *tintColor = [UIColor colorWithWhite:1.0f alpha:0.3f]; - return [self applyBlurWithRadius:10 tintColor:tintColor saturationDeltaFactor:1.8f maskImage:nil]; -} - -- (UIImage *)applyBlurWithRadius:(CGFloat)blurRadius tintColor:(UIColor *)tintColor saturationDeltaFactor:(CGFloat)saturationDeltaFactor maskImage:(UIImage *)maskImage -{ +UIImage * _Nullable applyBlurWithRadius(UIImage *image, CGFloat blurRadius, UIColor * tintColor, CGFloat saturationDeltaFactor, UIImage * _Nullable maskImage) { // Check pre-conditions. - if (self.size.width < 1 || self.size.height < 1) { - NSLog (@"*** error: invalid size: (%.2f x %.2f). Both dimensions must be >= 1: %@", self.size.width, self.size.height, self); + if (image.size.width < 1 || image.size.height < 1) { + NSLog (@"*** error: invalid size: (%.2f x %.2f). Both dimensions must be >= 1: %@", image.size.width, image.size.height, image); return nil; } - if (!self.CGImage) { - NSLog (@"*** error: image must be backed by a CGImage: %@", self); + if (!image.CGImage) { + NSLog (@"*** error: image must be backed by a CGImage: %@", image); return nil; } if (maskImage && !maskImage.CGImage) { NSLog (@"*** error: maskImage must be backed by a CGImage: %@", maskImage); return nil; } - - CGRect imageRect = { CGPointZero, self.size }; - UIImage *effectImage = self; + + CGRect imageRect = { CGPointZero, image.size }; + UIImage *effectImage = image; BOOL hasBlur = blurRadius > __FLT_EPSILON__; BOOL hasSaturationChange = fabs(saturationDeltaFactor - 1.) > __FLT_EPSILON__; if (hasBlur || hasSaturationChange) { - UIGraphicsBeginImageContextWithOptions(self.size, NO, [[UIScreen mainScreen] scale]); + UIGraphicsBeginImageContextWithOptions(image.size, NO, [[UIScreen mainScreen] scale]); CGContextRef effectInContext = UIGraphicsGetCurrentContext(); CGContextScaleCTM(effectInContext, 1.0, -1.0); - CGContextTranslateCTM(effectInContext, 0, -self.size.height); - CGContextDrawImage(effectInContext, imageRect, self.CGImage); - + CGContextTranslateCTM(effectInContext, 0, -image.size.height); + CGContextDrawImage(effectInContext, imageRect, image.CGImage); + vImage_Buffer effectInBuffer; effectInBuffer.data = CGBitmapContextGetData(effectInContext); effectInBuffer.width = CGBitmapContextGetWidth(effectInContext); effectInBuffer.height = CGBitmapContextGetHeight(effectInContext); effectInBuffer.rowBytes = CGBitmapContextGetBytesPerRow(effectInContext); - - UIGraphicsBeginImageContextWithOptions(self.size, NO, [[UIScreen mainScreen] scale]); + + UIGraphicsBeginImageContextWithOptions(image.size, NO, [[UIScreen mainScreen] scale]); CGContextRef effectOutContext = UIGraphicsGetCurrentContext(); vImage_Buffer effectOutBuffer; effectOutBuffer.data = CGBitmapContextGetData(effectOutContext); effectOutBuffer.width = CGBitmapContextGetWidth(effectOutContext); effectOutBuffer.height = CGBitmapContextGetHeight(effectOutContext); effectOutBuffer.rowBytes = CGBitmapContextGetBytesPerRow(effectOutContext); - + if (hasBlur) { // A description of how to compute the box kernel width from the Gaussian // radius (aka standard deviation) appears in the SVG spec: // http://www.w3.org/TR/SVG/filters.html#feGaussianBlurElement - // + // // For larger values of 's' (s >= 2.0), an approximation can be used: Three // successive box-blurs build a piece-wise quadratic convolution kernel, which // approximates the Gaussian kernel to within roughly 3%. // // let d = floor(s * 3*sqrt(2*pi)/4 + 0.5) - // + // // ... if d is odd, use three box-blurs of size 'd', centered on the output pixel. - // + // CGFloat inputRadius = blurRadius * [[UIScreen mainScreen] scale]; NSUInteger radius = (NSUInteger)(floor(inputRadius * 3.0f * ((CGFloat)sqrt(2 * M_PI)) / 4 + 0.5f)); if (radius % 2 != 1) { @@ -84,7 +73,7 @@ 0.0722f + 0.9278f * s, 0.0722f - 0.0722f * s, 0.0722f - 0.0722f * s, 0, 0.7152f - 0.7152f * s, 0.7152f + 0.2848f * s, 0.7152f - 0.7152f * s, 0, 0.2126f - 0.2126f * s, 0.2126f - 0.2126f * s, 0.2126f + 0.7873f * s, 0, - 0, 0, 0, 1, + 0, 0, 0, 1, }; const int32_t divisor = 256; NSUInteger matrixSize = sizeof(floatingPointSaturationMatrix)/sizeof(floatingPointSaturationMatrix[0]); @@ -103,21 +92,21 @@ if (!effectImageBuffersAreSwapped) effectImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); - + if (effectImageBuffersAreSwapped) effectImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); } - + // Set up output context. - UIGraphicsBeginImageContextWithOptions(self.size, NO, [[UIScreen mainScreen] scale]); + UIGraphicsBeginImageContextWithOptions(image.size, NO, [[UIScreen mainScreen] scale]); CGContextRef outputContext = UIGraphicsGetCurrentContext(); CGContextScaleCTM(outputContext, 1.0, -1.0); - CGContextTranslateCTM(outputContext, 0, -self.size.height); - + CGContextTranslateCTM(outputContext, 0, -image.size.height); + // Draw base image. - CGContextDrawImage(outputContext, imageRect, self.CGImage); - + CGContextDrawImage(outputContext, imageRect, image.CGImage); + // Draw effect image. if (hasBlur) { CGContextSaveGState(outputContext); @@ -127,7 +116,7 @@ CGContextDrawImage(outputContext, imageRect, effectImage.CGImage); CGContextRestoreGState(outputContext); } - + // Add in color tint. if (tintColor) { CGContextSaveGState(outputContext); @@ -135,13 +124,15 @@ CGContextFillRect(outputContext, imageRect); CGContextRestoreGState(outputContext); } - + // Output image is ready. UIImage *outputImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); - + return outputImage; } - -@end +UIImage * _Nullable applyScreenshotEffectToImage(UIImage * _Nonnull image) { + UIColor *tintColor = [UIColor colorWithWhite:1.0f alpha:0.3f]; + return applyBlurWithRadius(image, 10.0f, tintColor, 1.8f, nil); +} diff --git a/submodules/ImageBlur/Sources/ImageBlur.h b/submodules/ImageBlur/Sources/ImageBlur.h index 21ab6cdb46..c70dd7a483 100644 --- a/submodules/ImageBlur/Sources/ImageBlur.h +++ b/submodules/ImageBlur/Sources/ImageBlur.h @@ -7,5 +7,6 @@ FOUNDATION_EXPORT double ImageBlurVersionNumber; FOUNDATION_EXPORT const unsigned char ImageBlurVersionString[]; #import +#import diff --git a/submodules/Opus/Info.plist b/submodules/Opus/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/Opus/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/third-party/opus/lib/libopus.a b/submodules/Opus/Sources/opus/lib/libopus.a similarity index 100% rename from submodules/TelegramUI/third-party/opus/lib/libopus.a rename to submodules/Opus/Sources/opus/lib/libopus.a diff --git a/submodules/TelegramUI/third-party/opus/include/opus/opus.h b/submodules/Opus/Sources/opus/opus.h similarity index 99% rename from submodules/TelegramUI/third-party/opus/include/opus/opus.h rename to submodules/Opus/Sources/opus/opus.h index d282f21d25..dd5a8fe2d2 100644 --- a/submodules/TelegramUI/third-party/opus/include/opus/opus.h +++ b/submodules/Opus/Sources/opus/opus.h @@ -33,8 +33,8 @@ #ifndef OPUS_H #define OPUS_H -#include "opus_types.h" -#include "opus_defines.h" +#include +#include #ifdef __cplusplus extern "C" { diff --git a/submodules/TelegramUI/third-party/opus/include/opus/opus_defines.h b/submodules/Opus/Sources/opus_defines.h similarity index 99% rename from submodules/TelegramUI/third-party/opus/include/opus/opus_defines.h rename to submodules/Opus/Sources/opus_defines.h index fbf5d0eb74..2239c3ec50 100644 --- a/submodules/TelegramUI/third-party/opus/include/opus/opus_defines.h +++ b/submodules/Opus/Sources/opus_defines.h @@ -33,7 +33,7 @@ #ifndef OPUS_DEFINES_H #define OPUS_DEFINES_H -#include "opus_types.h" +#include #ifdef __cplusplus extern "C" { diff --git a/submodules/TelegramUI/third-party/opus/include/opus/opus_multistream.h b/submodules/Opus/Sources/opus_multistream.h similarity index 99% rename from submodules/TelegramUI/third-party/opus/include/opus/opus_multistream.h rename to submodules/Opus/Sources/opus_multistream.h index babcee6905..0347310a00 100644 --- a/submodules/TelegramUI/third-party/opus/include/opus/opus_multistream.h +++ b/submodules/Opus/Sources/opus_multistream.h @@ -33,7 +33,7 @@ #ifndef OPUS_MULTISTREAM_H #define OPUS_MULTISTREAM_H -#include "opus.h" +#include #ifdef __cplusplus extern "C" { diff --git a/submodules/TelegramUI/third-party/opus/include/opus/opus_projection.h b/submodules/Opus/Sources/opus_projection.h similarity index 99% rename from submodules/TelegramUI/third-party/opus/include/opus/opus_projection.h rename to submodules/Opus/Sources/opus_projection.h index 9dabf4e85c..d33d9e332c 100644 --- a/submodules/TelegramUI/third-party/opus/include/opus/opus_projection.h +++ b/submodules/Opus/Sources/opus_projection.h @@ -33,7 +33,7 @@ #ifndef OPUS_PROJECTION_H #define OPUS_PROJECTION_H -#include "opus_multistream.h" +#include #ifdef __cplusplus extern "C" { diff --git a/submodules/TelegramUI/third-party/opus/include/opus/opus_types.h b/submodules/Opus/Sources/opus_types.h similarity index 100% rename from submodules/TelegramUI/third-party/opus/include/opus/opus_types.h rename to submodules/Opus/Sources/opus_types.h diff --git a/submodules/Opus/opus_Xcode.xcodeproj/project.pbxproj b/submodules/Opus/opus_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..d34be5aafd --- /dev/null +++ b/submodules/Opus/opus_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,540 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E43DB23058AC90049C28B /* opus.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E43D423058AC90049C28B /* opus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E43DC23058AC90049C28B /* opus_multistream.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E43D523058AC90049C28B /* opus_multistream.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E43DE23058ACA0049C28B /* opus_types.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E43D823058AC90049C28B /* opus_types.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E43DF23058ACA0049C28B /* opus_defines.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E43D923058AC90049C28B /* opus_defines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E43E023058ACA0049C28B /* opus_projection.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E43DA23058AC90049C28B /* opus_projection.h */; settings = {ATTRIBUTES = (Public, ); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E43C4230582870049C28B /* Opus.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Opus.framework; path = opus.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E43C8230582870049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E43D423058AC90049C28B /* opus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = opus.h; path = opus/opus.h; sourceTree = ""; }; + D03E43D523058AC90049C28B /* opus_multistream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opus_multistream.h; sourceTree = ""; }; + D03E43D823058AC90049C28B /* opus_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opus_types.h; sourceTree = ""; }; + D03E43D923058AC90049C28B /* opus_defines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opus_defines.h; sourceTree = ""; }; + D03E43DA23058AC90049C28B /* opus_projection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opus_projection.h; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E43C1230582870049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E43BA230582870049C28B = { + isa = PBXGroup; + children = ( + D03E43C8230582870049C28B /* Info.plist */, + D03E43C6230582870049C28B /* Sources */, + D03E43C5230582870049C28B /* Products */, + ); + sourceTree = ""; + }; + D03E43C5230582870049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E43C4230582870049C28B /* Opus.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E43C6230582870049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E43D423058AC90049C28B /* opus.h */, + D03E43D523058AC90049C28B /* opus_multistream.h */, + D03E43D823058AC90049C28B /* opus_types.h */, + D03E43D923058AC90049C28B /* opus_defines.h */, + D03E43DA23058AC90049C28B /* opus_projection.h */, + ); + path = Sources; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E43BF230582870049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E43DE23058ACA0049C28B /* opus_types.h in Headers */, + D03E43DB23058AC90049C28B /* opus.h in Headers */, + D03E43DC23058AC90049C28B /* opus_multistream.h in Headers */, + D03E43E023058ACA0049C28B /* opus_projection.h in Headers */, + D03E43DF23058ACA0049C28B /* opus_defines.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E43C3230582870049C28B /* opus */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E43CC230582870049C28B /* Build configuration list for PBXNativeTarget "opus" */; + buildPhases = ( + D03E43BF230582870049C28B /* Headers */, + D03E43C0230582870049C28B /* Sources */, + D03E43C1230582870049C28B /* Frameworks */, + D03E43C2230582870049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = opus; + productName = Opus; + productReference = D03E43C4230582870049C28B /* Opus.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E43BB230582870049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E43C3230582870049C28B = { + CreatedOnToolsVersion = 10.3; + }; + }; + }; + buildConfigurationList = D03E43BE230582870049C28B /* Build configuration list for PBXProject "opus_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E43BA230582870049C28B; + productRefGroup = D03E43C5230582870049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E43C3230582870049C28B /* opus */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E43C2230582870049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E43C0230582870049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E43CA230582870049C28B /* 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; + }; + D03E43CB230582870049C28B /* 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; + }; + D03E43CD230582870049C28B /* 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", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Sources/opus/lib", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Opus; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugAppStoreLLC; + }; + D03E43CE230582870049C28B /* 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", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Sources/opus/lib", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Opus; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E43CF230582D70049C28B /* 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; + }; + D03E43D0230582D70049C28B /* 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", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Sources/opus/lib", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Opus; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugHockeyapp; + }; + D03E43D1230582E40049C28B /* 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; + }; + D03E43D2230582E40049C28B /* 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", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Sources/opus/lib", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Opus; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseHockeyappInternal; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D03E43BE230582870049C28B /* Build configuration list for PBXProject "opus_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E43CA230582870049C28B /* DebugAppStoreLLC */, + D03E43CF230582D70049C28B /* DebugHockeyapp */, + D03E43CB230582870049C28B /* ReleaseAppStoreLLC */, + D03E43D1230582E40049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E43CC230582870049C28B /* Build configuration list for PBXNativeTarget "opus" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E43CD230582870049C28B /* DebugAppStoreLLC */, + D03E43D0230582D70049C28B /* DebugHockeyapp */, + D03E43CE230582870049C28B /* ReleaseAppStoreLLC */, + D03E43D2230582E40049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E43BB230582870049C28B /* Project object */; +} diff --git a/submodules/OpusBinding/Info.plist b/submodules/OpusBinding/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/OpusBinding/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/OpusBinding/OpusBinding_Xcode.xcodeproj/project.pbxproj b/submodules/OpusBinding/OpusBinding_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..b0f40fb056 --- /dev/null +++ b/submodules/OpusBinding/OpusBinding_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,672 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E434D23057EBE0049C28B /* OpusBinding.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E434B23057EBE0049C28B /* OpusBinding.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E437D23057FD50049C28B /* internal.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E435E23057FD50049C28B /* internal.h */; }; + D03E437E23057FD50049C28B /* opusfile.c in Sources */ = {isa = PBXBuildFile; fileRef = D03E435F23057FD50049C28B /* opusfile.c */; }; + D03E437F23057FD50049C28B /* info.c in Sources */ = {isa = PBXBuildFile; fileRef = D03E436023057FD50049C28B /* info.c */; }; + D03E438023057FD50049C28B /* internal.c in Sources */ = {isa = PBXBuildFile; fileRef = D03E436123057FD50049C28B /* internal.c */; }; + D03E438123057FD50049C28B /* opusfile.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E436223057FD50049C28B /* opusfile.h */; }; + D03E438223057FD50049C28B /* stream.c in Sources */ = {isa = PBXBuildFile; fileRef = D03E436323057FD50049C28B /* stream.c */; }; + D03E438923057FD50049C28B /* picture.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E436F23057FD50049C28B /* picture.h */; }; + D03E438A23057FD50049C28B /* opusenc.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E437023057FD50049C28B /* opusenc.m */; }; + D03E438B23057FD50049C28B /* opus_header.c in Sources */ = {isa = PBXBuildFile; fileRef = D03E437123057FD50049C28B /* opus_header.c */; }; + D03E438C23057FD50049C28B /* wav_io.c in Sources */ = {isa = PBXBuildFile; fileRef = D03E437223057FD50049C28B /* wav_io.c */; }; + D03E438D23057FD50049C28B /* diag_range.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E437323057FD50049C28B /* diag_range.h */; }; + D03E438E23057FD50049C28B /* picture.c in Sources */ = {isa = PBXBuildFile; fileRef = D03E437423057FD50049C28B /* picture.c */; }; + D03E438F23057FD50049C28B /* opus_header.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E437523057FD50049C28B /* opus_header.h */; }; + D03E439123057FD50049C28B /* wav_io.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E437723057FD50049C28B /* wav_io.h */; }; + D03E439223057FD50049C28B /* diag_range.c in Sources */ = {isa = PBXBuildFile; fileRef = D03E437823057FD50049C28B /* diag_range.c */; }; + D03E439F230581B30049C28B /* TGDataItem.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E439D230581B30049C28B /* TGDataItem.m */; }; + D03E43A0230581B30049C28B /* TGDataItem.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E439E230581B30049C28B /* TGDataItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E43E3230590210049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E43E2230590210049C28B /* Foundation.framework */; }; + D03E43E8230593140049C28B /* TGOggOpusWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E43E6230593140049C28B /* TGOggOpusWriter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E44122305ACC10049C28B /* opus.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E44112305ACC10049C28B /* opus.framework */; }; + D03E441C2305AEE30049C28B /* ogg.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E44182305AEE30049C28B /* ogg.h */; }; + D03E441D2305AEE30049C28B /* framing.c in Sources */ = {isa = PBXBuildFile; fileRef = D03E44192305AEE30049C28B /* framing.c */; }; + D03E441E2305AEE30049C28B /* os_types.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E441A2305AEE30049C28B /* os_types.h */; }; + D03E441F2305AEE30049C28B /* bitwise.c in Sources */ = {isa = PBXBuildFile; fileRef = D03E441B2305AEE30049C28B /* bitwise.c */; }; + D03E44222305AFEB0049C28B /* OggOpusReader.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E44202305AFEB0049C28B /* OggOpusReader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E44232305AFEB0049C28B /* OggOpusReader.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E44212305AFEB0049C28B /* OggOpusReader.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E434823057EBE0049C28B /* OpusBinding.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OpusBinding.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E434B23057EBE0049C28B /* OpusBinding.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OpusBinding.h; sourceTree = ""; }; + D03E434C23057EBE0049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E435E23057FD50049C28B /* internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = internal.h; sourceTree = ""; }; + D03E435F23057FD50049C28B /* opusfile.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = opusfile.c; sourceTree = ""; }; + D03E436023057FD50049C28B /* info.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = info.c; sourceTree = ""; }; + D03E436123057FD50049C28B /* internal.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = internal.c; sourceTree = ""; }; + D03E436223057FD50049C28B /* opusfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opusfile.h; sourceTree = ""; }; + D03E436323057FD50049C28B /* stream.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stream.c; sourceTree = ""; }; + D03E436F23057FD50049C28B /* picture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = picture.h; sourceTree = ""; }; + D03E437023057FD50049C28B /* opusenc.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = opusenc.m; sourceTree = ""; }; + D03E437123057FD50049C28B /* opus_header.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = opus_header.c; sourceTree = ""; }; + D03E437223057FD50049C28B /* wav_io.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = wav_io.c; sourceTree = ""; }; + D03E437323057FD50049C28B /* diag_range.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = diag_range.h; sourceTree = ""; }; + D03E437423057FD50049C28B /* picture.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = picture.c; sourceTree = ""; }; + D03E437523057FD50049C28B /* opus_header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opus_header.h; sourceTree = ""; }; + D03E437723057FD50049C28B /* wav_io.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wav_io.h; sourceTree = ""; }; + D03E437823057FD50049C28B /* diag_range.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = diag_range.c; sourceTree = ""; }; + D03E439D230581B30049C28B /* TGDataItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGDataItem.m; sourceTree = ""; }; + D03E439E230581B30049C28B /* TGDataItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGDataItem.h; sourceTree = ""; }; + D03E43E2230590210049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E43E4230590240049C28B /* Opus.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Opus.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E43E6230593140049C28B /* TGOggOpusWriter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TGOggOpusWriter.h; sourceTree = ""; }; + D03E440F2305ACBB0049C28B /* ogg.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ogg.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E44112305ACC10049C28B /* opus.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = opus.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E44182305AEE30049C28B /* ogg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ogg.h; sourceTree = ""; }; + D03E44192305AEE30049C28B /* framing.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = framing.c; sourceTree = ""; }; + D03E441A2305AEE30049C28B /* os_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = os_types.h; sourceTree = ""; }; + D03E441B2305AEE30049C28B /* bitwise.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bitwise.c; sourceTree = ""; }; + D03E44202305AFEB0049C28B /* OggOpusReader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OggOpusReader.h; sourceTree = ""; }; + D03E44212305AFEB0049C28B /* OggOpusReader.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OggOpusReader.m; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E434523057EBE0049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E44122305ACC10049C28B /* opus.framework in Frameworks */, + D03E43E3230590210049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E433E23057EBE0049C28B = { + isa = PBXGroup; + children = ( + D03E434C23057EBE0049C28B /* Info.plist */, + D03E434A23057EBE0049C28B /* Sources */, + D03E434923057EBE0049C28B /* Products */, + D03E43E1230590200049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E434923057EBE0049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E434823057EBE0049C28B /* OpusBinding.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E434A23057EBE0049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E439E230581B30049C28B /* TGDataItem.h */, + D03E439D230581B30049C28B /* TGDataItem.m */, + D03E43E6230593140049C28B /* TGOggOpusWriter.h */, + D03E44202305AFEB0049C28B /* OggOpusReader.h */, + D03E44212305AFEB0049C28B /* OggOpusReader.m */, + D03E44172305AEE30049C28B /* ogg */, + D03E436E23057FD50049C28B /* opusenc */, + D03E435D23057FD50049C28B /* opusfile */, + D03E434B23057EBE0049C28B /* OpusBinding.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E435D23057FD50049C28B /* opusfile */ = { + isa = PBXGroup; + children = ( + D03E435E23057FD50049C28B /* internal.h */, + D03E435F23057FD50049C28B /* opusfile.c */, + D03E436023057FD50049C28B /* info.c */, + D03E436123057FD50049C28B /* internal.c */, + D03E436223057FD50049C28B /* opusfile.h */, + D03E436323057FD50049C28B /* stream.c */, + ); + path = opusfile; + sourceTree = ""; + }; + D03E436E23057FD50049C28B /* opusenc */ = { + isa = PBXGroup; + children = ( + D03E436F23057FD50049C28B /* picture.h */, + D03E437023057FD50049C28B /* opusenc.m */, + D03E437123057FD50049C28B /* opus_header.c */, + D03E437223057FD50049C28B /* wav_io.c */, + D03E437323057FD50049C28B /* diag_range.h */, + D03E437423057FD50049C28B /* picture.c */, + D03E437523057FD50049C28B /* opus_header.h */, + D03E437723057FD50049C28B /* wav_io.h */, + D03E437823057FD50049C28B /* diag_range.c */, + ); + path = opusenc; + sourceTree = ""; + }; + D03E43E1230590200049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E44112305ACC10049C28B /* opus.framework */, + D03E440F2305ACBB0049C28B /* ogg.framework */, + D03E43E4230590240049C28B /* Opus.framework */, + D03E43E2230590210049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + D03E44172305AEE30049C28B /* ogg */ = { + isa = PBXGroup; + children = ( + D03E44182305AEE30049C28B /* ogg.h */, + D03E44192305AEE30049C28B /* framing.c */, + D03E441A2305AEE30049C28B /* os_types.h */, + D03E441B2305AEE30049C28B /* bitwise.c */, + ); + path = ogg; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E434323057EBE0049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E438923057FD50049C28B /* picture.h in Headers */, + D03E438F23057FD50049C28B /* opus_header.h in Headers */, + D03E439123057FD50049C28B /* wav_io.h in Headers */, + D03E437D23057FD50049C28B /* internal.h in Headers */, + D03E44222305AFEB0049C28B /* OggOpusReader.h in Headers */, + D03E441C2305AEE30049C28B /* ogg.h in Headers */, + D03E434D23057EBE0049C28B /* OpusBinding.h in Headers */, + D03E43A0230581B30049C28B /* TGDataItem.h in Headers */, + D03E438123057FD50049C28B /* opusfile.h in Headers */, + D03E441E2305AEE30049C28B /* os_types.h in Headers */, + D03E438D23057FD50049C28B /* diag_range.h in Headers */, + D03E43E8230593140049C28B /* TGOggOpusWriter.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E434723057EBE0049C28B /* OpusBinding */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E435023057EBE0049C28B /* Build configuration list for PBXNativeTarget "OpusBinding" */; + buildPhases = ( + D03E434323057EBE0049C28B /* Headers */, + D03E434423057EBE0049C28B /* Sources */, + D03E434523057EBE0049C28B /* Frameworks */, + D03E434623057EBE0049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = OpusBinding; + productName = OpusBinding; + productReference = D03E434823057EBE0049C28B /* OpusBinding.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E433F23057EBE0049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E434723057EBE0049C28B = { + CreatedOnToolsVersion = 10.3; + }; + }; + }; + buildConfigurationList = D03E434223057EBE0049C28B /* Build configuration list for PBXProject "OpusBinding_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E433E23057EBE0049C28B; + productRefGroup = D03E434923057EBE0049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E434723057EBE0049C28B /* OpusBinding */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E434623057EBE0049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E434423057EBE0049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E437E23057FD50049C28B /* opusfile.c in Sources */, + D03E437F23057FD50049C28B /* info.c in Sources */, + D03E438E23057FD50049C28B /* picture.c in Sources */, + D03E438A23057FD50049C28B /* opusenc.m in Sources */, + D03E438C23057FD50049C28B /* wav_io.c in Sources */, + D03E44232305AFEB0049C28B /* OggOpusReader.m in Sources */, + D03E441F2305AEE30049C28B /* bitwise.c in Sources */, + D03E439223057FD50049C28B /* diag_range.c in Sources */, + D03E439F230581B30049C28B /* TGDataItem.m in Sources */, + D03E438B23057FD50049C28B /* opus_header.c in Sources */, + D03E438023057FD50049C28B /* internal.c in Sources */, + D03E438223057FD50049C28B /* stream.c in Sources */, + D03E441D2305AEE30049C28B /* framing.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E434E23057EBE0049C28B /* 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; + }; + D03E434F23057EBE0049C28B /* 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; + }; + D03E435123057EBE0049C28B /* 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"; + HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/Sources"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Sources/opus/lib", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.OpusBinding; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = DebugAppStoreLLC; + }; + D03E435223057EBE0049C28B /* 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"; + HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/Sources"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Sources/opus/lib", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.OpusBinding; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = ReleaseAppStoreLLC; + }; + D03E435323057F620049C28B /* 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; + }; + D03E435423057F620049C28B /* 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"; + HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/Sources"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Sources/opus/lib", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.OpusBinding; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = DebugHockeyapp; + }; + D03E435523057F6B0049C28B /* 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; + }; + D03E435623057F6B0049C28B /* 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"; + HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/Sources"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Sources/opus/lib", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.OpusBinding; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = ReleaseHockeyappInternal; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D03E434223057EBE0049C28B /* Build configuration list for PBXProject "OpusBinding_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E434E23057EBE0049C28B /* DebugAppStoreLLC */, + D03E435323057F620049C28B /* DebugHockeyapp */, + D03E434F23057EBE0049C28B /* ReleaseAppStoreLLC */, + D03E435523057F6B0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E435023057EBE0049C28B /* Build configuration list for PBXNativeTarget "OpusBinding" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E435123057EBE0049C28B /* DebugAppStoreLLC */, + D03E435423057F620049C28B /* DebugHockeyapp */, + D03E435223057EBE0049C28B /* ReleaseAppStoreLLC */, + D03E435623057F6B0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E433F23057EBE0049C28B /* Project object */; +} diff --git a/submodules/OpusBinding/Sources/OggOpusReader.h b/submodules/OpusBinding/Sources/OggOpusReader.h new file mode 100644 index 0000000000..2bfe4c5438 --- /dev/null +++ b/submodules/OpusBinding/Sources/OggOpusReader.h @@ -0,0 +1,13 @@ +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface OggOpusReader : NSObject + +- (instancetype _Nullable)initWithPath:(NSString *)path; + +- (int32_t)read:(void *)pcmData bufSize:(int)bufSize; + +@end + +NS_ASSUME_NONNULL_END diff --git a/submodules/OpusBinding/Sources/OggOpusReader.m b/submodules/OpusBinding/Sources/OggOpusReader.m new file mode 100644 index 0000000000..bf569da19f --- /dev/null +++ b/submodules/OpusBinding/Sources/OggOpusReader.m @@ -0,0 +1,35 @@ +#import "OggOpusReader.h" + +#import "opusfile/opusfile.h" + +@interface OggOpusReader () { + OggOpusFile *_opusFile; +} + +@end + +@implementation OggOpusReader + +- (instancetype _Nullable)init:(NSString *)path { + self = [super init]; + if (self != nil) { + int error = OPUS_OK; + _opusFile = op_open_file(path.UTF8String, &error); + if (_opusFile == NULL || error != OPUS_OK) { + return nil; + } + } + return self; +} + +- (void)dealloc { + if (_opusFile) { + op_free(_opusFile); + } +} + +- (int32_t)read:(void *)pcmData bufSize:(int)bufSize { + return op_read(_opusFile, pcmData, bufSize, NULL); +} + +@end diff --git a/submodules/OpusBinding/Sources/OpusBinding.h b/submodules/OpusBinding/Sources/OpusBinding.h new file mode 100644 index 0000000000..43fe2aebe3 --- /dev/null +++ b/submodules/OpusBinding/Sources/OpusBinding.h @@ -0,0 +1,11 @@ +#import + +//! Project version number for OpusBinding. +FOUNDATION_EXPORT double OpusBindingVersionNumber; + +//! Project version string for OpusBinding. +FOUNDATION_EXPORT const unsigned char OpusBindingVersionString[]; + +#import +#import +#import diff --git a/submodules/TelegramUI/TelegramUI/TGDataItem.h b/submodules/OpusBinding/Sources/TGDataItem.h similarity index 100% rename from submodules/TelegramUI/TelegramUI/TGDataItem.h rename to submodules/OpusBinding/Sources/TGDataItem.h diff --git a/submodules/TelegramUI/TelegramUI/TGDataItem.m b/submodules/OpusBinding/Sources/TGDataItem.m similarity index 100% rename from submodules/TelegramUI/TelegramUI/TGDataItem.m rename to submodules/OpusBinding/Sources/TGDataItem.m diff --git a/submodules/TelegramUI/third-party/opusenc/opusenc.h b/submodules/OpusBinding/Sources/TGOggOpusWriter.h similarity index 58% rename from submodules/TelegramUI/third-party/opusenc/opusenc.h rename to submodules/OpusBinding/Sources/TGOggOpusWriter.h index 03d6425ede..ffaaaf8564 100644 --- a/submodules/TelegramUI/third-party/opusenc/opusenc.h +++ b/submodules/OpusBinding/Sources/TGOggOpusWriter.h @@ -1,17 +1,16 @@ -#ifndef __OPUSENC_H -#define __OPUSENC_H - #import +NS_ASSUME_NONNULL_BEGIN + @class TGDataItem; @interface TGOggOpusWriter : NSObject - (bool)beginWithDataItem:(TGDataItem *)dataItem; -- (bool)writeFrame:(uint8_t *)framePcmBytes frameByteCount:(NSUInteger)frameByteCount; +- (bool)writeFrame:(uint8_t * _Nullable)framePcmBytes frameByteCount:(NSUInteger)frameByteCount; - (NSUInteger)encodedBytes; - (NSTimeInterval)encodedDuration; @end -#endif /* __OPUSENC_H */ +NS_ASSUME_NONNULL_END diff --git a/submodules/TelegramUI/third-party/ogg/ogg/bitwise.c b/submodules/OpusBinding/Sources/ogg/bitwise.c similarity index 100% rename from submodules/TelegramUI/third-party/ogg/ogg/bitwise.c rename to submodules/OpusBinding/Sources/ogg/bitwise.c diff --git a/submodules/TelegramUI/third-party/ogg/ogg/framing.c b/submodules/OpusBinding/Sources/ogg/framing.c similarity index 100% rename from submodules/TelegramUI/third-party/ogg/ogg/framing.c rename to submodules/OpusBinding/Sources/ogg/framing.c diff --git a/submodules/TelegramUI/third-party/ogg/ogg/ogg.h b/submodules/OpusBinding/Sources/ogg/ogg.h similarity index 100% rename from submodules/TelegramUI/third-party/ogg/ogg/ogg.h rename to submodules/OpusBinding/Sources/ogg/ogg.h diff --git a/submodules/TelegramUI/third-party/ogg/ogg/os_types.h b/submodules/OpusBinding/Sources/ogg/os_types.h similarity index 100% rename from submodules/TelegramUI/third-party/ogg/ogg/os_types.h rename to submodules/OpusBinding/Sources/ogg/os_types.h diff --git a/submodules/TelegramUI/third-party/opusenc/diag_range.c b/submodules/OpusBinding/Sources/opusenc/diag_range.c similarity index 99% rename from submodules/TelegramUI/third-party/opusenc/diag_range.c rename to submodules/OpusBinding/Sources/opusenc/diag_range.c index 20bbfe20dd..cd304ef90e 100644 --- a/submodules/TelegramUI/third-party/opusenc/diag_range.c +++ b/submodules/OpusBinding/Sources/opusenc/diag_range.c @@ -40,11 +40,7 @@ #endif #include -#ifdef BUCK #include -#else -#include "opus.h" -#endif #include "diag_range.h" /*This is some non-exported code copied wholesale from libopus. diff --git a/submodules/TelegramUI/third-party/opusenc/diag_range.h b/submodules/OpusBinding/Sources/opusenc/diag_range.h similarity index 100% rename from submodules/TelegramUI/third-party/opusenc/diag_range.h rename to submodules/OpusBinding/Sources/opusenc/diag_range.h diff --git a/submodules/TelegramUI/third-party/opusenc/opus_header.c b/submodules/OpusBinding/Sources/opusenc/opus_header.c similarity index 100% rename from submodules/TelegramUI/third-party/opusenc/opus_header.c rename to submodules/OpusBinding/Sources/opusenc/opus_header.c diff --git a/submodules/TelegramUI/third-party/opusenc/opus_header.h b/submodules/OpusBinding/Sources/opusenc/opus_header.h similarity index 100% rename from submodules/TelegramUI/third-party/opusenc/opus_header.h rename to submodules/OpusBinding/Sources/opusenc/opus_header.h diff --git a/submodules/TelegramUI/third-party/opusenc/opusenc.m b/submodules/OpusBinding/Sources/opusenc/opusenc.m similarity index 98% rename from submodules/TelegramUI/third-party/opusenc/opusenc.m rename to submodules/OpusBinding/Sources/opusenc/opusenc.m index d29eaa10ad..b8d7ef69fc 100644 --- a/submodules/TelegramUI/third-party/opusenc/opusenc.m +++ b/submodules/OpusBinding/Sources/opusenc/opusenc.m @@ -1,13 +1,8 @@ -#import "opusenc.h" - -#ifdef BUCK #include -#else -#include "opus_types.h" -#endif #include #import "TGDataItem.h" +#import "TGOggOpusWriter.h" #ifdef ENABLE_NLS #include @@ -52,13 +47,7 @@ typedef struct char *description; } input_format; -#ifdef BUCK #include -#include -#else -#include "opus.h" -#include "opus_multistream.h" -#endif #include #include "opus_header.h" diff --git a/submodules/TelegramUI/third-party/opusenc/picture.c b/submodules/OpusBinding/Sources/opusenc/picture.c similarity index 100% rename from submodules/TelegramUI/third-party/opusenc/picture.c rename to submodules/OpusBinding/Sources/opusenc/picture.c diff --git a/submodules/TelegramUI/third-party/opusenc/picture.h b/submodules/OpusBinding/Sources/opusenc/picture.h similarity index 100% rename from submodules/TelegramUI/third-party/opusenc/picture.h rename to submodules/OpusBinding/Sources/opusenc/picture.h diff --git a/submodules/TelegramUI/third-party/opusenc/wav_io.c b/submodules/OpusBinding/Sources/opusenc/wav_io.c similarity index 100% rename from submodules/TelegramUI/third-party/opusenc/wav_io.c rename to submodules/OpusBinding/Sources/opusenc/wav_io.c diff --git a/submodules/TelegramUI/third-party/opusenc/wav_io.h b/submodules/OpusBinding/Sources/opusenc/wav_io.h similarity index 97% rename from submodules/TelegramUI/third-party/opusenc/wav_io.h rename to submodules/OpusBinding/Sources/opusenc/wav_io.h index 38c4423400..4309766d86 100644 --- a/submodules/TelegramUI/third-party/opusenc/wav_io.h +++ b/submodules/OpusBinding/Sources/opusenc/wav_io.h @@ -29,11 +29,7 @@ #define WAV_IO_H #include -#ifdef BUCK #include -#else -#include "opus_types.h" -#endif #if !defined(__LITTLE_ENDIAN__) && ( defined(WORDS_BIGENDIAN) || defined(__BIG_ENDIAN__) ) #define le_short(s) ((short) ((unsigned short) (s) << 8) | ((unsigned short) (s) >> 8)) diff --git a/submodules/TelegramUI/third-party/opusfile/info.c b/submodules/OpusBinding/Sources/opusfile/info.c similarity index 100% rename from submodules/TelegramUI/third-party/opusfile/info.c rename to submodules/OpusBinding/Sources/opusfile/info.c diff --git a/submodules/TelegramUI/third-party/opusfile/internal.c b/submodules/OpusBinding/Sources/opusfile/internal.c similarity index 100% rename from submodules/TelegramUI/third-party/opusfile/internal.c rename to submodules/OpusBinding/Sources/opusfile/internal.c diff --git a/submodules/TelegramUI/third-party/opusfile/internal.h b/submodules/OpusBinding/Sources/opusfile/internal.h similarity index 99% rename from submodules/TelegramUI/third-party/opusfile/internal.h rename to submodules/OpusBinding/Sources/opusfile/internal.h index b1109deb90..2487cf25db 100644 --- a/submodules/TelegramUI/third-party/opusfile/internal.h +++ b/submodules/OpusBinding/Sources/opusfile/internal.h @@ -29,7 +29,7 @@ # endif # include -# include "opusfile.h" +# include typedef struct OggOpusLink OggOpusLink; diff --git a/submodules/TelegramUI/third-party/opusfile/opusfile.c b/submodules/OpusBinding/Sources/opusfile/opusfile.c similarity index 100% rename from submodules/TelegramUI/third-party/opusfile/opusfile.c rename to submodules/OpusBinding/Sources/opusfile/opusfile.c diff --git a/submodules/TelegramUI/third-party/opusfile/opusfile.h b/submodules/OpusBinding/Sources/opusfile/opusfile.h similarity index 99% rename from submodules/TelegramUI/third-party/opusfile/opusfile.h rename to submodules/OpusBinding/Sources/opusfile/opusfile.h index 2c4a9963e9..fd7317ec6d 100644 --- a/submodules/TelegramUI/third-party/opusfile/opusfile.h +++ b/submodules/OpusBinding/Sources/opusfile/opusfile.h @@ -107,11 +107,7 @@ extern "C" { # include # include # include -#ifdef BUCK # include -#else -# include "opus_multistream.h" -#endif /**@cond PRIVATE*/ diff --git a/submodules/TelegramUI/third-party/opusfile/stream.c b/submodules/OpusBinding/Sources/opusfile/stream.c similarity index 100% rename from submodules/TelegramUI/third-party/opusfile/stream.c rename to submodules/OpusBinding/Sources/opusfile/stream.c diff --git a/submodules/TelegramUI/TelegramUI/ApplicationContext.swift b/submodules/TelegramUI/TelegramUI/ApplicationContext.swift index 621d517387..c71502fd18 100644 --- a/submodules/TelegramUI/TelegramUI/ApplicationContext.swift +++ b/submodules/TelegramUI/TelegramUI/ApplicationContext.swift @@ -16,6 +16,7 @@ import TelegramNotices import LegacyUI import TelegramPermissionsUI import PasscodeUI +import ImageBlur func isAccessLocked(data: PostboxAccessChallengeData, at timestamp: Int32) -> Bool { if data.isLockable, let autolockDeadline = data.autolockDeadline, autolockDeadline <= timestamp { @@ -870,7 +871,7 @@ final class AuthorizedApplicationContext { UIGraphicsPushContext(context) self.mainWindow.hostView.containerView.drawHierarchy(in: CGRect(origin: CGPoint(), size: unscaledSize), afterScreenUpdates: false) UIGraphicsPopContext() - })?.applyScreenshotEffect() + }).flatMap(applyScreenshotEffectToImage) self.lockedCoveringView.updateSnapshot(image) } else { self.lockedCoveringView.updateSnapshot(nil) diff --git a/submodules/TelegramUI/TelegramUI/Bridge Audio/TGBridgeAudioDecoder.mm b/submodules/TelegramUI/TelegramUI/Bridge Audio/TGBridgeAudioDecoder.mm index a65f3d3aa7..eb9da777bc 100644 --- a/submodules/TelegramUI/TelegramUI/Bridge Audio/TGBridgeAudioDecoder.mm +++ b/submodules/TelegramUI/TelegramUI/Bridge Audio/TGBridgeAudioDecoder.mm @@ -5,8 +5,7 @@ #import -#import "opusfile.h" -#import "opusenc.h" +#import const NSInteger TGBridgeAudioDecoderInputSampleRate = 48000; const NSInteger TGBridgeAudioDecoderResultSampleRate = 24000; @@ -56,7 +55,7 @@ static inline bool _checkResultLite(OSStatus result, const char *operation, cons NSURL *_url; NSURL *_resultURL; - OggOpusFile *_opusFile; + OggOpusReader *_opusReader; bool _finished; bool _cancelled; @@ -83,10 +82,8 @@ static inline bool _checkResultLite(OSStatus result, const char *operation, cons { [[TGBridgeAudioDecoder processingQueue] dispatch:^ { - int error = OPUS_OK; - _opusFile = op_open_file(_url.path.UTF8String, &error); - if (_opusFile == NULL || error != OPUS_OK) - { + _opusReader = [[OggOpusReader alloc] initWithPath:_url.path]; + if (_opusReader == NULL) { return; } @@ -148,7 +145,7 @@ static inline bool _checkResultLite(OSStatus result, const char *operation, cons uint32_t writtenOutputBytes = 0; while (writtenOutputBytes < TGBridgeAudioDecoderBufferSize) { - int32_t readSamples = op_read(_opusFile, (opus_int16 *)(srcBuffer + writtenOutputBytes), (TGBridgeAudioDecoderBufferSize - writtenOutputBytes) / sourceFormat.mBytesPerFrame, NULL); + int32_t readSamples = [_opusReader read:(uint16_t *)(srcBuffer + writtenOutputBytes) bufSize:(TGBridgeAudioDecoderBufferSize - writtenOutputBytes) / sourceFormat.mBytesPerFrame]; if (readSamples > 0) writtenOutputBytes += readSamples * sourceFormat.mBytesPerFrame; diff --git a/submodules/TelegramUI/TelegramUI/Bridge Audio/TGBridgeAudioEncoder.m b/submodules/TelegramUI/TelegramUI/Bridge Audio/TGBridgeAudioEncoder.m index c2a137bfc0..bf32a17492 100644 --- a/submodules/TelegramUI/TelegramUI/Bridge Audio/TGBridgeAudioEncoder.m +++ b/submodules/TelegramUI/TelegramUI/Bridge Audio/TGBridgeAudioEncoder.m @@ -1,14 +1,8 @@ #import "TGBridgeAudioEncoder.h" #import -#ifdef BUCK #import -#else -#import "opus.h" -#endif -#import "opusenc.h" - -#import "TGDataItem.h" +#import static const char *AMQueueSpecific = "AMQueueSpecific"; diff --git a/submodules/TelegramUI/TelegramUI/ManagedAudioRecorder.swift b/submodules/TelegramUI/TelegramUI/ManagedAudioRecorder.swift index 01052fb460..116d296f84 100644 --- a/submodules/TelegramUI/TelegramUI/ManagedAudioRecorder.swift +++ b/submodules/TelegramUI/TelegramUI/ManagedAudioRecorder.swift @@ -7,6 +7,7 @@ import TelegramCore import TelegramAudio import UniversalMediaPlayer import AccountContext +import OpusBinding private let kOutputBus: UInt32 = 0 private let kInputBus: UInt32 = 1 diff --git a/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap b/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap index 715ab75f60..1cc43dffc0 100644 --- a/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap +++ b/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap @@ -1,6 +1,4 @@ module TelegramUIPrivateModule { - header "../../third-party/opusenc/opusenc.h" - header "../TGDataItem.h" header "../Bridge Audio/TGBridgeAudioDecoder.h" header "../Bridge Audio/TGBridgeAudioEncoder.h" header "../TGContactModel.h" @@ -10,5 +8,4 @@ module TelegramUIPrivateModule { header "../TGAutoDownloadPreferences.h" header "../TGPresentationAutoNightPreferences.h" header "../TGProxyItem.h" - header "../UIImage+ImageEffects.h" } diff --git a/submodules/TelegramUI/TelegramUI/UIImage+ImageEffects.h b/submodules/TelegramUI/TelegramUI/UIImage+ImageEffects.h deleted file mode 100644 index d13a415abf..0000000000 --- a/submodules/TelegramUI/TelegramUI/UIImage+ImageEffects.h +++ /dev/null @@ -1,9 +0,0 @@ - - -#import - -@interface UIImage (ImageEffects) - -- (UIImage *)applyScreenshotEffect; - -@end diff --git a/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj b/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj index 076d144013..bad6b3e055 100644 --- a/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj @@ -146,8 +146,6 @@ D00817DD22B47A14008A895F /* LockedWindowCoveringView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00817C322B47A13008A895F /* LockedWindowCoveringView.swift */; }; D00817DE22B47A14008A895F /* TGBridgeServer.m in Sources */ = {isa = PBXBuildFile; fileRef = D00817C422B47A13008A895F /* TGBridgeServer.m */; }; D00817DF22B47A14008A895F /* LegacyDataImportSplash.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00817C522B47A13008A895F /* LegacyDataImportSplash.swift */; }; - D00817E022B47A14008A895F /* UIImage+ImageEffects.h in Headers */ = {isa = PBXBuildFile; fileRef = D00817C622B47A13008A895F /* UIImage+ImageEffects.h */; }; - D00817E222B47A14008A895F /* UIImage+ImageEffects.m in Sources */ = {isa = PBXBuildFile; fileRef = D00817C822B47A14008A895F /* UIImage+ImageEffects.m */; }; D00817E322B47A14008A895F /* TGPresentationAutoNightPreferences.m in Sources */ = {isa = PBXBuildFile; fileRef = D00817C922B47A14008A895F /* TGPresentationAutoNightPreferences.m */; }; D008184A22B57225008A895F /* WatchCommon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D008184922B57225008A895F /* WatchCommon.framework */; }; D00818CD22B595CB008A895F /* LightweightAccountData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00818CC22B595CB008A895F /* LightweightAccountData.framework */; }; @@ -216,6 +214,9 @@ D03E42E6230572530049C28B /* ItemListAddressItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42E5230572530049C28B /* ItemListAddressItem.framework */; }; D03E430F2305775D0049C28B /* DeviceProximity.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E430E2305775D0049C28B /* DeviceProximity.framework */; }; D03E4339230578550049C28B /* RaiseToListen.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E4338230578550049C28B /* RaiseToListen.framework */; }; + D03E439423057FDF0049C28B /* OpusBinding.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E439323057FDF0049C28B /* OpusBinding.framework */; }; + D03E43EC2305954C0049C28B /* opus.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E43EB2305954C0049C28B /* opus.framework */; }; + D03E43EE230595600049C28B /* libopus.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E43ED230595600049C28B /* libopus.a */; }; D04203152037162700490EA5 /* MediaInputPaneTrendingItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04203142037162700490EA5 /* MediaInputPaneTrendingItem.swift */; }; D04281F4200E5AB0009DDE36 /* ChatRecentActionsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04281F3200E5AB0009DDE36 /* ChatRecentActionsController.swift */; }; D04281F6200E5AC2009DDE36 /* ChatRecentActionsControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04281F5200E5AC2009DDE36 /* ChatRecentActionsControllerNode.swift */; }; @@ -478,7 +479,6 @@ D0EB5ADF1F798033004E89B6 /* PeerMediaCollectionEmptyNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EB5ADE1F798033004E89B6 /* PeerMediaCollectionEmptyNode.swift */; }; D0EC55A3210231D600D1992C /* SearchPeerMembers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EC55A2210231D600D1992C /* SearchPeerMembers.swift */; }; D0EC6CC11EB9F58800EBF1C3 /* LegacyCamera.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00E15251DDBD4E700ACF65C /* LegacyCamera.swift */; }; - D0EC6CC51EB9F58800EBF1C3 /* TGDataItem.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D03B221DECB1AD00220C46 /* TGDataItem.m */; }; D0EC6CC91EB9F58800EBF1C3 /* ConvertToWebP.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69E941D6B8C9B0046BCD6 /* ConvertToWebP.swift */; }; D0EC6CCC1EB9F58800EBF1C3 /* ServiceSoundManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D073CE641DCBC26B007511FD /* ServiceSoundManager.swift */; }; D0EC6CCD1EB9F58800EBF1C3 /* DeclareEncodables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D073CE701DCBF23F007511FD /* DeclareEncodables.swift */; }; @@ -490,17 +490,6 @@ D0EC6CFD1EB9F58800EBF1C3 /* AudioWaveform.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D03B2B1DED9B8900220C46 /* AudioWaveform.swift */; }; D0EC6CFF1EB9F58800EBF1C3 /* OverlayMediaController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EC6B421EB92DF600EBF1C3 /* OverlayMediaController.swift */; }; D0EC6D001EB9F58800EBF1C3 /* OverlayMediaControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EC6B441EB92E5A00EBF1C3 /* OverlayMediaControllerNode.swift */; }; - D0EC6D021EB9F58800EBF1C3 /* diag_range.c in Sources */ = {isa = PBXBuildFile; fileRef = D0D03AE81DECB0FE00220C46 /* diag_range.c */; }; - D0EC6D031EB9F58800EBF1C3 /* opus_header.c in Sources */ = {isa = PBXBuildFile; fileRef = D0D03AEA1DECB0FE00220C46 /* opus_header.c */; }; - D0EC6D041EB9F58800EBF1C3 /* opusenc.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D03AED1DECB0FE00220C46 /* opusenc.m */; }; - D0EC6D051EB9F58800EBF1C3 /* picture.c in Sources */ = {isa = PBXBuildFile; fileRef = D0D03AEE1DECB0FE00220C46 /* picture.c */; }; - D0EC6D061EB9F58800EBF1C3 /* wav_io.c in Sources */ = {isa = PBXBuildFile; fileRef = D0D03AF01DECB0FE00220C46 /* wav_io.c */; }; - D0EC6D071EB9F58800EBF1C3 /* bitwise.c in Sources */ = {isa = PBXBuildFile; fileRef = D0D03AF41DECB0FE00220C46 /* bitwise.c */; }; - D0EC6D081EB9F58800EBF1C3 /* framing.c in Sources */ = {isa = PBXBuildFile; fileRef = D0D03AF51DECB0FE00220C46 /* framing.c */; }; - D0EC6D091EB9F58800EBF1C3 /* info.c in Sources */ = {isa = PBXBuildFile; fileRef = D0D03B021DECB0FE00220C46 /* info.c */; }; - D0EC6D0A1EB9F58800EBF1C3 /* internal.c in Sources */ = {isa = PBXBuildFile; fileRef = D0D03B031DECB0FE00220C46 /* internal.c */; }; - D0EC6D0B1EB9F58800EBF1C3 /* opusfile.c in Sources */ = {isa = PBXBuildFile; fileRef = D0D03B051DECB0FE00220C46 /* opusfile.c */; }; - D0EC6D0C1EB9F58800EBF1C3 /* stream.c in Sources */ = {isa = PBXBuildFile; fileRef = D0D03B071DECB0FE00220C46 /* stream.c */; }; 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 */; }; @@ -698,7 +687,6 @@ D0EC6E921EB9F5B200EBF1C3 /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D08D452C1D5E340300A7428A /* SwiftSignalKit.framework */; }; D0EC6E931EB9F5B200EBF1C3 /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D08D452D1D5E340300A7428A /* TelegramCore.framework */; }; D0EC6E961EB9F5B300EBF1C3 /* MtProtoKitDynamic.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EC6E941EB9F5B300EBF1C3 /* MtProtoKitDynamic.framework */; }; - D0EC6EA21EB9FAFA00EBF1C3 /* libopus.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D03B251DECB26D00220C46 /* libopus.a */; }; D0EC6EA31EB9FB7A00EBF1C3 /* SSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D075518E1DDA4F9E0073E051 /* SSignalKit.framework */; }; D0EC6EA41EB9FB8000EBF1C3 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D0AB0BB21D6718EB002C78E7 /* libz.tbd */; }; D0EC6EA51EB9FBD300EBF1C3 /* libiconv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D0AB0BB01D6718DA002C78E7 /* libiconv.tbd */; }; @@ -861,8 +849,6 @@ D00817C322B47A13008A895F /* LockedWindowCoveringView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LockedWindowCoveringView.swift; sourceTree = ""; }; D00817C422B47A13008A895F /* TGBridgeServer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGBridgeServer.m; sourceTree = ""; }; D00817C522B47A13008A895F /* LegacyDataImportSplash.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyDataImportSplash.swift; sourceTree = ""; }; - D00817C622B47A13008A895F /* UIImage+ImageEffects.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+ImageEffects.h"; sourceTree = ""; }; - D00817C822B47A14008A895F /* UIImage+ImageEffects.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+ImageEffects.m"; sourceTree = ""; }; D00817C922B47A14008A895F /* TGPresentationAutoNightPreferences.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGPresentationAutoNightPreferences.m; sourceTree = ""; }; D008184922B57225008A895F /* WatchCommon.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WatchCommon.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D00818CC22B595CB008A895F /* LightweightAccountData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LightweightAccountData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -974,6 +960,10 @@ D03E42E5230572530049C28B /* ItemListAddressItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListAddressItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E430E2305775D0049C28B /* DeviceProximity.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DeviceProximity.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E4338230578550049C28B /* RaiseToListen.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = RaiseToListen.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E439323057FDF0049C28B /* OpusBinding.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = OpusBinding.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E43EB2305954C0049C28B /* opus.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = opus.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E43ED230595600049C28B /* libopus.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libopus.a; path = ../Opus/Sources/opus/lib/libopus.a; sourceTree = ""; }; + D03E44132305ACFC0049C28B /* ogg.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ogg.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E5E081E55C49C0029569A /* DebugAccountsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DebugAccountsController.swift; sourceTree = ""; }; D04203142037162700490EA5 /* MediaInputPaneTrendingItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaInputPaneTrendingItem.swift; sourceTree = ""; }; D04281F3200E5AB0009DDE36 /* ChatRecentActionsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatRecentActionsController.swift; sourceTree = ""; }; @@ -1272,32 +1262,6 @@ D0CFBB901FD881A600B65C0D /* AudioRecordningToneData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioRecordningToneData.swift; sourceTree = ""; }; D0CFBB941FD8B05000B65C0D /* OverlayInstantVideoDecoration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverlayInstantVideoDecoration.swift; sourceTree = ""; }; D0D03AE41DECAE8900220C46 /* ManagedAudioRecorder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedAudioRecorder.swift; sourceTree = ""; }; - D0D03AE81DECB0FE00220C46 /* diag_range.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = diag_range.c; sourceTree = ""; }; - D0D03AE91DECB0FE00220C46 /* diag_range.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = diag_range.h; sourceTree = ""; }; - D0D03AEA1DECB0FE00220C46 /* opus_header.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = opus_header.c; sourceTree = ""; }; - D0D03AEB1DECB0FE00220C46 /* opus_header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opus_header.h; sourceTree = ""; }; - D0D03AEC1DECB0FE00220C46 /* opusenc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opusenc.h; sourceTree = ""; }; - D0D03AED1DECB0FE00220C46 /* opusenc.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = opusenc.m; sourceTree = ""; }; - D0D03AEE1DECB0FE00220C46 /* picture.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = picture.c; sourceTree = ""; }; - D0D03AEF1DECB0FE00220C46 /* picture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = picture.h; sourceTree = ""; }; - D0D03AF01DECB0FE00220C46 /* wav_io.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = wav_io.c; sourceTree = ""; }; - D0D03AF11DECB0FE00220C46 /* wav_io.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wav_io.h; sourceTree = ""; }; - D0D03AF41DECB0FE00220C46 /* bitwise.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = bitwise.c; path = ogg/bitwise.c; sourceTree = ""; }; - D0D03AF51DECB0FE00220C46 /* framing.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = framing.c; path = ogg/framing.c; sourceTree = ""; }; - D0D03AF61DECB0FE00220C46 /* ogg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ogg.h; path = ogg/ogg.h; sourceTree = ""; }; - D0D03AF71DECB0FE00220C46 /* os_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = os_types.h; path = ogg/os_types.h; sourceTree = ""; }; - D0D03AFB1DECB0FE00220C46 /* opus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = opus.h; path = include/opus/opus.h; sourceTree = ""; }; - D0D03AFC1DECB0FE00220C46 /* opus_defines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = opus_defines.h; path = include/opus/opus_defines.h; sourceTree = ""; }; - D0D03AFD1DECB0FE00220C46 /* opus_multistream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = opus_multistream.h; path = include/opus/opus_multistream.h; sourceTree = ""; }; - D0D03AFE1DECB0FE00220C46 /* opus_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = opus_types.h; path = include/opus/opus_types.h; sourceTree = ""; }; - D0D03B021DECB0FE00220C46 /* info.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = info.c; sourceTree = ""; }; - D0D03B031DECB0FE00220C46 /* internal.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = internal.c; sourceTree = ""; }; - D0D03B041DECB0FE00220C46 /* internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = internal.h; sourceTree = ""; }; - D0D03B051DECB0FE00220C46 /* opusfile.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = opusfile.c; sourceTree = ""; }; - D0D03B061DECB0FE00220C46 /* opusfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opusfile.h; sourceTree = ""; }; - D0D03B071DECB0FE00220C46 /* stream.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stream.c; sourceTree = ""; }; - D0D03B211DECB1AD00220C46 /* TGDataItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGDataItem.h; sourceTree = ""; }; - D0D03B221DECB1AD00220C46 /* TGDataItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGDataItem.m; sourceTree = ""; }; D0D03B251DECB26D00220C46 /* libopus.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libopus.a; path = "third-party/opus/lib/libopus.a"; sourceTree = ""; }; D0D03B2B1DED9B8900220C46 /* AudioWaveform.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AudioWaveform.swift; sourceTree = ""; }; D0D268661D78793B00C422DA /* ChatInterfaceStateNavigationButtons.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatInterfaceStateNavigationButtons.swift; sourceTree = ""; }; @@ -1467,6 +1431,9 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D03E43EE230595600049C28B /* libopus.a in Frameworks */, + D03E43EC2305954C0049C28B /* opus.framework in Frameworks */, + D03E439423057FDF0049C28B /* OpusBinding.framework in Frameworks */, D03E4339230578550049C28B /* RaiseToListen.framework in Frameworks */, D03E430F2305775D0049C28B /* DeviceProximity.framework in Frameworks */, D03E42E6230572530049C28B /* ItemListAddressItem.framework in Frameworks */, @@ -1609,7 +1576,6 @@ D0EC6EA51EB9FBD300EBF1C3 /* libiconv.tbd in Frameworks */, D0EC6EA41EB9FB8000EBF1C3 /* libz.tbd in Frameworks */, D0EC6EA31EB9FB7A00EBF1C3 /* SSignalKit.framework in Frameworks */, - D0EC6EA21EB9FAFA00EBF1C3 /* libopus.a in Frameworks */, D0EC6E961EB9F5B300EBF1C3 /* MtProtoKitDynamic.framework in Frameworks */, D0EC6E8F1EB9F5B200EBF1C3 /* AsyncDisplayKit.framework in Frameworks */, D0EC6E901EB9F5B200EBF1C3 /* Display.framework in Frameworks */, @@ -1777,8 +1743,6 @@ D00817C222B47A13008A895F /* ManageSharedAccountInfo.swift */, D00817BD22B47A13008A895F /* TGBridgeServer.h */, D00817C422B47A13008A895F /* TGBridgeServer.m */, - D00817C622B47A13008A895F /* UIImage+ImageEffects.h */, - D00817C822B47A14008A895F /* UIImage+ImageEffects.m */, D00817B622B47A12008A895F /* WakeupManager.swift */, D00817B122B47A12008A895F /* WatchBridge.swift */, D00817B222B47A12008A895F /* WatchCommunicationManager.swift */, @@ -2176,8 +2140,6 @@ D0AE2FDB22B1D3610058D3BC /* Bridge Audio */, D00E15251DDBD4E700ACF65C /* LegacyCamera.swift */, D06BB8811F58994B0084FC30 /* LegacyInstantVideoController.swift */, - D0D03B211DECB1AD00220C46 /* TGDataItem.h */, - D0D03B221DECB1AD00220C46 /* TGDataItem.m */, D007019B2029E8F2006B9E34 /* LegacyICloudFileController.swift */, D0380DAC204ED434000414AB /* LegacyLiveUploadInterface.swift */, D0B21B1E22156D92003F741D /* LegacyCache.swift */, @@ -2215,6 +2177,10 @@ D08D45281D5E340200A7428A /* Frameworks */ = { isa = PBXGroup; children = ( + D03E44132305ACFC0049C28B /* ogg.framework */, + D03E43ED230595600049C28B /* libopus.a */, + D03E43EB2305954C0049C28B /* opus.framework */, + D03E439323057FDF0049C28B /* OpusBinding.framework */, D03E4338230578550049C28B /* RaiseToListen.framework */, D03E430E2305775D0049C28B /* DeviceProximity.framework */, D03E42E5230572530049C28B /* ItemListAddressItem.framework */, @@ -2575,73 +2541,6 @@ name = "Terms of Service"; sourceTree = ""; }; - D0D03AE61DECB0D200220C46 /* Audio Recorder */ = { - isa = PBXGroup; - children = ( - D0D03AE71DECB0FE00220C46 /* opusenc */, - D0D03AF21DECB0FE00220C46 /* ogg */, - D0D03AF81DECB0FE00220C46 /* opus */, - D0D03B011DECB0FE00220C46 /* opusfile */, - ); - name = "Audio Recorder"; - sourceTree = ""; - }; - D0D03AE71DECB0FE00220C46 /* opusenc */ = { - isa = PBXGroup; - children = ( - D0D03AE81DECB0FE00220C46 /* diag_range.c */, - D0D03AE91DECB0FE00220C46 /* diag_range.h */, - D0D03AEA1DECB0FE00220C46 /* opus_header.c */, - D0D03AEB1DECB0FE00220C46 /* opus_header.h */, - D0D03AEC1DECB0FE00220C46 /* opusenc.h */, - D0D03AED1DECB0FE00220C46 /* opusenc.m */, - D0D03AEE1DECB0FE00220C46 /* picture.c */, - D0D03AEF1DECB0FE00220C46 /* picture.h */, - D0D03AF01DECB0FE00220C46 /* wav_io.c */, - D0D03AF11DECB0FE00220C46 /* wav_io.h */, - ); - name = opusenc; - path = "third-party/opusenc"; - sourceTree = SOURCE_ROOT; - }; - D0D03AF21DECB0FE00220C46 /* ogg */ = { - isa = PBXGroup; - children = ( - D0D03AF41DECB0FE00220C46 /* bitwise.c */, - D0D03AF51DECB0FE00220C46 /* framing.c */, - D0D03AF61DECB0FE00220C46 /* ogg.h */, - D0D03AF71DECB0FE00220C46 /* os_types.h */, - ); - name = ogg; - path = "third-party/ogg"; - sourceTree = SOURCE_ROOT; - }; - D0D03AF81DECB0FE00220C46 /* opus */ = { - isa = PBXGroup; - children = ( - D0D03AFB1DECB0FE00220C46 /* opus.h */, - D0D03AFC1DECB0FE00220C46 /* opus_defines.h */, - D0D03AFD1DECB0FE00220C46 /* opus_multistream.h */, - D0D03AFE1DECB0FE00220C46 /* opus_types.h */, - ); - name = opus; - path = "third-party/opus"; - sourceTree = SOURCE_ROOT; - }; - D0D03B011DECB0FE00220C46 /* opusfile */ = { - isa = PBXGroup; - children = ( - D0D03B021DECB0FE00220C46 /* info.c */, - D0D03B031DECB0FE00220C46 /* internal.c */, - D0D03B041DECB0FE00220C46 /* internal.h */, - D0D03B051DECB0FE00220C46 /* opusfile.c */, - D0D03B061DECB0FE00220C46 /* opusfile.h */, - D0D03B071DECB0FE00220C46 /* stream.c */, - ); - name = opusfile; - path = "third-party/opusfile"; - sourceTree = SOURCE_ROOT; - }; D0D2686A1D788F6600C422DA /* Title Accessory Panels */ = { isa = PBXGroup; children = ( @@ -2842,7 +2741,6 @@ D0EC6B441EB92E5A00EBF1C3 /* OverlayMediaControllerNode.swift */, D0FE4DE31F0AEBB900E8A0B3 /* SharedVideoContextManager.swift */, D09E637D1F0E8C66003444CD /* Shared Media Player */, - D0D03AE61DECB0D200220C46 /* Audio Recorder */, D0F69E9D1D6B8E240046BCD6 /* Resources */, D0177B831DFB095000A5083A /* FileMediaResourceStatus.swift */, D0ADF965212E05A300310BBC /* TonePlayer.swift */, @@ -3235,7 +3133,6 @@ files = ( D0AE303622B1D3620058D3BC /* TGBridgeAudioDecoder.h in Headers */, D00817DA22B47A14008A895F /* TGPresentationAutoNightPreferences.h in Headers */, - D00817E022B47A14008A895F /* UIImage+ImageEffects.h in Headers */, D08803C51F6064CF00DD7951 /* TelegramUI.h in Headers */, D008177B22B46B7E008A895F /* TGContactModel.h in Headers */, D0AE303722B1D3620058D3BC /* TGBridgeAudioEncoder.h in Headers */, @@ -3440,7 +3337,6 @@ D0EC6CC11EB9F58800EBF1C3 /* LegacyCamera.swift in Sources */, D0754D1E1EEDDF6200884F6E /* ChatMessageAttachedContentNode.swift in Sources */, D0CFBB911FD881A600B65C0D /* AudioRecordningToneData.swift in Sources */, - D0EC6CC51EB9F58800EBF1C3 /* TGDataItem.m in Sources */, D00817D522B47A14008A895F /* ApplicationShortcutItem.swift in Sources */, D077C5C122B59A800097D617 /* ApplicationContext.swift in Sources */, D0EC6CC91EB9F58800EBF1C3 /* ConvertToWebP.swift in Sources */, @@ -3476,28 +3372,17 @@ D0EC6CFF1EB9F58800EBF1C3 /* OverlayMediaController.swift in Sources */, D0EC6D001EB9F58800EBF1C3 /* OverlayMediaControllerNode.swift in Sources */, D02C81712177729000CD1006 /* NotificationExceptions.swift in Sources */, - D0EC6D021EB9F58800EBF1C3 /* diag_range.c in Sources */, 09CE95112237F3C100A7D2C3 /* SettingsSearchRecentQueries.swift in Sources */, - D0EC6D031EB9F58800EBF1C3 /* opus_header.c in Sources */, 0910B0EF21FA532D00F8F87D /* WallpaperResources.swift in Sources */, 09E4A807223D4B860038140F /* AccountUtils.swift in Sources */, D069F5D0212700B90000565A /* StickerPanePeerSpecificSetupGridItem.swift in Sources */, D06018B522F3659900796784 /* ChatTextFormat.swift in Sources */, D0750C8322B2E4EE00BE5F6E /* SharedNotificationManager.swift in Sources */, - D0EC6D041EB9F58800EBF1C3 /* opusenc.m in Sources */, D0A8998D217A294100759EE6 /* SaveIncomingMediaController.swift in Sources */, D0185E8A208A01AF005E1A6C /* ProxySettingsActionItem.swift in Sources */, - D0EC6D051EB9F58800EBF1C3 /* picture.c in Sources */, - D0EC6D061EB9F58800EBF1C3 /* wav_io.c in Sources */, 09DE2F272269D5730045E975 /* PrivacyIntroController.swift in Sources */, - D0EC6D071EB9F58800EBF1C3 /* bitwise.c in Sources */, - D0EC6D081EB9F58800EBF1C3 /* framing.c in Sources */, 09E4A803223B833B0038140F /* ForwardPrivacyChatPreviewItem.swift in Sources */, - D0EC6D091EB9F58800EBF1C3 /* info.c in Sources */, - D0EC6D0A1EB9F58800EBF1C3 /* internal.c in Sources */, - D0EC6D0B1EB9F58800EBF1C3 /* opusfile.c in Sources */, 09C500242142BA6400EF253E /* ItemListWebsiteItem.swift in Sources */, - D0EC6D0C1EB9F58800EBF1C3 /* stream.c in Sources */, 09FFBCD72281BB2D00C33B4B /* ChatTextLinkEditController.swift in Sources */, 09CE95042236C6B300A7D2C3 /* CachedInstantPages.swift in Sources */, D0B69C3920EBB397003632C7 /* ChatMessageInteractiveInstantVideoNode.swift in Sources */, @@ -3777,7 +3662,6 @@ 09F2158D225CF5BC00AEDF6D /* Pasteboard.swift in Sources */, D0C26D571FDF2388004ABF18 /* OpenChatMessage.swift in Sources */, D00817CA22B47A14008A895F /* WatchRequestHandlers.swift in Sources */, - D00817E222B47A14008A895F /* UIImage+ImageEffects.m in Sources */, D007019C2029E8F2006B9E34 /* LegacyICloudFileController.swift in Sources */, 09B4819523028A8A00D5B32B /* ThemeAccentColorControllerNode.swift in Sources */, D000CABC21F158AD0011B15D /* PrepareSecretThumbnailData.swift in Sources */, @@ -4016,6 +3900,7 @@ "$(PROJECT_DIR)/third-party/libwebp/lib", "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", "$(PROJECT_DIR)/third-party/libjpeg-turbo", + "$(PROJECT_DIR)/../opus/Sources/opus/lib", ); OTHER_CFLAGS = ( "-DTGVOIP_USE_CUSTOM_CRYPTO", @@ -4214,6 +4099,7 @@ "$(PROJECT_DIR)/third-party/libwebp/lib", "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", "$(PROJECT_DIR)/third-party/libjpeg-turbo", + "$(PROJECT_DIR)/../opus/Sources/opus/lib", ); OTHER_CFLAGS = ( "-DTGVOIP_USE_CUSTOM_CRYPTO", @@ -4331,6 +4217,7 @@ "$(PROJECT_DIR)/third-party/libwebp/lib", "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", "$(PROJECT_DIR)/third-party/libjpeg-turbo", + "$(PROJECT_DIR)/../opus/Sources/opus/lib", ); OTHER_CFLAGS = ( "-DTGVOIP_USE_CUSTOM_CRYPTO", @@ -4457,6 +4344,7 @@ "$(PROJECT_DIR)/third-party/libwebp/lib", "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", "$(PROJECT_DIR)/third-party/libjpeg-turbo", + "$(PROJECT_DIR)/../opus/Sources/opus/lib", ); OTHER_CFLAGS = ( "-DTGVOIP_USE_CUSTOM_CRYPTO", @@ -4573,6 +4461,7 @@ "$(PROJECT_DIR)/third-party/libwebp/lib", "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", "$(PROJECT_DIR)/third-party/libjpeg-turbo", + "$(PROJECT_DIR)/../opus/Sources/opus/lib", ); OTHER_CFLAGS = ( "-DTGVOIP_USE_CUSTOM_CRYPTO", @@ -4620,6 +4509,7 @@ "$(PROJECT_DIR)/third-party/libwebp/lib", "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", "$(PROJECT_DIR)/third-party/libjpeg-turbo", + "$(PROJECT_DIR)/../opus/Sources/opus/lib", ); OTHER_CFLAGS = ( "-DTGVOIP_USE_CUSTOM_CRYPTO", @@ -4665,6 +4555,7 @@ "$(PROJECT_DIR)/third-party/libwebp/lib", "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", "$(PROJECT_DIR)/third-party/libjpeg-turbo", + "$(PROJECT_DIR)/../opus/Sources/opus/lib", ); OTHER_CFLAGS = ( "-DTGVOIP_USE_CUSTOM_CRYPTO", @@ -4709,6 +4600,7 @@ "$(PROJECT_DIR)/third-party/libwebp/lib", "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", "$(PROJECT_DIR)/third-party/libjpeg-turbo", + "$(PROJECT_DIR)/../opus/Sources/opus/lib", ); OTHER_CFLAGS = ( "-DTGVOIP_USE_CUSTOM_CRYPTO", diff --git a/submodules/libtgvoip/OpusDecoder.cpp b/submodules/libtgvoip/OpusDecoder.cpp index 2080d8ca0a..7b2d7c8bfd 100755 --- a/submodules/libtgvoip/OpusDecoder.cpp +++ b/submodules/libtgvoip/OpusDecoder.cpp @@ -10,11 +10,7 @@ #include #include #include -#if defined(HAVE_CONFIG_H) || defined(BUCK) #include -#else -#include "opus.h" -#endif #include "VoIPController.h" diff --git a/submodules/libtgvoip/OpusEncoder.cpp b/submodules/libtgvoip/OpusEncoder.cpp index 028a3e915a..b50c16efcf 100755 --- a/submodules/libtgvoip/OpusEncoder.cpp +++ b/submodules/libtgvoip/OpusEncoder.cpp @@ -9,11 +9,7 @@ #include #include "logging.h" #include "VoIPServerConfig.h" -#if defined(HAVE_CONFIG_H) || defined(BUCK) #include -#else -#include "opus.h" -#endif namespace{ int serverConfigValueToBandwidth(int config){ From e1a570472a65003092dc226cd3eae75598bb0a2b Mon Sep 17 00:00:00 2001 From: Peter <> Date: Thu, 15 Aug 2019 19:24:14 +0300 Subject: [PATCH 10/11] Refactor LegacyDataImport [skip ci] --- .../contents.xcworkspacedata | 13 + submodules/LegacyDataImport/Info.plist | 22 + .../project.pbxproj | 627 ++++++++++++++++++ .../Sources}/LegacyBuffer.swift | 0 .../Sources}/LegacyChatImport.swift | 13 +- .../Sources/LegacyDataImport.h | 13 + .../Sources}/LegacyDataImport.swift | 8 +- .../Sources}/LegacyDataImportSplash.swift | 12 +- .../Sources}/LegacyFileImport.swift | 1 - .../Sources}/LegacyPreferencesImport.swift | 5 - .../Sources}/LegacyResourceImport.swift | 1 - .../Sources}/LegacyUserDataImport.swift | 0 .../Sources}/TGAutoDownloadPreferences.h | 0 .../Sources}/TGAutoDownloadPreferences.m | 0 .../TGPresentationAutoNightPreferences.h | 0 .../TGPresentationAutoNightPreferences.m | 0 .../Sources}/TGProxyItem.h | 0 .../Sources}/TGProxyItem.m | 0 .../SwiftSignalKit/Signal_Mapping.swift | 10 +- .../TelegramUI/TelegramUI/AppDelegate.swift | 4 +- .../TelegramUI/ApplicationContext.swift | 1 + .../TelegramUI/SharedAccountContext.swift | 20 +- .../TelegramUIPrivate/module.modulemap | 6 - .../TelegramUI/TelegramUI/WatchManager.swift | 13 +- .../project.pbxproj | 124 +--- submodules/WatchBridge/Info.plist | 22 + .../Sources}/TGBridgeServer.h | 0 .../Sources}/TGBridgeServer.m | 0 submodules/WatchBridge/Sources/WatchBridge.h | 9 + .../Sources}/WatchBridge.swift | 0 .../Sources}/WatchCommunicationManager.swift | 42 +- .../Sources}/WatchRequestHandlers.swift | 1 + .../project.pbxproj | 619 +++++++++++++++++ submodules/WatchBridgeAudio/Info.plist | 22 + .../Sources}/LegacyBridgeAudio.swift | 2 - .../Sources}/TGBridgeAudioDecoder.h | 0 .../Sources}/TGBridgeAudioDecoder.mm | 0 .../Sources}/TGBridgeAudioEncoder.h | 3 - .../Sources}/TGBridgeAudioEncoder.m | 1 - .../Sources/WatchBridgeAudio.h | 12 + .../project.pbxproj | 581 ++++++++++++++++ 41 files changed, 2007 insertions(+), 200 deletions(-) create mode 100644 submodules/LegacyDataImport/Info.plist create mode 100644 submodules/LegacyDataImport/LegacyDataImport_Xcode.xcodeproj/project.pbxproj rename submodules/{TelegramUI/TelegramUI => LegacyDataImport/Sources}/LegacyBuffer.swift (100%) rename submodules/{TelegramUI/TelegramUI => LegacyDataImport/Sources}/LegacyChatImport.swift (98%) create mode 100644 submodules/LegacyDataImport/Sources/LegacyDataImport.h rename submodules/{TelegramUI/TelegramUI => LegacyDataImport/Sources}/LegacyDataImport.swift (96%) rename submodules/{TelegramUI/TelegramUI => LegacyDataImport/Sources}/LegacyDataImportSplash.swift (90%) rename submodules/{TelegramUI/TelegramUI => LegacyDataImport/Sources}/LegacyFileImport.swift (99%) rename submodules/{TelegramUI/TelegramUI => LegacyDataImport/Sources}/LegacyPreferencesImport.swift (99%) rename submodules/{TelegramUI/TelegramUI => LegacyDataImport/Sources}/LegacyResourceImport.swift (99%) rename submodules/{TelegramUI/TelegramUI => LegacyDataImport/Sources}/LegacyUserDataImport.swift (100%) rename submodules/{TelegramUI/TelegramUI => LegacyDataImport/Sources}/TGAutoDownloadPreferences.h (100%) rename submodules/{TelegramUI/TelegramUI => LegacyDataImport/Sources}/TGAutoDownloadPreferences.m (100%) rename submodules/{TelegramUI/TelegramUI => LegacyDataImport/Sources}/TGPresentationAutoNightPreferences.h (100%) rename submodules/{TelegramUI/TelegramUI => LegacyDataImport/Sources}/TGPresentationAutoNightPreferences.m (100%) rename submodules/{TelegramUI/TelegramUI => LegacyDataImport/Sources}/TGProxyItem.h (100%) rename submodules/{TelegramUI/TelegramUI => LegacyDataImport/Sources}/TGProxyItem.m (100%) create mode 100644 submodules/WatchBridge/Info.plist rename submodules/{TelegramUI/TelegramUI => WatchBridge/Sources}/TGBridgeServer.h (100%) rename submodules/{TelegramUI/TelegramUI => WatchBridge/Sources}/TGBridgeServer.m (100%) create mode 100644 submodules/WatchBridge/Sources/WatchBridge.h rename submodules/{TelegramUI/TelegramUI => WatchBridge/Sources}/WatchBridge.swift (100%) rename submodules/{TelegramUI/TelegramUI => WatchBridge/Sources}/WatchCommunicationManager.swift (82%) rename submodules/{TelegramUI/TelegramUI => WatchBridge/Sources}/WatchRequestHandlers.swift (99%) create mode 100644 submodules/WatchBridge/WatchBridge_Xcode.xcodeproj/project.pbxproj create mode 100644 submodules/WatchBridgeAudio/Info.plist rename submodules/{TelegramUI/TelegramUI/Bridge Audio => WatchBridgeAudio/Sources}/LegacyBridgeAudio.swift (96%) rename submodules/{TelegramUI/TelegramUI/Bridge Audio => WatchBridgeAudio/Sources}/TGBridgeAudioDecoder.h (100%) rename submodules/{TelegramUI/TelegramUI/Bridge Audio => WatchBridgeAudio/Sources}/TGBridgeAudioDecoder.mm (100%) rename submodules/{TelegramUI/TelegramUI/Bridge Audio => WatchBridgeAudio/Sources}/TGBridgeAudioEncoder.h (79%) rename submodules/{TelegramUI/TelegramUI/Bridge Audio => WatchBridgeAudio/Sources}/TGBridgeAudioEncoder.m (99%) create mode 100644 submodules/WatchBridgeAudio/Sources/WatchBridgeAudio.h create mode 100644 submodules/WatchBridgeAudio/WatchBridgeAudio_Xcode.xcodeproj/project.pbxproj diff --git a/Telegram-iOS.xcworkspace/contents.xcworkspacedata b/Telegram-iOS.xcworkspace/contents.xcworkspacedata index 1fd1843193..88dddacb0d 100644 --- a/Telegram-iOS.xcworkspace/contents.xcworkspacedata +++ b/Telegram-iOS.xcworkspace/contents.xcworkspacedata @@ -29,6 +29,9 @@ + + @@ -493,6 +496,16 @@ location = "group:submodules/PeerInfoUI/PeerInfoUI_Xcode.xcodeproj"> + + + + + + diff --git a/submodules/LegacyDataImport/Info.plist b/submodules/LegacyDataImport/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/LegacyDataImport/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/LegacyDataImport/LegacyDataImport_Xcode.xcodeproj/project.pbxproj b/submodules/LegacyDataImport/LegacyDataImport_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..e0e1015cea --- /dev/null +++ b/submodules/LegacyDataImport/LegacyDataImport_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,627 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E44AE2305BBAA0049C28B /* LegacyDataImport.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E44AC2305BBAA0049C28B /* LegacyDataImport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E44C62305BC270049C28B /* LegacyBuffer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E44B82305BC240049C28B /* LegacyBuffer.swift */; }; + D03E44C72305BC270049C28B /* LegacyFileImport.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E44B92305BC250049C28B /* LegacyFileImport.swift */; }; + D03E44C82305BC270049C28B /* TGProxyItem.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E44BA2305BC250049C28B /* TGProxyItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E44C92305BC270049C28B /* LegacyUserDataImport.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E44BB2305BC250049C28B /* LegacyUserDataImport.swift */; }; + D03E44CA2305BC270049C28B /* TGProxyItem.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E44BC2305BC250049C28B /* TGProxyItem.m */; }; + D03E44CB2305BC270049C28B /* LegacyResourceImport.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E44BD2305BC250049C28B /* LegacyResourceImport.swift */; }; + D03E44CC2305BC270049C28B /* LegacyDataImportSplash.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E44BE2305BC250049C28B /* LegacyDataImportSplash.swift */; }; + D03E44CD2305BC270049C28B /* LegacyPreferencesImport.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E44BF2305BC250049C28B /* LegacyPreferencesImport.swift */; }; + D03E44CE2305BC270049C28B /* LegacyDataImport.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E44C02305BC260049C28B /* LegacyDataImport.swift */; }; + D03E44CF2305BC270049C28B /* TGAutoDownloadPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E44C12305BC260049C28B /* TGAutoDownloadPreferences.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E44D02305BC270049C28B /* TGPresentationAutoNightPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E44C22305BC260049C28B /* TGPresentationAutoNightPreferences.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E44D12305BC270049C28B /* TGPresentationAutoNightPreferences.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E44C32305BC260049C28B /* TGPresentationAutoNightPreferences.m */; }; + D03E44D22305BC270049C28B /* TGAutoDownloadPreferences.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E44C42305BC270049C28B /* TGAutoDownloadPreferences.m */; }; + D03E44D32305BC270049C28B /* LegacyChatImport.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E44C52305BC270049C28B /* LegacyChatImport.swift */; }; + D03E44D62305BC300049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E44D52305BC300049C28B /* Foundation.framework */; }; + D03E44D82305BC320049C28B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E44D72305BC320049C28B /* UIKit.framework */; }; + D03E44DA2305BC350049C28B /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E44D92305BC350049C28B /* SwiftSignalKit.framework */; }; + D03E44DC2305BC390049C28B /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E44DB2305BC390049C28B /* Postbox.framework */; }; + D03E44DE2305BC3E0049C28B /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E44DD2305BC3E0049C28B /* TelegramCore.framework */; }; + D03E44E02305BC480049C28B /* LegacyComponents.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E44DF2305BC480049C28B /* LegacyComponents.framework */; }; + D03E44E42305BCE70049C28B /* RadialStatusNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E44E32305BCE70049C28B /* RadialStatusNode.framework */; }; + D03E44E62305BDBB0049C28B /* TelegramUIPreferences.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E44E52305BDBB0049C28B /* TelegramUIPreferences.framework */; }; + D03E44E82305BDC80049C28B /* TelegramNotices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E44E72305BDC80049C28B /* TelegramNotices.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E44A92305BBAA0049C28B /* LegacyDataImport.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LegacyDataImport.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E44AC2305BBAA0049C28B /* LegacyDataImport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LegacyDataImport.h; sourceTree = ""; }; + D03E44AD2305BBAA0049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E44B82305BC240049C28B /* LegacyBuffer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyBuffer.swift; sourceTree = ""; }; + D03E44B92305BC250049C28B /* LegacyFileImport.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyFileImport.swift; sourceTree = ""; }; + D03E44BA2305BC250049C28B /* TGProxyItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGProxyItem.h; sourceTree = ""; }; + D03E44BB2305BC250049C28B /* LegacyUserDataImport.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyUserDataImport.swift; sourceTree = ""; }; + D03E44BC2305BC250049C28B /* TGProxyItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGProxyItem.m; sourceTree = ""; }; + D03E44BD2305BC250049C28B /* LegacyResourceImport.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyResourceImport.swift; sourceTree = ""; }; + D03E44BE2305BC250049C28B /* LegacyDataImportSplash.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyDataImportSplash.swift; sourceTree = ""; }; + D03E44BF2305BC250049C28B /* LegacyPreferencesImport.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyPreferencesImport.swift; sourceTree = ""; }; + D03E44C02305BC260049C28B /* LegacyDataImport.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyDataImport.swift; sourceTree = ""; }; + D03E44C12305BC260049C28B /* TGAutoDownloadPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGAutoDownloadPreferences.h; sourceTree = ""; }; + D03E44C22305BC260049C28B /* TGPresentationAutoNightPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGPresentationAutoNightPreferences.h; sourceTree = ""; }; + D03E44C32305BC260049C28B /* TGPresentationAutoNightPreferences.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGPresentationAutoNightPreferences.m; sourceTree = ""; }; + D03E44C42305BC270049C28B /* TGAutoDownloadPreferences.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGAutoDownloadPreferences.m; sourceTree = ""; }; + D03E44C52305BC270049C28B /* LegacyChatImport.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyChatImport.swift; sourceTree = ""; }; + D03E44D52305BC300049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E44D72305BC320049C28B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D03E44D92305BC350049C28B /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E44DB2305BC390049C28B /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E44DD2305BC3E0049C28B /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E44DF2305BC480049C28B /* LegacyComponents.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LegacyComponents.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E44E32305BCE70049C28B /* RadialStatusNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = RadialStatusNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E44E52305BDBB0049C28B /* TelegramUIPreferences.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramUIPreferences.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E44E72305BDC80049C28B /* TelegramNotices.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramNotices.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E44A62305BBAA0049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E44E82305BDC80049C28B /* TelegramNotices.framework in Frameworks */, + D03E44E62305BDBB0049C28B /* TelegramUIPreferences.framework in Frameworks */, + D03E44E42305BCE70049C28B /* RadialStatusNode.framework in Frameworks */, + D03E44E02305BC480049C28B /* LegacyComponents.framework in Frameworks */, + D03E44DE2305BC3E0049C28B /* TelegramCore.framework in Frameworks */, + D03E44DC2305BC390049C28B /* Postbox.framework in Frameworks */, + D03E44DA2305BC350049C28B /* SwiftSignalKit.framework in Frameworks */, + D03E44D82305BC320049C28B /* UIKit.framework in Frameworks */, + D03E44D62305BC300049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E449F2305BBAA0049C28B = { + isa = PBXGroup; + children = ( + D03E44AD2305BBAA0049C28B /* Info.plist */, + D03E44AB2305BBAA0049C28B /* Sources */, + D03E44AA2305BBAA0049C28B /* Products */, + D03E44D42305BC2E0049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E44AA2305BBAA0049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E44A92305BBAA0049C28B /* LegacyDataImport.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E44AB2305BBAA0049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E44B82305BC240049C28B /* LegacyBuffer.swift */, + D03E44C52305BC270049C28B /* LegacyChatImport.swift */, + D03E44C02305BC260049C28B /* LegacyDataImport.swift */, + D03E44BE2305BC250049C28B /* LegacyDataImportSplash.swift */, + D03E44B92305BC250049C28B /* LegacyFileImport.swift */, + D03E44BF2305BC250049C28B /* LegacyPreferencesImport.swift */, + D03E44BD2305BC250049C28B /* LegacyResourceImport.swift */, + D03E44BB2305BC250049C28B /* LegacyUserDataImport.swift */, + D03E44C12305BC260049C28B /* TGAutoDownloadPreferences.h */, + D03E44C42305BC270049C28B /* TGAutoDownloadPreferences.m */, + D03E44C22305BC260049C28B /* TGPresentationAutoNightPreferences.h */, + D03E44C32305BC260049C28B /* TGPresentationAutoNightPreferences.m */, + D03E44BA2305BC250049C28B /* TGProxyItem.h */, + D03E44BC2305BC250049C28B /* TGProxyItem.m */, + D03E44AC2305BBAA0049C28B /* LegacyDataImport.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E44D42305BC2E0049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E44E72305BDC80049C28B /* TelegramNotices.framework */, + D03E44E52305BDBB0049C28B /* TelegramUIPreferences.framework */, + D03E44E32305BCE70049C28B /* RadialStatusNode.framework */, + D03E44DF2305BC480049C28B /* LegacyComponents.framework */, + D03E44DD2305BC3E0049C28B /* TelegramCore.framework */, + D03E44DB2305BC390049C28B /* Postbox.framework */, + D03E44D92305BC350049C28B /* SwiftSignalKit.framework */, + D03E44D72305BC320049C28B /* UIKit.framework */, + D03E44D52305BC300049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E44A42305BBAA0049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E44CF2305BC270049C28B /* TGAutoDownloadPreferences.h in Headers */, + D03E44AE2305BBAA0049C28B /* LegacyDataImport.h in Headers */, + D03E44D02305BC270049C28B /* TGPresentationAutoNightPreferences.h in Headers */, + D03E44C82305BC270049C28B /* TGProxyItem.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E44A82305BBAA0049C28B /* LegacyDataImport */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E44B12305BBAA0049C28B /* Build configuration list for PBXNativeTarget "LegacyDataImport" */; + buildPhases = ( + D03E44A42305BBAA0049C28B /* Headers */, + D03E44A52305BBAA0049C28B /* Sources */, + D03E44A62305BBAA0049C28B /* Frameworks */, + D03E44A72305BBAA0049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = LegacyDataImport; + productName = LegacyDataImport; + productReference = D03E44A92305BBAA0049C28B /* LegacyDataImport.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E44A02305BBAA0049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E44A82305BBAA0049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E44A32305BBAA0049C28B /* Build configuration list for PBXProject "LegacyDataImport_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E449F2305BBAA0049C28B; + productRefGroup = D03E44AA2305BBAA0049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E44A82305BBAA0049C28B /* LegacyDataImport */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E44A72305BBAA0049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E44A52305BBAA0049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E44CA2305BC270049C28B /* TGProxyItem.m in Sources */, + D03E44CD2305BC270049C28B /* LegacyPreferencesImport.swift in Sources */, + D03E44C92305BC270049C28B /* LegacyUserDataImport.swift in Sources */, + D03E44CE2305BC270049C28B /* LegacyDataImport.swift in Sources */, + D03E44CC2305BC270049C28B /* LegacyDataImportSplash.swift in Sources */, + D03E44D32305BC270049C28B /* LegacyChatImport.swift in Sources */, + D03E44C62305BC270049C28B /* LegacyBuffer.swift in Sources */, + D03E44D22305BC270049C28B /* TGAutoDownloadPreferences.m in Sources */, + D03E44C72305BC270049C28B /* LegacyFileImport.swift in Sources */, + D03E44CB2305BC270049C28B /* LegacyResourceImport.swift in Sources */, + D03E44D12305BC270049C28B /* TGPresentationAutoNightPreferences.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E44AF2305BBAA0049C28B /* 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; + }; + D03E44B02305BBAA0049C28B /* 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; + }; + D03E44B22305BBAA0049C28B /* 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.LegacyDataImport; + 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; + }; + D03E44B32305BBAA0049C28B /* 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.LegacyDataImport; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E44B42305BBCC0049C28B /* 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; + }; + D03E44B52305BBCC0049C28B /* 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.LegacyDataImport; + 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; + }; + D03E44B62305BBD50049C28B /* 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; + }; + D03E44B72305BBD50049C28B /* 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.LegacyDataImport; + 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 */ + D03E44A32305BBAA0049C28B /* Build configuration list for PBXProject "LegacyDataImport_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E44AF2305BBAA0049C28B /* DebugAppStoreLLC */, + D03E44B42305BBCC0049C28B /* DebugHockeyapp */, + D03E44B02305BBAA0049C28B /* ReleaseAppStoreLLC */, + D03E44B62305BBD50049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E44B12305BBAA0049C28B /* Build configuration list for PBXNativeTarget "LegacyDataImport" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E44B22305BBAA0049C28B /* DebugAppStoreLLC */, + D03E44B52305BBCC0049C28B /* DebugHockeyapp */, + D03E44B32305BBAA0049C28B /* ReleaseAppStoreLLC */, + D03E44B72305BBD50049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E44A02305BBAA0049C28B /* Project object */; +} diff --git a/submodules/TelegramUI/TelegramUI/LegacyBuffer.swift b/submodules/LegacyDataImport/Sources/LegacyBuffer.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/LegacyBuffer.swift rename to submodules/LegacyDataImport/Sources/LegacyBuffer.swift diff --git a/submodules/TelegramUI/TelegramUI/LegacyChatImport.swift b/submodules/LegacyDataImport/Sources/LegacyChatImport.swift similarity index 98% rename from submodules/TelegramUI/TelegramUI/LegacyChatImport.swift rename to submodules/LegacyDataImport/Sources/LegacyChatImport.swift index 772ee99c0b..1dcd261c9a 100644 --- a/submodules/TelegramUI/TelegramUI/LegacyChatImport.swift +++ b/submodules/LegacyDataImport/Sources/LegacyChatImport.swift @@ -2,8 +2,6 @@ import Foundation import TelegramCore import SwiftSignalKit import Postbox -import TelegramUI - import LegacyComponents private let reportedLayer_hash: Int32 = -717538193 @@ -625,16 +623,7 @@ private func importChannelBroadcastPreferences(account: TemporaryAccount, basePa } } - return account.postbox.transaction { transaction -> Void in - for peerId in peerIdsWithMutedMessages { - let channelId = Int32(clamping: Int64(Int32.min) &* 2 &- peerId) - transaction.updatePeerChatInterfaceState(PeerId(namespace: Namespaces.Peer.CloudChannel, id: channelId), update: { current in - let state = (current as? ChatInterfaceState ?? ChatInterfaceState()).withUpdatedSilentPosting(true) - return state - }) - } - } - |> ignoreValues + return .complete() } } diff --git a/submodules/LegacyDataImport/Sources/LegacyDataImport.h b/submodules/LegacyDataImport/Sources/LegacyDataImport.h new file mode 100644 index 0000000000..aae748427c --- /dev/null +++ b/submodules/LegacyDataImport/Sources/LegacyDataImport.h @@ -0,0 +1,13 @@ +#import + +//! Project version number for LegacyDataImport. +FOUNDATION_EXPORT double LegacyDataImportVersionNumber; + +//! Project version string for LegacyDataImport. +FOUNDATION_EXPORT const unsigned char LegacyDataImportVersionString[]; + +#import +#import +#import + + diff --git a/submodules/TelegramUI/TelegramUI/LegacyDataImport.swift b/submodules/LegacyDataImport/Sources/LegacyDataImport.swift similarity index 96% rename from submodules/TelegramUI/TelegramUI/LegacyDataImport.swift rename to submodules/LegacyDataImport/Sources/LegacyDataImport.swift index c5940d70cc..eb46ed5a40 100644 --- a/submodules/TelegramUI/TelegramUI/LegacyDataImport.swift +++ b/submodules/LegacyDataImport/Sources/LegacyDataImport.swift @@ -9,11 +9,11 @@ import MtProtoKit import MtProtoKitDynamic #endif -enum AccountImportError: Error { +public enum AccountImportError: Error { case generic } -enum AccountImportProgressType { +public enum AccountImportProgressType { case generic case messages case media @@ -106,12 +106,12 @@ private func importDatabaseData(accountManager: AccountManager, account: Tempora } } -enum ImportedLegacyAccountEvent { +public enum ImportedLegacyAccountEvent { case progress(AccountImportProgressType, Float) case result(AccountRecordId?) } -func importedLegacyAccount(basePath: String, accountManager: AccountManager, encryptionParameters: ValueBoxEncryptionParameters, present: @escaping (UIViewController) -> Void) -> Signal { +public func importedLegacyAccount(basePath: String, accountManager: AccountManager, encryptionParameters: ValueBoxEncryptionParameters, present: @escaping (UIViewController) -> Void) -> Signal { let queue = Queue() return deferred { () -> Signal in let documentsPath = basePath + "/Documents" diff --git a/submodules/TelegramUI/TelegramUI/LegacyDataImportSplash.swift b/submodules/LegacyDataImport/Sources/LegacyDataImportSplash.swift similarity index 90% rename from submodules/TelegramUI/TelegramUI/LegacyDataImportSplash.swift rename to submodules/LegacyDataImport/Sources/LegacyDataImportSplash.swift index 72c8cb3abe..816f679684 100644 --- a/submodules/TelegramUI/TelegramUI/LegacyDataImportSplash.swift +++ b/submodules/LegacyDataImport/Sources/LegacyDataImportSplash.swift @@ -4,11 +4,11 @@ import AsyncDisplayKit import TelegramPresentationData import RadialStatusNode -final class LegacyDataImportSplash: WindowCoveringView { +public final class LegacyDataImportSplash: WindowCoveringView { private let theme: PresentationTheme? private let strings: PresentationStrings? - var progress: (AccountImportProgressType, Float) = (.generic, 0.0) { + public var progress: (AccountImportProgressType, Float) = (.generic, 0.0) { didSet { if self.progress.0 != oldValue.0 { if let size = self.validSize { @@ -27,14 +27,14 @@ final class LegacyDataImportSplash: WindowCoveringView { } } - var serviceAction: (() -> Void)? + public var serviceAction: (() -> Void)? private let progressNode: RadialStatusNode private let textNode: ImmediateTextNode private var validSize: CGSize? - init(theme: PresentationTheme?, strings: PresentationStrings?) { + public init(theme: PresentationTheme?, strings: PresentationStrings?) { self.theme = theme self.strings = strings @@ -56,11 +56,11 @@ final class LegacyDataImportSplash: WindowCoveringView { self.addGestureRecognizer(UILongPressGestureRecognizer(target: self, action: #selector(self.longPressGesture(_:)))) } - required init?(coder aDecoder: NSCoder) { + required public init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } - override func updateLayout(_ size: CGSize) { + override public func updateLayout(_ size: CGSize) { self.validSize = size let progressSize = CGSize(width: 60.0, height: 60.0) diff --git a/submodules/TelegramUI/TelegramUI/LegacyFileImport.swift b/submodules/LegacyDataImport/Sources/LegacyFileImport.swift similarity index 99% rename from submodules/TelegramUI/TelegramUI/LegacyFileImport.swift rename to submodules/LegacyDataImport/Sources/LegacyFileImport.swift index 416f65365a..13059b077f 100644 --- a/submodules/TelegramUI/TelegramUI/LegacyFileImport.swift +++ b/submodules/LegacyDataImport/Sources/LegacyFileImport.swift @@ -2,7 +2,6 @@ import Foundation import TelegramCore import SwiftSignalKit import Postbox - import LegacyComponents private func importMediaFromMessageData(_ data: Data, basePath: String, copyLocalFiles: inout [(MediaResource, String)], cache: TGCache) { diff --git a/submodules/TelegramUI/TelegramUI/LegacyPreferencesImport.swift b/submodules/LegacyDataImport/Sources/LegacyPreferencesImport.swift similarity index 99% rename from submodules/TelegramUI/TelegramUI/LegacyPreferencesImport.swift rename to submodules/LegacyDataImport/Sources/LegacyPreferencesImport.swift index a574326c54..25f27cc612 100644 --- a/submodules/TelegramUI/TelegramUI/LegacyPreferencesImport.swift +++ b/submodules/LegacyDataImport/Sources/LegacyPreferencesImport.swift @@ -9,11 +9,6 @@ import MtProtoKit import MtProtoKitDynamic #endif import TelegramUIPreferences - -#if BUCK -import AppBinaryPrivate -#endif -import TelegramUIPrivateModule import LegacyComponents import TelegramNotices diff --git a/submodules/TelegramUI/TelegramUI/LegacyResourceImport.swift b/submodules/LegacyDataImport/Sources/LegacyResourceImport.swift similarity index 99% rename from submodules/TelegramUI/TelegramUI/LegacyResourceImport.swift rename to submodules/LegacyDataImport/Sources/LegacyResourceImport.swift index e8bc22ae67..6dab43b831 100644 --- a/submodules/TelegramUI/TelegramUI/LegacyResourceImport.swift +++ b/submodules/LegacyDataImport/Sources/LegacyResourceImport.swift @@ -2,7 +2,6 @@ import Foundation import TelegramCore import SwiftSignalKit import Postbox - import LegacyComponents func resourceFromLegacyImageUrl(_ fileRef: String) -> TelegramMediaResource? { diff --git a/submodules/TelegramUI/TelegramUI/LegacyUserDataImport.swift b/submodules/LegacyDataImport/Sources/LegacyUserDataImport.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/LegacyUserDataImport.swift rename to submodules/LegacyDataImport/Sources/LegacyUserDataImport.swift diff --git a/submodules/TelegramUI/TelegramUI/TGAutoDownloadPreferences.h b/submodules/LegacyDataImport/Sources/TGAutoDownloadPreferences.h similarity index 100% rename from submodules/TelegramUI/TelegramUI/TGAutoDownloadPreferences.h rename to submodules/LegacyDataImport/Sources/TGAutoDownloadPreferences.h diff --git a/submodules/TelegramUI/TelegramUI/TGAutoDownloadPreferences.m b/submodules/LegacyDataImport/Sources/TGAutoDownloadPreferences.m similarity index 100% rename from submodules/TelegramUI/TelegramUI/TGAutoDownloadPreferences.m rename to submodules/LegacyDataImport/Sources/TGAutoDownloadPreferences.m diff --git a/submodules/TelegramUI/TelegramUI/TGPresentationAutoNightPreferences.h b/submodules/LegacyDataImport/Sources/TGPresentationAutoNightPreferences.h similarity index 100% rename from submodules/TelegramUI/TelegramUI/TGPresentationAutoNightPreferences.h rename to submodules/LegacyDataImport/Sources/TGPresentationAutoNightPreferences.h diff --git a/submodules/TelegramUI/TelegramUI/TGPresentationAutoNightPreferences.m b/submodules/LegacyDataImport/Sources/TGPresentationAutoNightPreferences.m similarity index 100% rename from submodules/TelegramUI/TelegramUI/TGPresentationAutoNightPreferences.m rename to submodules/LegacyDataImport/Sources/TGPresentationAutoNightPreferences.m diff --git a/submodules/TelegramUI/TelegramUI/TGProxyItem.h b/submodules/LegacyDataImport/Sources/TGProxyItem.h similarity index 100% rename from submodules/TelegramUI/TelegramUI/TGProxyItem.h rename to submodules/LegacyDataImport/Sources/TGProxyItem.h diff --git a/submodules/TelegramUI/TelegramUI/TGProxyItem.m b/submodules/LegacyDataImport/Sources/TGProxyItem.m similarity index 100% rename from submodules/TelegramUI/TelegramUI/TGProxyItem.m rename to submodules/LegacyDataImport/Sources/TGProxyItem.m diff --git a/submodules/SSignalKit/SwiftSignalKit/Signal_Mapping.swift b/submodules/SSignalKit/SwiftSignalKit/Signal_Mapping.swift index d8a1b3cc5b..5744cf6c8f 100644 --- a/submodules/SSignalKit/SwiftSignalKit/Signal_Mapping.swift +++ b/submodules/SSignalKit/SwiftSignalKit/Signal_Mapping.swift @@ -30,12 +30,14 @@ public func filter(_ f: @escaping(T) -> Bool) -> (Signal) -> Signal< } } -public func flatMap(_ f: @escaping (T) -> R?) -> (Signal) -> Signal { +public func flatMap(_ f: @escaping (T) -> R) -> (Signal) -> Signal { return { signal in - return Signal { subscriber in + return Signal { subscriber in return signal.start(next: { next in - if let value = f(next) { - subscriber.putNext(value) + if let next = next { + subscriber.putNext(f(next)) + } else { + subscriber.putNext(nil) } }, error: { error in subscriber.putError(error) diff --git a/submodules/TelegramUI/TelegramUI/AppDelegate.swift b/submodules/TelegramUI/TelegramUI/AppDelegate.swift index 0e9b055a78..4f4f85a995 100644 --- a/submodules/TelegramUI/TelegramUI/AppDelegate.swift +++ b/submodules/TelegramUI/TelegramUI/AppDelegate.swift @@ -20,6 +20,8 @@ import OverlayStatusController import UndoUI import LegacyUI import PassportUI +import WatchBridge +import LegacyDataImport private let handleVoipNotifications = false @@ -1069,7 +1071,7 @@ final class SharedApplicationContext { } })) - self.watchCommunicationManagerPromise.set(watchCommunicationManager(context: self.context, allowBackgroundTimeExtension: { timeout in + self.watchCommunicationManagerPromise.set(watchCommunicationManager(context: self.context.get() |> flatMap { WatchCommunicationManagerContext(context: $0.context) }, allowBackgroundTimeExtension: { timeout in let _ = (self.sharedContextPromise.get() |> take(1)).start(next: { sharedContext in sharedContext.wakeupManager.allowBackgroundTimeExtension(timeout: timeout) diff --git a/submodules/TelegramUI/TelegramUI/ApplicationContext.swift b/submodules/TelegramUI/TelegramUI/ApplicationContext.swift index c71502fd18..d4cc28d80b 100644 --- a/submodules/TelegramUI/TelegramUI/ApplicationContext.swift +++ b/submodules/TelegramUI/TelegramUI/ApplicationContext.swift @@ -17,6 +17,7 @@ import LegacyUI import TelegramPermissionsUI import PasscodeUI import ImageBlur +import WatchBridge func isAccessLocked(data: PostboxAccessChallengeData, at timestamp: Int32) -> Bool { if data.isLockable, let autolockDeadline = data.autolockDeadline, autolockDeadline <= timestamp { diff --git a/submodules/TelegramUI/TelegramUI/SharedAccountContext.swift b/submodules/TelegramUI/TelegramUI/SharedAccountContext.swift index 44fb7e492e..36f85e9a51 100644 --- a/submodules/TelegramUI/TelegramUI/SharedAccountContext.swift +++ b/submodules/TelegramUI/TelegramUI/SharedAccountContext.swift @@ -27,20 +27,6 @@ private final class AccountUserInterfaceInUseContext { } } -private func preFetchedLegacyResourcePath(basePath: String, resource: MediaResource, cache: LegacyCache) -> String? { - if let resource = resource as? CloudDocumentMediaResource { - let videoPath = "\(basePath)/Documents/video/remote\(String(resource.fileId, radix: 16)).mov" - if FileManager.default.fileExists(atPath: videoPath) { - return videoPath - } - let fileName = resource.fileName?.replacingOccurrences(of: "/", with: "_") ?? "file" - return pathFromLegacyFile(basePath: basePath, fileId: resource.fileId, isLocal: false, fileName: fileName) - } else if let resource = resource as? CloudFileMediaResource { - return cache.path(forCachedData: "\(resource.datacenterId)_\(resource.volumeId)_\(resource.localId)_\(resource.secret)") - } - return nil -} - private struct AccountAttributes: Equatable { let sortIndex: Int32 let isTestingEnvironment: Bool @@ -337,11 +323,7 @@ public final class SharedAccountContextImpl: SharedAccountContext { switch result { case let .authorized(account): setupAccount(account, fetchCachedResourceRepresentation: fetchCachedResourceRepresentation, transformOutgoingMessageMedia: transformOutgoingMessageMedia, preFetchedResourcePath: { resource in - if let legacyBasePath = legacyBasePath, let legacyCache = legacyCache { - return preFetchedLegacyResourcePath(basePath: legacyBasePath, resource: resource, cache: legacyCache) - } else { - return nil - } + return nil }) return .ready(id, account, attributes.sortIndex) case let .upgrading(progress): diff --git a/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap b/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap index 1cc43dffc0..9a912324d9 100644 --- a/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap +++ b/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap @@ -1,11 +1,5 @@ module TelegramUIPrivateModule { - header "../Bridge Audio/TGBridgeAudioDecoder.h" - header "../Bridge Audio/TGBridgeAudioEncoder.h" header "../TGContactModel.h" header "../TGItemProviderSignals.h" header "../TGShareLocationSignals.h" - header "../TGBridgeServer.h" - header "../TGAutoDownloadPreferences.h" - header "../TGPresentationAutoNightPreferences.h" - header "../TGProxyItem.h" } diff --git a/submodules/TelegramUI/TelegramUI/WatchManager.swift b/submodules/TelegramUI/TelegramUI/WatchManager.swift index 11d0a2d9c0..a1ddbcdd11 100644 --- a/submodules/TelegramUI/TelegramUI/WatchManager.swift +++ b/submodules/TelegramUI/TelegramUI/WatchManager.swift @@ -3,18 +3,7 @@ import SwiftSignalKit import Postbox import TelegramCore import AccountContext - -public final class WatchManagerArguments { - public let appInstalled: Signal - public let navigateToMessageRequested: Signal - public let runningTasks: Signal - - public init(appInstalled: Signal, navigateToMessageRequested: Signal, runningTasks: Signal) { - self.appInstalled = appInstalled - self.navigateToMessageRequested = navigateToMessageRequested - self.runningTasks = runningTasks - } -} +import WatchBridge public final class WatchManagerImpl: WatchManager { private let arguments: WatchManagerArguments? diff --git a/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj b/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj index bad6b3e055..e1143f0bad 100644 --- a/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj @@ -124,29 +124,11 @@ D008177E22B46B7E008A895F /* TGItemProviderSignals.m in Sources */ = {isa = PBXBuildFile; fileRef = D008177722B46B7E008A895F /* TGItemProviderSignals.m */; }; D008177F22B46B7E008A895F /* TGShareLocationSignals.m in Sources */ = {isa = PBXBuildFile; fileRef = D008177822B46B7E008A895F /* TGShareLocationSignals.m */; }; D008178222B47464008A895F /* NotificationContentContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D008178122B47464008A895F /* NotificationContentContext.swift */; }; - D00817CA22B47A14008A895F /* WatchRequestHandlers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00817B022B47A12008A895F /* WatchRequestHandlers.swift */; }; - D00817CB22B47A14008A895F /* WatchBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00817B122B47A12008A895F /* WatchBridge.swift */; }; - D00817CC22B47A14008A895F /* WatchCommunicationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00817B222B47A12008A895F /* WatchCommunicationManager.swift */; }; - D00817CD22B47A14008A895F /* TGAutoDownloadPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = D00817B322B47A12008A895F /* TGAutoDownloadPreferences.h */; }; - D00817CE22B47A14008A895F /* TGProxyItem.h in Headers */ = {isa = PBXBuildFile; fileRef = D00817B422B47A12008A895F /* TGProxyItem.h */; }; - D00817CF22B47A14008A895F /* LegacyFileImport.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00817B522B47A12008A895F /* LegacyFileImport.swift */; }; D00817D022B47A14008A895F /* WakeupManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00817B622B47A12008A895F /* WakeupManager.swift */; }; - D00817D122B47A14008A895F /* LegacyDataImport.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00817B722B47A12008A895F /* LegacyDataImport.swift */; }; - D00817D222B47A14008A895F /* LegacyPreferencesImport.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00817B822B47A12008A895F /* LegacyPreferencesImport.swift */; }; - D00817D322B47A14008A895F /* LegacyResourceImport.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00817B922B47A12008A895F /* LegacyResourceImport.swift */; }; - D00817D422B47A14008A895F /* LegacyUserDataImport.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00817BA22B47A12008A895F /* LegacyUserDataImport.swift */; }; D00817D522B47A14008A895F /* ApplicationShortcutItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00817BB22B47A13008A895F /* ApplicationShortcutItem.swift */; }; - D00817D622B47A14008A895F /* TGProxyItem.m in Sources */ = {isa = PBXBuildFile; fileRef = D00817BC22B47A13008A895F /* TGProxyItem.m */; }; - D00817D722B47A14008A895F /* TGBridgeServer.h in Headers */ = {isa = PBXBuildFile; fileRef = D00817BD22B47A13008A895F /* TGBridgeServer.h */; }; - D00817D822B47A14008A895F /* TGAutoDownloadPreferences.m in Sources */ = {isa = PBXBuildFile; fileRef = D00817BE22B47A13008A895F /* TGAutoDownloadPreferences.m */; }; D00817D922B47A14008A895F /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00817BF22B47A13008A895F /* AppDelegate.swift */; }; - D00817DA22B47A14008A895F /* TGPresentationAutoNightPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = D00817C022B47A13008A895F /* TGPresentationAutoNightPreferences.h */; }; - D00817DB22B47A14008A895F /* LegacyChatImport.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00817C122B47A13008A895F /* LegacyChatImport.swift */; }; D00817DC22B47A14008A895F /* ManageSharedAccountInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00817C222B47A13008A895F /* ManageSharedAccountInfo.swift */; }; D00817DD22B47A14008A895F /* LockedWindowCoveringView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00817C322B47A13008A895F /* LockedWindowCoveringView.swift */; }; - D00817DE22B47A14008A895F /* TGBridgeServer.m in Sources */ = {isa = PBXBuildFile; fileRef = D00817C422B47A13008A895F /* TGBridgeServer.m */; }; - D00817DF22B47A14008A895F /* LegacyDataImportSplash.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00817C522B47A13008A895F /* LegacyDataImportSplash.swift */; }; - D00817E322B47A14008A895F /* TGPresentationAutoNightPreferences.m in Sources */ = {isa = PBXBuildFile; fileRef = D00817C922B47A14008A895F /* TGPresentationAutoNightPreferences.m */; }; D008184A22B57225008A895F /* WatchCommon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D008184922B57225008A895F /* WatchCommon.framework */; }; D00818CD22B595CB008A895F /* LightweightAccountData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00818CC22B595CB008A895F /* LightweightAccountData.framework */; }; D00ACA4B20222C280045D427 /* libtgvoip.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00ACA4C20222C280045D427 /* libtgvoip.framework */; }; @@ -178,7 +160,6 @@ D02C81732177AC5900CD1006 /* NotificationSearchItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D02C81722177AC5900CD1006 /* NotificationSearchItem.swift */; }; D02D634A22B85B94006BE519 /* PushKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D02D634922B85B94006BE519 /* PushKit.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; D02F4AE91FCF370B004DFBAE /* ChatMessageInteractiveMediaBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = D02F4AE81FCF370B004DFBAE /* ChatMessageInteractiveMediaBadge.swift */; }; - D035734B22B5CCCA00F0920D /* LegacyBuffer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D035734A22B5CCCA00F0920D /* LegacyBuffer.swift */; }; D0380DAD204ED434000414AB /* LegacyLiveUploadInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0380DAC204ED434000414AB /* LegacyLiveUploadInterface.swift */; }; D0380DB8204EE0A5000414AB /* ChatInstantVideoMessageDurationNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0380DB7204EE0A5000414AB /* ChatInstantVideoMessageDurationNode.swift */; }; D0383EE4207D292800C45548 /* EmojisChatInputContextPanelNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0383EE3207D292800C45548 /* EmojisChatInputContextPanelNode.swift */; }; @@ -217,6 +198,9 @@ D03E439423057FDF0049C28B /* OpusBinding.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E439323057FDF0049C28B /* OpusBinding.framework */; }; D03E43EC2305954C0049C28B /* opus.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E43EB2305954C0049C28B /* opus.framework */; }; D03E43EE230595600049C28B /* libopus.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E43ED230595600049C28B /* libopus.a */; }; + D03E44582305B4B70049C28B /* WatchBridgeAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E44572305B4B70049C28B /* WatchBridgeAudio.framework */; }; + D03E449E2305B6A00049C28B /* WatchBridge.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E449D2305B6A00049C28B /* WatchBridge.framework */; }; + D03E44E22305BC900049C28B /* LegacyDataImport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E44E12305BC900049C28B /* LegacyDataImport.framework */; }; D04203152037162700490EA5 /* MediaInputPaneTrendingItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04203142037162700490EA5 /* MediaInputPaneTrendingItem.swift */; }; D04281F4200E5AB0009DDE36 /* ChatRecentActionsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04281F3200E5AB0009DDE36 /* ChatRecentActionsController.swift */; }; D04281F6200E5AC2009DDE36 /* ChatRecentActionsControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04281F5200E5AC2009DDE36 /* ChatRecentActionsControllerNode.swift */; }; @@ -322,11 +306,6 @@ D0ACCB1C1EC5FF4B0079D8BF /* ChatMessageCallBubbleContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0ACCB1B1EC5FF4B0079D8BF /* ChatMessageCallBubbleContentNode.swift */; }; D0AD02EA1FFFEBEF00C1DCFF /* ChatMessageLiveLocationTextNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AD02E91FFFEBEF00C1DCFF /* ChatMessageLiveLocationTextNode.swift */; }; D0ADF966212E05A300310BBC /* TonePlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0ADF965212E05A300310BBC /* TonePlayer.swift */; }; - D0AE303522B1D3620058D3BC /* TGBridgeAudioEncoder.m in Sources */ = {isa = PBXBuildFile; fileRef = D0AE2FDC22B1D3610058D3BC /* TGBridgeAudioEncoder.m */; }; - D0AE303622B1D3620058D3BC /* TGBridgeAudioDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AE2FDD22B1D3610058D3BC /* TGBridgeAudioDecoder.h */; }; - D0AE303722B1D3620058D3BC /* TGBridgeAudioEncoder.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AE2FDE22B1D3610058D3BC /* TGBridgeAudioEncoder.h */; }; - D0AE303822B1D3620058D3BC /* TGBridgeAudioDecoder.mm in Sources */ = {isa = PBXBuildFile; fileRef = D0AE2FDF22B1D3610058D3BC /* TGBridgeAudioDecoder.mm */; }; - D0AE303922B1D3620058D3BC /* LegacyBridgeAudio.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AE2FE022B1D3610058D3BC /* LegacyBridgeAudio.swift */; }; D0AE30CF22B1D9980058D3BC /* RMIntro.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0AE30CE22B1D9980058D3BC /* RMIntro.framework */; }; D0AE30EB22B1DBD10058D3BC /* GZip.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0AE30EA22B1DBD10058D3BC /* GZip.framework */; }; D0AE311222B1DD4D0058D3BC /* TelegramCallsUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0AE311122B1DD4D0058D3BC /* TelegramCallsUI.framework */; }; @@ -827,29 +806,11 @@ D008177722B46B7E008A895F /* TGItemProviderSignals.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGItemProviderSignals.m; sourceTree = ""; }; D008177822B46B7E008A895F /* TGShareLocationSignals.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGShareLocationSignals.m; sourceTree = ""; }; D008178122B47464008A895F /* NotificationContentContext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationContentContext.swift; sourceTree = ""; }; - D00817B022B47A12008A895F /* WatchRequestHandlers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WatchRequestHandlers.swift; sourceTree = ""; }; - D00817B122B47A12008A895F /* WatchBridge.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WatchBridge.swift; sourceTree = ""; }; - D00817B222B47A12008A895F /* WatchCommunicationManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WatchCommunicationManager.swift; sourceTree = ""; }; - D00817B322B47A12008A895F /* TGAutoDownloadPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGAutoDownloadPreferences.h; sourceTree = ""; }; - D00817B422B47A12008A895F /* TGProxyItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGProxyItem.h; sourceTree = ""; }; - D00817B522B47A12008A895F /* LegacyFileImport.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyFileImport.swift; sourceTree = ""; }; D00817B622B47A12008A895F /* WakeupManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WakeupManager.swift; sourceTree = ""; }; - D00817B722B47A12008A895F /* LegacyDataImport.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyDataImport.swift; sourceTree = ""; }; - D00817B822B47A12008A895F /* LegacyPreferencesImport.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyPreferencesImport.swift; sourceTree = ""; }; - D00817B922B47A12008A895F /* LegacyResourceImport.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyResourceImport.swift; sourceTree = ""; }; - D00817BA22B47A12008A895F /* LegacyUserDataImport.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyUserDataImport.swift; sourceTree = ""; }; D00817BB22B47A13008A895F /* ApplicationShortcutItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ApplicationShortcutItem.swift; sourceTree = ""; }; - D00817BC22B47A13008A895F /* TGProxyItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGProxyItem.m; sourceTree = ""; }; - D00817BD22B47A13008A895F /* TGBridgeServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGBridgeServer.h; sourceTree = ""; }; - D00817BE22B47A13008A895F /* TGAutoDownloadPreferences.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGAutoDownloadPreferences.m; sourceTree = ""; }; D00817BF22B47A13008A895F /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - D00817C022B47A13008A895F /* TGPresentationAutoNightPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGPresentationAutoNightPreferences.h; sourceTree = ""; }; - D00817C122B47A13008A895F /* LegacyChatImport.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyChatImport.swift; sourceTree = ""; }; D00817C222B47A13008A895F /* ManageSharedAccountInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManageSharedAccountInfo.swift; sourceTree = ""; }; D00817C322B47A13008A895F /* LockedWindowCoveringView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LockedWindowCoveringView.swift; sourceTree = ""; }; - D00817C422B47A13008A895F /* TGBridgeServer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGBridgeServer.m; sourceTree = ""; }; - D00817C522B47A13008A895F /* LegacyDataImportSplash.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyDataImportSplash.swift; sourceTree = ""; }; - D00817C922B47A14008A895F /* TGPresentationAutoNightPreferences.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGPresentationAutoNightPreferences.m; sourceTree = ""; }; D008184922B57225008A895F /* WatchCommon.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WatchCommon.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D00818CC22B595CB008A895F /* LightweightAccountData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LightweightAccountData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D00ACA4C20222C280045D427 /* libtgvoip.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = libtgvoip.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -916,7 +877,6 @@ D02D634922B85B94006BE519 /* PushKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PushKit.framework; path = System/Library/Frameworks/PushKit.framework; sourceTree = SDKROOT; }; D02DADBE2138D76F00116225 /* Vision.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Vision.framework; path = System/Library/Frameworks/Vision.framework; sourceTree = SDKROOT; }; D02F4AE81FCF370B004DFBAE /* ChatMessageInteractiveMediaBadge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageInteractiveMediaBadge.swift; sourceTree = ""; }; - D035734A22B5CCCA00F0920D /* LegacyBuffer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyBuffer.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 = ""; }; D0383EE3207D292800C45548 /* EmojisChatInputContextPanelNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojisChatInputContextPanelNode.swift; sourceTree = ""; }; @@ -964,6 +924,9 @@ D03E43EB2305954C0049C28B /* opus.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = opus.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E43ED230595600049C28B /* libopus.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libopus.a; path = ../Opus/Sources/opus/lib/libopus.a; sourceTree = ""; }; D03E44132305ACFC0049C28B /* ogg.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ogg.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E44572305B4B70049C28B /* WatchBridgeAudio.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WatchBridgeAudio.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E449D2305B6A00049C28B /* WatchBridge.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WatchBridge.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E44E12305BC900049C28B /* LegacyDataImport.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LegacyDataImport.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E5E081E55C49C0029569A /* DebugAccountsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DebugAccountsController.swift; sourceTree = ""; }; D04203142037162700490EA5 /* MediaInputPaneTrendingItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaInputPaneTrendingItem.swift; sourceTree = ""; }; D04281F3200E5AB0009DDE36 /* ChatRecentActionsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatRecentActionsController.swift; sourceTree = ""; }; @@ -1138,11 +1101,6 @@ D0ACCB1B1EC5FF4B0079D8BF /* ChatMessageCallBubbleContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageCallBubbleContentNode.swift; sourceTree = ""; }; D0AD02E91FFFEBEF00C1DCFF /* ChatMessageLiveLocationTextNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageLiveLocationTextNode.swift; sourceTree = ""; }; D0ADF965212E05A300310BBC /* TonePlayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TonePlayer.swift; sourceTree = ""; }; - D0AE2FDC22B1D3610058D3BC /* TGBridgeAudioEncoder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGBridgeAudioEncoder.m; sourceTree = ""; }; - D0AE2FDD22B1D3610058D3BC /* TGBridgeAudioDecoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGBridgeAudioDecoder.h; sourceTree = ""; }; - D0AE2FDE22B1D3610058D3BC /* TGBridgeAudioEncoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGBridgeAudioEncoder.h; sourceTree = ""; }; - D0AE2FDF22B1D3610058D3BC /* TGBridgeAudioDecoder.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = TGBridgeAudioDecoder.mm; sourceTree = ""; }; - D0AE2FE022B1D3610058D3BC /* LegacyBridgeAudio.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyBridgeAudio.swift; sourceTree = ""; }; D0AE30CE22B1D9980058D3BC /* RMIntro.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = RMIntro.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0AE30EA22B1DBD10058D3BC /* GZip.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = GZip.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0AE311122B1DD4D0058D3BC /* TelegramCallsUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCallsUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -1431,6 +1389,9 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D03E44E22305BC900049C28B /* LegacyDataImport.framework in Frameworks */, + D03E449E2305B6A00049C28B /* WatchBridge.framework in Frameworks */, + D03E44582305B4B70049C28B /* WatchBridgeAudio.framework in Frameworks */, D03E43EE230595600049C28B /* libopus.a in Frameworks */, D03E43EC2305954C0049C28B /* opus.framework in Frameworks */, D03E439423057FDF0049C28B /* OpusBinding.framework in Frameworks */, @@ -1736,42 +1697,15 @@ isa = PBXGroup; children = ( D077C5C022B59A800097D617 /* ApplicationContext.swift */, - D00817E422B47A2E008A895F /* Legacy Data Import */, D00817BF22B47A13008A895F /* AppDelegate.swift */, D00817BB22B47A13008A895F /* ApplicationShortcutItem.swift */, D00817C322B47A13008A895F /* LockedWindowCoveringView.swift */, D00817C222B47A13008A895F /* ManageSharedAccountInfo.swift */, - D00817BD22B47A13008A895F /* TGBridgeServer.h */, - D00817C422B47A13008A895F /* TGBridgeServer.m */, D00817B622B47A12008A895F /* WakeupManager.swift */, - D00817B122B47A12008A895F /* WatchBridge.swift */, - D00817B222B47A12008A895F /* WatchCommunicationManager.swift */, - D00817B022B47A12008A895F /* WatchRequestHandlers.swift */, ); name = App; sourceTree = ""; }; - D00817E422B47A2E008A895F /* Legacy Data Import */ = { - isa = PBXGroup; - children = ( - D00817C122B47A13008A895F /* LegacyChatImport.swift */, - D00817B722B47A12008A895F /* LegacyDataImport.swift */, - D00817C522B47A13008A895F /* LegacyDataImportSplash.swift */, - D00817B522B47A12008A895F /* LegacyFileImport.swift */, - D00817B822B47A12008A895F /* LegacyPreferencesImport.swift */, - D00817B922B47A12008A895F /* LegacyResourceImport.swift */, - D00817BA22B47A12008A895F /* LegacyUserDataImport.swift */, - D00817B322B47A12008A895F /* TGAutoDownloadPreferences.h */, - D00817BE22B47A13008A895F /* TGAutoDownloadPreferences.m */, - D00817C022B47A13008A895F /* TGPresentationAutoNightPreferences.h */, - D00817C922B47A14008A895F /* TGPresentationAutoNightPreferences.m */, - D00817B422B47A12008A895F /* TGProxyItem.h */, - D00817BC22B47A13008A895F /* TGProxyItem.m */, - D035734A22B5CCCA00F0920D /* LegacyBuffer.swift */, - ); - name = "Legacy Data Import"; - sourceTree = ""; - }; D00DE6961E8E8E21003F0D76 /* Share */ = { isa = PBXGroup; children = ( @@ -2137,7 +2071,6 @@ D07551891DDA4C7C0073E051 /* Legacy Components */ = { isa = PBXGroup; children = ( - D0AE2FDB22B1D3610058D3BC /* Bridge Audio */, D00E15251DDBD4E700ACF65C /* LegacyCamera.swift */, D06BB8811F58994B0084FC30 /* LegacyInstantVideoController.swift */, D007019B2029E8F2006B9E34 /* LegacyICloudFileController.swift */, @@ -2177,6 +2110,9 @@ D08D45281D5E340200A7428A /* Frameworks */ = { isa = PBXGroup; children = ( + D03E44E12305BC900049C28B /* LegacyDataImport.framework */, + D03E449D2305B6A00049C28B /* WatchBridge.framework */, + D03E44572305B4B70049C28B /* WatchBridgeAudio.framework */, D03E44132305ACFC0049C28B /* ogg.framework */, D03E43ED230595600049C28B /* libopus.a */, D03E43EB2305954C0049C28B /* opus.framework */, @@ -2369,18 +2305,6 @@ name = "Shared Media Player"; sourceTree = ""; }; - D0AE2FDB22B1D3610058D3BC /* Bridge Audio */ = { - isa = PBXGroup; - children = ( - D0AE2FDC22B1D3610058D3BC /* TGBridgeAudioEncoder.m */, - D0AE2FDD22B1D3610058D3BC /* TGBridgeAudioDecoder.h */, - D0AE2FDE22B1D3610058D3BC /* TGBridgeAudioEncoder.h */, - D0AE2FDF22B1D3610058D3BC /* TGBridgeAudioDecoder.mm */, - D0AE2FE022B1D3610058D3BC /* LegacyBridgeAudio.swift */, - ); - path = "Bridge Audio"; - sourceTree = ""; - }; D0AF7C441ED84BB000CD8E0F /* Language Selection */ = { isa = PBXGroup; children = ( @@ -3131,15 +3055,9 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - D0AE303622B1D3620058D3BC /* TGBridgeAudioDecoder.h in Headers */, - D00817DA22B47A14008A895F /* TGPresentationAutoNightPreferences.h in Headers */, D08803C51F6064CF00DD7951 /* TelegramUI.h in Headers */, D008177B22B46B7E008A895F /* TGContactModel.h in Headers */, - D0AE303722B1D3620058D3BC /* TGBridgeAudioEncoder.h in Headers */, - D00817CD22B47A14008A895F /* TGAutoDownloadPreferences.h in Headers */, D008177C22B46B7E008A895F /* TGItemProviderSignals.h in Headers */, - D00817D722B47A14008A895F /* TGBridgeServer.h in Headers */, - D00817CE22B47A14008A895F /* TGProxyItem.h in Headers */, D008177A22B46B7E008A895F /* TGShareLocationSignals.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; @@ -3323,7 +3241,6 @@ buildActionMask = 2147483647; files = ( D0383EE6207D299600C45548 /* EmojisChatInputPanelItem.swift in Sources */, - D00817E322B47A14008A895F /* TGPresentationAutoNightPreferences.m in Sources */, D03E3D2B23045B120049C28B /* ChatMessageRestrictedBubbleContentNode.swift in Sources */, 09EDAD2A220DA6A40012A50B /* VolumeButtons.swift in Sources */, D06E4C352134AE3C00088087 /* ThemeAutoNightSettingsController.swift in Sources */, @@ -3389,7 +3306,6 @@ D056CD701FF147B000880D28 /* IconButtonNode.swift in Sources */, D0FA08CA2049BEAC00DD23FC /* ChatEmptyNode.swift in Sources */, 09CE95002232729A00A7D2C3 /* StickerPaneSearchContentNode.swift in Sources */, - D00817D122B47A14008A895F /* LegacyDataImport.swift in Sources */, D053DADC201AAAB100993D32 /* ChatTextInputMenu.swift in Sources */, D0C0B59B1EE019E5000F4D2C /* ChatSearchNavigationContentNode.swift in Sources */, 09F664CC21EB552C00AB7E26 /* WallpaperSearchRecentQueries.swift in Sources */, @@ -3417,7 +3333,6 @@ D0EC6D301EB9F58800EBF1C3 /* RadialProgressNode.swift in Sources */, D0EC6D311EB9F58800EBF1C3 /* RadialTimeoutNode.swift in Sources */, 09CE950A2237B93500A7D2C3 /* SettingsSearchResultItem.swift in Sources */, - D0AE303922B1D3620058D3BC /* LegacyBridgeAudio.swift in Sources */, D008177F22B46B7E008A895F /* TGShareLocationSignals.m in Sources */, D0185E8C208A025A005E1A6C /* ProxySettingsServerItem.swift in Sources */, 090E63EE2196FE3A00E3C035 /* OpenAddContact.swift in Sources */, @@ -3450,7 +3365,6 @@ D0EC6D5D1EB9F58800EBF1C3 /* ListMessageSnippetItemNode.swift in Sources */, D0EC6D5E1EB9F58800EBF1C3 /* ListMessageHoleItem.swift in Sources */, D0EC6D5F1EB9F58800EBF1C3 /* GridMessageItem.swift in Sources */, - D00817CB22B47A14008A895F /* WatchBridge.swift in Sources */, D0EC6D601EB9F58800EBF1C3 /* GridHoleItem.swift in Sources */, D0EC6D611EB9F58800EBF1C3 /* GridMessageSelectionNode.swift in Sources */, D0754D201EEDEBA000884F6E /* ChatMessageGameBubbleContentNode.swift in Sources */, @@ -3479,7 +3393,6 @@ D0EC6D741EB9F58800EBF1C3 /* AuthorizationSequenceSignUpControllerNode.swift in Sources */, D0EC6D751EB9F58800EBF1C3 /* TelegramRootController.swift in Sources */, D03AA4DF202DBF6F0056C405 /* ChatContextResultPeekContentNode.swift in Sources */, - D00817D622B47A14008A895F /* TGProxyItem.m in Sources */, 0910B0ED21FA178C00F8F87D /* WallpaperPreviewMedia.swift in Sources */, D0EC6D811EB9F58800EBF1C3 /* ChatController.swift in Sources */, D0B37C5E1F8D26A8004252DF /* ThemeSettingsChatPreviewItem.swift in Sources */, @@ -3524,7 +3437,6 @@ D0EC6D981EB9F58900EBF1C3 /* ChatMessageItemView.swift in Sources */, 09D304152173C0E900C00567 /* WatchManager.swift in Sources */, 9F06830921A404AB001D8EDB /* NotificationExceptionControllerNode.swift in Sources */, - D035734B22B5CCCA00F0920D /* LegacyBuffer.swift in Sources */, D0EC6D991EB9F58900EBF1C3 /* ChatMessageMediaBubbleContentNode.swift in Sources */, D0EC6D9A1EB9F58900EBF1C3 /* ChatMessageReplyInfoNode.swift in Sources */, D0FE4DE41F0AEBB900E8A0B3 /* SharedVideoContextManager.swift in Sources */, @@ -3533,7 +3445,6 @@ D0EC6D9C1EB9F58900EBF1C3 /* ChatMessageInstantVideoItemNode.swift in Sources */, D0750C8222B2E4EE00BE5F6E /* SharedWakeupManager.swift in Sources */, D0EC6D9D1EB9F58900EBF1C3 /* ChatMessageTextBubbleContentNode.swift in Sources */, - D00817DE22B47A14008A895F /* TGBridgeServer.m in Sources */, 09F664D021EBCFB900AB7E26 /* WallpaperCropNode.swift in Sources */, D0EC6D9E1EB9F58900EBF1C3 /* ChatMessageWebpageBubbleContentNode.swift in Sources */, D0750C8722B2E76300BE5F6E /* ShareExtensionContext.swift in Sources */, @@ -3655,13 +3566,11 @@ 09A218D9229EE1B600DE6898 /* HorizontalStickerGridItem.swift in Sources */, 09EC0DED22CB583C00E7185B /* TextLinkHandling.swift in Sources */, D08984F02114AE0C00918162 /* DataPrivacySettingsController.swift in Sources */, - D00817DB22B47A14008A895F /* LegacyChatImport.swift in Sources */, 09EDAD2C2211552F0012A50B /* AutodownloadMediaCategoryController.swift in Sources */, 090B48C82200BCA8005083FA /* WallpaperUploadManager.swift in Sources */, D06F31E62135A41C001A0F12 /* ThemeSettingsBrightnessItem.swift in Sources */, 09F2158D225CF5BC00AEDF6D /* Pasteboard.swift in Sources */, D0C26D571FDF2388004ABF18 /* OpenChatMessage.swift in Sources */, - D00817CA22B47A14008A895F /* WatchRequestHandlers.swift in Sources */, D007019C2029E8F2006B9E34 /* LegacyICloudFileController.swift in Sources */, 09B4819523028A8A00D5B32B /* ThemeAccentColorControllerNode.swift in Sources */, D000CABC21F158AD0011B15D /* PrepareSecretThumbnailData.swift in Sources */, @@ -3672,12 +3581,9 @@ D0AD02EA1FFFEBEF00C1DCFF /* ChatMessageLiveLocationTextNode.swift in Sources */, D01C06B51FBB7720001561AB /* ChatMediaInputSettingsItem.swift in Sources */, D091C7A61F8ECEA300D7DE13 /* SettingsThemeWallpaperNode.swift in Sources */, - D00817CC22B47A14008A895F /* WatchCommunicationManager.swift in Sources */, - D0AE303522B1D3620058D3BC /* TGBridgeAudioEncoder.m in Sources */, D00817D922B47A14008A895F /* AppDelegate.swift in Sources */, 091417F221EF4E5D00C8325A /* WallpaperGalleryController.swift in Sources */, D0FC194D201F82A000FEDBB2 /* OpenResolvedUrl.swift in Sources */, - D00817D422B47A14008A895F /* LegacyUserDataImport.swift in Sources */, 09CE95062236D47F00A7D2C3 /* SettingsSearchItem.swift in Sources */, D0AF323A1FB1D8D60097362B /* ChatOverlayNavigationBar.swift in Sources */, D0EC6E2B1EB9F58900EBF1C3 /* ComposeController.swift in Sources */, @@ -3705,15 +3611,10 @@ 09A218DA229EE1B600DE6898 /* HorizontalStickersChatContextPanelNode.swift in Sources */, 091417F421EF4F5F00C8325A /* WallpaperGalleryItem.swift in Sources */, D02F4AE91FCF370B004DFBAE /* ChatMessageInteractiveMediaBadge.swift in Sources */, - D00817CF22B47A14008A895F /* LegacyFileImport.swift in Sources */, 09510B1322F96E5B0078CAB7 /* ChatScheduleTimeController.swift in Sources */, - D00817DF22B47A14008A895F /* LegacyDataImportSplash.swift in Sources */, D0B37C5C1F8D22AE004252DF /* ThemeSettingsController.swift in Sources */, D05D8B412192FC8A0064586F /* LocalizationListItem.swift in Sources */, - D0AE303822B1D3620058D3BC /* TGBridgeAudioDecoder.mm in Sources */, - D00817D322B47A14008A895F /* LegacyResourceImport.swift in Sources */, D0380DAD204ED434000414AB /* LegacyLiveUploadInterface.swift in Sources */, - D00817D222B47A14008A895F /* LegacyPreferencesImport.swift in Sources */, D0185E882089ED5F005E1A6C /* ProxyListSettingsController.swift in Sources */, D09250061FE5371D003F693F /* GlobalExperimentalSettings.swift in Sources */, D025A4231F79344500563950 /* FetchManager.swift in Sources */, @@ -3772,7 +3673,6 @@ D0CB27D220C17A7F001ACF93 /* TermsOfServiceControllerNode.swift in Sources */, D0EC6E841EB9F58900EBF1C3 /* NotificationItem.swift in Sources */, D0EC6E851EB9F58900EBF1C3 /* ChatMessageNotificationItem.swift in Sources */, - D00817D822B47A14008A895F /* TGAutoDownloadPreferences.m in Sources */, D04281FE200E639A009DDE36 /* ChatRecentActionsTitleView.swift in Sources */, D0ACCB1C1EC5FF4B0079D8BF /* ChatMessageCallBubbleContentNode.swift in Sources */, D0EC6E891EB9F58900EBF1C3 /* FrameworkBundle.swift in Sources */, diff --git a/submodules/WatchBridge/Info.plist b/submodules/WatchBridge/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/WatchBridge/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/TGBridgeServer.h b/submodules/WatchBridge/Sources/TGBridgeServer.h similarity index 100% rename from submodules/TelegramUI/TelegramUI/TGBridgeServer.h rename to submodules/WatchBridge/Sources/TGBridgeServer.h diff --git a/submodules/TelegramUI/TelegramUI/TGBridgeServer.m b/submodules/WatchBridge/Sources/TGBridgeServer.m similarity index 100% rename from submodules/TelegramUI/TelegramUI/TGBridgeServer.m rename to submodules/WatchBridge/Sources/TGBridgeServer.m diff --git a/submodules/WatchBridge/Sources/WatchBridge.h b/submodules/WatchBridge/Sources/WatchBridge.h new file mode 100644 index 0000000000..52f8b28491 --- /dev/null +++ b/submodules/WatchBridge/Sources/WatchBridge.h @@ -0,0 +1,9 @@ +#import + +//! Project version number for WatchBridge. +FOUNDATION_EXPORT double WatchBridgeVersionNumber; + +//! Project version string for WatchBridge. +FOUNDATION_EXPORT const unsigned char WatchBridgeVersionString[]; + +#import diff --git a/submodules/TelegramUI/TelegramUI/WatchBridge.swift b/submodules/WatchBridge/Sources/WatchBridge.swift similarity index 100% rename from submodules/TelegramUI/TelegramUI/WatchBridge.swift rename to submodules/WatchBridge/Sources/WatchBridge.swift diff --git a/submodules/TelegramUI/TelegramUI/WatchCommunicationManager.swift b/submodules/WatchBridge/Sources/WatchCommunicationManager.swift similarity index 82% rename from submodules/TelegramUI/TelegramUI/WatchCommunicationManager.swift rename to submodules/WatchBridge/Sources/WatchCommunicationManager.swift index 8161aa4626..00167aa04d 100644 --- a/submodules/TelegramUI/TelegramUI/WatchCommunicationManager.swift +++ b/submodules/WatchBridge/Sources/WatchCommunicationManager.swift @@ -3,12 +3,31 @@ import SwiftSignalKit import Postbox import TelegramCore import WatchCommon -import TelegramUIPrivateModule import SSignalKit import TelegramUIPreferences import AccountContext -final class WatchCommunicationManager { +public final class WatchCommunicationManagerContext { + public let context: AccountContext + + public init(context: AccountContext) { + self.context = context + } +} + +public final class WatchManagerArguments { + public let appInstalled: Signal + public let navigateToMessageRequested: Signal + public let runningTasks: Signal + + public init(appInstalled: Signal, navigateToMessageRequested: Signal, runningTasks: Signal) { + self.appInstalled = appInstalled + self.navigateToMessageRequested = navigateToMessageRequested + self.runningTasks = runningTasks + } +} + +public final class WatchCommunicationManager { private let queue: Queue private let allowBackgroundTimeExtension: (Double) -> Void @@ -21,7 +40,7 @@ final class WatchCommunicationManager { private let presets = Promise(nil) private let navigateToMessagePipe = ValuePipe() - init(queue: Queue, context: Promise, allowBackgroundTimeExtension: @escaping (Double) -> Void) { + public init(queue: Queue, context: Signal, allowBackgroundTimeExtension: @escaping (Double) -> Void) { self.queue = queue self.allowBackgroundTimeExtension = allowBackgroundTimeExtension @@ -62,7 +81,7 @@ final class WatchCommunicationManager { }) self.server.startRunning() - self.contextDisposable.set((combineLatest(self.watchAppInstalled, context.get() |> deliverOn(self.queue))).start(next: { [weak self] appInstalled, appContext in + self.contextDisposable.set((combineLatest(self.watchAppInstalled, context |> deliverOn(self.queue))).start(next: { [weak self] appInstalled, appContext in guard let strongSelf = self, appInstalled else { return } @@ -87,7 +106,7 @@ final class WatchCommunicationManager { } })) - self.presetsDisposable.set((combineLatest(self.watchAppInstalled, self.presets.get() |> distinctUntilChanged |> deliverOn(self.queue), context.get() |> deliverOn(self.queue))).start(next: { [weak self] appInstalled, presets, appContext in + self.presetsDisposable.set((combineLatest(self.watchAppInstalled, self.presets.get() |> distinctUntilChanged |> deliverOn(self.queue), context |> deliverOn(self.queue))).start(next: { [weak self] appInstalled, presets, appContext in guard let strongSelf = self, let presets = presets, let context = appContext, appInstalled, let tempPath = strongSelf.watchTemporaryStorePath else { return } @@ -126,11 +145,11 @@ final class WatchCommunicationManager { self.presetsDisposable.dispose() } - var arguments: WatchManagerArguments { + public var arguments: WatchManagerArguments { return WatchManagerArguments(appInstalled: self.watchAppInstalled, navigateToMessageRequested: self.navigateToMessagePipe.signal(), runningTasks: self.runningTasks) } - func requestNavigateToMessage(messageId: MessageId) { + public func requestNavigateToMessage(messageId: MessageId) { self.navigateToMessagePipe.putNext(messageId) } @@ -162,18 +181,19 @@ final class WatchCommunicationManager { } |> deliverOn(self.queue) } - var watchTemporaryStorePath: String? { + public var watchTemporaryStorePath: String? { return self.server.temporaryFilesURL?.path } - func sendFile(url: URL, metadata: Dictionary, asMessageData: Bool = false) -> Signal { + public func sendFile(url: URL, metadata: Dictionary, asMessageData: Bool = false) -> Signal { return Signal { subscriber in self.server.sendFile(with: url, metadata: metadata, asMessageData: asMessageData) subscriber.putCompletion() return EmptyDisposable } |> runOn(self.queue) } - func sendFile(data: Data, metadata: Dictionary) -> Signal { + + public func sendFile(data: Data, metadata: Dictionary) -> Signal { return Signal { subscriber in self.server.sendFile(with: data, metadata: metadata, errorHandler: {}) subscriber.putCompletion() @@ -182,7 +202,7 @@ final class WatchCommunicationManager { } } -func watchCommunicationManager(context: Promise, allowBackgroundTimeExtension: @escaping (Double) -> Void) -> Signal { +public func watchCommunicationManager(context: Signal, allowBackgroundTimeExtension: @escaping (Double) -> Void) -> Signal { return Signal { subscriber in let queue = Queue() queue.async { diff --git a/submodules/TelegramUI/TelegramUI/WatchRequestHandlers.swift b/submodules/WatchBridge/Sources/WatchRequestHandlers.swift similarity index 99% rename from submodules/TelegramUI/TelegramUI/WatchRequestHandlers.swift rename to submodules/WatchBridge/Sources/WatchRequestHandlers.swift index 37c148ee5f..3ff1d5fe49 100644 --- a/submodules/TelegramUI/TelegramUI/WatchRequestHandlers.swift +++ b/submodules/WatchBridge/Sources/WatchRequestHandlers.swift @@ -10,6 +10,7 @@ import AvatarNode import StickerResources import PhotoResources import AccountContext +import WatchBridgeAudio let allWatchRequestHandlers: [AnyClass] = [ WatchChatListHandler.self, diff --git a/submodules/WatchBridge/WatchBridge_Xcode.xcodeproj/project.pbxproj b/submodules/WatchBridge/WatchBridge_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..742f23d2f1 --- /dev/null +++ b/submodules/WatchBridge/WatchBridge_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,619 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E44682305B5910049C28B /* WatchBridge.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E44662305B5910049C28B /* WatchBridge.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E44772305B60E0049C28B /* WatchCommunicationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E44722305B60E0049C28B /* WatchCommunicationManager.swift */; }; + D03E44782305B60E0049C28B /* TGBridgeServer.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E44732305B60E0049C28B /* TGBridgeServer.m */; }; + D03E44792305B60E0049C28B /* TGBridgeServer.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E44742305B60E0049C28B /* TGBridgeServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E447A2305B60E0049C28B /* WatchRequestHandlers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E44752305B60E0049C28B /* WatchRequestHandlers.swift */; }; + D03E447B2305B60E0049C28B /* WatchBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E44762305B60E0049C28B /* WatchBridge.swift */; }; + D03E447E2305B6170049C28B /* SSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E447D2305B6170049C28B /* SSignalKit.framework */; }; + D03E44802305B61C0049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E447F2305B61C0049C28B /* Foundation.framework */; }; + D03E44822305B6240049C28B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E44812305B6240049C28B /* UIKit.framework */; }; + D03E44842305B6300049C28B /* WatchConnectivity.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E44832305B6300049C28B /* WatchConnectivity.framework */; }; + D03E44862305B6340049C28B /* WatchBridgeAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E44852305B6340049C28B /* WatchBridgeAudio.framework */; }; + D03E44882305B6340049C28B /* WatchCommon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E44872305B6340049C28B /* WatchCommon.framework */; }; + D03E448A2305B6490049C28B /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E44892305B6490049C28B /* Postbox.framework */; }; + D03E448C2305B64D0049C28B /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E448B2305B64D0049C28B /* TelegramCore.framework */; }; + D03E448E2305B6540049C28B /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E448D2305B6540049C28B /* TelegramPresentationData.framework */; }; + D03E44902305B65A0049C28B /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E448F2305B65A0049C28B /* SwiftSignalKit.framework */; }; + D03E44922305B66A0049C28B /* TelegramUIPreferences.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E44912305B66A0049C28B /* TelegramUIPreferences.framework */; }; + D03E44942305B66F0049C28B /* AccountContext.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E44932305B66F0049C28B /* AccountContext.framework */; }; + D03E44962305B67D0049C28B /* AvatarNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E44952305B67D0049C28B /* AvatarNode.framework */; }; + D03E44982305B6810049C28B /* StickerResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E44972305B6810049C28B /* StickerResources.framework */; }; + D03E449A2305B6850049C28B /* PhotoResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E44992305B6850049C28B /* PhotoResources.framework */; }; + D03E449C2305B6910049C28B /* LegacyComponents.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E449B2305B6910049C28B /* LegacyComponents.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E44632305B5910049C28B /* WatchBridge.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = WatchBridge.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E44662305B5910049C28B /* WatchBridge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WatchBridge.h; sourceTree = ""; }; + D03E44672305B5910049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E44722305B60E0049C28B /* WatchCommunicationManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WatchCommunicationManager.swift; sourceTree = ""; }; + D03E44732305B60E0049C28B /* TGBridgeServer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGBridgeServer.m; sourceTree = ""; }; + D03E44742305B60E0049C28B /* TGBridgeServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGBridgeServer.h; sourceTree = ""; }; + D03E44752305B60E0049C28B /* WatchRequestHandlers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WatchRequestHandlers.swift; sourceTree = ""; }; + D03E44762305B60E0049C28B /* WatchBridge.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WatchBridge.swift; sourceTree = ""; }; + D03E447D2305B6170049C28B /* SSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E447F2305B61C0049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E44812305B6240049C28B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D03E44832305B6300049C28B /* WatchConnectivity.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WatchConnectivity.framework; path = System/Library/Frameworks/WatchConnectivity.framework; sourceTree = SDKROOT; }; + D03E44852305B6340049C28B /* WatchBridgeAudio.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WatchBridgeAudio.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E44872305B6340049C28B /* WatchCommon.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WatchCommon.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E44892305B6490049C28B /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E448B2305B64D0049C28B /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E448D2305B6540049C28B /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E448F2305B65A0049C28B /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E44912305B66A0049C28B /* TelegramUIPreferences.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramUIPreferences.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E44932305B66F0049C28B /* AccountContext.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AccountContext.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E44952305B67D0049C28B /* AvatarNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AvatarNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E44972305B6810049C28B /* StickerResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = StickerResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E44992305B6850049C28B /* PhotoResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PhotoResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E449B2305B6910049C28B /* LegacyComponents.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LegacyComponents.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E44602305B5910049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E449C2305B6910049C28B /* LegacyComponents.framework in Frameworks */, + D03E449A2305B6850049C28B /* PhotoResources.framework in Frameworks */, + D03E44982305B6810049C28B /* StickerResources.framework in Frameworks */, + D03E44962305B67D0049C28B /* AvatarNode.framework in Frameworks */, + D03E44942305B66F0049C28B /* AccountContext.framework in Frameworks */, + D03E44922305B66A0049C28B /* TelegramUIPreferences.framework in Frameworks */, + D03E44902305B65A0049C28B /* SwiftSignalKit.framework in Frameworks */, + D03E448E2305B6540049C28B /* TelegramPresentationData.framework in Frameworks */, + D03E448C2305B64D0049C28B /* TelegramCore.framework in Frameworks */, + D03E448A2305B6490049C28B /* Postbox.framework in Frameworks */, + D03E44862305B6340049C28B /* WatchBridgeAudio.framework in Frameworks */, + D03E44882305B6340049C28B /* WatchCommon.framework in Frameworks */, + D03E44842305B6300049C28B /* WatchConnectivity.framework in Frameworks */, + D03E44822305B6240049C28B /* UIKit.framework in Frameworks */, + D03E44802305B61C0049C28B /* Foundation.framework in Frameworks */, + D03E447E2305B6170049C28B /* SSignalKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E44592305B5910049C28B = { + isa = PBXGroup; + children = ( + D03E44672305B5910049C28B /* Info.plist */, + D03E44652305B5910049C28B /* Sources */, + D03E44642305B5910049C28B /* Products */, + D03E447C2305B6170049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E44642305B5910049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E44632305B5910049C28B /* WatchBridge.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E44652305B5910049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E44742305B60E0049C28B /* TGBridgeServer.h */, + D03E44732305B60E0049C28B /* TGBridgeServer.m */, + D03E44762305B60E0049C28B /* WatchBridge.swift */, + D03E44722305B60E0049C28B /* WatchCommunicationManager.swift */, + D03E44752305B60E0049C28B /* WatchRequestHandlers.swift */, + D03E44662305B5910049C28B /* WatchBridge.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E447C2305B6170049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E449B2305B6910049C28B /* LegacyComponents.framework */, + D03E44992305B6850049C28B /* PhotoResources.framework */, + D03E44972305B6810049C28B /* StickerResources.framework */, + D03E44952305B67D0049C28B /* AvatarNode.framework */, + D03E44932305B66F0049C28B /* AccountContext.framework */, + D03E44912305B66A0049C28B /* TelegramUIPreferences.framework */, + D03E448F2305B65A0049C28B /* SwiftSignalKit.framework */, + D03E448D2305B6540049C28B /* TelegramPresentationData.framework */, + D03E448B2305B64D0049C28B /* TelegramCore.framework */, + D03E44892305B6490049C28B /* Postbox.framework */, + D03E44852305B6340049C28B /* WatchBridgeAudio.framework */, + D03E44872305B6340049C28B /* WatchCommon.framework */, + D03E44832305B6300049C28B /* WatchConnectivity.framework */, + D03E44812305B6240049C28B /* UIKit.framework */, + D03E447F2305B61C0049C28B /* Foundation.framework */, + D03E447D2305B6170049C28B /* SSignalKit.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E445E2305B5910049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E44682305B5910049C28B /* WatchBridge.h in Headers */, + D03E44792305B60E0049C28B /* TGBridgeServer.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E44622305B5910049C28B /* WatchBridge */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E446B2305B5910049C28B /* Build configuration list for PBXNativeTarget "WatchBridge" */; + buildPhases = ( + D03E445E2305B5910049C28B /* Headers */, + D03E445F2305B5910049C28B /* Sources */, + D03E44602305B5910049C28B /* Frameworks */, + D03E44612305B5910049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = WatchBridge; + productName = WatchBridge; + productReference = D03E44632305B5910049C28B /* WatchBridge.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E445A2305B5910049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E44622305B5910049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E445D2305B5910049C28B /* Build configuration list for PBXProject "WatchBridge_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E44592305B5910049C28B; + productRefGroup = D03E44642305B5910049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E44622305B5910049C28B /* WatchBridge */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E44612305B5910049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E445F2305B5910049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E447B2305B60E0049C28B /* WatchBridge.swift in Sources */, + D03E44782305B60E0049C28B /* TGBridgeServer.m in Sources */, + D03E447A2305B60E0049C28B /* WatchRequestHandlers.swift in Sources */, + D03E44772305B60E0049C28B /* WatchCommunicationManager.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E44692305B5910049C28B /* 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; + }; + D03E446A2305B5910049C28B /* 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; + }; + D03E446C2305B5910049C28B /* 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.WatchBridge; + 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; + }; + D03E446D2305B5910049C28B /* 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.WatchBridge; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E446E2305B5A90049C28B /* 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; + }; + D03E446F2305B5A90049C28B /* 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.WatchBridge; + 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; + }; + D03E44702305B5B20049C28B /* 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; + }; + D03E44712305B5B20049C28B /* 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.WatchBridge; + 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 */ + D03E445D2305B5910049C28B /* Build configuration list for PBXProject "WatchBridge_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E44692305B5910049C28B /* DebugAppStoreLLC */, + D03E446E2305B5A90049C28B /* DebugHockeyapp */, + D03E446A2305B5910049C28B /* ReleaseAppStoreLLC */, + D03E44702305B5B20049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E446B2305B5910049C28B /* Build configuration list for PBXNativeTarget "WatchBridge" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E446C2305B5910049C28B /* DebugAppStoreLLC */, + D03E446F2305B5A90049C28B /* DebugHockeyapp */, + D03E446D2305B5910049C28B /* ReleaseAppStoreLLC */, + D03E44712305B5B20049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E445A2305B5910049C28B /* Project object */; +} diff --git a/submodules/WatchBridgeAudio/Info.plist b/submodules/WatchBridgeAudio/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/WatchBridgeAudio/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/Bridge Audio/LegacyBridgeAudio.swift b/submodules/WatchBridgeAudio/Sources/LegacyBridgeAudio.swift similarity index 96% rename from submodules/TelegramUI/TelegramUI/Bridge Audio/LegacyBridgeAudio.swift rename to submodules/WatchBridgeAudio/Sources/LegacyBridgeAudio.swift index a9b29de060..eb51caf60c 100644 --- a/submodules/TelegramUI/TelegramUI/Bridge Audio/LegacyBridgeAudio.swift +++ b/submodules/WatchBridgeAudio/Sources/LegacyBridgeAudio.swift @@ -1,8 +1,6 @@ import Foundation import SwiftSignalKit -import TelegramUIPrivateModule - public func legacyDecodeOpusAudio(path: String, outputPath: String) -> Signal { return Signal { subscriber in let decoder = TGBridgeAudioDecoder(url: URL(fileURLWithPath: path), outputUrl: URL(fileURLWithPath: outputPath)) diff --git a/submodules/TelegramUI/TelegramUI/Bridge Audio/TGBridgeAudioDecoder.h b/submodules/WatchBridgeAudio/Sources/TGBridgeAudioDecoder.h similarity index 100% rename from submodules/TelegramUI/TelegramUI/Bridge Audio/TGBridgeAudioDecoder.h rename to submodules/WatchBridgeAudio/Sources/TGBridgeAudioDecoder.h diff --git a/submodules/TelegramUI/TelegramUI/Bridge Audio/TGBridgeAudioDecoder.mm b/submodules/WatchBridgeAudio/Sources/TGBridgeAudioDecoder.mm similarity index 100% rename from submodules/TelegramUI/TelegramUI/Bridge Audio/TGBridgeAudioDecoder.mm rename to submodules/WatchBridgeAudio/Sources/TGBridgeAudioDecoder.mm diff --git a/submodules/TelegramUI/TelegramUI/Bridge Audio/TGBridgeAudioEncoder.h b/submodules/WatchBridgeAudio/Sources/TGBridgeAudioEncoder.h similarity index 79% rename from submodules/TelegramUI/TelegramUI/Bridge Audio/TGBridgeAudioEncoder.h rename to submodules/WatchBridgeAudio/Sources/TGBridgeAudioEncoder.h index 79a3323793..7c186daff4 100644 --- a/submodules/TelegramUI/TelegramUI/Bridge Audio/TGBridgeAudioEncoder.h +++ b/submodules/WatchBridgeAudio/Sources/TGBridgeAudioEncoder.h @@ -1,8 +1,5 @@ #import -@class TGDataItem; -@class TGLiveUploadActorData; - @interface TGBridgeAudioEncoder : NSObject - (instancetype)initWithURL:(NSURL *)url; diff --git a/submodules/TelegramUI/TelegramUI/Bridge Audio/TGBridgeAudioEncoder.m b/submodules/WatchBridgeAudio/Sources/TGBridgeAudioEncoder.m similarity index 99% rename from submodules/TelegramUI/TelegramUI/Bridge Audio/TGBridgeAudioEncoder.m rename to submodules/WatchBridgeAudio/Sources/TGBridgeAudioEncoder.m index bf32a17492..709e42a1e1 100644 --- a/submodules/TelegramUI/TelegramUI/Bridge Audio/TGBridgeAudioEncoder.m +++ b/submodules/WatchBridgeAudio/Sources/TGBridgeAudioEncoder.m @@ -1,7 +1,6 @@ #import "TGBridgeAudioEncoder.h" #import -#import #import static const char *AMQueueSpecific = "AMQueueSpecific"; diff --git a/submodules/WatchBridgeAudio/Sources/WatchBridgeAudio.h b/submodules/WatchBridgeAudio/Sources/WatchBridgeAudio.h new file mode 100644 index 0000000000..15091d1154 --- /dev/null +++ b/submodules/WatchBridgeAudio/Sources/WatchBridgeAudio.h @@ -0,0 +1,12 @@ +#import + +//! Project version number for WatchBridgeAudio. +FOUNDATION_EXPORT double WatchBridgeAudioVersionNumber; + +//! Project version string for WatchBridgeAudio. +FOUNDATION_EXPORT const unsigned char WatchBridgeAudioVersionString[]; + +#import +#import + + diff --git a/submodules/WatchBridgeAudio/WatchBridgeAudio_Xcode.xcodeproj/project.pbxproj b/submodules/WatchBridgeAudio/WatchBridgeAudio_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..7bc549ccaf --- /dev/null +++ b/submodules/WatchBridgeAudio/WatchBridgeAudio_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,581 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E44342305B3830049C28B /* WatchBridgeAudio.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E44322305B3830049C28B /* WatchBridgeAudio.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E44432305B4070049C28B /* TGBridgeAudioDecoder.mm in Sources */ = {isa = PBXBuildFile; fileRef = D03E443E2305B4060049C28B /* TGBridgeAudioDecoder.mm */; }; + D03E44442305B4070049C28B /* TGBridgeAudioEncoder.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E443F2305B4070049C28B /* TGBridgeAudioEncoder.m */; }; + D03E44452305B4070049C28B /* LegacyBridgeAudio.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E44402305B4070049C28B /* LegacyBridgeAudio.swift */; }; + D03E44462305B4070049C28B /* TGBridgeAudioEncoder.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E44412305B4070049C28B /* TGBridgeAudioEncoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E44472305B4070049C28B /* TGBridgeAudioDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E44422305B4070049C28B /* TGBridgeAudioDecoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E444A2305B4150049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E44492305B4140049C28B /* Foundation.framework */; }; + D03E444C2305B4170049C28B /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E444B2305B4170049C28B /* SwiftSignalKit.framework */; }; + D03E444E2305B41C0049C28B /* OpusBinding.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E444D2305B41C0049C28B /* OpusBinding.framework */; }; + D03E44522305B46B0049C28B /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E44512305B46A0049C28B /* AudioToolbox.framework */; }; + D03E44542305B4700049C28B /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E44532305B46F0049C28B /* AVFoundation.framework */; }; + D03E44562305B4750049C28B /* SSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E44552305B4750049C28B /* SSignalKit.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E442F2305B3830049C28B /* WatchBridgeAudio.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = WatchBridgeAudio.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E44322305B3830049C28B /* WatchBridgeAudio.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WatchBridgeAudio.h; sourceTree = ""; }; + D03E44332305B3830049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E443E2305B4060049C28B /* TGBridgeAudioDecoder.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = TGBridgeAudioDecoder.mm; sourceTree = ""; }; + D03E443F2305B4070049C28B /* TGBridgeAudioEncoder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGBridgeAudioEncoder.m; sourceTree = ""; }; + D03E44402305B4070049C28B /* LegacyBridgeAudio.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyBridgeAudio.swift; sourceTree = ""; }; + D03E44412305B4070049C28B /* TGBridgeAudioEncoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGBridgeAudioEncoder.h; sourceTree = ""; }; + D03E44422305B4070049C28B /* TGBridgeAudioDecoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGBridgeAudioDecoder.h; sourceTree = ""; }; + D03E44492305B4140049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E444B2305B4170049C28B /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E444D2305B41C0049C28B /* OpusBinding.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = OpusBinding.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E444F2305B4310049C28B /* opus.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = opus.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E44512305B46A0049C28B /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + D03E44532305B46F0049C28B /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + D03E44552305B4750049C28B /* SSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E442C2305B3830049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E44562305B4750049C28B /* SSignalKit.framework in Frameworks */, + D03E44542305B4700049C28B /* AVFoundation.framework in Frameworks */, + D03E44522305B46B0049C28B /* AudioToolbox.framework in Frameworks */, + D03E444E2305B41C0049C28B /* OpusBinding.framework in Frameworks */, + D03E444C2305B4170049C28B /* SwiftSignalKit.framework in Frameworks */, + D03E444A2305B4150049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E44252305B3830049C28B = { + isa = PBXGroup; + children = ( + D03E44332305B3830049C28B /* Info.plist */, + D03E44312305B3830049C28B /* Sources */, + D03E44302305B3830049C28B /* Products */, + D03E44482305B4140049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E44302305B3830049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E442F2305B3830049C28B /* WatchBridgeAudio.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E44312305B3830049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E44402305B4070049C28B /* LegacyBridgeAudio.swift */, + D03E44422305B4070049C28B /* TGBridgeAudioDecoder.h */, + D03E443E2305B4060049C28B /* TGBridgeAudioDecoder.mm */, + D03E44412305B4070049C28B /* TGBridgeAudioEncoder.h */, + D03E443F2305B4070049C28B /* TGBridgeAudioEncoder.m */, + D03E44322305B3830049C28B /* WatchBridgeAudio.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E44482305B4140049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E44552305B4750049C28B /* SSignalKit.framework */, + D03E44532305B46F0049C28B /* AVFoundation.framework */, + D03E44512305B46A0049C28B /* AudioToolbox.framework */, + D03E444F2305B4310049C28B /* opus.framework */, + D03E444D2305B41C0049C28B /* OpusBinding.framework */, + D03E444B2305B4170049C28B /* SwiftSignalKit.framework */, + D03E44492305B4140049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E442A2305B3830049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E44472305B4070049C28B /* TGBridgeAudioDecoder.h in Headers */, + D03E44462305B4070049C28B /* TGBridgeAudioEncoder.h in Headers */, + D03E44342305B3830049C28B /* WatchBridgeAudio.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E442E2305B3830049C28B /* WatchBridgeAudio */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E44372305B3830049C28B /* Build configuration list for PBXNativeTarget "WatchBridgeAudio" */; + buildPhases = ( + D03E442A2305B3830049C28B /* Headers */, + D03E442B2305B3830049C28B /* Sources */, + D03E442C2305B3830049C28B /* Frameworks */, + D03E442D2305B3830049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = WatchBridgeAudio; + productName = WatchBridgeAudio; + productReference = D03E442F2305B3830049C28B /* WatchBridgeAudio.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E44262305B3830049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E442E2305B3830049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E44292305B3830049C28B /* Build configuration list for PBXProject "WatchBridgeAudio_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E44252305B3830049C28B; + productRefGroup = D03E44302305B3830049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E442E2305B3830049C28B /* WatchBridgeAudio */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E442D2305B3830049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E442B2305B3830049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E44432305B4070049C28B /* TGBridgeAudioDecoder.mm in Sources */, + D03E44452305B4070049C28B /* LegacyBridgeAudio.swift in Sources */, + D03E44442305B4070049C28B /* TGBridgeAudioEncoder.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E44352305B3830049C28B /* 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; + }; + D03E44362305B3830049C28B /* 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; + }; + D03E44382305B3830049C28B /* 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.WatchBridgeAudio; + 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; + }; + D03E44392305B3830049C28B /* 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.WatchBridgeAudio; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E443A2305B3B10049C28B /* 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; + }; + D03E443B2305B3B10049C28B /* 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.WatchBridgeAudio; + 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; + }; + D03E443C2305B3BB0049C28B /* 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; + }; + D03E443D2305B3BB0049C28B /* 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.WatchBridgeAudio; + 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 */ + D03E44292305B3830049C28B /* Build configuration list for PBXProject "WatchBridgeAudio_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E44352305B3830049C28B /* DebugAppStoreLLC */, + D03E443A2305B3B10049C28B /* DebugHockeyapp */, + D03E44362305B3830049C28B /* ReleaseAppStoreLLC */, + D03E443C2305B3BB0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E44372305B3830049C28B /* Build configuration list for PBXNativeTarget "WatchBridgeAudio" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E44382305B3830049C28B /* DebugAppStoreLLC */, + D03E443B2305B3B10049C28B /* DebugHockeyapp */, + D03E44392305B3830049C28B /* ReleaseAppStoreLLC */, + D03E443D2305B3BB0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E44262305B3830049C28B /* Project object */; +} From cb48f2b224d767c01e92bec3fd4fc30dbb3cbee0 Mon Sep 17 00:00:00 2001 From: Peter <> Date: Thu, 15 Aug 2019 21:13:24 +0300 Subject: [PATCH 11/11] Remove all private modulemaps [skip ci] --- .../contents.xcworkspacedata | 59 +- .../Crc32_Xcode.xcodeproj/project.pbxproj | 528 +++++++++++++++ submodules/Crc32/Info.plist | 22 + .../Postbox => Crc32/Sources}/Crc32.h | 0 .../Postbox => Crc32/Sources}/Crc32.m | 0 submodules/Postbox/Postbox/MediaBoxFile.swift | 2 +- .../Postbox/PostboxPrivate/module.modulemap | 8 - .../Postbox_Xcode.xcodeproj/project.pbxproj | 161 +---- submodules/ShareItems/Info.plist | 22 + .../project.pbxproj | 607 +++++++++++++++++ submodules/ShareItems/Sources/ShareItems.h | 13 + .../Sources}/ShareItems.swift | 16 +- .../Sources}/TGContactModel.h | 0 .../Sources}/TGContactModel.m | 6 +- .../Sources}/TGItemProviderSignals.h | 4 + .../Sources}/TGItemProviderSignals.m | 1 - .../Sources}/TGShareLocationSignals.h | 4 + .../Sources}/TGShareLocationSignals.m | 0 .../TelegramCore/AccessSecureId.swift | 2 - .../TelegramCore/TelegramCore/Account.swift | 1 - .../TelegramCore/ContactManagement.swift | 1 - .../TelegramCore/FormatPhoneNumber.h | 12 + .../TelegramCore/FormatPhoneNumber.m | 55 ++ .../InteractivePhoneFormatter.swift | 2 +- .../TelegramCore/TelegramCore/Log.swift | 1 - .../TelegramCore/TelegramCore/MD5.swift | 1 - .../TelegramCore/TelegramCore/MonotonicTime.h | 4 - .../TelegramCore/TelegramCore/MonotonicTime.m | 29 - .../TelegramCore/MonotonicTime.swift | 13 - .../TelegramCore/MultipartUpload.swift | 1 - .../TelegramCore/TelegramCore/Network.swift | 1 - .../TelegramCore/NetworkType.swift | 2 - .../PendingMessageUploadedContent.swift | 2 - .../TelegramCore/PhoneNumbers.swift | 2 +- .../TelegramCore/TelegramCore/Reachability.h | 2 +- .../TelegramCore/StickerManagement.swift | 1 - .../TelegramCore/TelegramCore/TelegramCore.h | 5 +- .../TelegramCore/TelegramCoreIncludes.h | 7 - .../TelegramCorePrivate/module.modulemap | 8 - .../project.pbxproj | 237 +------ ...uthorizationSequenceSplashController.swift | 1 - .../ChatInterfaceStateContextQueries.swift | 1 - .../FetchCachedRepresentations.swift | 1 - .../TelegramUI/FetchVideoThumbnail.swift | 1 - .../TelegramUI/ManagedAudioRecorder.swift | 1 - .../TelegramUI/TelegramUI/MediaManager.swift | 1 - .../NotificationContentContext.swift | 1 - .../TelegramUI/ShareExtensionContext.swift | 2 +- .../TelegramUI/SharedMediaPlayer.swift | 1 - .../StickerPaneSearchContentNode.swift | 1 - .../TelegramUI/TelegramRootController.swift | 1 - .../TelegramUIPrivate/module.modulemap | 5 - .../ThemeAutoNightSettingsController.swift | 1 - .../TelegramUI/WallpaperResources.swift | 1 - .../project.pbxproj | 48 +- submodules/libphonenumber/Info.plist | 22 + .../Sources}/NBAsYouTypeFormatter.h | 0 .../Sources}/NBAsYouTypeFormatter.m | 0 .../Sources}/NBMetadataCore.h | 0 .../Sources}/NBMetadataCore.m | 0 .../Sources}/NBMetadataCoreMapper.h | 0 .../Sources}/NBMetadataCoreMapper.m | 0 .../Sources}/NBMetadataCoreTest.h | 0 .../Sources}/NBMetadataCoreTest.m | 0 .../Sources}/NBMetadataCoreTestMapper.h | 0 .../Sources}/NBMetadataCoreTestMapper.m | 0 .../Sources}/NBMetadataHelper.h | 0 .../Sources}/NBMetadataHelper.m | 0 .../Sources}/NBNumberFormat.h | 0 .../Sources}/NBNumberFormat.m | 0 .../Sources}/NBPhoneMetaData.h | 0 .../Sources}/NBPhoneMetaData.m | 0 .../Sources}/NBPhoneMetaDataGenerator.h | 0 .../Sources}/NBPhoneMetaDataGenerator.m | 0 .../Sources}/NBPhoneNumber.h | 2 +- .../Sources}/NBPhoneNumber.m | 0 .../Sources}/NBPhoneNumberDefines.h | 0 .../Sources}/NBPhoneNumberDefines.m | 0 .../Sources}/NBPhoneNumberDesc.h | 0 .../Sources}/NBPhoneNumberDesc.m | 0 .../Sources}/NBPhoneNumberUtil.h | 2 +- .../Sources}/NBPhoneNumberUtil.m | 0 .../libphonenumber/Sources/libphonenumber.h | 12 + .../project.pbxproj | 628 ++++++++++++++++++ submodules/sqlcipher/Info.plist | 22 + .../Sources}/SQLite-Bridging.h | 0 .../Sources}/SQLite-Bridging.m | 0 .../Sources}/fts3_tokenizer.h | 0 submodules/sqlcipher/Sources/sqlcipher.h | 11 + .../sqlcipher/Sources/sqlcipher_config.h | 11 + .../sqlcipher => sqlcipher/Sources}/sqlite3.c | 2 + .../sqlcipher => sqlcipher/Sources}/sqlite3.h | 2 + .../Sources}/sqlite3ext.h | 2 +- .../sqlcipher_Xcode.xcodeproj/project.pbxproj | 564 ++++++++++++++++ 94 files changed, 2680 insertions(+), 509 deletions(-) create mode 100644 submodules/Crc32/Crc32_Xcode.xcodeproj/project.pbxproj create mode 100644 submodules/Crc32/Info.plist rename submodules/{Postbox/Postbox => Crc32/Sources}/Crc32.h (100%) rename submodules/{Postbox/Postbox => Crc32/Sources}/Crc32.m (100%) delete mode 100644 submodules/Postbox/Postbox/PostboxPrivate/module.modulemap create mode 100644 submodules/ShareItems/Info.plist create mode 100644 submodules/ShareItems/ShareItems_Xcode.xcodeproj/project.pbxproj create mode 100644 submodules/ShareItems/Sources/ShareItems.h rename submodules/{TelegramUI/TelegramUI => ShareItems/Sources}/ShareItems.swift (97%) rename submodules/{TelegramUI/TelegramUI => ShareItems/Sources}/TGContactModel.h (100%) rename submodules/{TelegramUI/TelegramUI => ShareItems/Sources}/TGContactModel.m (71%) rename submodules/{TelegramUI/TelegramUI => ShareItems/Sources}/TGItemProviderSignals.h (78%) rename submodules/{TelegramUI/TelegramUI => ShareItems/Sources}/TGItemProviderSignals.m (99%) rename submodules/{TelegramUI/TelegramUI => ShareItems/Sources}/TGShareLocationSignals.h (93%) rename submodules/{TelegramUI/TelegramUI => ShareItems/Sources}/TGShareLocationSignals.m (100%) create mode 100644 submodules/TelegramCore/TelegramCore/FormatPhoneNumber.h create mode 100644 submodules/TelegramCore/TelegramCore/FormatPhoneNumber.m delete mode 100644 submodules/TelegramCore/TelegramCore/MonotonicTime.h delete mode 100644 submodules/TelegramCore/TelegramCore/MonotonicTime.m delete mode 100644 submodules/TelegramCore/TelegramCore/MonotonicTime.swift delete mode 100644 submodules/TelegramCore/TelegramCore/TelegramCoreIncludes.h delete mode 100644 submodules/TelegramCore/TelegramCore/TelegramCorePrivate/module.modulemap delete mode 100644 submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap create mode 100644 submodules/libphonenumber/Info.plist rename submodules/{TelegramCore/third-party/libphonenumber-iOS => libphonenumber/Sources}/NBAsYouTypeFormatter.h (100%) rename submodules/{TelegramCore/third-party/libphonenumber-iOS => libphonenumber/Sources}/NBAsYouTypeFormatter.m (100%) rename submodules/{TelegramCore/third-party/libphonenumber-iOS => libphonenumber/Sources}/NBMetadataCore.h (100%) rename submodules/{TelegramCore/third-party/libphonenumber-iOS => libphonenumber/Sources}/NBMetadataCore.m (100%) rename submodules/{TelegramCore/third-party/libphonenumber-iOS => libphonenumber/Sources}/NBMetadataCoreMapper.h (100%) rename submodules/{TelegramCore/third-party/libphonenumber-iOS => libphonenumber/Sources}/NBMetadataCoreMapper.m (100%) rename submodules/{TelegramCore/third-party/libphonenumber-iOS => libphonenumber/Sources}/NBMetadataCoreTest.h (100%) rename submodules/{TelegramCore/third-party/libphonenumber-iOS => libphonenumber/Sources}/NBMetadataCoreTest.m (100%) rename submodules/{TelegramCore/third-party/libphonenumber-iOS => libphonenumber/Sources}/NBMetadataCoreTestMapper.h (100%) rename submodules/{TelegramCore/third-party/libphonenumber-iOS => libphonenumber/Sources}/NBMetadataCoreTestMapper.m (100%) rename submodules/{TelegramCore/third-party/libphonenumber-iOS => libphonenumber/Sources}/NBMetadataHelper.h (100%) rename submodules/{TelegramCore/third-party/libphonenumber-iOS => libphonenumber/Sources}/NBMetadataHelper.m (100%) rename submodules/{TelegramCore/third-party/libphonenumber-iOS => libphonenumber/Sources}/NBNumberFormat.h (100%) rename submodules/{TelegramCore/third-party/libphonenumber-iOS => libphonenumber/Sources}/NBNumberFormat.m (100%) rename submodules/{TelegramCore/third-party/libphonenumber-iOS => libphonenumber/Sources}/NBPhoneMetaData.h (100%) rename submodules/{TelegramCore/third-party/libphonenumber-iOS => libphonenumber/Sources}/NBPhoneMetaData.m (100%) rename submodules/{TelegramCore/third-party/libphonenumber-iOS => libphonenumber/Sources}/NBPhoneMetaDataGenerator.h (100%) rename submodules/{TelegramCore/third-party/libphonenumber-iOS => libphonenumber/Sources}/NBPhoneMetaDataGenerator.m (100%) rename submodules/{TelegramCore/third-party/libphonenumber-iOS => libphonenumber/Sources}/NBPhoneNumber.h (94%) rename submodules/{TelegramCore/third-party/libphonenumber-iOS => libphonenumber/Sources}/NBPhoneNumber.m (100%) rename submodules/{TelegramCore/third-party/libphonenumber-iOS => libphonenumber/Sources}/NBPhoneNumberDefines.h (100%) rename submodules/{TelegramCore/third-party/libphonenumber-iOS => libphonenumber/Sources}/NBPhoneNumberDefines.m (100%) rename submodules/{TelegramCore/third-party/libphonenumber-iOS => libphonenumber/Sources}/NBPhoneNumberDesc.h (100%) rename submodules/{TelegramCore/third-party/libphonenumber-iOS => libphonenumber/Sources}/NBPhoneNumberDesc.m (100%) rename submodules/{TelegramCore/third-party/libphonenumber-iOS => libphonenumber/Sources}/NBPhoneNumberUtil.h (99%) rename submodules/{TelegramCore/third-party/libphonenumber-iOS => libphonenumber/Sources}/NBPhoneNumberUtil.m (100%) create mode 100644 submodules/libphonenumber/Sources/libphonenumber.h create mode 100644 submodules/libphonenumber/libphonenumber_Xcode.xcodeproj/project.pbxproj create mode 100644 submodules/sqlcipher/Info.plist rename submodules/{Postbox/Postbox/PostboxPrivate/sqlcipher => sqlcipher/Sources}/SQLite-Bridging.h (100%) rename submodules/{Postbox/Postbox/PostboxPrivate/sqlcipher => sqlcipher/Sources}/SQLite-Bridging.m (100%) rename submodules/{Postbox/Postbox/PostboxPrivate/sqlcipher => sqlcipher/Sources}/fts3_tokenizer.h (100%) create mode 100644 submodules/sqlcipher/Sources/sqlcipher.h create mode 100644 submodules/sqlcipher/Sources/sqlcipher_config.h rename submodules/{Postbox/Postbox/PostboxPrivate/sqlcipher => sqlcipher/Sources}/sqlite3.c (99%) rename submodules/{Postbox/Postbox/PostboxPrivate/sqlcipher => sqlcipher/Sources}/sqlite3.h (99%) rename submodules/{Postbox/Postbox/PostboxPrivate/sqlcipher => sqlcipher/Sources}/sqlite3ext.h (99%) create mode 100644 submodules/sqlcipher/sqlcipher_Xcode.xcodeproj/project.pbxproj diff --git a/Telegram-iOS.xcworkspace/contents.xcworkspacedata b/Telegram-iOS.xcworkspace/contents.xcworkspacedata index 88dddacb0d..b2dc8b259e 100644 --- a/Telegram-iOS.xcworkspace/contents.xcworkspacedata +++ b/Telegram-iOS.xcworkspace/contents.xcworkspacedata @@ -25,10 +25,41 @@ + + + + + + + + + + + + + + + + + + + + @@ -74,6 +105,9 @@ + + @@ -107,6 +141,9 @@ + + - - - - - - - - - - - - - - diff --git a/submodules/Crc32/Crc32_Xcode.xcodeproj/project.pbxproj b/submodules/Crc32/Crc32_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..ecb958a7cd --- /dev/null +++ b/submodules/Crc32/Crc32_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,528 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E45692305CC310049C28B /* Crc32.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45672305CC310049C28B /* Crc32.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E45742305CCD20049C28B /* Crc32.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45732305CCD20049C28B /* Crc32.m */; }; + D03E45772305CCEC0049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E45762305CCEB0049C28B /* Foundation.framework */; }; + D03E45792305CCF00049C28B /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E45782305CCF00049C28B /* libz.tbd */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E45642305CC310049C28B /* Crc32.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Crc32.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E45672305CC310049C28B /* Crc32.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Crc32.h; sourceTree = ""; }; + D03E45682305CC310049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E45732305CCD20049C28B /* Crc32.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Crc32.m; sourceTree = ""; }; + D03E45762305CCEB0049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E45782305CCF00049C28B /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E45612305CC310049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E45792305CCF00049C28B /* libz.tbd in Frameworks */, + D03E45772305CCEC0049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E455A2305CC310049C28B = { + isa = PBXGroup; + children = ( + D03E45682305CC310049C28B /* Info.plist */, + D03E45662305CC310049C28B /* Sources */, + D03E45652305CC310049C28B /* Products */, + D03E45752305CCEB0049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E45652305CC310049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E45642305CC310049C28B /* Crc32.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E45662305CC310049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E45732305CCD20049C28B /* Crc32.m */, + D03E45672305CC310049C28B /* Crc32.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E45752305CCEB0049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E45782305CCF00049C28B /* libz.tbd */, + D03E45762305CCEB0049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E455F2305CC310049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E45692305CC310049C28B /* Crc32.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E45632305CC310049C28B /* Crc32 */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E456C2305CC310049C28B /* Build configuration list for PBXNativeTarget "Crc32" */; + buildPhases = ( + D03E455F2305CC310049C28B /* Headers */, + D03E45602305CC310049C28B /* Sources */, + D03E45612305CC310049C28B /* Frameworks */, + D03E45622305CC310049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Crc32; + productName = Crc32; + productReference = D03E45642305CC310049C28B /* Crc32.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E455B2305CC310049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E45632305CC310049C28B = { + CreatedOnToolsVersion = 10.3; + }; + }; + }; + buildConfigurationList = D03E455E2305CC310049C28B /* Build configuration list for PBXProject "Crc32_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E455A2305CC310049C28B; + productRefGroup = D03E45652305CC310049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E45632305CC310049C28B /* Crc32 */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E45622305CC310049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E45602305CC310049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E45742305CCD20049C28B /* Crc32.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E456A2305CC310049C28B /* 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; + }; + D03E456B2305CC310049C28B /* 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; + }; + D03E456D2305CC310049C28B /* 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.Crc32; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugAppStoreLLC; + }; + D03E456E2305CC310049C28B /* 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.Crc32; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E456F2305CC4E0049C28B /* 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; + }; + D03E45702305CC4E0049C28B /* 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.Crc32; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugHockeyapp; + }; + D03E45712305CC590049C28B /* 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; + }; + D03E45722305CC590049C28B /* 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.Crc32; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseHockeyappInternal; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D03E455E2305CC310049C28B /* Build configuration list for PBXProject "Crc32_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E456A2305CC310049C28B /* DebugAppStoreLLC */, + D03E456F2305CC4E0049C28B /* DebugHockeyapp */, + D03E456B2305CC310049C28B /* ReleaseAppStoreLLC */, + D03E45712305CC590049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E456C2305CC310049C28B /* Build configuration list for PBXNativeTarget "Crc32" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E456D2305CC310049C28B /* DebugAppStoreLLC */, + D03E45702305CC4E0049C28B /* DebugHockeyapp */, + D03E456E2305CC310049C28B /* ReleaseAppStoreLLC */, + D03E45722305CC590049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E455B2305CC310049C28B /* Project object */; +} diff --git a/submodules/Crc32/Info.plist b/submodules/Crc32/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/Crc32/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/Postbox/Postbox/Crc32.h b/submodules/Crc32/Sources/Crc32.h similarity index 100% rename from submodules/Postbox/Postbox/Crc32.h rename to submodules/Crc32/Sources/Crc32.h diff --git a/submodules/Postbox/Postbox/Crc32.m b/submodules/Crc32/Sources/Crc32.m similarity index 100% rename from submodules/Postbox/Postbox/Crc32.m rename to submodules/Crc32/Sources/Crc32.m diff --git a/submodules/Postbox/Postbox/MediaBoxFile.swift b/submodules/Postbox/Postbox/MediaBoxFile.swift index 04c6cc4858..0a7a24c5ae 100644 --- a/submodules/Postbox/Postbox/MediaBoxFile.swift +++ b/submodules/Postbox/Postbox/MediaBoxFile.swift @@ -5,7 +5,7 @@ import SwiftSignalKit import SwiftSignalKitMac #endif -import sqlcipher +import Crc32 private final class MediaBoxFileMap { fileprivate(set) var sum: Int32 diff --git a/submodules/Postbox/Postbox/PostboxPrivate/module.modulemap b/submodules/Postbox/Postbox/PostboxPrivate/module.modulemap deleted file mode 100644 index d2a187ee15..0000000000 --- a/submodules/Postbox/Postbox/PostboxPrivate/module.modulemap +++ /dev/null @@ -1,8 +0,0 @@ -module sqlcipher { - header "sqlcipher/sqlite3.h" - header "sqlcipher/sqlite3ext.h" - header "sqlcipher/SQLite-Bridging.h" - header "sqlcipher/fts3_tokenizer.h" - header "../Crc32.h" - export * -} diff --git a/submodules/Postbox/Postbox_Xcode.xcodeproj/project.pbxproj b/submodules/Postbox/Postbox_Xcode.xcodeproj/project.pbxproj index f03d7ca7bf..766db0918b 100644 --- a/submodules/Postbox/Postbox_Xcode.xcodeproj/project.pbxproj +++ b/submodules/Postbox/Postbox_Xcode.xcodeproj/project.pbxproj @@ -76,6 +76,10 @@ D039FB1B21714D9800BD1BAD /* PeerPresencesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D039FB1A21714D9800BD1BAD /* PeerPresencesView.swift */; }; D039FB1C21714D9800BD1BAD /* PeerPresencesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D039FB1A21714D9800BD1BAD /* PeerPresencesView.swift */; }; D03BCCF81C73561C0097A291 /* Table.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03BCCF71C73561C0097A291 /* Table.swift */; }; + D03E45572305C7C90049C28B /* sqlcipher.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E45562305C7C90049C28B /* sqlcipher.framework */; }; + D03E457B2305CD000049C28B /* Crc32.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E457A2305CD000049C28B /* Crc32.framework */; }; + D03E457D2305CD090049C28B /* Crc32.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E457C2305CD090049C28B /* Crc32.framework */; }; + D03E457F2305CD130049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E457E2305CD130049C28B /* Foundation.framework */; }; D040CA6422665370007123CE /* PostboxUpgrade_23to24.swift in Sources */ = {isa = PBXBuildFile; fileRef = D040CA6322665370007123CE /* PostboxUpgrade_23to24.swift */; }; D040CA6522665370007123CE /* PostboxUpgrade_23to24.swift in Sources */ = {isa = PBXBuildFile; fileRef = D040CA6322665370007123CE /* PostboxUpgrade_23to24.swift */; }; D0439B3F2289F6300067E026 /* AccountManagerAtomicState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0439B3E2289F6300067E026 /* AccountManagerAtomicState.swift */; }; @@ -98,7 +102,6 @@ D048B4B020A5EEAE00C79D31 /* AdditionalChatListItemsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D048B4AE20A5EEAE00C79D31 /* AdditionalChatListItemsView.swift */; }; D049EAF01E44D9B900A2CD3A /* PostboxStateView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D049EAEF1E44D9B900A2CD3A /* PostboxStateView.swift */; }; D049EAF11E44D9B900A2CD3A /* PostboxStateView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D049EAEF1E44D9B900A2CD3A /* PostboxStateView.swift */; }; - D050F2651E4A5B4800988324 /* fts3_tokenizer.h in Headers */ = {isa = PBXBuildFile; fileRef = D07516741B2EC90400AE42E0 /* fts3_tokenizer.h */; }; D050F2661E4A5B5A00988324 /* MessageGloballyUniqueIdTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D019B1CE1E2E770700F80DB3 /* MessageGloballyUniqueIdTable.swift */; }; D050F2671E4A5B5A00988324 /* TimestampBasedMessageAttributesTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AAD1B11E3266B100D5B9DE /* TimestampBasedMessageAttributesTable.swift */; }; D050F2681E4A5B5A00988324 /* TimestampBasedMessageAttributesIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AAD1B01E3266B100D5B9DE /* TimestampBasedMessageAttributesIndexTable.swift */; }; @@ -153,12 +156,6 @@ D073CE801DCBF3B4007511FD /* PeerChatInterfaceState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07CFF801DCA765D00761F81 /* PeerChatInterfaceState.swift */; }; D073CE9F1DCBF3C1007511FD /* InitialMessageHistoryData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07CFF841DCA99C400761F81 /* InitialMessageHistoryData.swift */; }; D073CEA01DCBF3C1007511FD /* ItemCollectionsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D021E0DB1DB5237C00C6B04F /* ItemCollectionsView.swift */; }; - D07516441B2D9CEF00AE42E0 /* sqlite3.c in Sources */ = {isa = PBXBuildFile; fileRef = D07516401B2D9CEF00AE42E0 /* sqlite3.c */; settings = {COMPILER_FLAGS = "-Wno-conversion -Wno-ambiguous-macro -Wno-conditional-uninitialized -Wno-unused-const-variable -Wno-unused-function -Wno-unreachable-code"; }; }; - D07516451B2D9CEF00AE42E0 /* sqlite3.h in Headers */ = {isa = PBXBuildFile; fileRef = D07516411B2D9CEF00AE42E0 /* sqlite3.h */; }; - D07516461B2D9CEF00AE42E0 /* sqlite3ext.h in Headers */ = {isa = PBXBuildFile; fileRef = D07516421B2D9CEF00AE42E0 /* sqlite3ext.h */; }; - D07516771B2EC90400AE42E0 /* fts3_tokenizer.h in Headers */ = {isa = PBXBuildFile; fileRef = D07516741B2EC90400AE42E0 /* fts3_tokenizer.h */; }; - D07516781B2EC90400AE42E0 /* SQLite-Bridging.h in Headers */ = {isa = PBXBuildFile; fileRef = D07516751B2EC90400AE42E0 /* SQLite-Bridging.h */; }; - D07516791B2EC90400AE42E0 /* SQLite-Bridging.m in Sources */ = {isa = PBXBuildFile; fileRef = D07516761B2EC90400AE42E0 /* SQLite-Bridging.m */; }; D07827C11E0079CB00071108 /* StringIndexTokens.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07827C01E0079CB00071108 /* StringIndexTokens.swift */; }; D07827C31E008F7300071108 /* ReverseIndexReferenceTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07827C21E008F7300071108 /* ReverseIndexReferenceTable.swift */; }; D07827C51E00B23F00071108 /* PeerNameIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07827C41E00B23F00071108 /* PeerNameIndexTable.swift */; }; @@ -220,11 +217,6 @@ D0B2F75D204F551D00D3BFB9 /* DeviceContactImportInfoTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B2F75C204F551D00D3BFB9 /* DeviceContactImportInfoTable.swift */; }; D0B2F75E204F551D00D3BFB9 /* DeviceContactImportInfoTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B2F75C204F551D00D3BFB9 /* DeviceContactImportInfoTable.swift */; }; D0B418171D7DFAF3004562A4 /* PostboxMac.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B418151D7DFAF3004562A4 /* PostboxMac.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0B4181C1D7DFDF1004562A4 /* SQLite-Bridging.m in Sources */ = {isa = PBXBuildFile; fileRef = D07516761B2EC90400AE42E0 /* SQLite-Bridging.m */; }; - D0B4181D1D7DFDF4004562A4 /* sqlite3.c in Sources */ = {isa = PBXBuildFile; fileRef = D07516401B2D9CEF00AE42E0 /* sqlite3.c */; settings = {COMPILER_FLAGS = "-Wno-conversion -Wno-ambiguous-macro -Wno-conditional-uninitialized -Wno-unused-const-variable -Wno-unused-function -Wno-unreachable-code"; }; }; - D0B4181E1D7DFDF8004562A4 /* SQLite-Bridging.h in Headers */ = {isa = PBXBuildFile; fileRef = D07516751B2EC90400AE42E0 /* SQLite-Bridging.h */; }; - D0B4181F1D7DFDFB004562A4 /* sqlite3.h in Headers */ = {isa = PBXBuildFile; fileRef = D07516411B2D9CEF00AE42E0 /* sqlite3.h */; }; - D0B418201D7DFDFD004562A4 /* sqlite3ext.h in Headers */ = {isa = PBXBuildFile; fileRef = D07516421B2D9CEF00AE42E0 /* sqlite3ext.h */; }; D0B418221D7DFE0C004562A4 /* Coding.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E3A7871B28AE9C00A402D9 /* Coding.swift */; }; D0B418231D7DFE0C004562A4 /* SimpleDictionary.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F9E8741C5A334100037222 /* SimpleDictionary.swift */; }; D0B418241D7DFE0C004562A4 /* SimpleSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9DA381C65782500855278 /* SimpleSet.swift */; }; @@ -392,10 +384,6 @@ D0FA0ACE1E781067005BB9B7 /* Views.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA0ACC1E781067005BB9B7 /* Views.swift */; }; D0FC194A201E8EAF00FEDBB2 /* MediaBoxFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FC1949201E8EAF00FEDBB2 /* MediaBoxFile.swift */; }; D0FC194B201E8EAF00FEDBB2 /* MediaBoxFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FC1949201E8EAF00FEDBB2 /* MediaBoxFile.swift */; }; - D0FC195020208E8800FEDBB2 /* Crc32.h in Headers */ = {isa = PBXBuildFile; fileRef = D0FC194E20208E8800FEDBB2 /* Crc32.h */; }; - D0FC195120208E8800FEDBB2 /* Crc32.h in Headers */ = {isa = PBXBuildFile; fileRef = D0FC194E20208E8800FEDBB2 /* Crc32.h */; }; - D0FC195220208E8800FEDBB2 /* Crc32.m in Sources */ = {isa = PBXBuildFile; fileRef = D0FC194F20208E8800FEDBB2 /* Crc32.m */; }; - D0FC195320208E8800FEDBB2 /* Crc32.m in Sources */ = {isa = PBXBuildFile; fileRef = D0FC194F20208E8800FEDBB2 /* Crc32.m */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -452,6 +440,10 @@ D037178A20D923CA004773C8 /* CachedItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CachedItemView.swift; sourceTree = ""; }; D039FB1A21714D9800BD1BAD /* PeerPresencesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerPresencesView.swift; sourceTree = ""; }; D03BCCF71C73561C0097A291 /* Table.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Table.swift; sourceTree = ""; }; + D03E45562305C7C90049C28B /* sqlcipher.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = sqlcipher.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E457A2305CD000049C28B /* Crc32.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Crc32.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E457C2305CD090049C28B /* Crc32.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Crc32.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E457E2305CD130049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; D040CA6322665370007123CE /* PostboxUpgrade_23to24.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostboxUpgrade_23to24.swift; sourceTree = ""; }; D0439B3E2289F6300067E026 /* AccountManagerAtomicState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountManagerAtomicState.swift; sourceTree = ""; }; D044CA291C617D39002160FF /* SeedConfiguration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SeedConfiguration.swift; sourceTree = ""; }; @@ -486,13 +478,7 @@ D07047A71F3DA8D700F6A8D4 /* PendingMessageActionsMetadataTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PendingMessageActionsMetadataTable.swift; sourceTree = ""; }; D07047AA1F3DD8D100F6A8D4 /* PendingMessageActionsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PendingMessageActionsView.swift; sourceTree = ""; }; D07047B01F3DE40400F6A8D4 /* PendingMessageActionsSummaryView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PendingMessageActionsSummaryView.swift; sourceTree = ""; }; - D07516401B2D9CEF00AE42E0 /* sqlite3.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = sqlite3.c; sourceTree = ""; }; - D07516411B2D9CEF00AE42E0 /* sqlite3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sqlite3.h; sourceTree = ""; }; - D07516421B2D9CEF00AE42E0 /* sqlite3ext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sqlite3ext.h; sourceTree = ""; }; D07516491B2D9E2500AE42E0 /* Postbox.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Postbox.xcconfig; path = Postbox/Config/Postbox.xcconfig; sourceTree = ""; }; - D07516741B2EC90400AE42E0 /* fts3_tokenizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fts3_tokenizer.h; sourceTree = ""; }; - D07516751B2EC90400AE42E0 /* SQLite-Bridging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SQLite-Bridging.h"; sourceTree = ""; }; - D07516761B2EC90400AE42E0 /* SQLite-Bridging.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SQLite-Bridging.m"; sourceTree = ""; }; D07827C01E0079CB00071108 /* StringIndexTokens.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringIndexTokens.swift; sourceTree = ""; }; D07827C21E008F7300071108 /* ReverseIndexReferenceTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReverseIndexReferenceTable.swift; sourceTree = ""; }; D07827C41E00B23F00071108 /* PeerNameIndexTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerNameIndexTable.swift; sourceTree = ""; }; @@ -620,8 +606,6 @@ D0FA0AC91E780A26005BB9B7 /* PostboxView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PostboxView.swift; sourceTree = ""; }; D0FA0ACC1E781067005BB9B7 /* Views.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Views.swift; sourceTree = ""; }; D0FC1949201E8EAF00FEDBB2 /* MediaBoxFile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaBoxFile.swift; sourceTree = ""; }; - D0FC194E20208E8800FEDBB2 /* Crc32.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Crc32.h; sourceTree = ""; }; - D0FC194F20208E8800FEDBB2 /* Crc32.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Crc32.m; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -629,6 +613,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D03E457B2305CD000049C28B /* Crc32.framework in Frameworks */, D0B418611D7DFE95004562A4 /* SwiftSignalKitMac.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -637,6 +622,9 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D03E457F2305CD130049C28B /* Foundation.framework in Frameworks */, + D03E457D2305CD090049C28B /* Crc32.framework in Frameworks */, + D03E45572305C7C90049C28B /* sqlcipher.framework in Frameworks */, D0C07F6A1B67DB4800966E43 /* SwiftSignalKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -692,27 +680,6 @@ name = thirdparty; sourceTree = ""; }; - D075163D1B2D9CEF00AE42E0 /* PostboxPrivate */ = { - isa = PBXGroup; - children = ( - D075163F1B2D9CEF00AE42E0 /* sqlcipher */, - ); - path = PostboxPrivate; - sourceTree = ""; - }; - D075163F1B2D9CEF00AE42E0 /* sqlcipher */ = { - isa = PBXGroup; - children = ( - D07516741B2EC90400AE42E0 /* fts3_tokenizer.h */, - D07516751B2EC90400AE42E0 /* SQLite-Bridging.h */, - D07516761B2EC90400AE42E0 /* SQLite-Bridging.m */, - D07516401B2D9CEF00AE42E0 /* sqlite3.c */, - D07516411B2D9CEF00AE42E0 /* sqlite3.h */, - D07516421B2D9CEF00AE42E0 /* sqlite3ext.h */, - ); - path = sqlcipher; - sourceTree = ""; - }; D0B418141D7DFAF3004562A4 /* PostboxMac */ = { isa = PBXGroup; children = ( @@ -725,6 +692,10 @@ D0B4185F1D7DFE95004562A4 /* Frameworks */ = { isa = PBXGroup; children = ( + D03E457E2305CD130049C28B /* Foundation.framework */, + D03E457C2305CD090049C28B /* Crc32.framework */, + D03E457A2305CD000049C28B /* Crc32.framework */, + D03E45562305C7C90049C28B /* sqlcipher.framework */, D0B418601D7DFE95004562A4 /* SwiftSignalKitMac.framework */, ); name = Frameworks; @@ -969,7 +940,6 @@ isa = PBXGroup; children = ( D0DA443F1E4C7834005FDCA7 /* Upgrade */, - D075163D1B2D9CEF00AE42E0 /* PostboxPrivate */, D07515FC1B2C44A200AE42E0 /* thirdparty */, D0E1DE181C5EB09300C7826E /* Utils */, D0E1DE171C5EB06B00C7826E /* Objects */, @@ -992,8 +962,6 @@ D0E3A74D1B28A7E300A402D9 /* Supporting Files */ = { isa = PBXGroup; children = ( - D0FC194E20208E8800FEDBB2 /* Crc32.h */, - D0FC194F20208E8800FEDBB2 /* Crc32.m */, D044E1611B2AD667001EE087 /* MurMurHash32.h */, D044E1621B2AD677001EE087 /* MurMurHash32.m */, D0E3A74F1B28A7E300A402D9 /* Postbox.h */, @@ -1038,12 +1006,7 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - D0B418201D7DFDFD004562A4 /* sqlite3ext.h in Headers */, - D0FC195120208E8800FEDBB2 /* Crc32.h in Headers */, - D050F2651E4A5B4800988324 /* fts3_tokenizer.h in Headers */, D0B4185B1D7DFE2C004562A4 /* MurMurHash32.h in Headers */, - D0B4181E1D7DFDF8004562A4 /* SQLite-Bridging.h in Headers */, - D0B4181F1D7DFDFB004562A4 /* sqlite3.h in Headers */, D0B418171D7DFAF3004562A4 /* PostboxMac.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; @@ -1052,12 +1015,7 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - D07516771B2EC90400AE42E0 /* fts3_tokenizer.h in Headers */, - D07516451B2D9CEF00AE42E0 /* sqlite3.h in Headers */, - D0FC195020208E8800FEDBB2 /* Crc32.h in Headers */, - D07516781B2EC90400AE42E0 /* SQLite-Bridging.h in Headers */, D0E3A7501B28A7E300A402D9 /* Postbox.h in Headers */, - D07516461B2D9CEF00AE42E0 /* sqlite3ext.h in Headers */, D044E1641B2AD718001EE087 /* MurMurHash32.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; @@ -1201,7 +1159,6 @@ C25B56FE1F431C3300581D02 /* MessageHistoryTagsSummaryTable.swift in Sources */, D0633D08225B98FC003DD95F /* MessageHistoryViewEntryAttributes.swift in Sources */, D050F2661E4A5B5A00988324 /* MessageGloballyUniqueIdTable.swift in Sources */, - D0FC195320208E8800FEDBB2 /* Crc32.m in Sources */, D03229EF1E6B33FD0000AF9C /* SqliteInterface.swift in Sources */, D0AA55141FB4C6AB00C2AB58 /* BinarySearch.swift in Sources */, D01C7F081EFC1ED3008305F1 /* UnorderedItemListTable.swift in Sources */, @@ -1249,13 +1206,11 @@ D073CE791DCBF3B4007511FD /* ChatListHole.swift in Sources */, D0F53BF41E794C6700117362 /* PeerChatStateView.swift in Sources */, D06CA130227720910094E707 /* PeerNotificationSettingsBehaviorIndexTable.swift in Sources */, - D0B4181C1D7DFDF1004562A4 /* SQLite-Bridging.m in Sources */, D0F82D0D1E439FCC007E499C /* OrderedItemListEntry.swift in Sources */, D0B418591D7DFE29004562A4 /* PostboxTransaction.swift in Sources */, D0F7B1D21E045C6A007EB8A5 /* PeerNotificationSettingsTable.swift in Sources */, D0E23DE31E808A9400B9B6D2 /* ItemCollectionIdsView.swift in Sources */, D0119CAE20C9E7A100895300 /* PostboxUpgrade_17to18.swift in Sources */, - D0B4181D1D7DFDF4004562A4 /* sqlite3.c in Sources */, D0F7B1C91E045C6A007EB8A5 /* MessageHistoryTagsTable.swift in Sources */, D0B418271D7DFE0C004562A4 /* IpcPipe.swift in Sources */, D0FA0ACB1E780A26005BB9B7 /* PostboxView.swift in Sources */, @@ -1484,7 +1439,6 @@ D0AAD1B21E3266B100D5B9DE /* TimestampBasedMessageAttributesIndexTable.swift in Sources */, D07827C51E00B23F00071108 /* PeerNameIndexTable.swift in Sources */, D03120FA1DA540F0006A2A60 /* CachedPeerData.swift in Sources */, - D07516791B2EC90400AE42E0 /* SQLite-Bridging.m in Sources */, D0977FA01B8244D7009994B2 /* SqliteValueBox.swift in Sources */, D07047AB1F3DD8D100F6A8D4 /* PendingMessageActionsView.swift in Sources */, D07047A01F3CE16500F6A8D4 /* MessageHistoryTagsSummaryTable.swift in Sources */, @@ -1511,7 +1465,6 @@ D0F3CC721DDE1CDC008148FA /* ItemCacheTable.swift in Sources */, D0E119A0229834BC008CAE3A /* MutablePeerChatInclusionView.swift in Sources */, D08C713C1C51283C00779C0F /* MessageHistoryIndexTable.swift in Sources */, - D0FC195220208E8800FEDBB2 /* Crc32.m in Sources */, D019B1CF1E2E770700F80DB3 /* MessageGloballyUniqueIdTable.swift in Sources */, D0F9E86D1C5A0E5D00037222 /* MetadataTable.swift in Sources */, D0CCD6282232887100EE1E08 /* MessageHistoryHoleIndexTable.swift in Sources */, @@ -1562,7 +1515,6 @@ D0C674CC1CBB14A700183765 /* PeerReadState.swift in Sources */, D0D510F41D63BA8400A97B8A /* PostboxTransaction.swift in Sources */, D0977F9C1B822DB4009994B2 /* ValueBox.swift in Sources */, - D07516441B2D9CEF00AE42E0 /* sqlite3.c in Sources */, D0BFE51D22AFD5AF00143D08 /* MutableBasicPeerView.swift in Sources */, D001388620BD942B007C9721 /* PostboxUpgrade_16to17.swift in Sources */, D0D511001D64A58900A97B8A /* IpcPipe.swift in Sources */, @@ -1656,13 +1608,8 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = mh_dylib; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); + MODULEMAP_PRIVATE_FILE = ""; + OTHER_CFLAGS = ""; PRESERVE_DEAD_CODE_INITS_AND_TERMS = NO; PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -1803,13 +1750,8 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = mh_dylib; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); + MODULEMAP_PRIVATE_FILE = ""; + OTHER_CFLAGS = ""; OTHER_SWIFT_FLAGS = "-DDEBUG"; PRESERVE_DEAD_CODE_INITS_AND_TERMS = NO; PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; @@ -1957,13 +1899,8 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = mh_dylib; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); + MODULEMAP_PRIVATE_FILE = ""; + OTHER_CFLAGS = ""; OTHER_SWIFT_FLAGS = "-DDEBUG"; PRESERVE_DEAD_CODE_INITS_AND_TERMS = NO; PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; @@ -2112,13 +2049,8 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = mh_dylib; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); + MODULEMAP_PRIVATE_FILE = ""; + OTHER_CFLAGS = ""; OTHER_SWIFT_FLAGS = "-DDEBUG"; PRESERVE_DEAD_CODE_INITS_AND_TERMS = NO; PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; @@ -2258,13 +2190,8 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = mh_dylib; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); + MODULEMAP_PRIVATE_FILE = ""; + OTHER_CFLAGS = ""; PRESERVE_DEAD_CODE_INITS_AND_TERMS = NO; PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -2358,13 +2285,8 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = mh_dylib; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); + MODULEMAP_PRIVATE_FILE = ""; + OTHER_CFLAGS = ""; PRESERVE_DEAD_CODE_INITS_AND_TERMS = NO; PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -2505,13 +2427,8 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = mh_dylib; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); + MODULEMAP_PRIVATE_FILE = ""; + OTHER_CFLAGS = ""; OTHER_SWIFT_FLAGS = "-DDEBUG"; PRESERVE_DEAD_CODE_INITS_AND_TERMS = NO; PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; @@ -2728,13 +2645,8 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = mh_dylib; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); + MODULEMAP_PRIVATE_FILE = ""; + OTHER_CFLAGS = ""; PRESERVE_DEAD_CODE_INITS_AND_TERMS = NO; PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -2873,13 +2785,8 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = mh_dylib; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); + MODULEMAP_PRIVATE_FILE = ""; + OTHER_CFLAGS = ""; OTHER_SWIFT_FLAGS = "-DDEBUG"; PRESERVE_DEAD_CODE_INITS_AND_TERMS = NO; PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; diff --git a/submodules/ShareItems/Info.plist b/submodules/ShareItems/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/ShareItems/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/ShareItems/ShareItems_Xcode.xcodeproj/project.pbxproj b/submodules/ShareItems/ShareItems_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..5a498357d6 --- /dev/null +++ b/submodules/ShareItems/ShareItems_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,607 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E44F92305BF260049C28B /* ShareItems.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E44F72305BF260049C28B /* ShareItems.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E450A2305BF970049C28B /* TGShareLocationSignals.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45032305BF960049C28B /* TGShareLocationSignals.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E450B2305BF970049C28B /* TGShareLocationSignals.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45042305BF960049C28B /* TGShareLocationSignals.m */; }; + D03E450C2305BF970049C28B /* TGItemProviderSignals.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45052305BF960049C28B /* TGItemProviderSignals.m */; }; + D03E450D2305BF970049C28B /* TGItemProviderSignals.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45062305BF960049C28B /* TGItemProviderSignals.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E450E2305BF970049C28B /* TGContactModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45072305BF970049C28B /* TGContactModel.m */; }; + D03E450F2305BF970049C28B /* TGContactModel.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45082305BF970049C28B /* TGContactModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E45102305BF970049C28B /* ShareItems.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E45092305BF970049C28B /* ShareItems.swift */; }; + D03E45132305C0180049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E45122305C0180049C28B /* Foundation.framework */; }; + D03E45152305C01A0049C28B /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E45142305C01A0049C28B /* SwiftSignalKit.framework */; }; + D03E45172305C01E0049C28B /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E45162305C01E0049C28B /* Postbox.framework */; }; + D03E45192305C0210049C28B /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E45182305C0210049C28B /* TelegramCore.framework */; }; + D03E451B2305C0260049C28B /* MtProtoKitDynamic.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E451A2305C0260049C28B /* MtProtoKitDynamic.framework */; }; + D03E451D2305C02B0049C28B /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E451C2305C02B0049C28B /* Display.framework */; }; + D03E451F2305C0320049C28B /* AccountContext.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E451E2305C0320049C28B /* AccountContext.framework */; }; + D03E45212305C03E0049C28B /* Pdf.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E45202305C03E0049C28B /* Pdf.framework */; }; + D03E45232305C04C0049C28B /* LocalMediaResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E45222305C04C0049C28B /* LocalMediaResources.framework */; }; + D03E45272305C0A80049C28B /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E45262305C0A80049C28B /* AVFoundation.framework */; }; + D03E45292305C0DF0049C28B /* LegacyComponents.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E45282305C0DF0049C28B /* LegacyComponents.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E44F42305BF260049C28B /* ShareItems.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ShareItems.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E44F72305BF260049C28B /* ShareItems.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ShareItems.h; sourceTree = ""; }; + D03E44F82305BF260049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E45032305BF960049C28B /* TGShareLocationSignals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGShareLocationSignals.h; sourceTree = ""; }; + D03E45042305BF960049C28B /* TGShareLocationSignals.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGShareLocationSignals.m; sourceTree = ""; }; + D03E45052305BF960049C28B /* TGItemProviderSignals.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGItemProviderSignals.m; sourceTree = ""; }; + D03E45062305BF960049C28B /* TGItemProviderSignals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGItemProviderSignals.h; sourceTree = ""; }; + D03E45072305BF970049C28B /* TGContactModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGContactModel.m; sourceTree = ""; }; + D03E45082305BF970049C28B /* TGContactModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGContactModel.h; sourceTree = ""; }; + D03E45092305BF970049C28B /* ShareItems.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShareItems.swift; sourceTree = ""; }; + D03E45122305C0180049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E45142305C01A0049C28B /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E45162305C01E0049C28B /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E45182305C0210049C28B /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E451A2305C0260049C28B /* MtProtoKitDynamic.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MtProtoKitDynamic.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E451C2305C02B0049C28B /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E451E2305C0320049C28B /* AccountContext.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AccountContext.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E45202305C03E0049C28B /* Pdf.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Pdf.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E45222305C04C0049C28B /* LocalMediaResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LocalMediaResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E45262305C0A80049C28B /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + D03E45282305C0DF0049C28B /* LegacyComponents.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LegacyComponents.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E44F12305BF260049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E45292305C0DF0049C28B /* LegacyComponents.framework in Frameworks */, + D03E45272305C0A80049C28B /* AVFoundation.framework in Frameworks */, + D03E45232305C04C0049C28B /* LocalMediaResources.framework in Frameworks */, + D03E45212305C03E0049C28B /* Pdf.framework in Frameworks */, + D03E451F2305C0320049C28B /* AccountContext.framework in Frameworks */, + D03E451D2305C02B0049C28B /* Display.framework in Frameworks */, + D03E451B2305C0260049C28B /* MtProtoKitDynamic.framework in Frameworks */, + D03E45192305C0210049C28B /* TelegramCore.framework in Frameworks */, + D03E45172305C01E0049C28B /* Postbox.framework in Frameworks */, + D03E45152305C01A0049C28B /* SwiftSignalKit.framework in Frameworks */, + D03E45132305C0180049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E44EA2305BF260049C28B = { + isa = PBXGroup; + children = ( + D03E44F82305BF260049C28B /* Info.plist */, + D03E44F62305BF260049C28B /* Sources */, + D03E44F52305BF260049C28B /* Products */, + D03E45112305C0160049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E44F52305BF260049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E44F42305BF260049C28B /* ShareItems.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E44F62305BF260049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E45092305BF970049C28B /* ShareItems.swift */, + D03E45082305BF970049C28B /* TGContactModel.h */, + D03E45072305BF970049C28B /* TGContactModel.m */, + D03E45062305BF960049C28B /* TGItemProviderSignals.h */, + D03E45052305BF960049C28B /* TGItemProviderSignals.m */, + D03E45032305BF960049C28B /* TGShareLocationSignals.h */, + D03E45042305BF960049C28B /* TGShareLocationSignals.m */, + D03E44F72305BF260049C28B /* ShareItems.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E45112305C0160049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E45282305C0DF0049C28B /* LegacyComponents.framework */, + D03E45262305C0A80049C28B /* AVFoundation.framework */, + D03E45222305C04C0049C28B /* LocalMediaResources.framework */, + D03E45202305C03E0049C28B /* Pdf.framework */, + D03E451E2305C0320049C28B /* AccountContext.framework */, + D03E451C2305C02B0049C28B /* Display.framework */, + D03E451A2305C0260049C28B /* MtProtoKitDynamic.framework */, + D03E45182305C0210049C28B /* TelegramCore.framework */, + D03E45162305C01E0049C28B /* Postbox.framework */, + D03E45142305C01A0049C28B /* SwiftSignalKit.framework */, + D03E45122305C0180049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E44EF2305BF260049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E450A2305BF970049C28B /* TGShareLocationSignals.h in Headers */, + D03E44F92305BF260049C28B /* ShareItems.h in Headers */, + D03E450F2305BF970049C28B /* TGContactModel.h in Headers */, + D03E450D2305BF970049C28B /* TGItemProviderSignals.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E44F32305BF260049C28B /* ShareItems */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E44FC2305BF260049C28B /* Build configuration list for PBXNativeTarget "ShareItems" */; + buildPhases = ( + D03E44EF2305BF260049C28B /* Headers */, + D03E44F02305BF260049C28B /* Sources */, + D03E44F12305BF260049C28B /* Frameworks */, + D03E44F22305BF260049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = ShareItems; + productName = ShareItems; + productReference = D03E44F42305BF260049C28B /* ShareItems.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E44EB2305BF260049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E44F32305BF260049C28B = { + CreatedOnToolsVersion = 10.3; + LastSwiftMigration = 1030; + }; + }; + }; + buildConfigurationList = D03E44EE2305BF260049C28B /* Build configuration list for PBXProject "ShareItems_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E44EA2305BF260049C28B; + productRefGroup = D03E44F52305BF260049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E44F32305BF260049C28B /* ShareItems */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E44F22305BF260049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E44F02305BF260049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E45102305BF970049C28B /* ShareItems.swift in Sources */, + D03E450C2305BF970049C28B /* TGItemProviderSignals.m in Sources */, + D03E450B2305BF970049C28B /* TGShareLocationSignals.m in Sources */, + D03E450E2305BF970049C28B /* TGContactModel.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E44FA2305BF260049C28B /* 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; + }; + D03E44FB2305BF260049C28B /* 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; + }; + D03E44FD2305BF260049C28B /* 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.ShareItems; + 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; + }; + D03E44FE2305BF260049C28B /* 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.ShareItems; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E44FF2305BF540049C28B /* 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; + }; + D03E45002305BF540049C28B /* 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.ShareItems; + 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; + }; + D03E45012305BF5F0049C28B /* 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; + }; + D03E45022305BF5F0049C28B /* 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.ShareItems; + 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 */ + D03E44EE2305BF260049C28B /* Build configuration list for PBXProject "ShareItems_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E44FA2305BF260049C28B /* DebugAppStoreLLC */, + D03E44FF2305BF540049C28B /* DebugHockeyapp */, + D03E44FB2305BF260049C28B /* ReleaseAppStoreLLC */, + D03E45012305BF5F0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E44FC2305BF260049C28B /* Build configuration list for PBXNativeTarget "ShareItems" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E44FD2305BF260049C28B /* DebugAppStoreLLC */, + D03E45002305BF540049C28B /* DebugHockeyapp */, + D03E44FE2305BF260049C28B /* ReleaseAppStoreLLC */, + D03E45022305BF5F0049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E44EB2305BF260049C28B /* Project object */; +} diff --git a/submodules/ShareItems/Sources/ShareItems.h b/submodules/ShareItems/Sources/ShareItems.h new file mode 100644 index 0000000000..9dd09adf4d --- /dev/null +++ b/submodules/ShareItems/Sources/ShareItems.h @@ -0,0 +1,13 @@ +#import + +//! Project version number for ShareItems. +FOUNDATION_EXPORT double ShareItemsVersionNumber; + +//! Project version string for ShareItems. +FOUNDATION_EXPORT const unsigned char ShareItemsVersionString[]; + +#import +#import +#import + + diff --git a/submodules/TelegramUI/TelegramUI/ShareItems.swift b/submodules/ShareItems/Sources/ShareItems.swift similarity index 97% rename from submodules/TelegramUI/TelegramUI/ShareItems.swift rename to submodules/ShareItems/Sources/ShareItems.swift index c8326dd673..f2123d9ac3 100644 --- a/submodules/TelegramUI/TelegramUI/ShareItems.swift +++ b/submodules/ShareItems/Sources/ShareItems.swift @@ -8,29 +8,29 @@ import MtProtoKit import MtProtoKitDynamic #endif import Display -import TelegramUIPrivateModule import AccountContext -import LegacyComponents import Pdf import LocalMediaResources +import AVFoundation +import LegacyComponents -enum UnpreparedShareItemContent { +public enum UnpreparedShareItemContent { case contact(DeviceContactExtendedData) } -enum PreparedShareItemContent { +public enum PreparedShareItemContent { case text(String) case media(StandaloneUploadMediaResult) } -enum PreparedShareItem { +public enum PreparedShareItem { case preparing case progress(Float) case userInteractionRequired(UnpreparedShareItemContent) case done(PreparedShareItemContent) } -enum PreparedShareItems { +public enum PreparedShareItems { case preparing case progress(Float) case userInteractionRequired([UnpreparedShareItemContent]) @@ -255,7 +255,7 @@ private func preparedShareItem(account: Account, to peerId: PeerId, value: [Stri } } -func preparedShareItems(account: Account, to peerId: PeerId, dataItems: [MTSignal], additionalText: String) -> Signal { +public func preparedShareItems(account: Account, to peerId: PeerId, dataItems: [MTSignal], additionalText: String) -> Signal { var dataSignals: Signal<[String: Any], Void> = .complete() for dataItem in dataItems { let wrappedSignal: Signal<[String: Any], NoError> = Signal { subscriber in @@ -324,7 +324,7 @@ func preparedShareItems(account: Account, to peerId: PeerId, dataItems: [MTSigna }) } -func sentShareItems(account: Account, to peerIds: [PeerId], items: [PreparedShareItemContent]) -> Signal { +public func sentShareItems(account: Account, to peerIds: [PeerId], items: [PreparedShareItemContent]) -> Signal { var messages: [EnqueueMessage] = [] for item in items { switch item { diff --git a/submodules/TelegramUI/TelegramUI/TGContactModel.h b/submodules/ShareItems/Sources/TGContactModel.h similarity index 100% rename from submodules/TelegramUI/TelegramUI/TGContactModel.h rename to submodules/ShareItems/Sources/TGContactModel.h diff --git a/submodules/TelegramUI/TelegramUI/TGContactModel.m b/submodules/ShareItems/Sources/TGContactModel.m similarity index 71% rename from submodules/TelegramUI/TelegramUI/TGContactModel.m rename to submodules/ShareItems/Sources/TGContactModel.m index e84edabbcb..5ce6740da0 100644 --- a/submodules/TelegramUI/TelegramUI/TGContactModel.m +++ b/submodules/ShareItems/Sources/TGContactModel.m @@ -1,6 +1,6 @@ #import "TGContactModel.h" -#import +#import @implementation TGPhoneNumberModel @@ -9,8 +9,8 @@ self = [super init]; if (self != nil) { - _phoneNumber = [TGPhoneUtils cleanInternationalPhone:phoneNumber forceInternational:false]; - _displayPhoneNumber = [TGPhoneUtils formatPhone:_phoneNumber forceInternational:false]; + _phoneNumber = [FormatPhoneNumber cleanInternationalPhone:phoneNumber forceInternational:false]; + _displayPhoneNumber = [FormatPhoneNumber formatPhoneNumber:_phoneNumber]; _label = label; } return self; diff --git a/submodules/TelegramUI/TelegramUI/TGItemProviderSignals.h b/submodules/ShareItems/Sources/TGItemProviderSignals.h similarity index 78% rename from submodules/TelegramUI/TelegramUI/TGItemProviderSignals.h rename to submodules/ShareItems/Sources/TGItemProviderSignals.h index 7b4b7d5d93..1427dc9119 100644 --- a/submodules/TelegramUI/TelegramUI/TGItemProviderSignals.h +++ b/submodules/ShareItems/Sources/TGItemProviderSignals.h @@ -1,4 +1,8 @@ +#ifdef BUCK +#import +#else #import +#endif @interface TGItemProviderSignals : NSObject diff --git a/submodules/TelegramUI/TelegramUI/TGItemProviderSignals.m b/submodules/ShareItems/Sources/TGItemProviderSignals.m similarity index 99% rename from submodules/TelegramUI/TelegramUI/TGItemProviderSignals.m rename to submodules/ShareItems/Sources/TGItemProviderSignals.m index 3a840d1772..32e9e543a3 100644 --- a/submodules/TelegramUI/TelegramUI/TGItemProviderSignals.m +++ b/submodules/ShareItems/Sources/TGItemProviderSignals.m @@ -6,7 +6,6 @@ #import #import -#import #import #import "TGContactModel.h" diff --git a/submodules/TelegramUI/TelegramUI/TGShareLocationSignals.h b/submodules/ShareItems/Sources/TGShareLocationSignals.h similarity index 93% rename from submodules/TelegramUI/TelegramUI/TGShareLocationSignals.h rename to submodules/ShareItems/Sources/TGShareLocationSignals.h index d579d8c5f1..77c9997dda 100644 --- a/submodules/TelegramUI/TelegramUI/TGShareLocationSignals.h +++ b/submodules/ShareItems/Sources/TGShareLocationSignals.h @@ -1,4 +1,8 @@ +#ifdef BUCK +#import +#else #import +#endif @interface TGShareLocationResult : NSObject diff --git a/submodules/TelegramUI/TelegramUI/TGShareLocationSignals.m b/submodules/ShareItems/Sources/TGShareLocationSignals.m similarity index 100% rename from submodules/TelegramUI/TelegramUI/TGShareLocationSignals.m rename to submodules/ShareItems/Sources/TGShareLocationSignals.m diff --git a/submodules/TelegramCore/TelegramCore/AccessSecureId.swift b/submodules/TelegramCore/TelegramCore/AccessSecureId.swift index e840522c19..92f85bfc82 100644 --- a/submodules/TelegramCore/TelegramCore/AccessSecureId.swift +++ b/submodules/TelegramCore/TelegramCore/AccessSecureId.swift @@ -13,8 +13,6 @@ import Foundation import SwiftSignalKit #endif -import TelegramCorePrivateModule - private enum GenerateSecureSecretError { case generic } diff --git a/submodules/TelegramCore/TelegramCore/Account.swift b/submodules/TelegramCore/TelegramCore/Account.swift index 9c523b0551..ad88b732c1 100644 --- a/submodules/TelegramCore/TelegramCore/Account.swift +++ b/submodules/TelegramCore/TelegramCore/Account.swift @@ -15,7 +15,6 @@ import Foundation #endif import UIKit #endif -import TelegramCorePrivateModule public protocol AccountState: PostboxCoding { diff --git a/submodules/TelegramCore/TelegramCore/ContactManagement.swift b/submodules/TelegramCore/TelegramCore/ContactManagement.swift index 8c3b084046..d590838a5b 100644 --- a/submodules/TelegramCore/TelegramCore/ContactManagement.swift +++ b/submodules/TelegramCore/TelegramCore/ContactManagement.swift @@ -8,7 +8,6 @@ import Foundation import Postbox import SwiftSignalKit #endif -import TelegramCorePrivateModule private func md5(_ data: Data) -> Data { return data.withUnsafeBytes { bytes -> Data in diff --git a/submodules/TelegramCore/TelegramCore/FormatPhoneNumber.h b/submodules/TelegramCore/TelegramCore/FormatPhoneNumber.h new file mode 100644 index 0000000000..5ea09e6745 --- /dev/null +++ b/submodules/TelegramCore/TelegramCore/FormatPhoneNumber.h @@ -0,0 +1,12 @@ +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface FormatPhoneNumber : NSObject + ++ (NSString *)cleanInternationalPhone:(NSString *)phone forceInternational:(bool)forceInternational; ++ (NSString *)formatPhoneNumber:(NSString *)number; + +@end + +NS_ASSUME_NONNULL_END diff --git a/submodules/TelegramCore/TelegramCore/FormatPhoneNumber.m b/submodules/TelegramCore/TelegramCore/FormatPhoneNumber.m new file mode 100644 index 0000000000..926270cc1d --- /dev/null +++ b/submodules/TelegramCore/TelegramCore/FormatPhoneNumber.m @@ -0,0 +1,55 @@ +#import "FormatPhoneNumber.h" + +#import + +static NBPhoneNumberUtil *getNBPhoneNumberUtil() { + static NBPhoneNumberUtil *value; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + value = [[NBPhoneNumberUtil alloc] init]; + }); + return value; +} + +@implementation FormatPhoneNumber + ++ (NSString *)cleanInternationalPhone:(NSString *)phone forceInternational:(bool)forceInternational { + if (phone.length == 0) { + return @""; + } + + char buf[phone.length]; + int bufPtr = 0; + + bool hadPlus = false; + int length = (int)phone.length; + for (int i = 0; i < length; i++) { + unichar c = [phone characterAtIndex:i]; + if ((c >= '0' && c <= '9') || (c == '+' && !hadPlus)) { + buf[bufPtr++] = (char)c; + if (c == '+') { + hadPlus = true; + } + } + } + + NSString *result = [[NSString alloc] initWithBytes:buf length:bufPtr encoding:NSUTF8StringEncoding]; + if (forceInternational && bufPtr != 0 && buf[0] != '+') { + result = [[NSString alloc] initWithFormat:@"+%@", result]; + } + return result; +} + ++ (NSString *)formatPhoneNumber:(NSString *)number { + NBPhoneNumber *parsed = [getNBPhoneNumberUtil() parse:[@"+" stringByAppendingString:number] defaultRegion:nil error:nil]; + if (parsed == nil) { + return number; + } + NSString *result = [getNBPhoneNumberUtil() format:parsed numberFormat:NBEPhoneNumberFormatINTERNATIONAL error:nil]; + if (result == nil) { + return number; + } + return result; +} + +@end diff --git a/submodules/TelegramCore/TelegramCore/InteractivePhoneFormatter.swift b/submodules/TelegramCore/TelegramCore/InteractivePhoneFormatter.swift index b7f613307d..24405329bb 100644 --- a/submodules/TelegramCore/TelegramCore/InteractivePhoneFormatter.swift +++ b/submodules/TelegramCore/TelegramCore/InteractivePhoneFormatter.swift @@ -1,5 +1,5 @@ import Foundation -import TelegramCorePrivateModule +import libphonenumber public final class InteractivePhoneFormatter { private let formatter = NBAsYouTypeFormatter(regionCode: "US")! diff --git a/submodules/TelegramCore/TelegramCore/Log.swift b/submodules/TelegramCore/TelegramCore/Log.swift index d84b6c2291..97db36e7c1 100644 --- a/submodules/TelegramCore/TelegramCore/Log.swift +++ b/submodules/TelegramCore/TelegramCore/Log.swift @@ -1,5 +1,4 @@ import Foundation -import TelegramCorePrivateModule #if os(macOS) import SwiftSignalKitMac import PostboxMac diff --git a/submodules/TelegramCore/TelegramCore/MD5.swift b/submodules/TelegramCore/TelegramCore/MD5.swift index 2eca98165a..acc90c12ae 100644 --- a/submodules/TelegramCore/TelegramCore/MD5.swift +++ b/submodules/TelegramCore/TelegramCore/MD5.swift @@ -1,5 +1,4 @@ import Foundation -import TelegramCorePrivateModule #if os(macOS) import PostboxMac #else diff --git a/submodules/TelegramCore/TelegramCore/MonotonicTime.h b/submodules/TelegramCore/TelegramCore/MonotonicTime.h deleted file mode 100644 index a6fff4b31b..0000000000 --- a/submodules/TelegramCore/TelegramCore/MonotonicTime.h +++ /dev/null @@ -1,4 +0,0 @@ -#import - -int64_t MonotonicGetBootTimestamp(); -int64_t MonotonicGetUptime(); diff --git a/submodules/TelegramCore/TelegramCore/MonotonicTime.m b/submodules/TelegramCore/TelegramCore/MonotonicTime.m deleted file mode 100644 index 0bdac21a5a..0000000000 --- a/submodules/TelegramCore/TelegramCore/MonotonicTime.m +++ /dev/null @@ -1,29 +0,0 @@ -#import "MonotonicTime.h" - -#include - -int64_t MonotonicGetBootTimestamp() { - struct timeval boottime; - int mib[2] = {CTL_KERN, KERN_BOOTTIME}; - size_t size = sizeof(boottime); - int rc = sysctl(mib, 2, &boottime, &size, NULL, 0); - if (rc != 0) { - return 0; - } - return boottime.tv_sec * 1000000 + boottime.tv_usec; -} - -int64_t MonotonicGetUptime() { - int64_t before_now; - int64_t after_now; - struct timeval now; - - after_now = MonotonicGetBootTimestamp(); - do { - before_now = after_now; - gettimeofday(&now, NULL); - after_now = MonotonicGetBootTimestamp(); - } while (after_now != before_now); - - return now.tv_sec * 1000000 + now.tv_usec - before_now; -} diff --git a/submodules/TelegramCore/TelegramCore/MonotonicTime.swift b/submodules/TelegramCore/TelegramCore/MonotonicTime.swift deleted file mode 100644 index c2aefc6d6e..0000000000 --- a/submodules/TelegramCore/TelegramCore/MonotonicTime.swift +++ /dev/null @@ -1,13 +0,0 @@ -import Foundation - -import TelegramCorePrivateModule - -public struct MonotonicTime { - public func getBootTimestamp() -> Int64 { - return MonotonicGetBootTimestamp() - } - - public func getUptime() -> Int64 { - return MonotonicGetUptime() - } -} diff --git a/submodules/TelegramCore/TelegramCore/MultipartUpload.swift b/submodules/TelegramCore/TelegramCore/MultipartUpload.swift index 4f006c7ab9..6584919c1a 100644 --- a/submodules/TelegramCore/TelegramCore/MultipartUpload.swift +++ b/submodules/TelegramCore/TelegramCore/MultipartUpload.swift @@ -14,7 +14,6 @@ import Foundation import MtProtoKitDynamic #endif #endif -import TelegramCorePrivateModule #if os(macOS) private typealias SignalKitTimer = SwiftSignalKitMac.Timer diff --git a/submodules/TelegramCore/TelegramCore/Network.swift b/submodules/TelegramCore/TelegramCore/Network.swift index abf78cdf2b..d1c700db26 100644 --- a/submodules/TelegramCore/TelegramCore/Network.swift +++ b/submodules/TelegramCore/TelegramCore/Network.swift @@ -14,7 +14,6 @@ import Foundation import MtProtoKitDynamic #endif #endif -import TelegramCorePrivateModule public enum ConnectionStatus: Equatable { case waitingForNetwork diff --git a/submodules/TelegramCore/TelegramCore/NetworkType.swift b/submodules/TelegramCore/TelegramCore/NetworkType.swift index 8f7a116f48..321bb78836 100644 --- a/submodules/TelegramCore/TelegramCore/NetworkType.swift +++ b/submodules/TelegramCore/TelegramCore/NetworkType.swift @@ -6,8 +6,6 @@ import SwiftSignalKit import CoreTelephony #endif -import TelegramCorePrivateModule - #if os(iOS) public enum CellularNetworkType { case unknown diff --git a/submodules/TelegramCore/TelegramCore/PendingMessageUploadedContent.swift b/submodules/TelegramCore/TelegramCore/PendingMessageUploadedContent.swift index d2b84f230e..0b7d6dc4e2 100644 --- a/submodules/TelegramCore/TelegramCore/PendingMessageUploadedContent.swift +++ b/submodules/TelegramCore/TelegramCore/PendingMessageUploadedContent.swift @@ -9,8 +9,6 @@ import Foundation import SwiftSignalKit #endif -import TelegramCorePrivateModule - enum PendingMessageUploadedContent { case text(String) case media(Api.InputMedia, String) diff --git a/submodules/TelegramCore/TelegramCore/PhoneNumbers.swift b/submodules/TelegramCore/TelegramCore/PhoneNumbers.swift index 7bcbd37500..fd0afc5e50 100644 --- a/submodules/TelegramCore/TelegramCore/PhoneNumbers.swift +++ b/submodules/TelegramCore/TelegramCore/PhoneNumbers.swift @@ -1,5 +1,5 @@ import Foundation -import TelegramCorePrivateModule +import libphonenumber private let phoneNumberUtil = NBPhoneNumberUtil() diff --git a/submodules/TelegramCore/TelegramCore/Reachability.h b/submodules/TelegramCore/TelegramCore/Reachability.h index c24384906c..2ece48e5d4 100644 --- a/submodules/TelegramCore/TelegramCore/Reachability.h +++ b/submodules/TelegramCore/TelegramCore/Reachability.h @@ -8,8 +8,8 @@ #import #import -#import +struct sockaddr; typedef enum : NSInteger { NotReachable = 0, diff --git a/submodules/TelegramCore/TelegramCore/StickerManagement.swift b/submodules/TelegramCore/TelegramCore/StickerManagement.swift index f38cd1a46b..ee7a5d68e0 100644 --- a/submodules/TelegramCore/TelegramCore/StickerManagement.swift +++ b/submodules/TelegramCore/TelegramCore/StickerManagement.swift @@ -8,7 +8,6 @@ import Foundation import Postbox import SwiftSignalKit #endif -import TelegramCorePrivateModule private func hashForIdsReverse(_ ids: [Int64]) -> Int32 { var acc: UInt32 = 0 diff --git a/submodules/TelegramCore/TelegramCore/TelegramCore.h b/submodules/TelegramCore/TelegramCore/TelegramCore.h index 7431adb663..286a45d335 100644 --- a/submodules/TelegramCore/TelegramCore/TelegramCore.h +++ b/submodules/TelegramCore/TelegramCore/TelegramCore.h @@ -14,4 +14,7 @@ FOUNDATION_EXPORT double TelegramCoreVersionNumber; //! Project version string for TelegramCore. FOUNDATION_EXPORT const unsigned char TelegramCoreVersionString[]; -// In this header, you should import all the public headers of your framework using statements like #import +#import +#import +#import +#import diff --git a/submodules/TelegramCore/TelegramCore/TelegramCoreIncludes.h b/submodules/TelegramCore/TelegramCore/TelegramCoreIncludes.h deleted file mode 100644 index 214f0b11aa..0000000000 --- a/submodules/TelegramCore/TelegramCore/TelegramCoreIncludes.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef TelegramCoreIncludes_h -#define TelegramCoreIncludes_h - -#import "Crypto.h" -#import "Reachability.h" - -#endif diff --git a/submodules/TelegramCore/TelegramCore/TelegramCorePrivate/module.modulemap b/submodules/TelegramCore/TelegramCore/TelegramCorePrivate/module.modulemap deleted file mode 100644 index 043192a38f..0000000000 --- a/submodules/TelegramCore/TelegramCore/TelegramCorePrivate/module.modulemap +++ /dev/null @@ -1,8 +0,0 @@ -module TelegramCorePrivateModule { - header "../../third-party/libphonenumber-iOS/NBPhoneNumber.h" - header "../../third-party/libphonenumber-iOS/NBPhoneNumberUtil.h" - header "../../third-party/libphonenumber-iOS/NBAsYouTypeFormatter.h" - header "../NetworkLogging.h" - header "../MonotonicTime.h" - header "../TelegramCoreIncludes.h" -} diff --git a/submodules/TelegramCore/TelegramCore_Xcode.xcodeproj/project.pbxproj b/submodules/TelegramCore/TelegramCore_Xcode.xcodeproj/project.pbxproj index 40792cf43d..07163e4c85 100644 --- a/submodules/TelegramCore/TelegramCore_Xcode.xcodeproj/project.pbxproj +++ b/submodules/TelegramCore/TelegramCore_Xcode.xcodeproj/project.pbxproj @@ -268,9 +268,8 @@ D03B0D681D631A8B00955575 /* RecentPeers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D641D631A8B00955575 /* RecentPeers.swift */; }; D03B0D6D1D631AA300955575 /* ContactManagement.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D6C1D631AA300955575 /* ContactManagement.swift */; }; D03B0D721D631ABA00955575 /* SearchMessages.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D711D631ABA00955575 /* SearchMessages.swift */; }; - D03B0E431D631E6600955575 /* NetworkLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = D03B0E411D631E6600955575 /* NetworkLogging.h */; }; + D03B0E431D631E6600955575 /* NetworkLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = D03B0E411D631E6600955575 /* NetworkLogging.h */; settings = {ATTRIBUTES = (Public, ); }; }; D03B0E441D631E6600955575 /* NetworkLogging.m in Sources */ = {isa = PBXBuildFile; fileRef = D03B0E421D631E6600955575 /* NetworkLogging.m */; }; - D03B0E5C1D63241D00955575 /* TelegramCoreIncludes.h in Headers */ = {isa = PBXBuildFile; fileRef = D03B0E5B1D63240700955575 /* TelegramCoreIncludes.h */; }; D03C53671DAD5CA9004C17B3 /* ApiUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CDA1D62245F00955575 /* ApiUtils.swift */; }; D03C53681DAD5CA9004C17B3 /* PeerUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CD81D62245B00955575 /* PeerUtils.swift */; }; D03C53691DAD5CA9004C17B3 /* PeerAccessRestrictionInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D09A2FEA1D7CDC320018FB72 /* PeerAccessRestrictionInfo.swift */; }; @@ -294,6 +293,12 @@ D03E3D28230447960049C28B /* RestrictedContentMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3D27230447960049C28B /* RestrictedContentMessageAttribute.swift */; }; D03E3D29230447960049C28B /* RestrictedContentMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3D27230447960049C28B /* RestrictedContentMessageAttribute.swift */; }; D03E416C2304D5B30049C28B /* ValidateAddressNameInteractive.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E416B2304D5B30049C28B /* ValidateAddressNameInteractive.swift */; }; + D03E452E2305C15A0049C28B /* FormatPhoneNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E452C2305C15A0049C28B /* FormatPhoneNumber.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E452F2305C15A0049C28B /* FormatPhoneNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E452D2305C15A0049C28B /* FormatPhoneNumber.m */; }; + D03E45302305C1630049C28B /* FormatPhoneNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E452C2305C15A0049C28B /* FormatPhoneNumber.h */; }; + D03E45D42305D44A0049C28B /* libphonenumber.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E45D32305D44A0049C28B /* libphonenumber.framework */; }; + D03E45D82305D66D0049C28B /* Crypto.h in Headers */ = {isa = PBXBuildFile; fileRef = D02609BB20C6EB97006C34AC /* Crypto.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E45D92305D66E0049C28B /* Crypto.h in Headers */ = {isa = PBXBuildFile; fileRef = D02609BB20C6EB97006C34AC /* Crypto.h */; settings = {ATTRIBUTES = (Public, ); }; }; D03E5E0C1E55E02D0029569A /* LoggedOutAccountAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E5E0B1E55E02D0029569A /* LoggedOutAccountAttribute.swift */; }; D03E5E0D1E55E02D0029569A /* LoggedOutAccountAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E5E0B1E55E02D0029569A /* LoggedOutAccountAttribute.swift */; }; D041E3F51E535464008C24B4 /* AddPeerMember.swift in Sources */ = {isa = PBXBuildFile; fileRef = D041E3F41E535464008C24B4 /* AddPeerMember.swift */; }; @@ -344,19 +349,6 @@ D050F2111E48AB0600988324 /* InteractivePhoneFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = D050F20F1E48AB0600988324 /* InteractivePhoneFormatter.swift */; }; D050F2511E4A59C200988324 /* JoinLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = D050F2501E4A59C200988324 /* JoinLink.swift */; }; D050F2521E4A59C200988324 /* JoinLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = D050F2501E4A59C200988324 /* JoinLink.swift */; }; - D050F2531E4A5AC500988324 /* NBAsYouTypeFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B843991DA7FF30005F29E1 /* NBAsYouTypeFormatter.h */; }; - D050F2541E4A5AC500988324 /* NBMetadataCore.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B8439A1DA7FF30005F29E1 /* NBMetadataCore.h */; }; - D050F2551E4A5AC500988324 /* NBMetadataCoreMapper.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B8439C1DA7FF30005F29E1 /* NBMetadataCoreMapper.h */; }; - D050F2561E4A5AC500988324 /* NBMetadataCoreTest.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B8439E1DA7FF30005F29E1 /* NBMetadataCoreTest.h */; }; - D050F2571E4A5AC500988324 /* NBMetadataCoreTestMapper.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B843A01DA7FF30005F29E1 /* NBMetadataCoreTestMapper.h */; }; - D050F2581E4A5AC500988324 /* NBMetadataHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B843A21DA7FF30005F29E1 /* NBMetadataHelper.h */; }; - D050F2591E4A5AC500988324 /* NBNumberFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B843A41DA7FF30005F29E1 /* NBNumberFormat.h */; }; - D050F25A1E4A5AC500988324 /* NBPhoneMetaData.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B843A61DA7FF30005F29E1 /* NBPhoneMetaData.h */; }; - D050F25B1E4A5AC500988324 /* NBPhoneMetaDataGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B843A81DA7FF30005F29E1 /* NBPhoneMetaDataGenerator.h */; }; - D050F25C1E4A5AC500988324 /* NBPhoneNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B843AA1DA7FF30005F29E1 /* NBPhoneNumber.h */; }; - D050F25D1E4A5AC500988324 /* NBPhoneNumberDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B843AC1DA7FF30005F29E1 /* NBPhoneNumberDefines.h */; }; - D050F25E1E4A5AC500988324 /* NBPhoneNumberDesc.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B843AE1DA7FF30005F29E1 /* NBPhoneNumberDesc.h */; }; - D050F25F1E4A5AC500988324 /* NBPhoneNumberUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B843B01DA7FF30005F29E1 /* NBPhoneNumberUtil.h */; }; D050F2601E4A5AD500988324 /* AutoremoveTimeoutMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AAD1A71E32602500D5B9DE /* AutoremoveTimeoutMessageAttribute.swift */; }; D050F2611E4A5AE700988324 /* PrivacySettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01B27A11E394D8B0022A4C0 /* PrivacySettings.swift */; }; D050F2621E4A5AE700988324 /* GlobalNotificationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08774FD1E3E3A3500A97350 /* GlobalNotificationSettings.swift */; }; @@ -383,9 +375,6 @@ D0529D2521A4123400D7C3C4 /* SynchronizeRecentlyUsedMediaOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0529D2321A4123400D7C3C4 /* SynchronizeRecentlyUsedMediaOperations.swift */; }; D0529D2721A4141800D7C3C4 /* ManagedSynchronizeRecentlyUsedMediaOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0529D2621A4141800D7C3C4 /* ManagedSynchronizeRecentlyUsedMediaOperations.swift */; }; D0529D2821A4141800D7C3C4 /* ManagedSynchronizeRecentlyUsedMediaOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0529D2621A4141800D7C3C4 /* ManagedSynchronizeRecentlyUsedMediaOperations.swift */; }; - D053B3FB1F1651FA00E2D58A /* MonotonicTime.h in Headers */ = {isa = PBXBuildFile; fileRef = D053B3F91F1651FA00E2D58A /* MonotonicTime.h */; }; - D053B3FC1F1651FA00E2D58A /* MonotonicTime.m in Sources */ = {isa = PBXBuildFile; fileRef = D053B3FA1F1651FA00E2D58A /* MonotonicTime.m */; }; - D053B3FE1F16534400E2D58A /* MonotonicTime.swift in Sources */ = {isa = PBXBuildFile; fileRef = D053B3FD1F16534400E2D58A /* MonotonicTime.swift */; }; D053B4181F18DE4F00E2D58A /* AuthorSignatureMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D053B4171F18DE4F00E2D58A /* AuthorSignatureMessageAttribute.swift */; }; D053B4191F18DE5000E2D58A /* AuthorSignatureMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D053B4171F18DE4F00E2D58A /* AuthorSignatureMessageAttribute.swift */; }; D053B41B1F18DEF500E2D58A /* TelegramMediaExpiredContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = D053B41A1F18DEF500E2D58A /* TelegramMediaExpiredContent.swift */; }; @@ -483,8 +472,8 @@ D08984F32114B97400918162 /* ClearCloudDrafts.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08984F12114B97400918162 /* ClearCloudDrafts.swift */; }; D08984F521187ECA00918162 /* NetworkType.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08984F421187ECA00918162 /* NetworkType.swift */; }; D08984F621187ECA00918162 /* NetworkType.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08984F421187ECA00918162 /* NetworkType.swift */; }; - D08984F92118816A00918162 /* Reachability.h in Headers */ = {isa = PBXBuildFile; fileRef = D08984F72118816900918162 /* Reachability.h */; }; - D08984FA2118816A00918162 /* Reachability.h in Headers */ = {isa = PBXBuildFile; fileRef = D08984F72118816900918162 /* Reachability.h */; }; + D08984F92118816A00918162 /* Reachability.h in Headers */ = {isa = PBXBuildFile; fileRef = D08984F72118816900918162 /* Reachability.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D08984FA2118816A00918162 /* Reachability.h in Headers */ = {isa = PBXBuildFile; fileRef = D08984F72118816900918162 /* Reachability.h */; settings = {ATTRIBUTES = (Public, ); }; }; D08984FB2118816A00918162 /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = D08984F82118816A00918162 /* Reachability.m */; }; D08984FC2118816A00918162 /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = D08984F82118816A00918162 /* Reachability.m */; }; D08CAA7D1ED77EE90000FDA8 /* LocalizationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08CAA7C1ED77EE90000FDA8 /* LocalizationSettings.swift */; }; @@ -578,8 +567,7 @@ D0B418AD1D7E0597004562A4 /* Serialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D591D631A6900955575 /* Serialization.swift */; }; D0B418B81D7E05A6004562A4 /* ContactManagement.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D6C1D631AA300955575 /* ContactManagement.swift */; }; D0B418BA1D7E05BB004562A4 /* NetworkLogging.m in Sources */ = {isa = PBXBuildFile; fileRef = D03B0E421D631E6600955575 /* NetworkLogging.m */; }; - D0B418BB1D7E05BE004562A4 /* NetworkLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = D03B0E411D631E6600955575 /* NetworkLogging.h */; }; - D0B418BC1D7E05D0004562A4 /* TelegramCoreIncludes.h in Headers */ = {isa = PBXBuildFile; fileRef = D03B0E5B1D63240700955575 /* TelegramCoreIncludes.h */; }; + D0B418BB1D7E05BE004562A4 /* NetworkLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = D03B0E411D631E6600955575 /* NetworkLogging.h */; settings = {ATTRIBUTES = (Public, ); }; }; D0B843811DA6EDAE005F29E1 /* CachedUserData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B843801DA6EDAE005F29E1 /* CachedUserData.swift */; }; D0B843831DA6EDB8005F29E1 /* CachedGroupData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B843821DA6EDB8005F29E1 /* CachedGroupData.swift */; }; D0B843851DA6EDC4005F29E1 /* CachedChannelData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B843841DA6EDC4005F29E1 /* CachedChannelData.swift */; }; @@ -588,32 +576,6 @@ D0B8438C1DA7CF50005F29E1 /* BotInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B8438B1DA7CF50005F29E1 /* BotInfo.swift */; }; D0B8438E1DA7D296005F29E1 /* CachedGroupParticipants.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B8438D1DA7D296005F29E1 /* CachedGroupParticipants.swift */; }; D0B843971DA7FBBC005F29E1 /* ChangePeerNotificationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B843961DA7FBBC005F29E1 /* ChangePeerNotificationSettings.swift */; }; - D0B843B21DA7FF30005F29E1 /* NBAsYouTypeFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B843981DA7FF30005F29E1 /* NBAsYouTypeFormatter.m */; }; - D0B843B31DA7FF30005F29E1 /* NBAsYouTypeFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B843991DA7FF30005F29E1 /* NBAsYouTypeFormatter.h */; }; - D0B843B41DA7FF30005F29E1 /* NBMetadataCore.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B8439A1DA7FF30005F29E1 /* NBMetadataCore.h */; }; - D0B843B51DA7FF30005F29E1 /* NBMetadataCore.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B8439B1DA7FF30005F29E1 /* NBMetadataCore.m */; }; - D0B843B61DA7FF30005F29E1 /* NBMetadataCoreMapper.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B8439C1DA7FF30005F29E1 /* NBMetadataCoreMapper.h */; }; - D0B843B71DA7FF30005F29E1 /* NBMetadataCoreMapper.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B8439D1DA7FF30005F29E1 /* NBMetadataCoreMapper.m */; }; - D0B843B81DA7FF30005F29E1 /* NBMetadataCoreTest.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B8439E1DA7FF30005F29E1 /* NBMetadataCoreTest.h */; }; - D0B843B91DA7FF30005F29E1 /* NBMetadataCoreTest.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B8439F1DA7FF30005F29E1 /* NBMetadataCoreTest.m */; }; - D0B843BA1DA7FF30005F29E1 /* NBMetadataCoreTestMapper.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B843A01DA7FF30005F29E1 /* NBMetadataCoreTestMapper.h */; }; - D0B843BB1DA7FF30005F29E1 /* NBMetadataCoreTestMapper.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B843A11DA7FF30005F29E1 /* NBMetadataCoreTestMapper.m */; }; - D0B843BC1DA7FF30005F29E1 /* NBMetadataHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B843A21DA7FF30005F29E1 /* NBMetadataHelper.h */; }; - D0B843BD1DA7FF30005F29E1 /* NBMetadataHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B843A31DA7FF30005F29E1 /* NBMetadataHelper.m */; }; - D0B843BE1DA7FF30005F29E1 /* NBNumberFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B843A41DA7FF30005F29E1 /* NBNumberFormat.h */; }; - D0B843BF1DA7FF30005F29E1 /* NBNumberFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B843A51DA7FF30005F29E1 /* NBNumberFormat.m */; }; - D0B843C01DA7FF30005F29E1 /* NBPhoneMetaData.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B843A61DA7FF30005F29E1 /* NBPhoneMetaData.h */; }; - D0B843C11DA7FF30005F29E1 /* NBPhoneMetaData.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B843A71DA7FF30005F29E1 /* NBPhoneMetaData.m */; }; - D0B843C21DA7FF30005F29E1 /* NBPhoneMetaDataGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B843A81DA7FF30005F29E1 /* NBPhoneMetaDataGenerator.h */; }; - D0B843C31DA7FF30005F29E1 /* NBPhoneMetaDataGenerator.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B843A91DA7FF30005F29E1 /* NBPhoneMetaDataGenerator.m */; }; - D0B843C41DA7FF30005F29E1 /* NBPhoneNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B843AA1DA7FF30005F29E1 /* NBPhoneNumber.h */; }; - D0B843C51DA7FF30005F29E1 /* NBPhoneNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B843AB1DA7FF30005F29E1 /* NBPhoneNumber.m */; }; - D0B843C61DA7FF30005F29E1 /* NBPhoneNumberDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B843AC1DA7FF30005F29E1 /* NBPhoneNumberDefines.h */; }; - D0B843C71DA7FF30005F29E1 /* NBPhoneNumberDefines.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B843AD1DA7FF30005F29E1 /* NBPhoneNumberDefines.m */; }; - D0B843C81DA7FF30005F29E1 /* NBPhoneNumberDesc.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B843AE1DA7FF30005F29E1 /* NBPhoneNumberDesc.h */; }; - D0B843C91DA7FF30005F29E1 /* NBPhoneNumberDesc.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B843AF1DA7FF30005F29E1 /* NBPhoneNumberDesc.m */; }; - D0B843CA1DA7FF30005F29E1 /* NBPhoneNumberUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B843B01DA7FF30005F29E1 /* NBPhoneNumberUtil.h */; }; - D0B843CB1DA7FF30005F29E1 /* NBPhoneNumberUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B843B11DA7FF30005F29E1 /* NBPhoneNumberUtil.m */; }; D0B8440D1DAB91CD005F29E1 /* ImageRepresentationsUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DF0C901D81A857008AEB01 /* ImageRepresentationsUtils.swift */; }; D0B8440E1DAB91CD005F29E1 /* MessageUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DF0C921D81AD09008AEB01 /* MessageUtils.swift */; }; D0B8440F1DAB91CD005F29E1 /* Either.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CB81D62233400955575 /* Either.swift */; }; @@ -621,19 +583,6 @@ D0B844121DAB91CD005F29E1 /* Log.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CBE1D62234A00955575 /* Log.swift */; }; D0B844131DAB91CD005F29E1 /* StringFormat.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CC01D62235000955575 /* StringFormat.swift */; }; D0B844141DAB91CD005F29E1 /* PhoneNumbers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CCD1D62239600955575 /* PhoneNumbers.swift */; }; - D0B8442A1DAB91E0005F29E1 /* NBAsYouTypeFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B843981DA7FF30005F29E1 /* NBAsYouTypeFormatter.m */; }; - D0B8442B1DAB91E0005F29E1 /* NBMetadataCore.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B8439B1DA7FF30005F29E1 /* NBMetadataCore.m */; }; - D0B8442C1DAB91E0005F29E1 /* NBMetadataCoreMapper.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B8439D1DA7FF30005F29E1 /* NBMetadataCoreMapper.m */; }; - D0B8442D1DAB91E0005F29E1 /* NBMetadataCoreTest.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B8439F1DA7FF30005F29E1 /* NBMetadataCoreTest.m */; }; - D0B8442E1DAB91E0005F29E1 /* NBMetadataCoreTestMapper.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B843A11DA7FF30005F29E1 /* NBMetadataCoreTestMapper.m */; }; - D0B8442F1DAB91E0005F29E1 /* NBMetadataHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B843A31DA7FF30005F29E1 /* NBMetadataHelper.m */; }; - D0B844301DAB91E0005F29E1 /* NBNumberFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B843A51DA7FF30005F29E1 /* NBNumberFormat.m */; }; - D0B844311DAB91E0005F29E1 /* NBPhoneMetaData.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B843A71DA7FF30005F29E1 /* NBPhoneMetaData.m */; }; - D0B844321DAB91E0005F29E1 /* NBPhoneMetaDataGenerator.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B843A91DA7FF30005F29E1 /* NBPhoneMetaDataGenerator.m */; }; - D0B844331DAB91E0005F29E1 /* NBPhoneNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B843AB1DA7FF30005F29E1 /* NBPhoneNumber.m */; }; - D0B844341DAB91E0005F29E1 /* NBPhoneNumberDefines.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B843AD1DA7FF30005F29E1 /* NBPhoneNumberDefines.m */; }; - D0B844351DAB91E0005F29E1 /* NBPhoneNumberDesc.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B843AF1DA7FF30005F29E1 /* NBPhoneNumberDesc.m */; }; - D0B844361DAB91E0005F29E1 /* NBPhoneNumberUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B843B11DA7FF30005F29E1 /* NBPhoneNumberUtil.m */; }; D0B844431DAB91FD005F29E1 /* Account.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D611D631A8B00955575 /* Account.swift */; }; D0B844451DAB91FD005F29E1 /* AccountViewTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D631D631A8B00955575 /* AccountViewTracker.swift */; }; D0B844461DAB91FD005F29E1 /* RecentPeers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D641D631A8B00955575 /* RecentPeers.swift */; }; @@ -990,7 +939,6 @@ D03B0E421D631E6600955575 /* NetworkLogging.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NetworkLogging.m; sourceTree = ""; }; D03B0E571D631EB900955575 /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; }; D03B0E591D63215200955575 /* TelegramCore.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = TelegramCore.xcconfig; path = TelegramCore/Config/TelegramCore.xcconfig; sourceTree = ""; }; - D03B0E5B1D63240700955575 /* TelegramCoreIncludes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TelegramCoreIncludes.h; sourceTree = ""; }; D03B0E5D1D6327F600955575 /* SSignalKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = SSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03B0E5F1D6327FF00955575 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; D03B0E611D63281A00955575 /* libavcodec.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libavcodec.a; path = "third-party/FFmpeg-iOS/lib/libavcodec.a"; sourceTree = ""; }; @@ -1004,6 +952,10 @@ D03DC9121F82F89D001D584C /* RegularChatState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegularChatState.swift; sourceTree = ""; }; D03E3D27230447960049C28B /* RestrictedContentMessageAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RestrictedContentMessageAttribute.swift; sourceTree = ""; }; D03E416B2304D5B30049C28B /* ValidateAddressNameInteractive.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ValidateAddressNameInteractive.swift; sourceTree = ""; }; + D03E452C2305C15A0049C28B /* FormatPhoneNumber.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FormatPhoneNumber.h; sourceTree = ""; }; + D03E452D2305C15A0049C28B /* FormatPhoneNumber.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FormatPhoneNumber.m; sourceTree = ""; }; + D03E45D02305D34C0049C28B /* libphonenumber_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = libphonenumber_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E45D32305D44A0049C28B /* libphonenumber.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = libphonenumber.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E5E0B1E55E02D0029569A /* LoggedOutAccountAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoggedOutAccountAttribute.swift; sourceTree = ""; }; D041E3F41E535464008C24B4 /* AddPeerMember.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddPeerMember.swift; sourceTree = ""; }; D041E3F71E535A88008C24B4 /* RemovePeerMember.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RemovePeerMember.swift; sourceTree = ""; }; @@ -1037,9 +989,6 @@ D0528E691E65DD2100E2FEF5 /* WebpagePreview.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebpagePreview.swift; sourceTree = ""; }; D0529D2321A4123400D7C3C4 /* SynchronizeRecentlyUsedMediaOperations.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SynchronizeRecentlyUsedMediaOperations.swift; sourceTree = ""; }; D0529D2621A4141800D7C3C4 /* ManagedSynchronizeRecentlyUsedMediaOperations.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagedSynchronizeRecentlyUsedMediaOperations.swift; sourceTree = ""; }; - D053B3F91F1651FA00E2D58A /* MonotonicTime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MonotonicTime.h; sourceTree = ""; }; - D053B3FA1F1651FA00E2D58A /* MonotonicTime.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MonotonicTime.m; sourceTree = ""; }; - D053B3FD1F16534400E2D58A /* MonotonicTime.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MonotonicTime.swift; sourceTree = ""; }; D053B4171F18DE4F00E2D58A /* AuthorSignatureMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthorSignatureMessageAttribute.swift; sourceTree = ""; }; D053B41A1F18DEF500E2D58A /* TelegramMediaExpiredContent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaExpiredContent.swift; sourceTree = ""; }; D05452061E7B5093006EEF19 /* LoadedStickerPack.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoadedStickerPack.swift; sourceTree = ""; }; @@ -1156,32 +1105,6 @@ D0B8438B1DA7CF50005F29E1 /* BotInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BotInfo.swift; sourceTree = ""; }; D0B8438D1DA7D296005F29E1 /* CachedGroupParticipants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CachedGroupParticipants.swift; sourceTree = ""; }; D0B843961DA7FBBC005F29E1 /* ChangePeerNotificationSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangePeerNotificationSettings.swift; sourceTree = ""; }; - D0B843981DA7FF30005F29E1 /* NBAsYouTypeFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBAsYouTypeFormatter.m; sourceTree = ""; }; - D0B843991DA7FF30005F29E1 /* NBAsYouTypeFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBAsYouTypeFormatter.h; sourceTree = ""; }; - D0B8439A1DA7FF30005F29E1 /* NBMetadataCore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBMetadataCore.h; sourceTree = ""; }; - D0B8439B1DA7FF30005F29E1 /* NBMetadataCore.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBMetadataCore.m; sourceTree = ""; }; - D0B8439C1DA7FF30005F29E1 /* NBMetadataCoreMapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBMetadataCoreMapper.h; sourceTree = ""; }; - D0B8439D1DA7FF30005F29E1 /* NBMetadataCoreMapper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBMetadataCoreMapper.m; sourceTree = ""; }; - D0B8439E1DA7FF30005F29E1 /* NBMetadataCoreTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBMetadataCoreTest.h; sourceTree = ""; }; - D0B8439F1DA7FF30005F29E1 /* NBMetadataCoreTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBMetadataCoreTest.m; sourceTree = ""; }; - D0B843A01DA7FF30005F29E1 /* NBMetadataCoreTestMapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBMetadataCoreTestMapper.h; sourceTree = ""; }; - D0B843A11DA7FF30005F29E1 /* NBMetadataCoreTestMapper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBMetadataCoreTestMapper.m; sourceTree = ""; }; - D0B843A21DA7FF30005F29E1 /* NBMetadataHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBMetadataHelper.h; sourceTree = ""; }; - D0B843A31DA7FF30005F29E1 /* NBMetadataHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBMetadataHelper.m; sourceTree = ""; }; - D0B843A41DA7FF30005F29E1 /* NBNumberFormat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBNumberFormat.h; sourceTree = ""; }; - D0B843A51DA7FF30005F29E1 /* NBNumberFormat.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBNumberFormat.m; sourceTree = ""; }; - D0B843A61DA7FF30005F29E1 /* NBPhoneMetaData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBPhoneMetaData.h; sourceTree = ""; }; - D0B843A71DA7FF30005F29E1 /* NBPhoneMetaData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBPhoneMetaData.m; sourceTree = ""; }; - D0B843A81DA7FF30005F29E1 /* NBPhoneMetaDataGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBPhoneMetaDataGenerator.h; sourceTree = ""; }; - D0B843A91DA7FF30005F29E1 /* NBPhoneMetaDataGenerator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBPhoneMetaDataGenerator.m; sourceTree = ""; }; - D0B843AA1DA7FF30005F29E1 /* NBPhoneNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBPhoneNumber.h; sourceTree = ""; }; - D0B843AB1DA7FF30005F29E1 /* NBPhoneNumber.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBPhoneNumber.m; sourceTree = ""; }; - D0B843AC1DA7FF30005F29E1 /* NBPhoneNumberDefines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBPhoneNumberDefines.h; sourceTree = ""; }; - D0B843AD1DA7FF30005F29E1 /* NBPhoneNumberDefines.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBPhoneNumberDefines.m; sourceTree = ""; }; - D0B843AE1DA7FF30005F29E1 /* NBPhoneNumberDesc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBPhoneNumberDesc.h; sourceTree = ""; }; - D0B843AF1DA7FF30005F29E1 /* NBPhoneNumberDesc.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBPhoneNumberDesc.m; sourceTree = ""; }; - D0B843B01DA7FF30005F29E1 /* NBPhoneNumberUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBPhoneNumberUtil.h; sourceTree = ""; }; - D0B843B11DA7FF30005F29E1 /* NBPhoneNumberUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBPhoneNumberUtil.m; sourceTree = ""; }; D0B844521DAC0773005F29E1 /* TelegramUserPresence.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramUserPresence.swift; sourceTree = ""; }; D0B85AC41F6B2B9400B8B5CE /* RecentlyUsedHashtags.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecentlyUsedHashtags.swift; sourceTree = ""; }; D0BB7C591E5C8074001527C3 /* ChannelParticipants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelParticipants.swift; sourceTree = ""; }; @@ -1283,6 +1206,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D03E45D42305D44A0049C28B /* libphonenumber.framework in Frameworks */, D035732F22B5C24F00F0920D /* TelegramApi.framework in Frameworks */, D0AF32381FAE8C920097362B /* MultipeerConnectivity.framework in Frameworks */, D0CAF2EA1D75EC600011F558 /* MtProtoKitDynamic.framework in Frameworks */, @@ -1368,48 +1292,6 @@ name = "Sticker Management"; sourceTree = ""; }; - D03B0C791D62153400955575 /* third-party */ = { - isa = PBXGroup; - children = ( - D03B0C7A1D6222CA00955575 /* libphonenumber-iOS */, - ); - name = "third-party"; - sourceTree = ""; - }; - D03B0C7A1D6222CA00955575 /* libphonenumber-iOS */ = { - isa = PBXGroup; - children = ( - D0B843981DA7FF30005F29E1 /* NBAsYouTypeFormatter.m */, - D0B843991DA7FF30005F29E1 /* NBAsYouTypeFormatter.h */, - D0B8439A1DA7FF30005F29E1 /* NBMetadataCore.h */, - D0B8439B1DA7FF30005F29E1 /* NBMetadataCore.m */, - D0B8439C1DA7FF30005F29E1 /* NBMetadataCoreMapper.h */, - D0B8439D1DA7FF30005F29E1 /* NBMetadataCoreMapper.m */, - D0B8439E1DA7FF30005F29E1 /* NBMetadataCoreTest.h */, - D0B8439F1DA7FF30005F29E1 /* NBMetadataCoreTest.m */, - D0B843A01DA7FF30005F29E1 /* NBMetadataCoreTestMapper.h */, - D0B843A11DA7FF30005F29E1 /* NBMetadataCoreTestMapper.m */, - D0B843A21DA7FF30005F29E1 /* NBMetadataHelper.h */, - D0B843A31DA7FF30005F29E1 /* NBMetadataHelper.m */, - D0B843A41DA7FF30005F29E1 /* NBNumberFormat.h */, - D0B843A51DA7FF30005F29E1 /* NBNumberFormat.m */, - D0B843A61DA7FF30005F29E1 /* NBPhoneMetaData.h */, - D0B843A71DA7FF30005F29E1 /* NBPhoneMetaData.m */, - D0B843A81DA7FF30005F29E1 /* NBPhoneMetaDataGenerator.h */, - D0B843A91DA7FF30005F29E1 /* NBPhoneMetaDataGenerator.m */, - D0B843AA1DA7FF30005F29E1 /* NBPhoneNumber.h */, - D0B843AB1DA7FF30005F29E1 /* NBPhoneNumber.m */, - D0B843AC1DA7FF30005F29E1 /* NBPhoneNumberDefines.h */, - D0B843AD1DA7FF30005F29E1 /* NBPhoneNumberDefines.m */, - D0B843AE1DA7FF30005F29E1 /* NBPhoneNumberDesc.h */, - D0B843AF1DA7FF30005F29E1 /* NBPhoneNumberDesc.m */, - D0B843B01DA7FF30005F29E1 /* NBPhoneNumberUtil.h */, - D0B843B11DA7FF30005F29E1 /* NBPhoneNumberUtil.m */, - ); - name = "libphonenumber-iOS"; - path = "third-party/libphonenumber-iOS"; - sourceTree = SOURCE_ROOT; - }; D03B0CB71D62232000955575 /* Utils */ = { isa = PBXGroup; children = ( @@ -1426,13 +1308,14 @@ D04CAA591E83310D0047E51F /* MD5.swift */, D042C6821E8D9DF800C863B0 /* Unixtime.swift */, D01C7F031EFC1C49008305F1 /* DeviceContact.swift */, - D053B3FD1F16534400E2D58A /* MonotonicTime.swift */, D01C06B61FBBA269001561AB /* CanSendMessagesToPeer.swift */, D0F8C39F2017AF2700236FC5 /* GlobalTelegramCoreConfiguration.swift */, D0E412E9206AD18E00BEE4A2 /* DecryptedResourceData.swift */, C28D3CEF20D3DA900027F4D6 /* DeepLinkInfo.swift */, 0962E66C21B5C56F00245FD9 /* JSON.swift */, 0962E67421B6437600245FD9 /* SplitTest.swift */, + D03E452C2305C15A0049C28B /* FormatPhoneNumber.h */, + D03E452D2305C15A0049C28B /* FormatPhoneNumber.m */, ); name = Utils; sourceTree = ""; @@ -1727,11 +1610,8 @@ D03B0E3A1D631E4400955575 /* Supporting Files */ = { isa = PBXGroup; children = ( - D03B0E5B1D63240700955575 /* TelegramCoreIncludes.h */, D03B0E411D631E6600955575 /* NetworkLogging.h */, D03B0E421D631E6600955575 /* NetworkLogging.m */, - D053B3F91F1651FA00E2D58A /* MonotonicTime.h */, - D053B3FA1F1651FA00E2D58A /* MonotonicTime.m */, D02609BB20C6EB97006C34AC /* Crypto.h */, D02609BE20C6EC08006C34AC /* Crypto.m */, D08984F72118816900918162 /* Reachability.h */, @@ -1773,6 +1653,8 @@ D06706631D512ADA00DED3E3 /* Frameworks */ = { isa = PBXGroup; children = ( + D03E45D32305D44A0049C28B /* libphonenumber.framework */, + D03E45D02305D34C0049C28B /* libphonenumber_iOS.framework */, D0CC4ADB22BA47280088F36D /* TelegramApiMac.framework */, D0CC4AA322BA44960088F36D /* TelegramApi.framework */, D035732E22B5C24F00F0920D /* TelegramApi.framework */, @@ -1878,7 +1760,6 @@ D09D8C031D4FAB1D0081DBEC /* TelegramCore */ = { isa = PBXGroup; children = ( - D03B0C791D62153400955575 /* third-party */, D03B0CB71D62232000955575 /* Utils */, D03B0CCF1D62242200955575 /* Objects */, D03B0CFE1D62252200955575 /* State */, @@ -2063,24 +1944,11 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - D0B843C01DA7FF30005F29E1 /* NBPhoneMetaData.h in Headers */, + D03E45D82305D66D0049C28B /* Crypto.h in Headers */, D03B0E431D631E6600955575 /* NetworkLogging.h in Headers */, - D0B843B81DA7FF30005F29E1 /* NBMetadataCoreTest.h in Headers */, D09D8C121D4FAB1D0081DBEC /* TelegramCore.h in Headers */, - D03B0E5C1D63241D00955575 /* TelegramCoreIncludes.h in Headers */, - D0B843B61DA7FF30005F29E1 /* NBMetadataCoreMapper.h in Headers */, - D0B843B41DA7FF30005F29E1 /* NBMetadataCore.h in Headers */, - D0B843C41DA7FF30005F29E1 /* NBPhoneNumber.h in Headers */, - D0B843B31DA7FF30005F29E1 /* NBAsYouTypeFormatter.h in Headers */, + D03E452E2305C15A0049C28B /* FormatPhoneNumber.h in Headers */, D08984F92118816A00918162 /* Reachability.h in Headers */, - D053B3FB1F1651FA00E2D58A /* MonotonicTime.h in Headers */, - D0B843C81DA7FF30005F29E1 /* NBPhoneNumberDesc.h in Headers */, - D0B843CA1DA7FF30005F29E1 /* NBPhoneNumberUtil.h in Headers */, - D0B843BA1DA7FF30005F29E1 /* NBMetadataCoreTestMapper.h in Headers */, - D0B843BE1DA7FF30005F29E1 /* NBNumberFormat.h in Headers */, - D0B843C61DA7FF30005F29E1 /* NBPhoneNumberDefines.h in Headers */, - D0B843C21DA7FF30005F29E1 /* NBPhoneMetaDataGenerator.h in Headers */, - D0B843BC1DA7FF30005F29E1 /* NBMetadataHelper.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2088,23 +1956,11 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - D050F25A1E4A5AC500988324 /* NBPhoneMetaData.h in Headers */, + D03E45D92305D66E0049C28B /* Crypto.h in Headers */, D0B4186B1D7E03D5004562A4 /* TelegramCoreMac.h in Headers */, - D050F2561E4A5AC500988324 /* NBMetadataCoreTest.h in Headers */, - D0B418BC1D7E05D0004562A4 /* TelegramCoreIncludes.h in Headers */, D0B418BB1D7E05BE004562A4 /* NetworkLogging.h in Headers */, - D050F2551E4A5AC500988324 /* NBMetadataCoreMapper.h in Headers */, - D050F2541E4A5AC500988324 /* NBMetadataCore.h in Headers */, - D050F25C1E4A5AC500988324 /* NBPhoneNumber.h in Headers */, - D050F2531E4A5AC500988324 /* NBAsYouTypeFormatter.h in Headers */, - D050F25E1E4A5AC500988324 /* NBPhoneNumberDesc.h in Headers */, - D050F25F1E4A5AC500988324 /* NBPhoneNumberUtil.h in Headers */, - D050F2571E4A5AC500988324 /* NBMetadataCoreTestMapper.h in Headers */, - D050F2591E4A5AC500988324 /* NBNumberFormat.h in Headers */, - D050F25D1E4A5AC500988324 /* NBPhoneNumberDefines.h in Headers */, D08984FA2118816A00918162 /* Reachability.h in Headers */, - D050F25B1E4A5AC500988324 /* NBPhoneMetaDataGenerator.h in Headers */, - D050F2581E4A5AC500988324 /* NBMetadataHelper.h in Headers */, + D03E45302305C1630049C28B /* FormatPhoneNumber.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2277,7 +2133,6 @@ D0338740223BD48B007A2CE4 /* ContactsSettings.swift in Sources */, D03B0CBD1D62234300955575 /* Regex.swift in Sources */, D00BDA191EE593D600C64C5E /* TelegramChannelAdminRights.swift in Sources */, - D0B843B91DA7FF30005F29E1 /* NBMetadataCoreTest.m in Sources */, 09EDAD3A22131D010012A50B /* ManagedAutodownloadSettingsUpdates.swift in Sources */, D0EA188220D3D2B1001AEE19 /* RemoteStorageConfiguration.swift in Sources */, D09A2FE61D7CD4940018FB72 /* TelegramChannel.swift in Sources */, @@ -2303,7 +2158,6 @@ D0E305AA1E5BA02D00D7A3A2 /* ChannelBlacklist.swift in Sources */, D0EE7FC72098853100981319 /* SecureIdTemporaryRegistrationValue.swift in Sources */, C22EE61B1E67418000334C38 /* ToggleChannelSignatures.swift in Sources */, - D053B3FC1F1651FA00E2D58A /* MonotonicTime.m in Sources */, 090E779022AAABC600CD99F5 /* PeersNearby.swift in Sources */, D073CE601DCB9D14007511FD /* OutgoingMessageInfoAttribute.swift in Sources */, D0AAD1A81E32602500D5B9DE /* AutoremoveTimeoutMessageAttribute.swift in Sources */, @@ -2334,7 +2188,6 @@ D0439B5D228ECB270067E026 /* RequestPhoneNumber.swift in Sources */, D05D8B372192F8AF0064586F /* LocalizationListState.swift in Sources */, D0F3CC7D1DDE289E008148FA /* ResolvePeerByName.swift in Sources */, - D0B843B71DA7FF30005F29E1 /* NBMetadataCoreMapper.m in Sources */, D0AB0B921D65E9FA002C78E7 /* ManagedServiceViews.swift in Sources */, D0DB7F031F43030C00591D48 /* InstallInteractiveReadMessagesAction.swift in Sources */, D0A472B61F4CBE8B00E0EEDA /* LoadedPeer.swift in Sources */, @@ -2359,10 +2212,8 @@ D0448C9F1E27F5EB005A61A7 /* Random.swift in Sources */, D0C27B3F1F4B51D000A4E170 /* CachedStickerPack.swift in Sources */, D0A8998F217A37A000759EE6 /* NotificationAutolockReportManager.swift in Sources */, - D0B843B21DA7FF30005F29E1 /* NBAsYouTypeFormatter.m in Sources */, D07047B71F3DF2CD00F6A8D4 /* ManagedConsumePersonalMessagesActions.swift in Sources */, D03B0CDB1D62245F00955575 /* ApiUtils.swift in Sources */, - D0B843C91DA7FF30005F29E1 /* NBPhoneNumberDesc.m in Sources */, D08CAA801ED80ED20000FDA8 /* SuggestedLocalizationEntry.swift in Sources */, D03B0CE61D6224A700955575 /* ReplyMessageAttribute.swift in Sources */, D0D1026C2212FE52003ADA5E /* AccountSortOrderAttribute.swift in Sources */, @@ -2379,7 +2230,6 @@ C2E0646D1ECF171D00387BB8 /* TelegramMediaWebDocument.swift in Sources */, D0B843811DA6EDAE005F29E1 /* CachedUserData.swift in Sources */, D049EAD51E43D98500A2CD3A /* RecentMediaItem.swift in Sources */, - D053B3FE1F16534400E2D58A /* MonotonicTime.swift in Sources */, D0C50E341E93A86600F62E39 /* CallSessionManager.swift in Sources */, D00D34421E6EDD2E0057B307 /* ManagedSynchronizeConsumeMessageContentsOperations.swift in Sources */, D08984FB2118816A00918162 /* Reachability.m in Sources */, @@ -2393,10 +2243,8 @@ D05464972073872C002ECC1E /* SecureIdBankStatementValue.swift in Sources */, D0633CDB2253C0D3003DD95F /* CloudMediaResourceParameters.swift in Sources */, 0962E67521B6437600245FD9 /* SplitTest.swift in Sources */, - D0B843CB1DA7FF30005F29E1 /* NBPhoneNumberUtil.m in Sources */, D03B0D5E1D631A6900955575 /* Network.swift in Sources */, D0B8438E1DA7D296005F29E1 /* CachedGroupParticipants.swift in Sources */, - D0B843BD1DA7FF30005F29E1 /* NBMetadataHelper.m in Sources */, D03B0CF51D62250800955575 /* TelegramMediaContact.swift in Sources */, D03B0CFB1D62250800955575 /* TelegramMediaWebpage.swift in Sources */, 0962E66B21B5A41C00245FD9 /* ManagedSynchronizeAppLogEventsOperations.swift in Sources */, @@ -2430,7 +2278,6 @@ D0C0B58A1ED9DA6B000F4D2C /* ManagedLocalizationUpdatesOperations.swift in Sources */, D0EE7FC120986BF400981319 /* SecureIdInternalPassportValue.swift in Sources */, D03B0D671D631A8B00955575 /* AccountViewTracker.swift in Sources */, - D0B843BB1DA7FF30005F29E1 /* NBMetadataCoreTestMapper.m in Sources */, D0AB262B21C3CE80008F6685 /* Polls.swift in Sources */, D0E412EA206AD18E00BEE4A2 /* DecryptedResourceData.swift in Sources */, D03B0D101D62255C00955575 /* UpdatesApiUtils.swift in Sources */, @@ -2442,7 +2289,7 @@ C2FD33E41E687BF1008D13D4 /* PeerPhotoUpdater.swift in Sources */, D0F8C3A02017AF2700236FC5 /* GlobalTelegramCoreConfiguration.swift in Sources */, D01C06B71FBBA269001561AB /* CanSendMessagesToPeer.swift in Sources */, - D0B843B51DA7FF30005F29E1 /* NBMetadataCore.m in Sources */, + D03E452F2305C15A0049C28B /* FormatPhoneNumber.m in Sources */, D0EC559A2101ED0800D1992C /* DeleteMessages.swift in Sources */, D02DADC12139A1FC00116225 /* ContactSyncManager.swift in Sources */, D0C26D691FE02402004ABF18 /* ManagedSynchronizeGroupedPeersOperations.swift in Sources */, @@ -2554,7 +2401,6 @@ D048B4AC20A5DA4300C79D31 /* ManagedProxyInfoUpdates.swift in Sources */, D017495E1E118F790057C89A /* AccountStateManager.swift in Sources */, D0CA3F84207391560042D2B6 /* SecureIdPadding.swift in Sources */, - D0B843C71DA7FF30005F29E1 /* NBPhoneNumberDefines.m in Sources */, D0F760D822202FE20074F7E5 /* ChannelStats.swift in Sources */, 0962E66921B5A11100245FD9 /* SynchronizeAppLogEventsOperation.swift in Sources */, D049EAF51E44DF3300A2CD3A /* AccountState.swift in Sources */, @@ -2596,11 +2442,9 @@ D08984F22114B97400918162 /* ClearCloudDrafts.swift in Sources */, D03B0CC11D62235000955575 /* StringFormat.swift in Sources */, D0B85AC51F6B2B9400B8B5CE /* RecentlyUsedHashtags.swift in Sources */, - D0B843C31DA7FF30005F29E1 /* NBPhoneMetaDataGenerator.m in Sources */, C2366C861E4F403C0097CCFF /* AddressNames.swift in Sources */, D0529D2421A4123400D7C3C4 /* SynchronizeRecentlyUsedMediaOperations.swift in Sources */, D0FA08BB2046B37900DD23FC /* ContentPrivacySettings.swift in Sources */, - D0B843C11DA7FF30005F29E1 /* NBPhoneMetaData.m in Sources */, D0528E601E65B94E00E2FEF5 /* SingleMessageView.swift in Sources */, D08CAA841ED8164B0000FDA8 /* Localization.swift in Sources */, D0528E5A1E658B3600E2FEF5 /* ManagedLocalInputActivities.swift in Sources */, @@ -2619,10 +2463,8 @@ D041E3F51E535464008C24B4 /* AddPeerMember.swift in Sources */, D0AF32311FACEDEC0097362B /* CoreSettings.swift in Sources */, D054649A20738760002ECC1E /* SecureIdRentalAgreementValue.swift in Sources */, - D0B843BF1DA7FF30005F29E1 /* NBNumberFormat.m in Sources */, D0E305A71E5B5CBE00D7A3A2 /* PeerAdmins.swift in Sources */, D0575C2D22B922DF00A71A0E /* DeleteAccount.swift in Sources */, - D0B843C51DA7FF30005F29E1 /* NBPhoneNumber.m in Sources */, D03B0D0D1D62255C00955575 /* SynchronizePeerReadState.swift in Sources */, D03B0D081D62255C00955575 /* ChannelState.swift in Sources */, D08984F521187ECA00918162 /* NetworkType.swift in Sources */, @@ -2722,7 +2564,6 @@ D0F7B1E91E045C87007EB8A5 /* PeerCommands.swift in Sources */, D00D97C81E32901700E5C2B6 /* PeerInputActivity.swift in Sources */, D0754D2B1EEE10FC00884F6E /* BotPaymentForm.swift in Sources */, - D0B844311DAB91E0005F29E1 /* NBPhoneMetaData.m in Sources */, D0E412EF206AF65500BEE4A2 /* GrantSecureIdAccess.swift in Sources */, C22EE61C1E67418000334C38 /* ToggleChannelSignatures.swift in Sources */, D0B418AC1D7E0597004562A4 /* Network.swift in Sources */, @@ -2745,10 +2586,8 @@ D0F53BEA1E784A4800117362 /* ChangeAccountPhoneNumber.swift in Sources */, C2E064691ECEEF0B00387BB8 /* TelegramMediaInvoice.swift in Sources */, D001F3EE1E128A1C007A8C60 /* AccountStateManager.swift in Sources */, - D0B844351DAB91E0005F29E1 /* NBPhoneNumberDesc.m in Sources */, C205FEA91EB3B75900455808 /* ExportMessageLink.swift in Sources */, D0448CA31E291B14005A61A7 /* FetchSecretFileResource.swift in Sources */, - D0B8442F1DAB91E0005F29E1 /* NBMetadataHelper.m in Sources */, D0B8444C1DAB91FD005F29E1 /* UpdateCachedPeerData.swift in Sources */, D0329EA322FC5A7C00F9F071 /* MessageReactions.swift in Sources */, D0FA8B9F1E1F973B001E855B /* SecretChatIncomingEncryptedOperation.swift in Sources */, @@ -2787,7 +2626,6 @@ D0BEAF611E54ACF900BD963D /* AccountManager.swift in Sources */, D0CA3F85207391560042D2B6 /* SecureIdPadding.swift in Sources */, D0F3CC791DDE2859008148FA /* SearchMessages.swift in Sources */, - D0B8442B1DAB91E0005F29E1 /* NBMetadataCore.m in Sources */, D093D7EF206413F600BC3599 /* SecureIdDataTypes.swift in Sources */, D03DC9141F82F89D001D584C /* RegularChatState.swift in Sources */, D06CA13622772EB20094E707 /* ManagedNotificationSettingsBehaviors.swift in Sources */, @@ -2805,7 +2643,6 @@ D0A3E448214802C7008ACEF6 /* VoipConfiguration.swift in Sources */, D018EE062045E95000CBB130 /* CheckPeerChatServiceActions.swift in Sources */, D081E10B217F5ADE003CD921 /* LocalizationPreview.swift in Sources */, - D0B8442D1DAB91E0005F29E1 /* NBMetadataCoreTest.m in Sources */, D0C27B431F4B58C000A4E170 /* PeerSpecificStickerPack.swift in Sources */, D0B844131DAB91CD005F29E1 /* StringFormat.swift in Sources */, D0C0B58E1ED9DC5A000F4D2C /* SynchronizeLocalizationUpdatesOperation.swift in Sources */, @@ -2819,8 +2656,6 @@ D0B4189B1D7E0580004562A4 /* TelegramMediaWebpage.swift in Sources */, D00C7CE11E3785710080C3D5 /* MarkMessageContentAsConsumedInteractively.swift in Sources */, D0E23DDB1E806F7700B9B6D2 /* ManagedSynchronizeMarkFeaturedStickerPacksAsSeenOperations.swift in Sources */, - D0B844341DAB91E0005F29E1 /* NBPhoneNumberDefines.m in Sources */, - D0B8442A1DAB91E0005F29E1 /* NBAsYouTypeFormatter.m in Sources */, D07047B51F3DF1FE00F6A8D4 /* ConsumablePersonalMentionMessageAttribute.swift in Sources */, D0448C8F1E22993C005A61A7 /* ProcessSecretChatIncomingDecryptedOperations.swift in Sources */, D093D7F620641A4900BC3599 /* SecureIdPhoneValue.swift in Sources */, @@ -2849,7 +2684,6 @@ D02ABC821E310E5D00CAE539 /* ManagedCloudChatRemoveMessagesOperations.swift in Sources */, C2FD33E51E687BF1008D13D4 /* PeerPhotoUpdater.swift in Sources */, D0BE304C20627D9800FBE6D8 /* AccessSecureId.swift in Sources */, - D0B8442E1DAB91E0005F29E1 /* NBMetadataCoreTestMapper.m in Sources */, D01A21AD1F38D10E00DDA104 /* SavedStickerItem.swift in Sources */, D03C53731DAD5CA9004C17B3 /* CachedGroupData.swift in Sources */, D019B1CD1E2E3B6A00F80DB3 /* SecretChatRekeySession.swift in Sources */, @@ -2899,7 +2733,6 @@ D0528E6B1E65DD2100E2FEF5 /* WebpagePreview.swift in Sources */, D0E8B8B42044706300605593 /* ForwardGame.swift in Sources */, D0B844111DAB91CD005F29E1 /* Regex.swift in Sources */, - D0B844321DAB91E0005F29E1 /* NBPhoneMetaDataGenerator.m in Sources */, D0BEAF5E1E54941B00BD963D /* Authorization.swift in Sources */, D073CEA41DCBF3EA007511FD /* MultipartUpload.swift in Sources */, D03C53701DAD5CA9004C17B3 /* ExportedInvitation.swift in Sources */, @@ -2948,7 +2781,6 @@ D03C536B1DAD5CA9004C17B3 /* TelegramGroup.swift in Sources */, D0E412DD206A99AE00BEE4A2 /* SecureIdValueAccessContext.swift in Sources */, D0B418941D7E0580004562A4 /* TelegramMediaAction.swift in Sources */, - D0B8442C1DAB91E0005F29E1 /* NBMetadataCoreMapper.m in Sources */, D0EC559B2101ED0800D1992C /* DeleteMessages.swift in Sources */, D073CE6A1DCBCF17007511FD /* ViewCountMessageAttribute.swift in Sources */, D0B418AB1D7E0597004562A4 /* MultipartFetch.swift in Sources */, @@ -2994,7 +2826,6 @@ D049EAD61E43D98500A2CD3A /* RecentMediaItem.swift in Sources */, D0EE7FC520986C5300981319 /* SecureIdPassportRegistrationValue.swift in Sources */, D0C0B58B1ED9DA6B000F4D2C /* ManagedLocalizationUpdatesOperations.swift in Sources */, - D0B844331DAB91E0005F29E1 /* NBPhoneNumber.m in Sources */, D001F3F51E128A1C007A8C60 /* PendingMessageManager.swift in Sources */, D0C27B401F4B51D000A4E170 /* CachedStickerPack.swift in Sources */, D001F3F61E128A1C007A8C60 /* PendingMessageUploadedContent.swift in Sources */, @@ -3010,7 +2841,6 @@ D0F7B1E71E045C87007EB8A5 /* JoinChannel.swift in Sources */, D0E652201E3A364A004EEA91 /* UpdateAccountPeerName.swift in Sources */, D0FA8BA21E1F99E1001E855B /* SecretChatFileReference.swift in Sources */, - D0B844301DAB91E0005F29E1 /* NBNumberFormat.m in Sources */, D001F3F71E128A1C007A8C60 /* ApplyUpdateMessage.swift in Sources */, D0B418971D7E0580004562A4 /* TelegramMediaImage.swift in Sources */, D01843A92190C28100278AFF /* ConfirmTwoStepRecoveryEmail.swift in Sources */, @@ -3018,7 +2848,6 @@ D049EAF61E44DF3300A2CD3A /* AccountState.swift in Sources */, D0467D1620D7F2C90055C28F /* ManagedSynchronizeMarkAllUnseenPersonalMessagesOperations.swift in Sources */, D041E3F61E535464008C24B4 /* AddPeerMember.swift in Sources */, - D0B844361DAB91E0005F29E1 /* NBPhoneNumberUtil.m in Sources */, D0E305A81E5B5CBE00D7A3A2 /* PeerAdmins.swift in Sources */, D073CE6F1DCBCF17007511FD /* OutgoingMessageInfoAttribute.swift in Sources */, D0B844431DAB91FD005F29E1 /* Account.swift in Sources */, @@ -3112,7 +2941,7 @@ "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", "$(PROJECT_DIR)/third-party/libwebp/lib", ); - MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/TelegramCore/module.private.modulemap"; + MODULEMAP_PRIVATE_FILE = ""; OTHER_LDFLAGS = "-Wl,-dead_strip"; PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramCore; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -3240,7 +3069,7 @@ "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", "$(PROJECT_DIR)/third-party/libwebp/lib", ); - MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/TelegramCore/module.private.modulemap"; + MODULEMAP_PRIVATE_FILE = ""; OTHER_LDFLAGS = "-Wl,-dead_strip"; OTHER_SWIFT_FLAGS = "-DDEBUG"; PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramCore; @@ -3375,7 +3204,7 @@ "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", "$(PROJECT_DIR)/third-party/libwebp/lib", ); - MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/TelegramCore/module.private.modulemap"; + MODULEMAP_PRIVATE_FILE = ""; OTHER_LDFLAGS = "-Wl,-dead_strip"; OTHER_SWIFT_FLAGS = "-DDEBUG"; PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramCore; @@ -3504,7 +3333,7 @@ "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", "$(PROJECT_DIR)/third-party/libwebp/lib", ); - MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/TelegramCore/module.private.modulemap"; + MODULEMAP_PRIVATE_FILE = ""; OTHER_LDFLAGS = "-Wl,-dead_strip"; PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramCore; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -3598,7 +3427,7 @@ "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", "$(PROJECT_DIR)/third-party/libwebp/lib", ); - MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/TelegramCore/module.private.modulemap"; + MODULEMAP_PRIVATE_FILE = ""; OTHER_LDFLAGS = "-Wl,-dead_strip"; PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramCore; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -3774,7 +3603,7 @@ "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", "$(PROJECT_DIR)/third-party/libwebp/lib", ); - MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/TelegramCore/module.private.modulemap"; + MODULEMAP_PRIVATE_FILE = ""; OTHER_LDFLAGS = "-Wl,-dead_strip"; OTHER_SWIFT_FLAGS = "-DDEBUG"; PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramCore; @@ -3814,7 +3643,7 @@ "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", "$(PROJECT_DIR)/third-party/libwebp/lib", ); - MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/TelegramCore/module.private.modulemap"; + MODULEMAP_PRIVATE_FILE = ""; OTHER_LDFLAGS = "-Wl,-dead_strip"; OTHER_SWIFT_FLAGS = "-DDEBUG"; PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramCore; @@ -3923,7 +3752,7 @@ "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", "$(PROJECT_DIR)/third-party/libwebp/lib", ); - MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/TelegramCore/module.private.modulemap"; + MODULEMAP_PRIVATE_FILE = ""; OTHER_LDFLAGS = "-Wl,-dead_strip"; OTHER_SWIFT_FLAGS = "-DDEBUG"; PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramCore; @@ -4141,7 +3970,7 @@ "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", "$(PROJECT_DIR)/third-party/libwebp/lib", ); - MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/TelegramCore/module.private.modulemap"; + MODULEMAP_PRIVATE_FILE = ""; OTHER_LDFLAGS = "-Wl,-dead_strip"; PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramCore; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/submodules/TelegramUI/TelegramUI/AuthorizationSequenceSplashController.swift b/submodules/TelegramUI/TelegramUI/AuthorizationSequenceSplashController.swift index 1d810fea23..f3f687b4b6 100644 --- a/submodules/TelegramUI/TelegramUI/AuthorizationSequenceSplashController.swift +++ b/submodules/TelegramUI/TelegramUI/AuthorizationSequenceSplashController.swift @@ -6,7 +6,6 @@ import Postbox import TelegramCore import SwiftSignalKit import TelegramPresentationData -import TelegramUIPrivateModule import LegacyComponents import RMIntro diff --git a/submodules/TelegramUI/TelegramUI/ChatInterfaceStateContextQueries.swift b/submodules/TelegramUI/TelegramUI/ChatInterfaceStateContextQueries.swift index 71c0d11dac..c440b7c5ca 100644 --- a/submodules/TelegramUI/TelegramUI/ChatInterfaceStateContextQueries.swift +++ b/submodules/TelegramUI/TelegramUI/ChatInterfaceStateContextQueries.swift @@ -4,7 +4,6 @@ import SwiftSignalKit import TelegramCore import Postbox import TelegramUIPreferences -import TelegramUIPrivateModule import LegacyComponents import TextFormat import AccountContext diff --git a/submodules/TelegramUI/TelegramUI/FetchCachedRepresentations.swift b/submodules/TelegramUI/TelegramUI/FetchCachedRepresentations.swift index dcf3de2e9f..279a572d03 100644 --- a/submodules/TelegramUI/TelegramUI/FetchCachedRepresentations.swift +++ b/submodules/TelegramUI/TelegramUI/FetchCachedRepresentations.swift @@ -13,7 +13,6 @@ import WebPImage import WebP #endif import Lottie -import TelegramUIPrivateModule import MediaResources import PhotoResources import ImageBlur diff --git a/submodules/TelegramUI/TelegramUI/FetchVideoThumbnail.swift b/submodules/TelegramUI/TelegramUI/FetchVideoThumbnail.swift index f485016bee..1d92f867f1 100644 --- a/submodules/TelegramUI/TelegramUI/FetchVideoThumbnail.swift +++ b/submodules/TelegramUI/TelegramUI/FetchVideoThumbnail.swift @@ -4,7 +4,6 @@ import TelegramCore import Postbox import SwiftSignalKit import CoreMedia -import TelegramUIPrivateModule import Display import UIKit import VideoToolbox diff --git a/submodules/TelegramUI/TelegramUI/ManagedAudioRecorder.swift b/submodules/TelegramUI/TelegramUI/ManagedAudioRecorder.swift index 116d296f84..5ad0a214b4 100644 --- a/submodules/TelegramUI/TelegramUI/ManagedAudioRecorder.swift +++ b/submodules/TelegramUI/TelegramUI/ManagedAudioRecorder.swift @@ -1,6 +1,5 @@ import Foundation import SwiftSignalKit -import TelegramUIPrivateModule import CoreMedia import AVFoundation import TelegramCore diff --git a/submodules/TelegramUI/TelegramUI/MediaManager.swift b/submodules/TelegramUI/TelegramUI/MediaManager.swift index 63d8685754..7b9284a658 100644 --- a/submodules/TelegramUI/TelegramUI/MediaManager.swift +++ b/submodules/TelegramUI/TelegramUI/MediaManager.swift @@ -6,7 +6,6 @@ import Postbox import TelegramCore import MediaPlayer import TelegramAudio -import TelegramUIPrivateModule import UniversalMediaPlayer import TelegramUIPreferences import AccountContext diff --git a/submodules/TelegramUI/TelegramUI/NotificationContentContext.swift b/submodules/TelegramUI/TelegramUI/NotificationContentContext.swift index a491dea674..9cc9abaa99 100644 --- a/submodules/TelegramUI/TelegramUI/NotificationContentContext.swift +++ b/submodules/TelegramUI/TelegramUI/NotificationContentContext.swift @@ -7,7 +7,6 @@ import SwiftSignalKit import Postbox import TelegramPresentationData import TelegramUIPreferences -import TelegramUIPrivateModule import AccountContext import Tuples import StickerResources diff --git a/submodules/TelegramUI/TelegramUI/ShareExtensionContext.swift b/submodules/TelegramUI/TelegramUI/ShareExtensionContext.swift index 2ea5a49f19..648708c081 100644 --- a/submodules/TelegramUI/TelegramUI/ShareExtensionContext.swift +++ b/submodules/TelegramUI/TelegramUI/ShareExtensionContext.swift @@ -5,11 +5,11 @@ import SwiftSignalKit import Postbox import TelegramPresentationData import TelegramUIPreferences -import TelegramUIPrivateModule import AccountContext import ShareController import LegacyUI import PeerInfoUI +import ShareItems private let inForeground = ValuePromise(false, ignoreRepeated: true) diff --git a/submodules/TelegramUI/TelegramUI/SharedMediaPlayer.swift b/submodules/TelegramUI/TelegramUI/SharedMediaPlayer.swift index 29c72679c4..907a285b13 100644 --- a/submodules/TelegramUI/TelegramUI/SharedMediaPlayer.swift +++ b/submodules/TelegramUI/TelegramUI/SharedMediaPlayer.swift @@ -4,7 +4,6 @@ import SwiftSignalKit import Postbox import TelegramCore import TelegramUIPreferences -import TelegramUIPrivateModule import UniversalMediaPlayer import TelegramAudio import AccountContext diff --git a/submodules/TelegramUI/TelegramUI/StickerPaneSearchContentNode.swift b/submodules/TelegramUI/TelegramUI/StickerPaneSearchContentNode.swift index cc0e408b5a..9913c3bb61 100644 --- a/submodules/TelegramUI/TelegramUI/StickerPaneSearchContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/StickerPaneSearchContentNode.swift @@ -7,7 +7,6 @@ import Postbox import TelegramCore import TelegramPresentationData import LegacyComponents -import TelegramUIPrivateModule import MergeLists import AccountContext import StickerPackPreviewUI diff --git a/submodules/TelegramUI/TelegramUI/TelegramRootController.swift b/submodules/TelegramUI/TelegramUI/TelegramRootController.swift index 3d03cd1495..8570b08578 100644 --- a/submodules/TelegramUI/TelegramUI/TelegramRootController.swift +++ b/submodules/TelegramUI/TelegramUI/TelegramRootController.swift @@ -5,7 +5,6 @@ import Postbox import TelegramCore import SwiftSignalKit import TelegramPresentationData -import TelegramUIPrivateModule import AccountContext import ContactListUI import CallListUI diff --git a/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap b/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap deleted file mode 100644 index 9a912324d9..0000000000 --- a/submodules/TelegramUI/TelegramUI/TelegramUIPrivate/module.modulemap +++ /dev/null @@ -1,5 +0,0 @@ -module TelegramUIPrivateModule { - header "../TGContactModel.h" - header "../TGItemProviderSignals.h" - header "../TGShareLocationSignals.h" -} diff --git a/submodules/TelegramUI/TelegramUI/ThemeAutoNightSettingsController.swift b/submodules/TelegramUI/TelegramUI/ThemeAutoNightSettingsController.swift index 6f1fc58160..dc23c933cc 100644 --- a/submodules/TelegramUI/TelegramUI/ThemeAutoNightSettingsController.swift +++ b/submodules/TelegramUI/TelegramUI/ThemeAutoNightSettingsController.swift @@ -6,7 +6,6 @@ import Postbox import TelegramCore import TelegramPresentationData import TelegramUIPreferences -import TelegramUIPrivateModule import ItemListUI import TelegramStringFormatting import AccountContext diff --git a/submodules/TelegramUI/TelegramUI/WallpaperResources.swift b/submodules/TelegramUI/TelegramUI/WallpaperResources.swift index 61e343e782..3be6af48a8 100644 --- a/submodules/TelegramUI/TelegramUI/WallpaperResources.swift +++ b/submodules/TelegramUI/TelegramUI/WallpaperResources.swift @@ -4,7 +4,6 @@ import SwiftSignalKit import Display import Postbox import TelegramCore -import TelegramUIPrivateModule import MediaResources import ImageBlur import TinyThumbnail diff --git a/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj b/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj index e1143f0bad..2ee0f07eba 100644 --- a/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj @@ -116,13 +116,6 @@ D0068FA821760FA300D1B315 /* StoreDownloadedMedia.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0068FA721760FA300D1B315 /* StoreDownloadedMedia.swift */; }; D007019C2029E8F2006B9E34 /* LegacyICloudFileController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D007019B2029E8F2006B9E34 /* LegacyICloudFileController.swift */; }; D007019E2029EFDD006B9E34 /* ICloudResources.swift in Sources */ = {isa = PBXBuildFile; fileRef = D007019D2029EFDD006B9E34 /* ICloudResources.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 */; }; - D008177C22B46B7E008A895F /* TGItemProviderSignals.h in Headers */ = {isa = PBXBuildFile; fileRef = D008177522B46B7E008A895F /* TGItemProviderSignals.h */; }; - D008177D22B46B7E008A895F /* TGContactModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D008177622B46B7E008A895F /* TGContactModel.m */; }; - D008177E22B46B7E008A895F /* TGItemProviderSignals.m in Sources */ = {isa = PBXBuildFile; fileRef = D008177722B46B7E008A895F /* TGItemProviderSignals.m */; }; - D008177F22B46B7E008A895F /* TGShareLocationSignals.m in Sources */ = {isa = PBXBuildFile; fileRef = D008177822B46B7E008A895F /* TGShareLocationSignals.m */; }; D008178222B47464008A895F /* NotificationContentContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D008178122B47464008A895F /* NotificationContentContext.swift */; }; D00817D022B47A14008A895F /* WakeupManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00817B622B47A12008A895F /* WakeupManager.swift */; }; D00817D522B47A14008A895F /* ApplicationShortcutItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00817BB22B47A13008A895F /* ApplicationShortcutItem.swift */; }; @@ -201,6 +194,7 @@ D03E44582305B4B70049C28B /* WatchBridgeAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E44572305B4B70049C28B /* WatchBridgeAudio.framework */; }; D03E449E2305B6A00049C28B /* WatchBridge.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E449D2305B6A00049C28B /* WatchBridge.framework */; }; D03E44E22305BC900049C28B /* LegacyDataImport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E44E12305BC900049C28B /* LegacyDataImport.framework */; }; + D03E45252305C07A0049C28B /* ShareItems.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E45242305C07A0049C28B /* ShareItems.framework */; }; D04203152037162700490EA5 /* MediaInputPaneTrendingItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04203142037162700490EA5 /* MediaInputPaneTrendingItem.swift */; }; D04281F4200E5AB0009DDE36 /* ChatRecentActionsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04281F3200E5AB0009DDE36 /* ChatRecentActionsController.swift */; }; D04281F6200E5AC2009DDE36 /* ChatRecentActionsControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04281F5200E5AC2009DDE36 /* ChatRecentActionsControllerNode.swift */; }; @@ -798,13 +792,6 @@ D0068FA721760FA300D1B315 /* StoreDownloadedMedia.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StoreDownloadedMedia.swift; sourceTree = ""; }; D007019B2029E8F2006B9E34 /* LegacyICloudFileController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyICloudFileController.swift; sourceTree = ""; }; D007019D2029EFDD006B9E34 /* ICloudResources.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudResources.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 = ""; }; - D008177522B46B7E008A895F /* TGItemProviderSignals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGItemProviderSignals.h; sourceTree = ""; }; - D008177622B46B7E008A895F /* TGContactModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGContactModel.m; sourceTree = ""; }; - D008177722B46B7E008A895F /* TGItemProviderSignals.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGItemProviderSignals.m; sourceTree = ""; }; - D008177822B46B7E008A895F /* TGShareLocationSignals.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGShareLocationSignals.m; sourceTree = ""; }; D008178122B47464008A895F /* NotificationContentContext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationContentContext.swift; sourceTree = ""; }; D00817B622B47A12008A895F /* WakeupManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WakeupManager.swift; sourceTree = ""; }; D00817BB22B47A13008A895F /* ApplicationShortcutItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ApplicationShortcutItem.swift; sourceTree = ""; }; @@ -927,6 +914,7 @@ D03E44572305B4B70049C28B /* WatchBridgeAudio.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WatchBridgeAudio.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E449D2305B6A00049C28B /* WatchBridge.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WatchBridge.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E44E12305BC900049C28B /* LegacyDataImport.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LegacyDataImport.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E45242305C07A0049C28B /* ShareItems.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ShareItems.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E5E081E55C49C0029569A /* DebugAccountsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DebugAccountsController.swift; sourceTree = ""; }; D04203142037162700490EA5 /* MediaInputPaneTrendingItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaInputPaneTrendingItem.swift; sourceTree = ""; }; D04281F3200E5AB0009DDE36 /* ChatRecentActionsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatRecentActionsController.swift; sourceTree = ""; }; @@ -1389,6 +1377,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D03E45252305C07A0049C28B /* ShareItems.framework in Frameworks */, D03E44E22305BC900049C28B /* LegacyDataImport.framework in Frameworks */, D03E449E2305B6A00049C28B /* WatchBridge.framework in Frameworks */, D03E44582305B4B70049C28B /* WatchBridgeAudio.framework in Frameworks */, @@ -1710,13 +1699,6 @@ isa = PBXGroup; children = ( D0750C8622B2E76300BE5F6E /* ShareExtensionContext.swift */, - D008177222B46B7D008A895F /* ShareItems.swift */, - D008177422B46B7E008A895F /* TGContactModel.h */, - D008177622B46B7E008A895F /* TGContactModel.m */, - D008177522B46B7E008A895F /* TGItemProviderSignals.h */, - D008177722B46B7E008A895F /* TGItemProviderSignals.m */, - D008177322B46B7E008A895F /* TGShareLocationSignals.h */, - D008177822B46B7E008A895F /* TGShareLocationSignals.m */, ); name = Share; sourceTree = ""; @@ -1912,13 +1894,6 @@ name = "Chat Recent Actions"; sourceTree = ""; }; - D04614352005093B00EC0EF2 /* Location */ = { - isa = PBXGroup; - children = ( - ); - name = Location; - sourceTree = ""; - }; D0471B521EFD8EBC0074D609 /* Resources */ = { isa = PBXGroup; children = ( @@ -2110,6 +2085,7 @@ D08D45281D5E340200A7428A /* Frameworks */ = { isa = PBXGroup; children = ( + D03E45242305C07A0049C28B /* ShareItems.framework */, D03E44E12305BC900049C28B /* LegacyDataImport.framework */, D03E449D2305B6A00049C28B /* WatchBridge.framework */, D03E44572305B4B70049C28B /* WatchBridgeAudio.framework */, @@ -2932,7 +2908,6 @@ D01C7EFE1EF9D434008305F1 /* Device Contacts */, D025A4241F79428300563950 /* Fetch Manager */, 09E4A7FC223ADF300038140F /* Images */, - D04614352005093B00EC0EF2 /* Location */, 09E4A7FD223ADF940038140F /* Routing */, D01848F021A2323D00B6DEBD /* Strings */, D073CE701DCBF23F007511FD /* DeclareEncodables.swift */, @@ -3056,9 +3031,6 @@ buildActionMask = 2147483647; files = ( D08803C51F6064CF00DD7951 /* TelegramUI.h in Headers */, - D008177B22B46B7E008A895F /* TGContactModel.h in Headers */, - D008177C22B46B7E008A895F /* TGItemProviderSignals.h in Headers */, - D008177A22B46B7E008A895F /* TGShareLocationSignals.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3323,17 +3295,14 @@ D09D88731F86D56B00BEB4C9 /* AuthorizationLayout.swift in Sources */, D0EC6D291EB9F58800EBF1C3 /* FetchVideoMediaResource.swift in Sources */, 09EDAD2E221164440012A50B /* AutodownloadSizeLimitItem.swift in Sources */, - D008177E22B46B7E008A895F /* TGItemProviderSignals.m in Sources */, 099529B421D3E5D800805E13 /* CheckDiskSpace.swift in Sources */, D0EC6D2A1EB9F58800EBF1C3 /* FetchPhotoLibraryImageResource.swift in Sources */, D0EC6D2B1EB9F58800EBF1C3 /* FileMediaResourceStatus.swift in Sources */, 09510B0F22F9347E0078CAB7 /* BundleResource.swift in Sources */, D025402522E1E00100AC0195 /* ChatSlowmodeHintController.swift in Sources */, - D008177D22B46B7E008A895F /* TGContactModel.m in Sources */, D0EC6D301EB9F58800EBF1C3 /* RadialProgressNode.swift in Sources */, D0EC6D311EB9F58800EBF1C3 /* RadialTimeoutNode.swift in Sources */, 09CE950A2237B93500A7D2C3 /* SettingsSearchResultItem.swift in Sources */, - D008177F22B46B7E008A895F /* TGShareLocationSignals.m in Sources */, D0185E8C208A025A005E1A6C /* ProxySettingsServerItem.swift in Sources */, 090E63EE2196FE3A00E3C035 /* OpenAddContact.swift in Sources */, D06F1EA41F6C0A5D00FE8B74 /* ChatHistorySearchContainerNode.swift in Sources */, @@ -3405,7 +3374,6 @@ D0EC6D871EB9F58800EBF1C3 /* ChatTitleView.swift in Sources */, D0EC6D881EB9F58800EBF1C3 /* ChatControllerTitlePanelNodeContainer.swift in Sources */, 9F06830B21A404C4001D8EDB /* NotificationExceptionSettingsController.swift in Sources */, - D008177922B46B7E008A895F /* ShareItems.swift in Sources */, D0EC6D891EB9F58800EBF1C3 /* ChatSecretAutoremoveTimerActionSheet.swift in Sources */, D0EC6D8A1EB9F58800EBF1C3 /* ChatInfo.swift in Sources */, D0EC6D8B1EB9F58800EBF1C3 /* ChatHistoryNavigationStack.swift in Sources */, @@ -3802,6 +3770,7 @@ "$(PROJECT_DIR)/third-party/libjpeg-turbo", "$(PROJECT_DIR)/../opus/Sources/opus/lib", ); + MODULEMAP_PRIVATE_FILE = ""; OTHER_CFLAGS = ( "-DTGVOIP_USE_CUSTOM_CRYPTO", "-DWEBRTC_APM_DEBUG_DUMP=0", @@ -4001,6 +3970,7 @@ "$(PROJECT_DIR)/third-party/libjpeg-turbo", "$(PROJECT_DIR)/../opus/Sources/opus/lib", ); + MODULEMAP_PRIVATE_FILE = ""; OTHER_CFLAGS = ( "-DTGVOIP_USE_CUSTOM_CRYPTO", "-DWEBRTC_APM_DEBUG_DUMP=0", @@ -4119,6 +4089,7 @@ "$(PROJECT_DIR)/third-party/libjpeg-turbo", "$(PROJECT_DIR)/../opus/Sources/opus/lib", ); + MODULEMAP_PRIVATE_FILE = ""; OTHER_CFLAGS = ( "-DTGVOIP_USE_CUSTOM_CRYPTO", "-DWEBRTC_APM_DEBUG_DUMP=0", @@ -4246,6 +4217,7 @@ "$(PROJECT_DIR)/third-party/libjpeg-turbo", "$(PROJECT_DIR)/../opus/Sources/opus/lib", ); + MODULEMAP_PRIVATE_FILE = ""; OTHER_CFLAGS = ( "-DTGVOIP_USE_CUSTOM_CRYPTO", "-DWEBRTC_APM_DEBUG_DUMP=0", @@ -4363,6 +4335,7 @@ "$(PROJECT_DIR)/third-party/libjpeg-turbo", "$(PROJECT_DIR)/../opus/Sources/opus/lib", ); + MODULEMAP_PRIVATE_FILE = ""; OTHER_CFLAGS = ( "-DTGVOIP_USE_CUSTOM_CRYPTO", "-DWEBRTC_APM_DEBUG_DUMP=0", @@ -4411,6 +4384,7 @@ "$(PROJECT_DIR)/third-party/libjpeg-turbo", "$(PROJECT_DIR)/../opus/Sources/opus/lib", ); + MODULEMAP_PRIVATE_FILE = ""; OTHER_CFLAGS = ( "-DTGVOIP_USE_CUSTOM_CRYPTO", "-DWEBRTC_APM_DEBUG_DUMP=0", @@ -4457,6 +4431,7 @@ "$(PROJECT_DIR)/third-party/libjpeg-turbo", "$(PROJECT_DIR)/../opus/Sources/opus/lib", ); + MODULEMAP_PRIVATE_FILE = ""; OTHER_CFLAGS = ( "-DTGVOIP_USE_CUSTOM_CRYPTO", "-DWEBRTC_APM_DEBUG_DUMP=0", @@ -4502,6 +4477,7 @@ "$(PROJECT_DIR)/third-party/libjpeg-turbo", "$(PROJECT_DIR)/../opus/Sources/opus/lib", ); + MODULEMAP_PRIVATE_FILE = ""; OTHER_CFLAGS = ( "-DTGVOIP_USE_CUSTOM_CRYPTO", "-DWEBRTC_APM_DEBUG_DUMP=0", diff --git a/submodules/libphonenumber/Info.plist b/submodules/libphonenumber/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/libphonenumber/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/TelegramCore/third-party/libphonenumber-iOS/NBAsYouTypeFormatter.h b/submodules/libphonenumber/Sources/NBAsYouTypeFormatter.h similarity index 100% rename from submodules/TelegramCore/third-party/libphonenumber-iOS/NBAsYouTypeFormatter.h rename to submodules/libphonenumber/Sources/NBAsYouTypeFormatter.h diff --git a/submodules/TelegramCore/third-party/libphonenumber-iOS/NBAsYouTypeFormatter.m b/submodules/libphonenumber/Sources/NBAsYouTypeFormatter.m similarity index 100% rename from submodules/TelegramCore/third-party/libphonenumber-iOS/NBAsYouTypeFormatter.m rename to submodules/libphonenumber/Sources/NBAsYouTypeFormatter.m diff --git a/submodules/TelegramCore/third-party/libphonenumber-iOS/NBMetadataCore.h b/submodules/libphonenumber/Sources/NBMetadataCore.h similarity index 100% rename from submodules/TelegramCore/third-party/libphonenumber-iOS/NBMetadataCore.h rename to submodules/libphonenumber/Sources/NBMetadataCore.h diff --git a/submodules/TelegramCore/third-party/libphonenumber-iOS/NBMetadataCore.m b/submodules/libphonenumber/Sources/NBMetadataCore.m similarity index 100% rename from submodules/TelegramCore/third-party/libphonenumber-iOS/NBMetadataCore.m rename to submodules/libphonenumber/Sources/NBMetadataCore.m diff --git a/submodules/TelegramCore/third-party/libphonenumber-iOS/NBMetadataCoreMapper.h b/submodules/libphonenumber/Sources/NBMetadataCoreMapper.h similarity index 100% rename from submodules/TelegramCore/third-party/libphonenumber-iOS/NBMetadataCoreMapper.h rename to submodules/libphonenumber/Sources/NBMetadataCoreMapper.h diff --git a/submodules/TelegramCore/third-party/libphonenumber-iOS/NBMetadataCoreMapper.m b/submodules/libphonenumber/Sources/NBMetadataCoreMapper.m similarity index 100% rename from submodules/TelegramCore/third-party/libphonenumber-iOS/NBMetadataCoreMapper.m rename to submodules/libphonenumber/Sources/NBMetadataCoreMapper.m diff --git a/submodules/TelegramCore/third-party/libphonenumber-iOS/NBMetadataCoreTest.h b/submodules/libphonenumber/Sources/NBMetadataCoreTest.h similarity index 100% rename from submodules/TelegramCore/third-party/libphonenumber-iOS/NBMetadataCoreTest.h rename to submodules/libphonenumber/Sources/NBMetadataCoreTest.h diff --git a/submodules/TelegramCore/third-party/libphonenumber-iOS/NBMetadataCoreTest.m b/submodules/libphonenumber/Sources/NBMetadataCoreTest.m similarity index 100% rename from submodules/TelegramCore/third-party/libphonenumber-iOS/NBMetadataCoreTest.m rename to submodules/libphonenumber/Sources/NBMetadataCoreTest.m diff --git a/submodules/TelegramCore/third-party/libphonenumber-iOS/NBMetadataCoreTestMapper.h b/submodules/libphonenumber/Sources/NBMetadataCoreTestMapper.h similarity index 100% rename from submodules/TelegramCore/third-party/libphonenumber-iOS/NBMetadataCoreTestMapper.h rename to submodules/libphonenumber/Sources/NBMetadataCoreTestMapper.h diff --git a/submodules/TelegramCore/third-party/libphonenumber-iOS/NBMetadataCoreTestMapper.m b/submodules/libphonenumber/Sources/NBMetadataCoreTestMapper.m similarity index 100% rename from submodules/TelegramCore/third-party/libphonenumber-iOS/NBMetadataCoreTestMapper.m rename to submodules/libphonenumber/Sources/NBMetadataCoreTestMapper.m diff --git a/submodules/TelegramCore/third-party/libphonenumber-iOS/NBMetadataHelper.h b/submodules/libphonenumber/Sources/NBMetadataHelper.h similarity index 100% rename from submodules/TelegramCore/third-party/libphonenumber-iOS/NBMetadataHelper.h rename to submodules/libphonenumber/Sources/NBMetadataHelper.h diff --git a/submodules/TelegramCore/third-party/libphonenumber-iOS/NBMetadataHelper.m b/submodules/libphonenumber/Sources/NBMetadataHelper.m similarity index 100% rename from submodules/TelegramCore/third-party/libphonenumber-iOS/NBMetadataHelper.m rename to submodules/libphonenumber/Sources/NBMetadataHelper.m diff --git a/submodules/TelegramCore/third-party/libphonenumber-iOS/NBNumberFormat.h b/submodules/libphonenumber/Sources/NBNumberFormat.h similarity index 100% rename from submodules/TelegramCore/third-party/libphonenumber-iOS/NBNumberFormat.h rename to submodules/libphonenumber/Sources/NBNumberFormat.h diff --git a/submodules/TelegramCore/third-party/libphonenumber-iOS/NBNumberFormat.m b/submodules/libphonenumber/Sources/NBNumberFormat.m similarity index 100% rename from submodules/TelegramCore/third-party/libphonenumber-iOS/NBNumberFormat.m rename to submodules/libphonenumber/Sources/NBNumberFormat.m diff --git a/submodules/TelegramCore/third-party/libphonenumber-iOS/NBPhoneMetaData.h b/submodules/libphonenumber/Sources/NBPhoneMetaData.h similarity index 100% rename from submodules/TelegramCore/third-party/libphonenumber-iOS/NBPhoneMetaData.h rename to submodules/libphonenumber/Sources/NBPhoneMetaData.h diff --git a/submodules/TelegramCore/third-party/libphonenumber-iOS/NBPhoneMetaData.m b/submodules/libphonenumber/Sources/NBPhoneMetaData.m similarity index 100% rename from submodules/TelegramCore/third-party/libphonenumber-iOS/NBPhoneMetaData.m rename to submodules/libphonenumber/Sources/NBPhoneMetaData.m diff --git a/submodules/TelegramCore/third-party/libphonenumber-iOS/NBPhoneMetaDataGenerator.h b/submodules/libphonenumber/Sources/NBPhoneMetaDataGenerator.h similarity index 100% rename from submodules/TelegramCore/third-party/libphonenumber-iOS/NBPhoneMetaDataGenerator.h rename to submodules/libphonenumber/Sources/NBPhoneMetaDataGenerator.h diff --git a/submodules/TelegramCore/third-party/libphonenumber-iOS/NBPhoneMetaDataGenerator.m b/submodules/libphonenumber/Sources/NBPhoneMetaDataGenerator.m similarity index 100% rename from submodules/TelegramCore/third-party/libphonenumber-iOS/NBPhoneMetaDataGenerator.m rename to submodules/libphonenumber/Sources/NBPhoneMetaDataGenerator.m diff --git a/submodules/TelegramCore/third-party/libphonenumber-iOS/NBPhoneNumber.h b/submodules/libphonenumber/Sources/NBPhoneNumber.h similarity index 94% rename from submodules/TelegramCore/third-party/libphonenumber-iOS/NBPhoneNumber.h rename to submodules/libphonenumber/Sources/NBPhoneNumber.h index 7b95671e53..51b3a2ac46 100755 --- a/submodules/TelegramCore/third-party/libphonenumber-iOS/NBPhoneNumber.h +++ b/submodules/libphonenumber/Sources/NBPhoneNumber.h @@ -5,7 +5,7 @@ // #import -#import "NBPhoneNumberDefines.h" +#import @interface NBPhoneNumber : NSObject diff --git a/submodules/TelegramCore/third-party/libphonenumber-iOS/NBPhoneNumber.m b/submodules/libphonenumber/Sources/NBPhoneNumber.m similarity index 100% rename from submodules/TelegramCore/third-party/libphonenumber-iOS/NBPhoneNumber.m rename to submodules/libphonenumber/Sources/NBPhoneNumber.m diff --git a/submodules/TelegramCore/third-party/libphonenumber-iOS/NBPhoneNumberDefines.h b/submodules/libphonenumber/Sources/NBPhoneNumberDefines.h similarity index 100% rename from submodules/TelegramCore/third-party/libphonenumber-iOS/NBPhoneNumberDefines.h rename to submodules/libphonenumber/Sources/NBPhoneNumberDefines.h diff --git a/submodules/TelegramCore/third-party/libphonenumber-iOS/NBPhoneNumberDefines.m b/submodules/libphonenumber/Sources/NBPhoneNumberDefines.m similarity index 100% rename from submodules/TelegramCore/third-party/libphonenumber-iOS/NBPhoneNumberDefines.m rename to submodules/libphonenumber/Sources/NBPhoneNumberDefines.m diff --git a/submodules/TelegramCore/third-party/libphonenumber-iOS/NBPhoneNumberDesc.h b/submodules/libphonenumber/Sources/NBPhoneNumberDesc.h similarity index 100% rename from submodules/TelegramCore/third-party/libphonenumber-iOS/NBPhoneNumberDesc.h rename to submodules/libphonenumber/Sources/NBPhoneNumberDesc.h diff --git a/submodules/TelegramCore/third-party/libphonenumber-iOS/NBPhoneNumberDesc.m b/submodules/libphonenumber/Sources/NBPhoneNumberDesc.m similarity index 100% rename from submodules/TelegramCore/third-party/libphonenumber-iOS/NBPhoneNumberDesc.m rename to submodules/libphonenumber/Sources/NBPhoneNumberDesc.m diff --git a/submodules/TelegramCore/third-party/libphonenumber-iOS/NBPhoneNumberUtil.h b/submodules/libphonenumber/Sources/NBPhoneNumberUtil.h similarity index 99% rename from submodules/TelegramCore/third-party/libphonenumber-iOS/NBPhoneNumberUtil.h rename to submodules/libphonenumber/Sources/NBPhoneNumberUtil.h index 428439b7e6..4d1ce4fea0 100755 --- a/submodules/TelegramCore/third-party/libphonenumber-iOS/NBPhoneNumberUtil.h +++ b/submodules/libphonenumber/Sources/NBPhoneNumberUtil.h @@ -7,7 +7,7 @@ // #import -#import "NBPhoneNumberDefines.h" +#import @class NBPhoneMetaData, NBPhoneNumber; diff --git a/submodules/TelegramCore/third-party/libphonenumber-iOS/NBPhoneNumberUtil.m b/submodules/libphonenumber/Sources/NBPhoneNumberUtil.m similarity index 100% rename from submodules/TelegramCore/third-party/libphonenumber-iOS/NBPhoneNumberUtil.m rename to submodules/libphonenumber/Sources/NBPhoneNumberUtil.m diff --git a/submodules/libphonenumber/Sources/libphonenumber.h b/submodules/libphonenumber/Sources/libphonenumber.h new file mode 100644 index 0000000000..da51c6395c --- /dev/null +++ b/submodules/libphonenumber/Sources/libphonenumber.h @@ -0,0 +1,12 @@ +#import + +//! Project version number for libphonenumber_iOS. +FOUNDATION_EXPORT double libphonenumber_iOSVersionNumber; + +//! Project version string for libphonenumber_iOS. +FOUNDATION_EXPORT const unsigned char libphonenumber_iOSVersionString[]; + +#import +#import +#import +#import diff --git a/submodules/libphonenumber/libphonenumber_Xcode.xcodeproj/project.pbxproj b/submodules/libphonenumber/libphonenumber_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..032c923888 --- /dev/null +++ b/submodules/libphonenumber/libphonenumber_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,628 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E458F2305CE840049C28B /* libphonenumber.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E458D2305CE840049C28B /* libphonenumber.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E45B32305D1F20049C28B /* NBNumberFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45992305D1EF0049C28B /* NBNumberFormat.h */; }; + D03E45B42305D1F20049C28B /* NBMetadataHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E459A2305D1EF0049C28B /* NBMetadataHelper.h */; }; + D03E45B52305D1F20049C28B /* NBMetadataCoreTest.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E459B2305D1EF0049C28B /* NBMetadataCoreTest.h */; }; + D03E45B62305D1F20049C28B /* NBPhoneNumberDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E459C2305D1EF0049C28B /* NBPhoneNumberDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E45B72305D1F20049C28B /* NBAsYouTypeFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E459D2305D1EF0049C28B /* NBAsYouTypeFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E45B82305D1F20049C28B /* NBMetadataCore.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E459E2305D1EF0049C28B /* NBMetadataCore.h */; }; + D03E45B92305D1F20049C28B /* NBPhoneNumberDesc.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E459F2305D1EF0049C28B /* NBPhoneNumberDesc.m */; }; + D03E45BA2305D1F20049C28B /* NBMetadataCoreMapper.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45A02305D1EF0049C28B /* NBMetadataCoreMapper.h */; }; + D03E45BB2305D1F20049C28B /* NBPhoneNumberDefines.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45A12305D1EF0049C28B /* NBPhoneNumberDefines.m */; }; + D03E45BC2305D1F20049C28B /* NBPhoneMetaDataGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45A22305D1EF0049C28B /* NBPhoneMetaDataGenerator.h */; }; + D03E45BD2305D1F20049C28B /* NBMetadataCoreTestMapper.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45A32305D1F00049C28B /* NBMetadataCoreTestMapper.m */; }; + D03E45BE2305D1F20049C28B /* NBMetadataCoreMapper.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45A42305D1F00049C28B /* NBMetadataCoreMapper.m */; }; + D03E45BF2305D1F20049C28B /* NBPhoneNumberUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45A52305D1F00049C28B /* NBPhoneNumberUtil.m */; }; + D03E45C02305D1F20049C28B /* NBPhoneNumberUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45A62305D1F00049C28B /* NBPhoneNumberUtil.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E45C12305D1F20049C28B /* NBPhoneNumberDesc.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45A72305D1F00049C28B /* NBPhoneNumberDesc.h */; }; + D03E45C22305D1F20049C28B /* NBMetadataCoreTestMapper.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45A82305D1F00049C28B /* NBMetadataCoreTestMapper.h */; }; + D03E45C32305D1F20049C28B /* NBMetadataCore.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45A92305D1F00049C28B /* NBMetadataCore.m */; }; + D03E45C42305D1F20049C28B /* NBPhoneNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45AA2305D1F10049C28B /* NBPhoneNumber.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E45C52305D1F20049C28B /* NBPhoneMetaDataGenerator.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45AB2305D1F10049C28B /* NBPhoneMetaDataGenerator.m */; }; + D03E45C62305D1F20049C28B /* NBMetadataHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45AC2305D1F10049C28B /* NBMetadataHelper.m */; }; + D03E45C72305D1F20049C28B /* NBPhoneNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45AD2305D1F10049C28B /* NBPhoneNumber.m */; }; + D03E45C82305D1F20049C28B /* NBNumberFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45AE2305D1F10049C28B /* NBNumberFormat.m */; }; + D03E45C92305D1F20049C28B /* NBPhoneMetaData.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45AF2305D1F10049C28B /* NBPhoneMetaData.m */; }; + D03E45CA2305D1F20049C28B /* NBPhoneMetaData.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45B02305D1F10049C28B /* NBPhoneMetaData.h */; }; + D03E45CB2305D1F20049C28B /* NBAsYouTypeFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45B12305D1F10049C28B /* NBAsYouTypeFormatter.m */; }; + D03E45CC2305D1F20049C28B /* NBMetadataCoreTest.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45B22305D1F10049C28B /* NBMetadataCoreTest.m */; }; + D03E45CF2305D32E0049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E45CE2305D32D0049C28B /* Foundation.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E458A2305CE830049C28B /* libphonenumber.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = libphonenumber.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E458D2305CE840049C28B /* libphonenumber.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libphonenumber.h; sourceTree = ""; }; + D03E458E2305CE840049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E45992305D1EF0049C28B /* NBNumberFormat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBNumberFormat.h; sourceTree = ""; }; + D03E459A2305D1EF0049C28B /* NBMetadataHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBMetadataHelper.h; sourceTree = ""; }; + D03E459B2305D1EF0049C28B /* NBMetadataCoreTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBMetadataCoreTest.h; sourceTree = ""; }; + D03E459C2305D1EF0049C28B /* NBPhoneNumberDefines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBPhoneNumberDefines.h; sourceTree = ""; }; + D03E459D2305D1EF0049C28B /* NBAsYouTypeFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBAsYouTypeFormatter.h; sourceTree = ""; }; + D03E459E2305D1EF0049C28B /* NBMetadataCore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBMetadataCore.h; sourceTree = ""; }; + D03E459F2305D1EF0049C28B /* NBPhoneNumberDesc.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBPhoneNumberDesc.m; sourceTree = ""; }; + D03E45A02305D1EF0049C28B /* NBMetadataCoreMapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBMetadataCoreMapper.h; sourceTree = ""; }; + D03E45A12305D1EF0049C28B /* NBPhoneNumberDefines.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBPhoneNumberDefines.m; sourceTree = ""; }; + D03E45A22305D1EF0049C28B /* NBPhoneMetaDataGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBPhoneMetaDataGenerator.h; sourceTree = ""; }; + D03E45A32305D1F00049C28B /* NBMetadataCoreTestMapper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBMetadataCoreTestMapper.m; sourceTree = ""; }; + D03E45A42305D1F00049C28B /* NBMetadataCoreMapper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBMetadataCoreMapper.m; sourceTree = ""; }; + D03E45A52305D1F00049C28B /* NBPhoneNumberUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBPhoneNumberUtil.m; sourceTree = ""; }; + D03E45A62305D1F00049C28B /* NBPhoneNumberUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBPhoneNumberUtil.h; sourceTree = ""; }; + D03E45A72305D1F00049C28B /* NBPhoneNumberDesc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBPhoneNumberDesc.h; sourceTree = ""; }; + D03E45A82305D1F00049C28B /* NBMetadataCoreTestMapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBMetadataCoreTestMapper.h; sourceTree = ""; }; + D03E45A92305D1F00049C28B /* NBMetadataCore.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBMetadataCore.m; sourceTree = ""; }; + D03E45AA2305D1F10049C28B /* NBPhoneNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBPhoneNumber.h; sourceTree = ""; }; + D03E45AB2305D1F10049C28B /* NBPhoneMetaDataGenerator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBPhoneMetaDataGenerator.m; sourceTree = ""; }; + D03E45AC2305D1F10049C28B /* NBMetadataHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBMetadataHelper.m; sourceTree = ""; }; + D03E45AD2305D1F10049C28B /* NBPhoneNumber.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBPhoneNumber.m; sourceTree = ""; }; + D03E45AE2305D1F10049C28B /* NBNumberFormat.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBNumberFormat.m; sourceTree = ""; }; + D03E45AF2305D1F10049C28B /* NBPhoneMetaData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBPhoneMetaData.m; sourceTree = ""; }; + D03E45B02305D1F10049C28B /* NBPhoneMetaData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBPhoneMetaData.h; sourceTree = ""; }; + D03E45B12305D1F10049C28B /* NBAsYouTypeFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBAsYouTypeFormatter.m; sourceTree = ""; }; + D03E45B22305D1F10049C28B /* NBMetadataCoreTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBMetadataCoreTest.m; sourceTree = ""; }; + D03E45CE2305D32D0049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E45872305CE830049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E45CF2305D32E0049C28B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E45802305CE830049C28B = { + isa = PBXGroup; + children = ( + D03E458E2305CE840049C28B /* Info.plist */, + D03E458C2305CE840049C28B /* Sources */, + D03E458B2305CE830049C28B /* Products */, + D03E45CD2305D32D0049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E458B2305CE830049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E458A2305CE830049C28B /* libphonenumber.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E458C2305CE840049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E459D2305D1EF0049C28B /* NBAsYouTypeFormatter.h */, + D03E45B12305D1F10049C28B /* NBAsYouTypeFormatter.m */, + D03E459E2305D1EF0049C28B /* NBMetadataCore.h */, + D03E45A92305D1F00049C28B /* NBMetadataCore.m */, + D03E45A02305D1EF0049C28B /* NBMetadataCoreMapper.h */, + D03E45A42305D1F00049C28B /* NBMetadataCoreMapper.m */, + D03E459B2305D1EF0049C28B /* NBMetadataCoreTest.h */, + D03E45B22305D1F10049C28B /* NBMetadataCoreTest.m */, + D03E45A82305D1F00049C28B /* NBMetadataCoreTestMapper.h */, + D03E45A32305D1F00049C28B /* NBMetadataCoreTestMapper.m */, + D03E459A2305D1EF0049C28B /* NBMetadataHelper.h */, + D03E45AC2305D1F10049C28B /* NBMetadataHelper.m */, + D03E45992305D1EF0049C28B /* NBNumberFormat.h */, + D03E45AE2305D1F10049C28B /* NBNumberFormat.m */, + D03E45B02305D1F10049C28B /* NBPhoneMetaData.h */, + D03E45AF2305D1F10049C28B /* NBPhoneMetaData.m */, + D03E45A22305D1EF0049C28B /* NBPhoneMetaDataGenerator.h */, + D03E45AB2305D1F10049C28B /* NBPhoneMetaDataGenerator.m */, + D03E45AA2305D1F10049C28B /* NBPhoneNumber.h */, + D03E45AD2305D1F10049C28B /* NBPhoneNumber.m */, + D03E459C2305D1EF0049C28B /* NBPhoneNumberDefines.h */, + D03E45A12305D1EF0049C28B /* NBPhoneNumberDefines.m */, + D03E45A72305D1F00049C28B /* NBPhoneNumberDesc.h */, + D03E459F2305D1EF0049C28B /* NBPhoneNumberDesc.m */, + D03E45A62305D1F00049C28B /* NBPhoneNumberUtil.h */, + D03E45A52305D1F00049C28B /* NBPhoneNumberUtil.m */, + D03E458D2305CE840049C28B /* libphonenumber.h */, + ); + path = Sources; + sourceTree = ""; + }; + D03E45CD2305D32D0049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E45CE2305D32D0049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E45852305CE830049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E45B52305D1F20049C28B /* NBMetadataCoreTest.h in Headers */, + D03E45BC2305D1F20049C28B /* NBPhoneMetaDataGenerator.h in Headers */, + D03E45B32305D1F20049C28B /* NBNumberFormat.h in Headers */, + D03E458F2305CE840049C28B /* libphonenumber.h in Headers */, + D03E45C02305D1F20049C28B /* NBPhoneNumberUtil.h in Headers */, + D03E45BA2305D1F20049C28B /* NBMetadataCoreMapper.h in Headers */, + D03E45B72305D1F20049C28B /* NBAsYouTypeFormatter.h in Headers */, + D03E45C42305D1F20049C28B /* NBPhoneNumber.h in Headers */, + D03E45B62305D1F20049C28B /* NBPhoneNumberDefines.h in Headers */, + D03E45B82305D1F20049C28B /* NBMetadataCore.h in Headers */, + D03E45CA2305D1F20049C28B /* NBPhoneMetaData.h in Headers */, + D03E45C12305D1F20049C28B /* NBPhoneNumberDesc.h in Headers */, + D03E45B42305D1F20049C28B /* NBMetadataHelper.h in Headers */, + D03E45C22305D1F20049C28B /* NBMetadataCoreTestMapper.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E45892305CE830049C28B /* libphonenumber */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E45922305CE840049C28B /* Build configuration list for PBXNativeTarget "libphonenumber" */; + buildPhases = ( + D03E45852305CE830049C28B /* Headers */, + D03E45862305CE830049C28B /* Sources */, + D03E45872305CE830049C28B /* Frameworks */, + D03E45882305CE830049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = libphonenumber; + productName = "libphonenumber-iOS"; + productReference = D03E458A2305CE830049C28B /* libphonenumber.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E45812305CE830049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E45892305CE830049C28B = { + CreatedOnToolsVersion = 10.3; + }; + }; + }; + buildConfigurationList = D03E45842305CE830049C28B /* Build configuration list for PBXProject "libphonenumber_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E45802305CE830049C28B; + productRefGroup = D03E458B2305CE830049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E45892305CE830049C28B /* libphonenumber */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E45882305CE830049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E45862305CE830049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E45BE2305D1F20049C28B /* NBMetadataCoreMapper.m in Sources */, + D03E45BD2305D1F20049C28B /* NBMetadataCoreTestMapper.m in Sources */, + D03E45BB2305D1F20049C28B /* NBPhoneNumberDefines.m in Sources */, + D03E45C82305D1F20049C28B /* NBNumberFormat.m in Sources */, + D03E45CB2305D1F20049C28B /* NBAsYouTypeFormatter.m in Sources */, + D03E45C32305D1F20049C28B /* NBMetadataCore.m in Sources */, + D03E45B92305D1F20049C28B /* NBPhoneNumberDesc.m in Sources */, + D03E45C72305D1F20049C28B /* NBPhoneNumber.m in Sources */, + D03E45C92305D1F20049C28B /* NBPhoneMetaData.m in Sources */, + D03E45CC2305D1F20049C28B /* NBMetadataCoreTest.m in Sources */, + D03E45C52305D1F20049C28B /* NBPhoneMetaDataGenerator.m in Sources */, + D03E45C62305D1F20049C28B /* NBMetadataHelper.m in Sources */, + D03E45BF2305D1F20049C28B /* NBPhoneNumberUtil.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E45902305CE840049C28B /* 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; + }; + D03E45912305CE840049C28B /* 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; + }; + D03E45932305CE840049C28B /* DebugAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = 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.libphonenumber; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugAppStoreLLC; + }; + D03E45942305CE840049C28B /* ReleaseAppStoreLLC */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = 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.libphonenumber; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E45952305CE9A0049C28B /* 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; + }; + D03E45962305CE9A0049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = 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.libphonenumber; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugHockeyapp; + }; + D03E45972305CEA30049C28B /* 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; + }; + D03E45982305CEA30049C28B /* ReleaseHockeyappInternal */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = 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.libphonenumber; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseHockeyappInternal; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D03E45842305CE830049C28B /* Build configuration list for PBXProject "libphonenumber_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E45902305CE840049C28B /* DebugAppStoreLLC */, + D03E45952305CE9A0049C28B /* DebugHockeyapp */, + D03E45912305CE840049C28B /* ReleaseAppStoreLLC */, + D03E45972305CEA30049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E45922305CE840049C28B /* Build configuration list for PBXNativeTarget "libphonenumber" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E45932305CE840049C28B /* DebugAppStoreLLC */, + D03E45962305CE9A0049C28B /* DebugHockeyapp */, + D03E45942305CE840049C28B /* ReleaseAppStoreLLC */, + D03E45982305CEA30049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E45812305CE830049C28B /* Project object */; +} diff --git a/submodules/sqlcipher/Info.plist b/submodules/sqlcipher/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/sqlcipher/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/Postbox/Postbox/PostboxPrivate/sqlcipher/SQLite-Bridging.h b/submodules/sqlcipher/Sources/SQLite-Bridging.h similarity index 100% rename from submodules/Postbox/Postbox/PostboxPrivate/sqlcipher/SQLite-Bridging.h rename to submodules/sqlcipher/Sources/SQLite-Bridging.h diff --git a/submodules/Postbox/Postbox/PostboxPrivate/sqlcipher/SQLite-Bridging.m b/submodules/sqlcipher/Sources/SQLite-Bridging.m similarity index 100% rename from submodules/Postbox/Postbox/PostboxPrivate/sqlcipher/SQLite-Bridging.m rename to submodules/sqlcipher/Sources/SQLite-Bridging.m diff --git a/submodules/Postbox/Postbox/PostboxPrivate/sqlcipher/fts3_tokenizer.h b/submodules/sqlcipher/Sources/fts3_tokenizer.h similarity index 100% rename from submodules/Postbox/Postbox/PostboxPrivate/sqlcipher/fts3_tokenizer.h rename to submodules/sqlcipher/Sources/fts3_tokenizer.h diff --git a/submodules/sqlcipher/Sources/sqlcipher.h b/submodules/sqlcipher/Sources/sqlcipher.h new file mode 100644 index 0000000000..7122be0e8d --- /dev/null +++ b/submodules/sqlcipher/Sources/sqlcipher.h @@ -0,0 +1,11 @@ +#import + +//! Project version number for sqlcipher. +FOUNDATION_EXPORT double sqlcipherVersionNumber; + +//! Project version string for sqlcipher. +FOUNDATION_EXPORT const unsigned char sqlcipherVersionString[]; + +#import +#import +#import diff --git a/submodules/sqlcipher/Sources/sqlcipher_config.h b/submodules/sqlcipher/Sources/sqlcipher_config.h new file mode 100644 index 0000000000..ecdf06f82f --- /dev/null +++ b/submodules/sqlcipher/Sources/sqlcipher_config.h @@ -0,0 +1,11 @@ +#ifndef sqlcipher_config_h +#define sqlcipher_config_h + +#define SQLITE_HAS_CODEC 1 +#define SQLCIPHER_CRYPTO_CC 1 +#define SQLITE_ENABLE_FTS5 1 +#define SQLITE_DEFAULT_MEMSTATUS 0 +#define NDEBUG 1 +#define SQLITE_MAX_MMAP_SIZE 0 + +#endif /* sqlcipher_config_h */ diff --git a/submodules/Postbox/Postbox/PostboxPrivate/sqlcipher/sqlite3.c b/submodules/sqlcipher/Sources/sqlite3.c similarity index 99% rename from submodules/Postbox/Postbox/PostboxPrivate/sqlcipher/sqlite3.c rename to submodules/sqlcipher/Sources/sqlite3.c index 14667ee712..64b5ac6297 100644 --- a/submodules/Postbox/Postbox/PostboxPrivate/sqlcipher/sqlite3.c +++ b/submodules/sqlcipher/Sources/sqlite3.c @@ -17,6 +17,8 @@ ** language. The code for the "sqlite3" command-line shell is also in a ** separate file. This file contains only code for the core SQLite library. */ +#include + #define SQLITE_CORE 1 #define SQLITE_AMALGAMATION 1 #ifndef SQLITE_PRIVATE diff --git a/submodules/Postbox/Postbox/PostboxPrivate/sqlcipher/sqlite3.h b/submodules/sqlcipher/Sources/sqlite3.h similarity index 99% rename from submodules/Postbox/Postbox/PostboxPrivate/sqlcipher/sqlite3.h rename to submodules/sqlcipher/Sources/sqlite3.h index d62548eebb..682fd9d9f4 100644 --- a/submodules/Postbox/Postbox/PostboxPrivate/sqlcipher/sqlite3.h +++ b/submodules/sqlcipher/Sources/sqlite3.h @@ -34,6 +34,8 @@ #define SQLITE3_H #include /* Needed for the definition of va_list */ +#include + /* ** Make sure we can call this stuff from C++. */ diff --git a/submodules/Postbox/Postbox/PostboxPrivate/sqlcipher/sqlite3ext.h b/submodules/sqlcipher/Sources/sqlite3ext.h similarity index 99% rename from submodules/Postbox/Postbox/PostboxPrivate/sqlcipher/sqlite3ext.h rename to submodules/sqlcipher/Sources/sqlite3ext.h index 34c41fd5a9..fb657d7226 100644 --- a/submodules/Postbox/Postbox/PostboxPrivate/sqlcipher/sqlite3ext.h +++ b/submodules/sqlcipher/Sources/sqlite3ext.h @@ -17,7 +17,7 @@ */ #ifndef SQLITE3EXT_H #define SQLITE3EXT_H -#include "sqlite3.h" +#include /* ** The following structure holds pointers to all of the SQLite API diff --git a/submodules/sqlcipher/sqlcipher_Xcode.xcodeproj/project.pbxproj b/submodules/sqlcipher/sqlcipher_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..fe500df902 --- /dev/null +++ b/submodules/sqlcipher/sqlcipher_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,564 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D03E45402305C6E40049C28B /* sqlcipher.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E453E2305C6E40049C28B /* sqlcipher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E45502305C7600049C28B /* SQLite-Bridging.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E454A2305C75F0049C28B /* SQLite-Bridging.m */; }; + D03E45512305C7600049C28B /* sqlite3.c in Sources */ = {isa = PBXBuildFile; fileRef = D03E454B2305C75F0049C28B /* sqlite3.c */; }; + D03E45522305C7600049C28B /* sqlite3.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E454C2305C75F0049C28B /* sqlite3.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E45532305C7600049C28B /* sqlite3ext.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E454D2305C7600049C28B /* sqlite3ext.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E45542305C7600049C28B /* SQLite-Bridging.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E454E2305C7600049C28B /* SQLite-Bridging.h */; }; + D03E45552305C7600049C28B /* fts3_tokenizer.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E454F2305C7600049C28B /* fts3_tokenizer.h */; }; + D03E45592305C8090049C28B /* sqlcipher_config.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45582305C8090049C28B /* sqlcipher_config.h */; settings = {ATTRIBUTES = (Public, ); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D03E453B2305C6E40049C28B /* sqlcipher.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = sqlcipher.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E453E2305C6E40049C28B /* sqlcipher.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sqlcipher.h; sourceTree = ""; }; + D03E453F2305C6E40049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D03E454A2305C75F0049C28B /* SQLite-Bridging.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SQLite-Bridging.m"; sourceTree = ""; }; + D03E454B2305C75F0049C28B /* sqlite3.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = sqlite3.c; sourceTree = ""; }; + D03E454C2305C75F0049C28B /* sqlite3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sqlite3.h; sourceTree = ""; }; + D03E454D2305C7600049C28B /* sqlite3ext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sqlite3ext.h; sourceTree = ""; }; + D03E454E2305C7600049C28B /* SQLite-Bridging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SQLite-Bridging.h"; sourceTree = ""; }; + D03E454F2305C7600049C28B /* fts3_tokenizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fts3_tokenizer.h; sourceTree = ""; }; + D03E45582305C8090049C28B /* sqlcipher_config.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sqlcipher_config.h; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E45382305C6E40049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E45312305C6E40049C28B = { + isa = PBXGroup; + children = ( + D03E453F2305C6E40049C28B /* Info.plist */, + D03E453D2305C6E40049C28B /* Sources */, + D03E453C2305C6E40049C28B /* Products */, + ); + sourceTree = ""; + }; + D03E453C2305C6E40049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E453B2305C6E40049C28B /* sqlcipher.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E453D2305C6E40049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E45582305C8090049C28B /* sqlcipher_config.h */, + D03E454F2305C7600049C28B /* fts3_tokenizer.h */, + D03E454E2305C7600049C28B /* SQLite-Bridging.h */, + D03E454A2305C75F0049C28B /* SQLite-Bridging.m */, + D03E454B2305C75F0049C28B /* sqlite3.c */, + D03E454C2305C75F0049C28B /* sqlite3.h */, + D03E454D2305C7600049C28B /* sqlite3ext.h */, + D03E453E2305C6E40049C28B /* sqlcipher.h */, + ); + path = Sources; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E45362305C6E40049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E45552305C7600049C28B /* fts3_tokenizer.h in Headers */, + D03E45542305C7600049C28B /* SQLite-Bridging.h in Headers */, + D03E45592305C8090049C28B /* sqlcipher_config.h in Headers */, + D03E45522305C7600049C28B /* sqlite3.h in Headers */, + D03E45402305C6E40049C28B /* sqlcipher.h in Headers */, + D03E45532305C7600049C28B /* sqlite3ext.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E453A2305C6E40049C28B /* sqlcipher */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E45432305C6E40049C28B /* Build configuration list for PBXNativeTarget "sqlcipher" */; + buildPhases = ( + D03E45362305C6E40049C28B /* Headers */, + D03E45372305C6E40049C28B /* Sources */, + D03E45382305C6E40049C28B /* Frameworks */, + D03E45392305C6E40049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = sqlcipher; + productName = sqlcipher; + productReference = D03E453B2305C6E40049C28B /* sqlcipher.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E45322305C6E40049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E453A2305C6E40049C28B = { + CreatedOnToolsVersion = 10.3; + }; + }; + }; + buildConfigurationList = D03E45352305C6E40049C28B /* Build configuration list for PBXProject "sqlcipher_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E45312305C6E40049C28B; + productRefGroup = D03E453C2305C6E40049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E453A2305C6E40049C28B /* sqlcipher */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E45392305C6E40049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E45372305C6E40049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E45502305C7600049C28B /* SQLite-Bridging.m in Sources */, + D03E45512305C7600049C28B /* sqlite3.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D03E45412305C6E40049C28B /* 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; + }; + D03E45422305C6E40049C28B /* 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; + }; + D03E45442305C6E40049C28B /* 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; + OTHER_CFLAGS = ( + "-DSQLITE_HAS_CODEC=1", + "-DSQLCIPHER_CRYPTO_CC=1", + "-DSQLITE_ENABLE_FTS5", + "-DSQLITE_DEFAULT_MEMSTATUS=0", + "-DNDEBUG", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.sqlcipher; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugAppStoreLLC; + }; + D03E45452305C6E40049C28B /* 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; + OTHER_CFLAGS = ( + "-DSQLITE_HAS_CODEC=1", + "-DSQLCIPHER_CRYPTO_CC=1", + "-DSQLITE_ENABLE_FTS5", + "-DSQLITE_DEFAULT_MEMSTATUS=0", + "-DNDEBUG", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.sqlcipher; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D03E45462305C7090049C28B /* 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; + }; + D03E45472305C7090049C28B /* 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; + OTHER_CFLAGS = ( + "-DSQLITE_HAS_CODEC=1", + "-DSQLCIPHER_CRYPTO_CC=1", + "-DSQLITE_ENABLE_FTS5", + "-DSQLITE_DEFAULT_MEMSTATUS=0", + "-DNDEBUG", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.sqlcipher; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugHockeyapp; + }; + D03E45482305C7130049C28B /* 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; + }; + D03E45492305C7130049C28B /* 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; + OTHER_CFLAGS = ( + "-DSQLITE_HAS_CODEC=1", + "-DSQLCIPHER_CRYPTO_CC=1", + "-DSQLITE_ENABLE_FTS5", + "-DSQLITE_DEFAULT_MEMSTATUS=0", + "-DNDEBUG", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.sqlcipher; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseHockeyappInternal; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D03E45352305C6E40049C28B /* Build configuration list for PBXProject "sqlcipher_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E45412305C6E40049C28B /* DebugAppStoreLLC */, + D03E45462305C7090049C28B /* DebugHockeyapp */, + D03E45422305C6E40049C28B /* ReleaseAppStoreLLC */, + D03E45482305C7130049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D03E45432305C6E40049C28B /* Build configuration list for PBXNativeTarget "sqlcipher" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E45442305C6E40049C28B /* DebugAppStoreLLC */, + D03E45472305C7090049C28B /* DebugHockeyapp */, + D03E45452305C6E40049C28B /* ReleaseAppStoreLLC */, + D03E45492305C7130049C28B /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E45322305C6E40049C28B /* Project object */; +}