@dashx/react-native 0.1.25 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/android/build.gradle +22 -149
  2. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  3. package/android/gradle/wrapper/gradle-wrapper.properties +1 -2
  4. package/android/gradlew +34 -21
  5. package/android/gradlew.bat +24 -19
  6. package/android/src/main/AndroidManifest.xml +2 -8
  7. package/android/src/main/java/com/dashx/rn/sdk/DashXReactNativeModule.kt +248 -0
  8. package/android/src/main/java/com/dashx/rn/sdk/{DashXPackage.kt → DashXReactNativePackage.kt} +2 -1
  9. package/android/src/main/java/com/dashx/rn/sdk/util/ArrayUtil.java +131 -0
  10. package/android/src/main/java/com/dashx/rn/sdk/util/MapUtil.java +142 -0
  11. package/android/src/main/java/com/dashx/rn/sdk/{Utils.kt → util/Utils.kt} +5 -5
  12. package/index.js +68 -72
  13. package/ios/DashX.swift +110 -95
  14. package/ios/DashXReactNative-Bridging-Header.h +4 -0
  15. package/ios/DashXReactNative.m +25 -0
  16. package/ios/DashXReactNative.xcodeproj/project.pbxproj +280 -0
  17. package/ios/{DashX.xcworkspace → DashXReactNative.xcworkspace}/contents.xcworkspacedata +1 -1
  18. package/ios/{DashX.xcworkspace → DashXReactNative.xcworkspace}/xcshareddata/IDEWorkspaceChecks.plist +0 -0
  19. package/package.json +6 -12
  20. package/DashX.podspec +0 -27
  21. package/android/README.md +0 -23
  22. package/android/src/main/java/com/dashx/rn/sdk/DashXActivityLifecycleCallbacks.kt +0 -93
  23. package/android/src/main/java/com/dashx/rn/sdk/DashXClientInterceptor.kt +0 -66
  24. package/android/src/main/java/com/dashx/rn/sdk/DashXExceptionHandler.kt +0 -28
  25. package/android/src/main/java/com/dashx/rn/sdk/DashXMessagingService.kt +0 -176
  26. package/android/src/main/java/com/dashx/rn/sdk/DashXModule.kt +0 -193
  27. package/android/src/main/java/com/dashx/rn/sdk/NotificationReceiver.kt +0 -17
  28. package/ios/API.swift +0 -2420
  29. package/ios/Constants.swift +0 -14
  30. package/ios/DashX.m +0 -17
  31. package/ios/DashX.xcodeproj/project.pbxproj +0 -356
  32. package/ios/DashX.xcodeproj/xcshareddata/xcschemes/DashX.xcscheme +0 -67
  33. package/ios/DashXAppDelegate.swift +0 -73
  34. package/ios/DashXApplicationLifecycleCallbacks.swift +0 -65
  35. package/ios/DashXClient.swift +0 -319
  36. package/ios/DashXData.swift +0 -19
  37. package/ios/DashXLog.swift +0 -44
  38. package/ios/DashXUIViewController.swift +0 -15
  39. package/ios/Network.swift +0 -74
  40. package/ios/README.md +0 -80
  41. package/ios/Utils.swift +0 -13
  42. package/ios/graphql/AddContent.graphql +0 -8
  43. package/ios/graphql/AddItemToCart.graphql +0 -33
  44. package/ios/graphql/EditContent.graphql +0 -8
  45. package/ios/graphql/FetchCart.graphql +0 -33
  46. package/ios/graphql/FetchContent.graphql +0 -3
  47. package/ios/graphql/IdentifyAccount.graphql +0 -5
  48. package/ios/graphql/SearchContent.graphql +0 -3
  49. package/ios/graphql/SubscribeContact.graphql +0 -6
  50. package/ios/graphql/TrackEvent.graphql +0 -5
  51. package/ios/schema.json +0 -37038
