Page MenuHomePhabricator

D3162.id9572.diff
No OneTemporary

D3162.id9572.diff

diff --git a/native/ios/Comm.xcodeproj/project.pbxproj b/native/ios/Comm.xcodeproj/project.pbxproj
--- a/native/ios/Comm.xcodeproj/project.pbxproj
+++ b/native/ios/Comm.xcodeproj/project.pbxproj
@@ -28,6 +28,8 @@
71CA4A64262DA8E500835C89 /* Logger.mm in Sources */ = {isa = PBXBuildFile; fileRef = 71CA4A63262DA8E500835C89 /* Logger.mm */; };
71CA4AEC262F236100835C89 /* Tools.mm in Sources */ = {isa = PBXBuildFile; fileRef = 71CA4AEB262F236100835C89 /* Tools.mm */; };
71D4D7CC26C50B1000FCDBCD /* CommSecureStore.mm in Sources */ = {isa = PBXBuildFile; fileRef = 71D4D7CB26C50B1000FCDBCD /* CommSecureStore.mm */; };
+ 724995D527B4103A00323FCE /* NotificationService.mm in Sources */ = {isa = PBXBuildFile; fileRef = 724995D427B4103A00323FCE /* NotificationService.mm */; };
+ 724995D927B4103A00323FCE /* NotificationService.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 724995D127B4103A00323FCE /* NotificationService.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
726E5D752731A4790032361D /* NetworkModule.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 726E5D732731A4790032361D /* NetworkModule.cpp */; };
726E5D782731A5E10032361D /* GlobalNetworkSingleton.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 726E5D762731A5E10032361D /* GlobalNetworkSingleton.cpp */; };
7F761E602201141E001B6FB7 /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7F761E292201141E001B6FB7 /* JavaScriptCore.framework */; };
@@ -51,8 +53,29 @@
remoteGlobalIDString = 13B07F861A680F5B00A75B9A;
remoteInfo = Comm;
};
+ 724995D727B4103A00323FCE /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 724995D027B4103A00323FCE;
+ remoteInfo = NotificationService;
+ };
/* End PBXContainerItemProxy section */
+/* Begin PBXCopyFilesBuildPhase section */
+ 724995DA27B4103A00323FCE /* Embed App Extensions */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = "";
+ dstSubfolderSpec = 13;
+ files = (
+ 724995D927B4103A00323FCE /* NotificationService.appex in Embed App Extensions */,
+ );
+ name = "Embed App Extensions";
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXCopyFilesBuildPhase section */
+
/* Begin PBXFileReference section */
13B07F961A680F5B00A75B9A /* Comm.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Comm.app; sourceTree = BUILT_PRODUCTS_DIR; };
13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = Comm/AppDelegate.h; sourceTree = "<group>"; };
@@ -102,6 +125,10 @@
71CA4AEB262F236100835C89 /* Tools.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = Tools.mm; path = Comm/Tools.mm; sourceTree = "<group>"; };
71D4D7CB26C50B1000FCDBCD /* CommSecureStore.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = CommSecureStore.mm; path = Comm/CommSecureStore.mm; sourceTree = "<group>"; };
71DC160C270C43D300822863 /* PlatformSpecificTools.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PlatformSpecificTools.h; sourceTree = "<group>"; };
+ 724995D127B4103A00323FCE /* NotificationService.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = NotificationService.appex; sourceTree = BUILT_PRODUCTS_DIR; };
+ 724995D327B4103A00323FCE /* NotificationService.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NotificationService.h; sourceTree = "<group>"; };
+ 724995D427B4103A00323FCE /* NotificationService.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = NotificationService.mm; sourceTree = "<group>"; };
+ 724995D627B4103A00323FCE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
726E5D732731A4790032361D /* NetworkModule.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = NetworkModule.cpp; sourceTree = "<group>"; };
726E5D742731A4790032361D /* NetworkModule.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NetworkModule.h; sourceTree = "<group>"; };
726E5D762731A5E10032361D /* GlobalNetworkSingleton.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = GlobalNetworkSingleton.cpp; sourceTree = "<group>"; };
@@ -151,6 +178,13 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ 724995CE27B4103A00323FCE /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
@@ -346,6 +380,16 @@
path = _generated;
sourceTree = "<group>";
};
+ 724995D227B4103A00323FCE /* NotificationService */ = {
+ isa = PBXGroup;
+ children = (
+ 724995D327B4103A00323FCE /* NotificationService.h */,
+ 724995D427B4103A00323FCE /* NotificationService.mm */,
+ 724995D627B4103A00323FCE /* Info.plist */,
+ );
+ path = NotificationService;
+ sourceTree = "<group>";
+ };
726E5D722731A4240032361D /* InternalModules */ = {
isa = PBXGroup;
children = (
@@ -374,6 +418,7 @@
71BE84362636A944002849D2 /* cpp */,
13B07FAE1A68108700A75B9A /* Comm */,
713EE40726C6676B003D7C48 /* CommTests */,
+ 724995D227B4103A00323FCE /* NotificationService */,
83CBBA001A601CBA00E9B192 /* Products */,
6534411766BE4CA4B0AB0A78 /* Resources */,
7FF0870B1E833C3F000A1ACF /* Frameworks */,
@@ -388,6 +433,7 @@
children = (
13B07F961A680F5B00A75B9A /* Comm.app */,
713EE40626C6676B003D7C48 /* CommTests.xctest */,
+ 724995D127B4103A00323FCE /* NotificationService.appex */,
);
name = Products;
sourceTree = "<group>";
@@ -415,10 +461,12 @@
00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
DB38BFA0686C805CE44F051F /* [CP] Copy Pods Resources */,
EA2E8897D838D7F3E680EACE /* [CP] Embed Pods Frameworks */,
+ 724995DA27B4103A00323FCE /* Embed App Extensions */,
);
buildRules = (
);
dependencies = (
+ 724995D827B4103A00323FCE /* PBXTargetDependency */,
);
name = Comm;
productName = "Hello World";
@@ -443,6 +491,23 @@
productReference = 713EE40626C6676B003D7C48 /* CommTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
+ 724995D027B4103A00323FCE /* NotificationService */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 724995DD27B4103A00323FCE /* Build configuration list for PBXNativeTarget "NotificationService" */;
+ buildPhases = (
+ 724995CD27B4103A00323FCE /* Sources */,
+ 724995CE27B4103A00323FCE /* Frameworks */,
+ 724995CF27B4103A00323FCE /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = NotificationService;
+ productName = NotificationService;
+ productReference = 724995D127B4103A00323FCE /* NotificationService.appex */;
+ productType = "com.apple.product-type.app-extension";
+ };
/* End PBXNativeTarget section */
/* Begin PBXProject section */
@@ -482,6 +547,11 @@
ProvisioningStyle = Automatic;
TestTargetID = 13B07F861A680F5B00A75B9A;
};
+ 724995D027B4103A00323FCE = {
+ CreatedOnToolsVersion = 13.0;
+ DevelopmentTeam = H98Y8MH53M;
+ ProvisioningStyle = Automatic;
+ };
};
};
buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "Comm" */;
@@ -500,6 +570,7 @@
targets = (
13B07F861A680F5B00A75B9A /* Comm */,
713EE40526C6676B003D7C48 /* CommTests */,
+ 724995D027B4103A00323FCE /* NotificationService */,
);
};
/* End PBXProject section */
@@ -528,6 +599,13 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ 724995CF27B4103A00323FCE /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
@@ -679,6 +757,14 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ 724995CD27B4103A00323FCE /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 724995D527B4103A00323FCE /* NotificationService.mm in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
@@ -687,6 +773,11 @@
target = 13B07F861A680F5B00A75B9A /* Comm */;
targetProxy = 713EE40B26C6676B003D7C48 /* PBXContainerItemProxy */;
};
+ 724995D827B4103A00323FCE /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 724995D027B4103A00323FCE /* NotificationService */;
+ targetProxy = 724995D727B4103A00323FCE /* PBXContainerItemProxy */;
+ };
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
@@ -855,6 +946,78 @@
};
name = Release;
};
+ 724995DB27B4103A00323FCE /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CODE_SIGN_IDENTITY = "Apple Development";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ CODE_SIGN_STYLE = Automatic;
+ CURRENT_PROJECT_VERSION = 1;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ DEVELOPMENT_TEAM = H98Y8MH53M;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GENERATE_INFOPLIST_FILE = YES;
+ INFOPLIST_FILE = NotificationService/Info.plist;
+ INFOPLIST_KEY_CFBundleDisplayName = NotificationService;
+ INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2022 Comm Technologies, Inc. All rights reserved.";
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
+ MARKETING_VERSION = 1.0;
+ MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
+ MTL_FAST_MATH = YES;
+ PRODUCT_BUNDLE_IDENTIFIER = app.comm.NotificationService;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SKIP_INSTALL = YES;
+ SWIFT_EMIT_LOC_STRINGS = YES;
+ TARGETED_DEVICE_FAMILY = 1;
+ };
+ name = Debug;
+ };
+ 724995DC27B4103A00323FCE /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CODE_SIGN_IDENTITY = "Apple Development";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ CODE_SIGN_STYLE = Automatic;
+ COPY_PHASE_STRIP = NO;
+ CURRENT_PROJECT_VERSION = 1;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ DEVELOPMENT_TEAM = H98Y8MH53M;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GENERATE_INFOPLIST_FILE = YES;
+ INFOPLIST_FILE = NotificationService/Info.plist;
+ INFOPLIST_KEY_CFBundleDisplayName = NotificationService;
+ INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2022 Comm Technologies, Inc. All rights reserved.";
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
+ MARKETING_VERSION = 1.0;
+ MTL_FAST_MATH = YES;
+ PRODUCT_BUNDLE_IDENTIFIER = app.comm.NotificationService;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SKIP_INSTALL = YES;
+ SWIFT_EMIT_LOC_STRINGS = YES;
+ TARGETED_DEVICE_FAMILY = 1;
+ };
+ name = Release;
+ };
83CBBA201A601CBA00E9B192 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -981,6 +1144,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
+ 724995DD27B4103A00323FCE /* Build configuration list for PBXNativeTarget "NotificationService" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 724995DB27B4103A00323FCE /* Debug */,
+ 724995DC27B4103A00323FCE /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "Comm" */ = {
isa = XCConfigurationList;
buildConfigurations = (
diff --git a/native/ios/NotificationService/Info.plist b/native/ios/NotificationService/Info.plist
new file mode 100644
--- /dev/null
+++ b/native/ios/NotificationService/Info.plist
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>NSExtension</key>
+ <dict>
+ <key>NSExtensionPointIdentifier</key>
+ <string>com.apple.usernotifications.service</string>
+ <key>NSExtensionPrincipalClass</key>
+ <string>NotificationService</string>
+ </dict>
+</dict>
+</plist>
diff --git a/native/ios/NotificationService/NotificationService.h b/native/ios/NotificationService/NotificationService.h
new file mode 100644
--- /dev/null
+++ b/native/ios/NotificationService/NotificationService.h
@@ -0,0 +1,5 @@
+#import <UserNotifications/UserNotifications.h>
+
+@interface NotificationService : UNNotificationServiceExtension
+
+@end
diff --git a/native/ios/NotificationService/NotificationService.mm b/native/ios/NotificationService/NotificationService.mm
new file mode 100644
--- /dev/null
+++ b/native/ios/NotificationService/NotificationService.mm
@@ -0,0 +1,35 @@
+#import "NotificationService.h"
+#import "Logger.h"
+
+@interface NotificationService ()
+
+@property(nonatomic, strong) void (^contentHandler)
+ (UNNotificationContent *contentToDeliver);
+@property(nonatomic, strong) UNMutableNotificationContent *bestAttemptContent;
+
+@end
+
+@implementation NotificationService
+
+- (void)didReceiveNotificationRequest:(UNNotificationRequest *)request
+ withContentHandler:
+ (void (^)(UNNotificationContent *_Nonnull))
+ contentHandler {
+ self.contentHandler = contentHandler;
+ self.bestAttemptContent = [request.content mutableCopy];
+
+ // TODO modify self.bestAttemptContent here
+
+ comm::Logger::log("TEST");
+
+ self.contentHandler(self.bestAttemptContent);
+}
+
+- (void)serviceExtensionTimeWillExpire {
+ // Called just before the extension will be terminated by the system.
+ // Use this as an opportunity to deliver your "best attempt" at modified
+ // content, otherwise the original push payload will be used.
+ self.contentHandler(self.bestAttemptContent);
+}
+
+@end
diff --git a/scripts/get_clang_paths.js b/scripts/get_clang_paths.js
--- a/scripts/get_clang_paths.js
+++ b/scripts/get_clang_paths.js
@@ -42,6 +42,10 @@
path: 'native/ios/CommTests',
extensions: ['mm'],
},
+ {
+ path: 'native/ios/NotificationService',
+ extensions: ['h', 'm', 'mm'],
+ },
{
path: 'native/android/app/src/main/java/app/comm',
extensions: ['java'],

File Metadata

Mime Type
text/plain
Expires
Thu, Dec 5, 3:46 AM (9 h, 17 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2615877
Default Alt Text
D3162.id9572.diff (15 KB)

Event Timeline