react-native-mparticle 2.6.1 → 2.7.1

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 (23) hide show
  1. package/.github/workflows/pull-request.yml +31 -0
  2. package/README.md +26 -23
  3. package/android/src/main/java/com/mparticle/react/MParticleModule.java +29 -5
  4. package/ios/RNMParticle/RNMParticle.m +2 -2
  5. package/js/index.js +2 -2
  6. package/package.json +1 -1
  7. package/.github/workflows/react-ci.yml +0 -22
  8. package/android/.classpath +0 -6
  9. package/android/.gradle/5.4.1/executionHistory/executionHistory.bin +0 -0
  10. package/android/.gradle/5.4.1/executionHistory/executionHistory.lock +0 -0
  11. package/android/.gradle/5.4.1/fileChanges/last-build.bin +0 -0
  12. package/android/.gradle/5.4.1/fileHashes/fileHashes.lock +0 -0
  13. package/android/.gradle/5.4.1/gc.properties +0 -0
  14. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  15. package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
  16. package/android/.gradle/vcs-1/gc.properties +0 -0
  17. package/android/.project +0 -34
  18. package/android/.settings/org.eclipse.buildship.core.prefs +0 -13
  19. package/ios/RNMParticle.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  20. package/ios/RNMParticle.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  21. package/ios/RNMParticle.xcodeproj/project.xcworkspace/xcuserdata/bstalnaker.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  22. package/ios/RNMParticle.xcodeproj/xcuserdata/bstalnaker.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +0 -6
  23. package/ios/RNMParticle.xcodeproj/xcuserdata/bstalnaker.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
@@ -0,0 +1,31 @@
1
+ name: "Build and Test"
2
+
3
+ on: [pull_request, push]
4
+
5
+ jobs:
6
+ js-tests:
7
+ name: "JS Tests"
8
+ runs-on: macOS-latest
9
+ steps:
10
+ - name: "Checkout"
11
+ uses: actions/checkout@v2
12
+ - uses: actions/setup-node@master
13
+ - uses: c-hive/gha-yarn-cache@v1
14
+
15
+ - name: "Install node modules"
16
+ run: |
17
+ yarn install
18
+
19
+ - name: "Run test"
20
+ run: |
21
+ yarn test
22
+ android-unit-tests:
23
+ name: "Android Unit Tests"
24
+ runs-on: ubuntu-18.04
25
+ steps:
26
+ - name: "Checkout"
27
+ uses: actions/checkout@v2
28
+
29
+ - name: "Run Android Unit Tests"
30
+ working-directory: android
31
+ run: ./gradlew test
package/README.md CHANGED
@@ -61,24 +61,23 @@ import mParticle_Apple_SDK
61
61
 
62
62
  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
63
63
 
64
- // Override point for customization after application launch.
64
+ //override point for customization after application launch.
65
65
  let mParticleOptions = MParticleOptions(key: "<<<App Key Here>>>", secret: "<<<App Secret Here>>>")
66
66
 
67
- //Please see the Identity page for more information on building this object
67
+ //optional- Please see the Identity page for more information on building this object
68
68
  let request = MPIdentityApiRequest()
69
69
  request.email = "email@example.com"
70
70
  mParticleOptions.identifyRequest = request
71
+ //optional
71
72
  mParticleOptions.onIdentifyComplete = { (apiResult, error) in
72
73
  NSLog("Identify complete. userId = %@ error = %@", apiResult?.user.userId.stringValue ?? "Null User ID", error?.localizedDescription ?? "No Error Available")
73
74
  }
75
+ //optional
74
76
  mParticleOptions.onAttributionComplete = { (attributionResult, error) in
75
77
  NSLog(@"Attribution Complete. attributionResults = %@", attributionResult.linkInfo)
76
78
  }
77
-
78
- //Start the SDK
79
- MParticle.sharedInstance().start(with: mParticleOptions)
80
-
81
- return true
79
+ MParticle.sharedInstance().start(with: mParticleOptions)
80
+ return true
82
81
  }
