@metrixorg/react-native-plugin 1.2.0-beta08 → 1.2.0-beta12

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.
@@ -8,8 +8,8 @@ android {
8
8
  defaultConfig {
9
9
  minSdkVersion 16
10
10
  targetSdkVersion 28
11
- versionCode 100200057
12
- versionName "1.2.0-beta07"
11
+ versionCode 100200062
12
+ versionName "1.2.0-beta12"
13
13
  }
14
14
 
15
15
  buildTypes {
@@ -29,6 +29,6 @@ rootProject.allprojects {
29
29
 
30
30
  dependencies {
31
31
  implementation 'com.facebook.react:react-native:+'
32
- implementation 'ir.metrix:metrix-reactnative:1.2.0-beta5'
32
+ implementation 'ir.metrix:metrix-reactnative:1.2.0-beta7'
33
33
 
34
34
  }
@@ -12,6 +12,9 @@ import com.facebook.react.bridge.ReactMethod;
12
12
  import com.facebook.react.bridge.ReadableMap;
13
13
  import com.facebook.react.bridge.ReadableMapKeySetIterator;
14
14
  import com.facebook.react.bridge.WritableMap;
15
+
16
+ import com.facebook.react.modules.core.DeviceEventManagerModule;
17
+
15
18
  import android.util.Log;
16
19
 
17
20
  import java.util.HashMap;
@@ -22,6 +25,8 @@ import ir.metrix.messaging.RevenueCurrency;
22
25
  import ir.metrix.OnAttributionChangeListener;
23
26
  import ir.metrix.OnDeeplinkResponseListener;
24
27
  import ir.metrix.UserIdListener;
28
+ import ir.metrix.session.SessionIdListener;
29
+ import ir.metrix.session.SessionNumberListener;
25
30
 
26
31
  public class MetrixModule extends ReactContextBaseJavaModule {
27
32
 
@@ -94,62 +99,63 @@ public class MetrixModule extends ReactContextBaseJavaModule {
94
99
  }
95
100
 
96
101
  @ReactMethod
97
- public void getSessionNum(Callback callback) {
98
- if (callback != null) {
99
- callback.invoke(ir.metrix.Metrix.getSessionNum());
100
- }
102
+ public void setSessionNumberListener() {
103
+ ir.metrix.Metrix.setSessionNumberListener(
104
+ new SessionNumberListener() {
105
+ @Override
106
+ public void onSessionNumberChanged(int sessionNumber) {
107
+ sendStringEvent("onSessionNumberChangedListener", String.valueOf(sessionNumber));
108
+ }
109
+ }
110
+ );
101
111
  }
102
112
 
103
113
  @ReactMethod
104
- public void getSessionId(Callback callback) {
105
- if (callback != null) {
106
- callback.invoke(ir.metrix.Metrix.getSessionId());
107
- }
114
+ public void setSessionIdListener() {
115
+ ir.metrix.Metrix.setSessionIdListener(
116
+ new SessionIdListener() {
117
+ @Override
118
+ public void onSessionIdChanged(String sessionId) {
119
+ sendStringEvent("onSessionIdChangedListener", sessionId);
120
+ }
121
+ }
122
+ );
108
123
  }
109
124
 
110
125
  @ReactMethod
111
- public void setOnAttributionChangedListener(final Callback callback) {
112
-
113
- if (callback != null) {
114
- ir.metrix.Metrix.setOnAttributionChangedListener(
115
- new OnAttributionChangeListener() {
116
- @Override
117
- public void onAttributionChanged(AttributionData attributionData) {
118
- WritableMap map = getWritableMapFromAttributionModel(attributionData);
119
-
120
- callback.invoke(map);
121
- }
122
- });
123
- }
126
+ public void setOnAttributionChangedListener() {
127
+ ir.metrix.Metrix.setOnAttributionChangedListener(
128
+ new OnAttributionChangeListener() {
129
+ @Override
130
+ public void onAttributionChanged(AttributionData attributionData) {
131
+ WritableMap map = getWritableMapFromAttributionModel(attributionData);
132
+
133
+ sendObjectEvent("onAttributionChangedListener", map);
134
+ }
135
+ });
124
136
  }
125
137
 
126
138
  @ReactMethod
127
- public void setUserIdListener(final Callback callback) {
128
-
129
- if (callback != null) {
130
- ir.metrix.Metrix.setUserIdListener(
131
- new UserIdListener() {
132
- @Override
133
- public void onUserIdReceived(String userId) {
134
- callback.invoke(userId);
135
- }
136
- });
137
- }
139
+ public void setUserIdListener() {
140
+ ir.metrix.Metrix.setUserIdListener(
141
+ new UserIdListener() {
142
+ @Override
143
+ public void onUserIdReceived(String userId) {
144
+ sendStringEvent("onUserIdListener", userId);
145
+ }
146
+ });
138
147
  }
139
148
 
140
149
  @ReactMethod
141
- public void setOnDeeplinkResponseListener(final boolean shouldLaunchDeeplink, final Callback callback) {
142
-
143
- if (callback != null) {
144
- ir.metrix.Metrix.setOnDeeplinkResponseListener(
145
- new OnDeeplinkResponseListener() {
146
- @Override
147
- public boolean launchReceivedDeeplink(Uri deeplink) {
148
- callback.invoke(deeplink.toString());
149
- return shouldLaunchDeeplink;
150
- }
151
- });
152
- }
150
+ public void setOnDeeplinkResponseListener(final boolean shouldLaunchDeeplink) {
151
+ ir.metrix.Metrix.setOnDeeplinkResponseListener(
152
+ new OnDeeplinkResponseListener() {
153
+ @Override
154
+ public boolean launchReceivedDeeplink(Uri deeplink) {
155
+ sendStringEvent("onDeeplinkResponseListener", deeplink.toString());
156
+ return shouldLaunchDeeplink;
157
+ }
158
+ });
153
159
  }
154
160
 
155
161
  private WritableMap getWritableMapFromAttributionModel(AttributionData attributionData) {
@@ -177,4 +183,16 @@ public class MetrixModule extends ReactContextBaseJavaModule {
177
183
  }
178
184
  return map;
179
185
  }
186
+
187
+ private void sendObjectEvent(String eventName, WritableMap param) {
188
+ getReactApplicationContext()
189
+ .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
190
+ .emit(eventName, param);
191
+ }
192
+
193
+ private void sendStringEvent(String eventName, String param) {
194
+ getReactApplicationContext()
195
+ .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
196
+ .emit(eventName, param);
197
+ }
180
198
  }
package/index.js CHANGED
@@ -22,39 +22,29 @@ Metrix.setPushToken = function(token) {
22
22
  module_metrix.setPushToken(token);
23
23
  };
24
24
 
25
- Metrix.getSessionNum = function(callback) {
26
- module_metrix.getSessionNum(callback);
25
+ Metrix.setSessionNumberListener = function(callback) {
26
+ eventEmitter.addListener('onSessionNumberChangedListener', callback);
27
+ module_metrix.setSessionNumberListener();
27
28
  };
28
29
 
29
- Metrix.getSessionId = function(callback) {
30
- module_metrix.getSessionId(callback);
30
+ Metrix.setSessionIdListener = function(callback) {
31
+ eventEmitter.addListener('onSessionIdChangedListener', callback);
32
+ module_metrix.setSessionIdListener();
31
33
  };
32
34
 
33
35
  Metrix.setOnAttributionChangedListener = function(callback) {
34
- if (Platform.OS === "android") {
35
- module_metrix.setOnAttributionChangedListener(callback);
36
- } else {
37
- eventEmitter.addListener('onAttributionChangedListener', callback);
38
- module_metrix.setOnAttributionChangedListener();
39
- }
36
+ eventEmitter.addListener('onAttributionChangedListener', callback);
37
+ module_metrix.setOnAttributionChangedListener();
40
38
  };
41
39
 
42
40
  Metrix.setOnDeeplinkResponseListener = function(callback) {
43
- if (Platform.OS === "android") {
44
- module_metrix.setOnDeeplinkResponseListener(this.shouldLaunchDeeplink, callback);
45
- } else {
46
- eventEmitter.addListener('onDeeplinkResponseListener', callback);
47
- module_metrix.setOnDeeplinkResponseListener(this.shouldLaunchDeeplink);
48
- }
41
+ eventEmitter.addListener('onDeeplinkResponseListener', callback);
42
+ module_metrix.setOnDeeplinkResponseListener(this.shouldLaunchDeeplink);
49
43
  };
50
44
 
51
45
  Metrix.setUserIdListener = function(callback) {
52
- if (Platform.OS === "android") {
53
- module_metrix.setUserIdListener(callback);
54
- } else {
55
- eventEmitter.addListener('onUserIdListener', callback);
56
- module_metrix.setUserIdListener();
57
- }
46
+ eventEmitter.addListener('onUserIdListener', callback);
47
+ module_metrix.setUserIdListener();
58
48
  };
59
49
 
60
50
  Metrix.newEvent = function(eventName, customAttributes) {
@@ -25,7 +25,7 @@ BOOL hasAttributionListener;
25
25
 
26
26
  - (NSArray<NSString *> *)supportedEvents
27
27
  {
28
- return @[@"onAttributionChangedListener", @"onUserIdListener", @"onDeeplinkResponseListener"];
28
+ return @[@"onAttributionChangedListener", @"onUserIdListener", @"onDeeplinkResponseListener", @"onSessionNumberChangedListener", @"onSessionIdChangedListener"];
29
29
  }
30
30
 
31
31
  RCT_EXPORT_METHOD(initialize:(NSString *)appId) {
@@ -36,14 +36,16 @@ RCT_EXPORT_METHOD(setPushToken:(NSString *)token) {
36
36
  [Metrix setPushTokenWithPushToken:token];
37
37
  }
38
38
 
39
- RCT_EXPORT_METHOD(getSessionNum:(RCTResponseSenderBlock)callback) {
40
- NSInteger sessionNum = [Metrix getSessionNum];
41
- callback(@[@(sessionNum)]);
39
+ RCT_EXPORT_METHOD(setSessionNumberListener) {
40
+ [Metrix setSessionNumberListener:^(NSInteger sessionNumber) {
41
+ [self sendEventWithName:@"onSessionNumberChangedListener" body:[NSString stringWithFormat: @"%ld", (long)sessionNumber]];
42
+ }];
42
43
  }
43
44
 
44
- RCT_EXPORT_METHOD(getSessionId:(RCTResponseSenderBlock)callback) {
45
- NSString *sessionId = [Metrix getSessionId];
46
- callback(@[sessionId]);
45
+ RCT_EXPORT_METHOD(setSessionIdListener) {
46
+ [Metrix setSessionIdListener:^(NSString *sessionId) {
47
+ [self sendEventWithName:@"onSessionIdChangedListener" body:sessionId];
48
+ }];
47
49
  }
48
50
 
49
51
  RCT_EXPORT_METHOD(newCustomEvent:(NSString *)eventName attributes:(NSDictionary *)attributes) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metrixorg/react-native-plugin",
3
- "version": "1.2.0-beta08",
3
+ "version": "1.2.0-beta12",
4
4
  "description": "Metrix React native plugin",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -16,5 +16,5 @@ Pod::Spec.new do |s|
16
16
  s.dependency 'React'
17
17
 
18
18
  # MetrixFramework
19
- s.dependency 'Metrix/reactnative', '2.0.0-beta07'
19
+ s.dependency 'Metrix/reactnative', '2.0.0-beta10'
20
20
  end