Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F3406988
D3162.id9615.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
16 KB
Referenced Files
None
Subscribers
None
D3162.id9615.diff
View Options
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,10 @@
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, ); }; };
+ 724995FB27BA9E8D00323FCE /* UserNotifications.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 724995FA27BA9E8C00323FCE /* UserNotifications.framework */; };
+ 724995FD27BA9EC000323FCE /* libPods-Comm.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 724995FC27BA9EC000323FCE /* libPods-Comm.a */; };
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 +55,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 +127,12 @@
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>"; };
+ 724995FA27BA9E8C00323FCE /* UserNotifications.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UserNotifications.framework; path = System/Library/Frameworks/UserNotifications.framework; sourceTree = SDKROOT; };
+ 724995FC27BA9EC000323FCE /* libPods-Comm.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = "libPods-Comm.a"; sourceTree = BUILT_PRODUCTS_DIR; };
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 +182,15 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ 724995CE27B4103A00323FCE /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 724995FD27BA9EC000323FCE /* libPods-Comm.a in Frameworks */,
+ 724995FB27BA9E8D00323FCE /* UserNotifications.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
@@ -346,6 +386,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 = (
@@ -361,6 +411,8 @@
7FF0870B1E833C3F000A1ACF /* Frameworks */ = {
isa = PBXGroup;
children = (
+ 724995FC27BA9EC000323FCE /* libPods-Comm.a */,
+ 724995FA27BA9E8C00323FCE /* UserNotifications.framework */,
711CF80E25DC096000A00FBD /* libFolly.a */,
7F761E292201141E001B6FB7 /* JavaScriptCore.framework */,
994BEBDD4E4959F69CEA0BC3 /* libPods-Comm.a */,
@@ -374,6 +426,7 @@
71BE84362636A944002849D2 /* cpp */,
13B07FAE1A68108700A75B9A /* Comm */,
713EE40726C6676B003D7C48 /* CommTests */,
+ 724995D227B4103A00323FCE /* NotificationService */,
83CBBA001A601CBA00E9B192 /* Products */,
6534411766BE4CA4B0AB0A78 /* Resources */,
7FF0870B1E833C3F000A1ACF /* Frameworks */,
@@ -388,6 +441,7 @@
children = (
13B07F961A680F5B00A75B9A /* Comm.app */,
713EE40626C6676B003D7C48 /* CommTests.xctest */,
+ 724995D127B4103A00323FCE /* NotificationService.appex */,
);
name = Products;
sourceTree = "<group>";
@@ -415,10 +469,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 +499,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 +555,11 @@
ProvisioningStyle = Automatic;
TestTargetID = 13B07F861A680F5B00A75B9A;
};
+ 724995D027B4103A00323FCE = {
+ CreatedOnToolsVersion = 13.0;
+ DevelopmentTeam = H98Y8MH53M;
+ ProvisioningStyle = Automatic;
+ };
};
};
buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "Comm" */;
@@ -500,6 +578,7 @@
targets = (
13B07F861A680F5B00A75B9A /* Comm */,
713EE40526C6676B003D7C48 /* CommTests */,
+ 724995D027B4103A00323FCE /* NotificationService */,
);
};
/* End PBXProject section */
@@ -528,6 +607,13 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ 724995CF27B4103A00323FCE /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
@@ -679,6 +765,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 +781,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 +954,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 +1152,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,32 @@
+#import "NotificationService.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
+
+ 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
Details
Attached
Mime Type
text/plain
Expires
Thu, Dec 5, 3:44 AM (9 h, 7 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2615739
Default Alt Text
D3162.id9615.diff (16 KB)
Attached To
Mode
D3162: [iOS] Create empty notification service extension
Attached
Detach File
Event Timeline
Log In to Comment