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 */,