83
82
  ```
84
83
 
@@ -110,13 +109,15 @@ Next, you'll need to start the SDK:
110
109
  MParticleOptions *mParticleOptions = [MParticleOptions optionsWithKey:@"REPLACE ME"
111
110
  secret:@"REPLACE ME"];
112
111
 
113
- //Please see the Identity page for more information on building this object
112
+ //optional - Please see the Identity page for more information on building this object
114
113
  MPIdentityApiRequest *request = [MPIdentityApiRequest requestWithEmptyUser];
115
114
  request.email = @"email@example.com";
116
115
  mParticleOptions.identifyRequest = request;
116
+ //optional
117
117
  mParticleOptions.onIdentifyComplete = ^(MPIdentityApiResult * _Nullable apiResult, NSError * _Nullable error) {
118
118
  NSLog(@"Identify complete. userId = %@ error = %@", apiResult.user.userId, error);
119
119
  };
120
+ //optional
120
121
  mParticleOptions.onAttributionComplete(MPAttributionResult * _Nullable attributionResult, NSError * _Nullable error) {
121
122
  NSLog(@"Attribution Complete. attributionResults = %@", attributionResult.linkInfo)
122
123
  }
@@ -138,29 +139,31 @@ See [Identity](http://docs.mparticle.com/developers/sdk/ios/identity/) for more
138
139
 
139
140
  For more help, see [the Android set up docs](https://docs.mparticle.com/developers/sdk/android/getting-started/#create-an-input).
140
141
 
141
- ```java
142
+ ```kotlin
142
143
  package com.example.myapp;
143
144
 
144
145
  import android.app.Application;
145
146
  import com.mparticle.MParticle;
146
147
 
147
- public class MyApplication extends Application {
148
- @Override
149
- public void onCreate() {
150
- super.onCreate();
151
- MParticleOptions options = MParticleOptions.builder(this)
152
- .credentials("REPLACE ME WITH KEY","REPLACE ME WITH SECRET")
153
- .setLogLevel(MParticle.LogLevel.VERBOSE)
148
+ class MyApplication : Application() {
149
+ fun onCreate() {
150
+ super.onCreate()
151
+ val options: MParticleOptions = MParticleOptions.builder(this)
152
+ .credentials("REPLACE ME WITH KEY", "REPLACE ME WITH SECRET")
153
+ //optional
154
+ .logLevel(MParticle.LogLevel.VERBOSE)
155
+ //optional
154
156
  .identify(identifyRequest)
157
+ //optional
155
158
  .identifyTask(
156
- new BaseIdentityTask()
157
- .addFailureListener(this)
158
- .addSuccessListener(this)
159
- )
159
+ BaseIdentityTask()
160
+ .addFailureListener { errorResponse -> }
161
+ .addSuccessListener{ result -> }
162
+ )
163
+ //optional
160
164
  .attributionListener(this)
161
- .build();
162
-
163
- MParticle.start(options);
165
+ .build()
166
+ MParticle.start(options)
164
167
  }
165
168
  }
166
169
  ```
@@ -13,6 +13,8 @@ import com.facebook.react.bridge.Callback;
13
13
  import com.facebook.react.bridge.ReadableType;
14
14
  import com.facebook.react.bridge.WritableMap;
15
15
  import com.facebook.react.bridge.WritableNativeMap;
16
+ import com.facebook.react.bridge.WritableArray;
17
+ import com.facebook.react.bridge.WritableNativeArray;
16
18
  import com.mparticle.AttributionResult;
17
19
  import com.mparticle.MParticle;
18
20
  import com.mparticle.MPEvent;
@@ -66,7 +68,7 @@ public class MParticleModule extends ReactContextBaseJavaModule {
66
68
  MParticle.EventType eventType = ConvertEventType(type);
67
69
 
68
70
  MPEvent event = new MPEvent.Builder(name, eventType)
69
- .info(attributes)
71
+ .customAttributes(attributes)
70
72
  .build();
71
73
  MParticle.getInstance().logEvent(event);
72
74
  }
@@ -86,9 +88,9 @@ public class MParticleModule extends ReactContextBaseJavaModule {
86
88
  }
87
89
 
88
90
  @ReactMethod