@@ -1,14 +0,0 @@
1
- import Foundation
2
-
3
- struct Constants {
4
- static let PACKAGE_NAME = "com.dashx.sdk"
5
- static let USER_PREFERENCES_KEY_ANONYMOUS_UID = "\(PACKAGE_NAME).anonymous_uid"
6
- static let USER_PREFERENCES_KEY_DEVICE_TOKEN = "\(PACKAGE_NAME).device_token"
7
- static let USER_PREFERENCES_KEY_BUILD = "\(PACKAGE_NAME).build"
8
- static let INTERNAL_EVENT_APP_INSTALLED = "Application Installed"
9
- static let INTERNAL_EVENT_APP_UPDATED = "Application Updated"
10
- static let INTERNAL_EVENT_APP_OPENED = "Application Opened"
11
- static let INTERNAL_EVENT_APP_BACKGROUNDED = "Application Backgrounded"
12
- static let INTERNAL_EVENT_APP_CRASHED = "Application Crashed"
13
- static let INTERNAL_EVENT_APP_SCREEN_VIEWED = "Screen Viewed"
14
- }
package/ios/DashX.m DELETED
@@ -1,17 +0,0 @@
1
- #import <React/RCTBridgeModule.h>
2
- #import <React/RCTEventEmitter.h>
3
-
4
- @interface RCT_EXTERN_MODULE(DashX, RCTEventEmitter)
5
- RCT_EXTERN_METHOD(setLogLevel:(NSInteger *)to)
6
- RCT_EXTERN_METHOD(setup:(NSDictionary *)options)
7
- RCT_EXTERN_METHOD(getConnectionConfig:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
8
- RCT_EXTERN_METHOD(identify:(NSString *)uid options:(NSDictionary *)options)
9
- RCT_EXTERN_METHOD(setIdentityToken:(NSString *)identityToken)
10
- RCT_EXTERN_METHOD(reset)
11
- RCT_EXTERN_METHOD(track:(NSString *)event data:(NSDictionary *)data)
12
- RCT_EXTERN_METHOD(searchContent:(NSString *)contentType options:(NSDictionary *)options resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
13
- RCT_EXTERN_METHOD(fetchContent:(NSString *)urn options:(NSDictionary *)options resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
14
- RCT_EXTERN_METHOD(addItemToCart:(NSString *)itemId pricingId:(NSString *)pricingId quantity:(NSString *)quantity reset:(BOOL)reset custom:(NSDictionary *)custom resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
15
- RCT_EXTERN_METHOD(fetchCart:resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
16
- RCT_EXTERN_METHOD(subscribe)
17
- @end
@@ -1,356 +0,0 @@
1
- // !$*UTF8*$!
2
- {
3
- archiveVersion = 1;
4
- classes = {
5
- };
6
- objectVersion = 46;
7
- objects = {
8
-
9
- /* Begin PBXBuildFile section */
10
- 71050BB925E3B8C3008EA385 /* Network.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71050BB825E3B8C3008EA385 /* Network.swift */; };
11
- 7167F91B250F97BA0078BFFB /* DashXApplicationLifecycleCallbacks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7167F91A250F97BA0078BFFB /* DashXApplicationLifecycleCallbacks.swift */; };
12
- 7167F91D250F97E10078BFFB /* DashXUIViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7167F91C250F97E10078BFFB /* DashXUIViewController.swift */; };
13
- 71758CAB25038D00007197D5 /* DashXData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71758CAA25038D00007197D5 /* DashXData.swift */; };
14
- 71829DAB2519BABA0024EF73 /* DashXEventEmitter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71829DAA2519BABA0024EF73 /* DashXEventEmitter.swift */; };
15
- 71829DAD2519BAD50024EF73 /* DashXAppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71829DAC2519BAD50024EF73 /* DashXAppDelegate.swift */; };
16
- 71A405A4251B09D300230332 /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71A405A3251B09D300230332 /* Utils.swift */; };
17
- 71FCBF0E2500031100EE19F0 /* DashX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71FCBF0D2500031100EE19F0 /* DashX.swift */; };
18
- 71FCBF1025001E9200EE19F0 /* DashX.m in Sources */ = {isa = PBXBuildFile; fileRef = 71FCBF0F25001E9200EE19F0 /* DashX.m */; };
19
- 71FCBF142501959800EE19F0 /* DashXLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71FCBF132501959800EE19F0 /* DashXLog.swift */; };
20
- 71FCBF172502106D00EE19F0 /* OSLog.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71FCBF162502106D00EE19F0 /* OSLog.framework */; };
21
- 71FCBF1925035B2600EE19F0 /* DashXClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71FCBF1825035B2600EE19F0 /* DashXClient.swift */; };
22
- 71FCBF1B25036BC000EE19F0 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71FCBF1A25036BC000EE19F0 /* Constants.swift */; };
23
- /* End PBXBuildFile section */
24
-
25
- /* Begin PBXCopyFilesBuildPhase section */
26
- 58B511D91A9E6C8500147676 /* CopyFiles */ = {
27
- isa = PBXCopyFilesBuildPhase;
28
- buildActionMask = 2147483647;
29
- dstPath = "include/$(PRODUCT_NAME)";
30
- dstSubfolderSpec = 16;
31
- files = (
32
- );
33
- runOnlyForDeploymentPostprocessing = 0;
34
- };
35
- /* End PBXCopyFilesBuildPhase section */
36
-
37
- /* Begin PBXFileReference section */
38
- 134814201AA4EA6300B7C361 /* libDashX.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libDashX.a; sourceTree = BUILT_PRODUCTS_DIR; };
39
- 71050BB825E3B8C3008EA385 /* Network.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Network.swift; sourceTree = "<group>"; usesTabs = 0; };
40
- 7167F91A250F97BA0078BFFB /* DashXApplicationLifecycleCallbacks.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DashXApplicationLifecycleCallbacks.swift; sourceTree = "<group>"; };
41
- 7167F91C250F97E10078BFFB /* DashXUIViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DashXUIViewController.swift; sourceTree = "<group>"; };
42
- 71758CAA25038D00007197D5 /* DashXData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DashXData.swift; sourceTree = "<group>"; };
43
- 71829DAA2519BABA0024EF73 /* DashXEventEmitter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DashXEventEmitter.swift; sourceTree = "<group>"; };
44
- 71829DAC2519BAD50024EF73 /* DashXAppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DashXAppDelegate.swift; sourceTree = "<group>"; };
45
- 71A405A3251B09D300230332 /* Utils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Utils.swift; sourceTree = "<group>"; };
46
- 71FCBF0C2500031000EE19F0 /* DashX-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "DashX-Bridging-Header.h"; sourceTree = "<group>"; };
47
- 71FCBF0D2500031100EE19F0 /* DashX.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DashX.swift; sourceTree = "<group>"; };
48
- 71FCBF0F25001E9200EE19F0 /* DashX.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DashX.m; sourceTree = "<group>"; };
49
- 71FCBF132501959800EE19F0 /* DashXLog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DashXLog.swift; sourceTree = "<group>"; };
50
- 71FCBF162502106D00EE19F0 /* OSLog.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OSLog.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/OSLog.framework; sourceTree = DEVELOPER_DIR; };
51
- 71FCBF1825035B2600EE19F0 /* DashXClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DashXClient.swift; sourceTree = "<group>"; };
52
- 71FCBF1A25036BC000EE19F0 /* Constants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Constants.swift; sourceTree = "<group>"; };
53
- /* End PBXFileReference section */
54
-
55
- /* Begin PBXFrameworksBuildPhase section */
56
- 58B511D81A9E6C8500147676 /* Frameworks */ = {
57
- isa = PBXFrameworksBuildPhase;
58
- buildActionMask = 2147483647;
59
- files = (
60
- 71FCBF172502106D00EE19F0 /* OSLog.framework in Frameworks */,
61
- );
62
- runOnlyForDeploymentPostprocessing = 0;
63
- };
64
- /* End PBXFrameworksBuildPhase section */
65
-
66
- /* Begin PBXGroup section */
67
- 134814211AA4EA7D00B7C361 /* Products */ = {
68
- isa = PBXGroup;
69
- children = (
70
- 134814201AA4EA6300B7C361 /* libDashX.a */,
71
- );
72
- name = Products;
73
- sourceTree = "<group>";
74
- };
75
- 58B511D21A9E6C8500147676 = {
76
- isa = PBXGroup;
77
- children = (
78
- 71050BB825E3B8C3008EA385 /* Network.swift */,
79
- 71A405A3251B09D300230332 /* Utils.swift */,
80
- 71829DAC2519BAD50024EF73 /* DashXAppDelegate.swift */,
81
- 71829DAA2519BABA0024EF73 /* DashXEventEmitter.swift */,
82
- 7167F91C250F97E10078BFFB /* DashXUIViewController.swift */,
83
- 7167F91A250F97BA0078BFFB /* DashXApplicationLifecycleCallbacks.swift */,
84
- 71758CAA25038D00007197D5 /* DashXData.swift */,
85
- 71FCBF1A25036BC000EE19F0 /* Constants.swift */,
86
- 71FCBF1825035B2600EE19F0 /* DashXClient.swift */,
87
- 71FCBF132501959800EE19F0 /* DashXLog.swift */,
88
- 71FCBF0F25001E9200EE19F0 /* DashX.m */,
89
- 71FCBF0D2500031100EE19F0 /* DashX.swift */,
90
- 134814211AA4EA7D00B7C361 /* Products */,
91
- 71FCBF0C2500031000EE19F0 /* DashX-Bridging-Header.h */,
92
- 71FCBF152502106C00EE19F0 /* Frameworks */,
93
- );
94
- sourceTree = "<group>";
95
- };
96
- 71FCBF152502106C00EE19F0 /* Frameworks */ = {
97
- isa = PBXGroup;
98
- children = (
99
- 71FCBF162502106D00EE19F0 /* OSLog.framework */,
100
- );
101
- name = Frameworks;
102
- sourceTree = "<group>";
103
- };
104
- /* End PBXGroup section */
105
-
106
- /* Begin PBXNativeTarget section */
107
- 58B511DA1A9E6C8500147676 /* DashX */ = {
108
- isa = PBXNativeTarget;
109
- buildConfigurationList = 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "DashX" */;
110
- buildPhases = (
111
- 58B511D71A9E6C8500147676 /* Sources */,
112
- 58B511D81A9E6C8500147676 /* Frameworks */,
113
- 58B511D91A9E6C8500147676 /* CopyFiles */,
114
- );
115
- buildRules = (
116
- );
117
- dependencies = (
118
- );
119
- name = DashX;
120
- productName = RCTDataManager;
121
- productReference = 134814201AA4EA6300B7C361 /* libDashX.a */;
122
- productType = "com.apple.product-type.library.static";
123
- };
124
- /* End PBXNativeTarget section */
125
-
126
- /* Begin PBXProject section */
127
- 58B511D31A9E6C8500147676 /* Project object */ = {
128
- isa = PBXProject;
129
- attributes = {
130
- LastUpgradeCheck = 1160;
131
- ORGANIZATIONNAME = Facebook;
132
- TargetAttributes = {
133
- 58B511DA1A9E6C8500147676 = {
134
- CreatedOnToolsVersion = 6.1.1;
135
- LastSwiftMigration = 1160;
136
- };
137
- };
138
- };
139
- buildConfigurationList = 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "DashX" */;
140
- compatibilityVersion = "Xcode 3.2";
141
- developmentRegion = en;
142
- hasScannedForEncodings = 0;
143
- knownRegions = (
144
- en,
145
- Base,
146
- );
147
- mainGroup = 58B511D21A9E6C8500147676;
148
- productRefGroup = 58B511D21A9E6C8500147676;
149
- projectDirPath = "";
150
- projectRoot = "";
151
- targets = (
152
- 58B511DA1A9E6C8500147676 /* DashX */,
153
- );
154
- };
155
- /* End PBXProject section */
156
-
157
- /* Begin PBXSourcesBuildPhase section */
158
- 58B511D71A9E6C8500147676 /* Sources */ = {
159
- isa = PBXSourcesBuildPhase;
160
- buildActionMask = 2147483647;
161
- files = (
162
- 71FCBF1B25036BC000EE19F0 /* Constants.swift in Sources */,
163
- 71FCBF1025001E9200EE19F0 /* DashX.m in Sources */,
164
- 71050BB925E3B8C3008EA385 /* Network.swift in Sources */,
165
- 71758CAB25038D00007197D5 /* DashXData.swift in Sources */,
166
- 71829DAD2519BAD50024EF73 /* DashXAppDelegate.swift in Sources */,
167
- 7167F91D250F97E10078BFFB /* DashXUIViewController.swift in Sources */,
168
- 71829DAB2519BABA0024EF73 /* DashXEventEmitter.swift in Sources */,
169
- 71FCBF142501959800EE19F0 /* DashXLog.swift in Sources */,
170
- 71A405A4251B09D300230332 /* Utils.swift in Sources */,
171
- 7167F91B250F97BA0078BFFB /* DashXApplicationLifecycleCallbacks.swift in Sources */,
172
- 71FCBF0E2500031100EE19F0 /* DashX.swift in Sources */,
173
- 71FCBF1925035B2600EE19F0 /* DashXClient.swift in Sources */,
174
- );
175
- runOnlyForDeploymentPostprocessing = 0;
176
- };
177
- /* End PBXSourcesBuildPhase section */
178
-
179
- /* Begin XCBuildConfiguration section */
180
- 58B511ED1A9E6C8500147676 /* Debug */ = {
181
- isa = XCBuildConfiguration;
182
- buildSettings = {
183
- ALWAYS_SEARCH_USER_PATHS = NO;
184
- CLANG_ANALYZER_NONNULL = YES;
185
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
186
- CLANG_CXX_LIBRARY = "libc++";
187
- CLANG_ENABLE_MODULES = YES;
188
- CLANG_ENABLE_OBJC_ARC = YES;
189
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
190
- CLANG_WARN_BOOL_CONVERSION = YES;
191
- CLANG_WARN_COMMA = YES;
192
- CLANG_WARN_CONSTANT_CONVERSION = YES;
193
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
194
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
195
- CLANG_WARN_EMPTY_BODY = YES;
196
- CLANG_WARN_ENUM_CONVERSION = YES;
197
- CLANG_WARN_INFINITE_RECURSION = YES;
198
- CLANG_WARN_INT_CONVERSION = YES;
199
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
200
- CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
201
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
202
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
203
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
204
- CLANG_WARN_STRICT_PROTOTYPES = YES;
205
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
206
- CLANG_WARN_UNREACHABLE_CODE = YES;
207
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
208
- COPY_PHASE_STRIP = NO;
209
- ENABLE_STRICT_OBJC_MSGSEND = YES;
210
- ENABLE_TESTABILITY = YES;
211
- GCC_C_LANGUAGE_STANDARD = gnu99;
212
- GCC_DYNAMIC_NO_PIC = NO;
213
- GCC_NO_COMMON_BLOCKS = YES;
214
- GCC_OPTIMIZATION_LEVEL = 0;
215
- GCC_PREPROCESSOR_DEFINITIONS = (
216
- "DEBUG=1",
217
- "$(inherited)",
218
- );
219
- GCC_SYMBOLS_PRIVATE_EXTERN = NO;
220
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
221
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
222
- GCC_WARN_UNDECLARED_SELECTOR = YES;
223
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
224
- GCC_WARN_UNUSED_FUNCTION = YES;
225
- GCC_WARN_UNUSED_VARIABLE = YES;
226
- IPHONEOS_DEPLOYMENT_TARGET = 9.0;
227
- LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)";
228
- LIBRARY_SEARCH_PATHS = (
229
- "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
230
- "\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"",
231
- "\"$(inherited)\"",
232
- );
233
- MTL_ENABLE_DEBUG_INFO = YES;
234
- ONLY_ACTIVE_ARCH = YES;
235
- SDKROOT = iphoneos;
236
- };
237
- name = Debug;
238
- };
239
- 58B511EE1A9E6C8500147676 /* Release */ = {
240
- isa = XCBuildConfiguration;
241
- buildSettings = {
242
- ALWAYS_SEARCH_USER_PATHS = NO;
243
- CLANG_ANALYZER_NONNULL = YES;
244
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
245
- CLANG_CXX_LIBRARY = "libc++";
246
- CLANG_ENABLE_MODULES = YES;
247
- CLANG_ENABLE_OBJC_ARC = YES;
248
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
249
- CLANG_WARN_BOOL_CONVERSION = YES;
250
- CLANG_WARN_COMMA = YES;
251
- CLANG_WARN_CONSTANT_CONVERSION = YES;
252
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
253
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
254
- CLANG_WARN_EMPTY_BODY = YES;
255
- CLANG_WARN_ENUM_CONVERSION = YES;
256
- CLANG_WARN_INFINITE_RECURSION = YES;
257
- CLANG_WARN_INT_CONVERSION = YES;
258
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
259
- CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
260
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
261
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
262
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
263
- CLANG_WARN_STRICT_PROTOTYPES = YES;
264
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
265
- CLANG_WARN_UNREACHABLE_CODE = YES;
266
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
267
- COPY_PHASE_STRIP = YES;
268
- ENABLE_NS_ASSERTIONS = NO;
269
- ENABLE_STRICT_OBJC_MSGSEND = YES;
270
- GCC_C_LANGUAGE_STANDARD = gnu99;
271
- GCC_NO_COMMON_BLOCKS = YES;
272
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
273
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
274
- GCC_WARN_UNDECLARED_SELECTOR = YES;
275
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
276
- GCC_WARN_UNUSED_FUNCTION = YES;
277
- GCC_WARN_UNUSED_VARIABLE = YES;
278
- IPHONEOS_DEPLOYMENT_TARGET = 9.0;
279
- LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)";
280
- LIBRARY_SEARCH_PATHS = (
281
- "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
282
- "\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"",
283
- "\"$(inherited)\"",
284
- );
285
- MTL_ENABLE_DEBUG_INFO = NO;
286
- SDKROOT = iphoneos;
287
- VALIDATE_PRODUCT = YES;
288
- };
289
- name = Release;
290
- };
291
- 58B511F01A9E6C8500147676 /* Debug */ = {
292
- isa = XCBuildConfiguration;
293
- buildSettings = {
294
- CLANG_ENABLE_MODULES = YES;
295
- HEADER_SEARCH_PATHS = (
296
- "$(inherited)",
297
- /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
298
- "$(SRCROOT)/../../../React/**",
299
- "$(SRCROOT)/../../react-native/React/**",
300
- );
301
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
302
- LIBRARY_SEARCH_PATHS = "$(inherited)";
303
- OTHER_LDFLAGS = "-ObjC";
304
- PRODUCT_NAME = DashX;
305
- SKIP_INSTALL = YES;
306
- SWIFT_OBJC_BRIDGING_HEADER = "DashX-Bridging-Header.h";
307
- SWIFT_OPTIMIZATION_LEVEL = "-Onone";
308
- SWIFT_VERSION = 5.0;
309
- };
310
- name = Debug;
311
- };
312
- 58B511F11A9E6C8500147676 /* Release */ = {
313
- isa = XCBuildConfiguration;
314
- buildSettings = {
315
- CLANG_ENABLE_MODULES = YES;
316
- HEADER_SEARCH_PATHS = (
317
- "$(inherited)",
318
- /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
319
- "$(SRCROOT)/../../../React/**",
320
- "$(SRCROOT)/../../react-native/React/**",
321
- );
322
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
323
- LIBRARY_SEARCH_PATHS = "$(inherited)";
324
- OTHER_LDFLAGS = "-ObjC";
325
- PRODUCT_NAME = DashX;
326
- SKIP_INSTALL = YES;
327
- SWIFT_OBJC_BRIDGING_HEADER = "DashX-Bridging-Header.h";
328
- SWIFT_VERSION = 5.0;
329
- };
330
- name = Release;
331
- };
332
- /* End XCBuildConfiguration section */
333
-
334
- /* Begin XCConfigurationList section */
335
- 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "DashX" */ = {
336
- isa = XCConfigurationList;
337
- buildConfigurations = (
338
- 58B511ED1A9E6C8500147676 /* Debug */,
339
- 58B511EE1A9E6C8500147676 /* Release */,
340
- );
341
- defaultConfigurationIsVisible = 0;
342
- defaultConfigurationName = Release;
343
- };
344
- 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "DashX" */ = {
345
- isa = XCConfigurationList;
346
- buildConfigurations = (
347
- 58B511F01A9E6C8500147676 /* Debug */,
348
- 58B511F11A9E6C8500147676 /* Release */,
349
- );
350
- defaultConfigurationIsVisible = 0;
351
- defaultConfigurationName = Release;
352
- };
353
- /* End XCConfigurationList section */
354
- };
355
- rootObject = 58B511D31A9E6C8500147676 /* Project object */;
356
- }
@@ -1,67 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <Scheme
3
- LastUpgradeVersion = "1160"
4
- version = "1.3">
5
- <BuildAction
6
- parallelizeBuildables = "NO"
7
- buildImplicitDependencies = "YES">
8
- <BuildActionEntries>
9
- <BuildActionEntry
10
- buildForTesting = "YES"
11
- buildForRunning = "YES"
12
- buildForProfiling = "YES"
13
- buildForArchiving = "YES"
14
- buildForAnalyzing = "YES">
15
- <BuildableReference
16
- BuildableIdentifier = "primary"
17
- BlueprintIdentifier = "58B511DA1A9E6C8500147676"
18
- BuildableName = "libDashX.a"
19
- BlueprintName = "DashX"
20
- ReferencedContainer = "container:DashX.xcodeproj">
21
- </BuildableReference>
22
- </BuildActionEntry>
23
- </BuildActionEntries>
24
- </BuildAction>
25
- <TestAction
26
- buildConfiguration = "Debug"
27
- selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
28
- selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29
- shouldUseLaunchSchemeArgsEnv = "YES">
30
- <Testables>
31
- </Testables>
32
- </TestAction>
33
- <LaunchAction
34
- buildConfiguration = "Debug"
35
- selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
36
- selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
37
- launchStyle = "0"
38
- useCustomWorkingDirectory = "NO"
39
- ignoresPersistentStateOnLaunch = "NO"
40
- debugDocumentVersioning = "YES"
41
- debugServiceExtension = "internal"
42
- allowLocationSimulation = "YES">
43
- </LaunchAction>
44
- <ProfileAction
45
- buildConfiguration = "Release"
46
- shouldUseLaunchSchemeArgsEnv = "YES"
47
- savedToolIdentifier = ""
48
- useCustomWorkingDirectory = "NO"
49
- debugDocumentVersioning = "YES">
50
- <MacroExpansion>
51
- <BuildableReference
52
- BuildableIdentifier = "primary"
53
- BlueprintIdentifier = "58B511DA1A9E6C8500147676"
54
- BuildableName = "libDashX.a"
55
- BlueprintName = "DashX"
56
- ReferencedContainer = "container:DashX.xcodeproj">
57
- </BuildableReference>
58
- </MacroExpansion>
59
- </ProfileAction>
60
- <AnalyzeAction
61
- buildConfiguration = "Debug">
62
- </AnalyzeAction>
63
- <ArchiveAction
64
- buildConfiguration = "Release"
65
- revealArchiveInOrganizer = "YES">
66
- </ArchiveAction>
67
- </Scheme>
@@ -1,73 +0,0 @@
1
- import Foundation
2
-
3
- @objc(DashXAppDelegate)
4
- class DashXAppDelegate: NSObject {
5
- static func swizzleDidReceiveRemoteNotificationFetchCompletionHandler() {
6
- // To remove the warning -[UIApplication delegate] must be called from main thread only
7
- // and to call the UI controlling method from the main thread, use `DispatchQueue.main.async`
8
- DispatchQueue.main.async {
9
- let appDelegate = UIApplication.shared.delegate
10
- let appDelegateClass: AnyClass? = object_getClass(appDelegate)
11
-
12
- let originalSelector = #selector(UIApplicationDelegate.application(_:didReceiveRemoteNotification:fetchCompletionHandler:))
13
- let swizzledSelector = #selector(DashXAppDelegate.self.handleMessage(_:didReceiveRemoteNotification:fetchCompletionHandler:))
14
-
15
- guard let swizzledMethod = class_getInstanceMethod(DashXAppDelegate.self, swizzledSelector) else {
16
- return
17
- }
18
-
19
- if let originalMethod = class_getInstanceMethod(appDelegateClass, originalSelector) {
20
- // exchange implementation
21
- method_exchangeImplementations(originalMethod, swizzledMethod)
22
- } else {
23
- // add implementation
24
- class_addMethod(appDelegateClass, swizzledSelector, method_getImplementation(swizzledMethod), method_getTypeEncoding(swizzledMethod))
25
- }
26
- }
27
- }
28
-
29
- // Based on - https://firebase.google.com/docs/cloud-messaging/ios/receive
30
- @objc
31
- func handleMessage(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
32
- DashXLog.d(tag: #function, "Received APN: \(userInfo)")
33
-
34
- let state = UIApplication.shared.applicationState
35
- // Do Nothing when app is in foreground
36
- if state == .active {
37
- completionHandler(.noData)
38
- return
39
- }
40
-
41
- if let dashx = userInfo["dashx"] as? String {
42
- let maybeDashxDictionary = dashx.convertToDictionary()
43
-
44
- let notificationContent = UNMutableNotificationContent()
45
- notificationContent.sound = UNNotificationSound.default
46
-
47
- if let parsedDashxDictionary = maybeDashxDictionary {
48
- guard let identifier = parsedDashxDictionary["id"] as? String else {
49
- completionHandler(.newData)
50
- // Do not handle non-DashX notifications
51
- return
52
- }
53
-
54
- if let parsedTitle = parsedDashxDictionary["title"] as? String {
55
- notificationContent.title = parsedTitle
56
- }
57
-
58
- if let parsedBody = parsedDashxDictionary["body"] as? String {
59
- notificationContent.body = parsedBody
60
- }
61
-
62
- let request = UNNotificationRequest(identifier: identifier, content: notificationContent, trigger: nil)
63
- let notificationCenter = UNUserNotificationCenter.current()
64
- notificationCenter.add(request)
65
-
66
- let data = ["data": userInfo]
67
- DashXEventEmitter.instance.dispatch(name: "messageReceived", body: data)
68
- }
69
- }
70
-
71
- completionHandler(.newData)
72
- }
73
- }
@@ -1,65 +0,0 @@
1
- import Foundation
2
-
3
- @objc(DashXApplicationLifecycleCallbacks)
4
- class DashXApplicationLifecycleCallbacks: NSObject {
5
- static let instance = DashXApplicationLifecycleCallbacks()
6
- let dashXClient = DashXClient.instance
7
- var startSession: Double?
8
-
9
- func enable() {
10
- let notificationCenter = NotificationCenter.default
11
-
12
- notificationCenter.addObserver(self, selector: #selector(appBackgrounded), name: UIApplication.willResignActiveNotification, object: nil)
13
-
14
- notificationCenter.addObserver(self, selector: #selector(appResumed), name: UIApplication.willEnterForegroundNotification, object: nil)
15
-
16
- NSSetUncaughtExceptionHandler { exception in
17
- DashXClient.instance.track(Constants.INTERNAL_EVENT_APP_CRASHED, withData: [ "exception": exception.reason ])
18
- }
19
-
20
- appOpened()
21
- }
22
-
23
- func getAppBuildInfo() -> [String: Any] {
24
- let currentRelease = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as! String
25
- let currentBuild = Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion") as! String
26
- return [ "version": currentRelease, "build": currentBuild ]
27
- }
28
-
29
- @objc
30
- func appBackgrounded() {
31
- let sessionLength = Date.timeIntervalSinceReferenceDate - startSession!
32
-
33
- dashXClient.track(Constants.INTERNAL_EVENT_APP_BACKGROUNDED, withData: [ "session_length": sessionLength ])
34
- }
35
-
36
- @objc
37
- func appOpened() {
38
- startSession = Date.timeIntervalSinceReferenceDate
39
- let defaults = UserDefaults.standard
40
- let appVersionKey = Constants.USER_PREFERENCES_KEY_BUILD
41
- let appBuildInfo = getAppBuildInfo()
42
- let previousBuild = defaults.string(forKey: appVersionKey)
43
- let currentBuild = appBuildInfo["build"] as! String
44
-
45
- if previousBuild == nil {
46
- dashXClient.track(Constants.INTERNAL_EVENT_APP_INSTALLED, withData: appBuildInfo as NSDictionary)
47
- defaults.set(currentBuild, forKey: appVersionKey)
48
- defaults.synchronize()
49
- } else if previousBuild == currentBuild {
50
- dashXClient.track(Constants.INTERNAL_EVENT_APP_OPENED, withData: appBuildInfo as NSDictionary)
51
- } else {
52
- dashXClient.track(Constants.INTERNAL_EVENT_APP_UPDATED, withData: appBuildInfo as NSDictionary)
53
- defaults.set(currentBuild, forKey: appVersionKey)
54
- defaults.synchronize()
55
- }
56
- }
57
-
58
- @objc
59
- func appResumed() {
60
- startSession = Date.timeIntervalSinceReferenceDate
61
- let properties = getAppBuildInfo().merging([ "from_background": true ]) { (current, _) in current }
62
-
63
- dashXClient.track(Constants.INTERNAL_EVENT_APP_OPENED, withData: properties as NSDictionary)
64
- }
65
- }