89
- public void logScreenEvent(final String event, final ReadableMap attributesMap) {
91
+ public void logScreenEvent(final String event, final ReadableMap attributesMap, final boolean shouldUploadEvent) {
90
92
  Map<String, String> attributes = ConvertStringMap(attributesMap);
91
- MParticle.getInstance().logScreen(event, attributes);
93
+ MParticle.getInstance().logScreen(event, attributes, shouldUploadEvent);
92
94
  }
93
95
 
94
96
  @ReactMethod
@@ -121,7 +123,19 @@ public class MParticleModule extends ReactContextBaseJavaModule {
121
123
  selectedUser.getUserAttributes(new UserAttributeListener() {
122
124
  @Override
123
125
  public void onUserAttributesReceived(Map<String, String> userAttributes, Map<String, List<String>> userAttributeLists, Long mpid) {
124
- completion.invoke(null, userAttributes);
126
+ WritableMap resultMap = new WritableNativeMap();
127
+ for (Map.Entry<String, String> entry : userAttributes.entrySet()) {
128
+ resultMap.putString(entry.getKey(), entry.getValue());
129
+ }
130
+ for (Map.Entry<String, List<String>> entry : userAttributeLists.entrySet()) {
131
+ WritableArray resultArray = new WritableNativeArray();
132
+ List<String> valueList = entry.getValue();
133
+ for (String arrayVal : valueList) {
134
+ resultArray.pushString(arrayVal);
135
+ }
136
+ resultMap.putArray(entry.getKey(), resultArray);
137
+ }
138
+ completion.invoke(null, resultMap);
125
139
  }
126
140
  });
127
141
  } else {
@@ -496,7 +510,7 @@ public class MParticleModule extends ReactContextBaseJavaModule {
496
510
  if (map.hasKey("info")) {
497
511
  ReadableMap customInfoMap = map.getMap("info");
498
512
  Map<String, String> customInfo = ConvertStringMap(customInfoMap);
499
- builder.info(customInfo);
513
+ builder.customAttributes(customInfo);
500
514
  }
501
515
 
502
516
  if (map.hasKey("customFlags")) {
@@ -598,6 +612,16 @@ public class MParticleModule extends ReactContextBaseJavaModule {
598
612
  if (map.hasKey("customAttributes")) {
599
613
  builder.customAttributes(ConvertStringMap(map.getMap("customAttributes")));
600
614
  }
615
+ if (map.hasKey("currency")) {
616
+ builder.currency(map.getString("currency"));
617
+ }
618
+ if (map.hasKey("checkoutStep")) {
619
+ builder.checkoutStep(map.getInt("checkoutStep"));
620
+ }
621
+ if (map.hasKey("checkoutOptions")) {
622
+ builder.checkoutOptions(map.getString("checkoutOptions"));
623
+ }
624
+
601
625
 
602
626
  return builder.build();
603
627
  }
@@ -34,9 +34,9 @@ RCT_EXPORT_METHOD(logCommerceEvent:(MPCommerceEvent *)commerceEvent)
34
34
  [[MParticle sharedInstance] logCommerceEvent:commerceEvent];
35
35
  }
36
36
 
37
- RCT_EXPORT_METHOD(logScreenEvent:(NSString *)screenName attributes:(NSDictionary *)attributes)
37
+ RCT_EXPORT_METHOD(logScreenEvent:(NSString *)screenName attributes:(NSDictionary *)attributes shouldUploadEvent:(BOOL)shouldUploadEvent)
38
38
  {
39
- [[MParticle sharedInstance] logScreen:screenName eventInfo:attributes];
39
+ [[MParticle sharedInstance] logScreen:screenName eventInfo:attributes shouldUploadEvent:shouldUploadEvent];
40
40
  }
41
41
 
42
42
  RCT_EXPORT_METHOD(setATTStatus:(NSInteger)status withATTStatusTimestampMillis:(nonnull NSNumber *)timestamp)
package/js/index.js CHANGED
@@ -96,8 +96,8 @@ const logCommerceEvent = (commerceEvent) => {
96
96
  NativeModules.MParticle.logCommerceEvent(commerceEvent)
97
97
  }
98
98
 
99
- const logScreenEvent = (screenName, attributes = null) => {
100
- NativeModules.MParticle.logScreenEvent(screenName, attributes)
99
+ const logScreenEvent = (screenName, attributes = null, shouldUploadEvent = true) => {
100
+ NativeModules.MParticle.logScreenEvent(screenName, attributes, shouldUploadEvent)
101
101
  }
102
102
 
103
103
  // Use ATTAuthStatus constants for status
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "homepage": "https://www.mparticle.com",
5
5
  "license": "Apache-2.0",
6
6
  "repository": "mParticle/react-native-mparticle",
7
- "version": "2.6.1",
7
+ "version": "2.7.1",
8
8
  "main": "js/index.js",
9
9
  "scripts": {
10
10
  "test": "./node_modules/standard/bin/cmd.js",
@@ -1,22 +0,0 @@
1
- name: Continuous Integration
2
-
3
- on:
4
- pull_request:
5
- push:
6
-
7
- jobs:
8
- build:
9
- runs-on: macOS-latest
10
- steps:
11
- - name: Checkout
12
- uses: actions/checkout@v2
13
- - uses: actions/setup-node@master
14
- - uses: c-hive/gha-yarn-cache@v1
15
-
16
- - name: Install node modules
17
- run: |
18
- yarn install
19
-
20
- - name: Run test
21
- run: |
22
- yarn test
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <classpath>
3
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11/"/>
4
- <classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer"/>
5
- <classpathentry kind="output" path="bin/default"/>
6
- </classpath>
File without changes
@@ -1,2 +0,0 @@
1
- #Wed Mar 17 12:51:17 EDT 2021
2
- gradle.version=5.4.1
File without changes
package/android/.project DELETED
@@ -1,34 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <projectDescription>
3
- <name>android</name>
4
- <comment>Project android created by Buildship.</comment>
5
- <projects>
6
- </projects>
7
- <buildSpec>
8
- <buildCommand>
9
- <name>org.eclipse.jdt.core.javabuilder</name>
10
- <arguments>
11
- </arguments>
12
- </buildCommand>
13
- <buildCommand>
14
- <name>org.eclipse.buildship.core.gradleprojectbuilder</name>
15
- <arguments>
16
- </arguments>
17
- </buildCommand>
18
- </buildSpec>
19
- <natures>
20
- <nature>org.eclipse.jdt.core.javanature</nature>
21
- <nature>org.eclipse.buildship.core.gradleprojectnature</nature>
22
- </natures>
23
- <filteredResources>
24
- <filter>
25
- <id>1630678802180</id>
26
- <name></name>
27
- <type>30</type>
28
- <matcher>
29
- <id>org.eclipse.core.resources.regexFilterMatcher</id>
30
- <arguments>node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
31
- </matcher>
32
- </filter>
33
- </filteredResources>
34
- </projectDescription>
@@ -1,13 +0,0 @@
1
- arguments=
2
- auto.sync=false
3
- build.scans.enabled=false
4
- connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER)
5
- connection.project.dir=
6
- eclipse.preferences.version=1
7
- gradle.user.home=
8
- java.home=/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
9
- jvm.arguments=
10
- offline.mode=false
11
- override.workspace.settings=true
12
- show.console.view=true
13
- show.executions.view=true
@@ -1,7 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <Workspace
3
- version = "1.0">
4
- <FileRef
5
- location = "self:">
6
- </FileRef>
7
- </Workspace>
@@ -1,8 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
- <plist version="1.0">
4
- <dict>
5
- <key>IDEDidComputeMac32BitWarning</key>
6
- <true/>
7
- </dict>
8
- </plist>
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <Bucket
3
- uuid = "39402CF6-7BAB-4033-9C4A-41AE5477C134"
4
- type = "1"
5
- version = "2.0">
6
- </Bucket>
@@ -1,14 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
- <plist version="1.0">
4
- <dict>
5
- <key>SchemeUserState</key>
6
- <dict>
7
- <key>RNMParticle.xcscheme_^#shared#^_</key>
8
- <dict>
9
- <key>orderHint</key>
10
- <integer>0</integer>
11
- </dict>
12
- </dict>
13
- </dict>
14
- </plist>