@adobe/react-native-aepmessaging 6.0.4 → 6.0.5

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.
@@ -11,6 +11,8 @@
11
11
  */
12
12
  package com.adobe.marketing.mobile.reactnative.messaging;
13
13
 
14
+ import static com.adobe.marketing.mobile.reactnative.messaging.RCTAEPMessagingUtil.convertMessageToMap;
15
+
14
16
  import android.app.Activity;
15
17
 
16
18
  import androidx.annotation.NonNull;
@@ -84,7 +86,11 @@ public final class RCTAEPMessagingModule
84
86
 
85
87
  @ReactMethod
86
88
  public void getLatestMessage(final Promise promise) {
87
- promise.resolve(this.latestMessage);
89
+ if (this.latestMessage != null) {
90
+ promise.resolve(RCTAEPMessagingUtil.convertToReadableMap(convertMessageToMap(this.latestMessage)));
91
+ } else {
92
+ promise.resolve(null);
93
+ }
88
94
  }
89
95
 
90
96
  @ReactMethod
@@ -174,7 +180,7 @@ public final class RCTAEPMessagingModule
174
180
  Message message = MessagingUtils.getMessageForPresentable((Presentable<InAppMessage>) presentable);
175
181
  if (message != null) {
176
182
  Map<String, String> data =
177
- RCTAEPMessagingUtil.convertMessageToMap(message);
183
+ convertMessageToMap(message);
178
184
  emitEvent("onShow", data);
179
185
  }
180
186
  }
@@ -185,7 +191,7 @@ public final class RCTAEPMessagingModule
185
191
  Message message = MessagingUtils.getMessageForPresentable((Presentable<InAppMessage>) presentable);
186
192
  if (message != null) {
187
193
  Map<String, String> data =
188
- RCTAEPMessagingUtil.convertMessageToMap(message);
194
+ convertMessageToMap(message);
189
195
  emitEvent("onDismiss", data);
190
196
  }
191
197
  }
@@ -196,7 +202,7 @@ public final class RCTAEPMessagingModule
196
202
  Message message = MessagingUtils.getMessageForPresentable((Presentable<InAppMessage>) presentable);
197
203
  if (message != null) {
198
204
  Map<String, String> data =
199
- RCTAEPMessagingUtil.convertMessageToMap(message);
205
+ convertMessageToMap(message);
200
206
  emitEvent("onHide", data);
201
207
  }
202
208
  }
@@ -207,7 +213,7 @@ public final class RCTAEPMessagingModule
207
213
  Message message = MessagingUtils.getMessageForPresentable((Presentable<InAppMessage>) presentable);
208
214
  if (message != null) {
209
215
  Map<String, String> data =
210
- RCTAEPMessagingUtil.convertMessageToMap(message);
216
+ convertMessageToMap(message);
211
217
  emitEvent("shouldShowMessage", data);
212
218
  // Latch stops the thread until the shouldShowMessage value is received
213
219
  // from the JS side on thread dedicated to run JS code. The function
@@ -234,7 +240,7 @@ public final class RCTAEPMessagingModule
234
240
  Message message = MessagingUtils.getMessageForPresentable((Presentable<InAppMessage>) presentable);
235
241
  if (message != null) {
236
242
  Map<String, String> data =
237
- RCTAEPMessagingUtil.convertMessageToMap(message);
243
+ convertMessageToMap(message);
238
244
  emitEvent("onContentLoaded", data);
239
245
  }
240
246
  }
@@ -263,4 +269,4 @@ public final class RCTAEPMessagingModule
263
269
  .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
264
270
  .emit(name, eventData);
265
271
  }
266
- }
272
+ }
@@ -10,205 +10,210 @@
10
10
  language governing permissions and limitations under the License.
11
11
  */
12
12
 
13
- package com.adobe.marketing.mobile.reactnative.messaging;
14
-
15
- import android.app.Activity;
16
- import com.adobe.marketing.mobile.Message;
17
- import com.adobe.marketing.mobile.MessagingEdgeEventType;
18
- import com.adobe.marketing.mobile.messaging.Proposition;
19
- import com.adobe.marketing.mobile.messaging.PropositionItem;
20
- import com.adobe.marketing.mobile.messaging.Surface;
21
- import com.facebook.react.bridge.Arguments;
22
- import com.facebook.react.bridge.ReadableArray;
23
- import com.facebook.react.bridge.ReadableMap;
24
- import com.facebook.react.bridge.WritableArray;
25
- import com.facebook.react.bridge.WritableMap;
26
- import com.facebook.react.bridge.WritableNativeArray;
27
- import com.facebook.react.bridge.WritableNativeMap;
28
- import java.util.ArrayList;
29
- import java.util.Collection;
30
- import java.util.HashMap;
31
- import java.util.Iterator;
32
- import java.util.List;
33
- import java.util.ListIterator;
34
- import java.util.Map;
35
-
36
- /**
37
- * Utility class for converting data models to {@link
38
- * com.facebook.react.bridge.WritableMap}
39
- */
40
-
41
- class RCTAEPMessagingUtil {
42
-
43
- private static final String TAG = "RCTAEPMessaging";
44
-
45
- private RCTAEPMessagingUtil() {}
46
-
47
- // From React Native
48
- static MessagingEdgeEventType getEventType(final int eventType) {
49
- switch (eventType) {
50
- case 0:
51
- return MessagingEdgeEventType.DISMISS;
52
- case 1:
53
- return MessagingEdgeEventType.INTERACT;
54
- case 2:
55
- return MessagingEdgeEventType.TRIGGER;
56
- case 3:
57
- return MessagingEdgeEventType.DISPLAY;
58
- case 4:
59
- return MessagingEdgeEventType.PUSH_APPLICATION_OPENED;
60
- case 5:
61
- return MessagingEdgeEventType.PUSH_CUSTOM_ACTION;
62
- default:
63
- return null;
64
- }
65
- }
66
-
67
- static List<Surface> convertSurfaces(final ReadableArray rawSurfaces) {
68
- List<Surface> surfaces = new ArrayList<>();
69
-
70
- for (int i = 0; i < rawSurfaces.size(); i++) {
71
- surfaces.add(new Surface(rawSurfaces.getString(i)));
72
- }
73
-
74
- return surfaces;
75
- }
76
-
77
- // To React Native
78
- static WritableMap toWritableMap(Map<String, Object> map) {
79
- if (map == null) {
80
- return null;
81
- }
82
-
83
- WritableMap writableMap = Arguments.createMap();
84
- Iterator iterator = map.entrySet().iterator();
85
-
86
- while (iterator.hasNext()) {
87
- Map.Entry pair = (Map.Entry)iterator.next();
88
- Object value = pair.getValue();
89
-
90
- if (value == null) {
91
- writableMap.putNull((String)pair.getKey());
92
- } else if (value instanceof Boolean) {
93
- writableMap.putBoolean((String)pair.getKey(), (Boolean)value);
94
- } else if (value instanceof Double) {
95
- writableMap.putDouble((String)pair.getKey(), (Double)value);
96
- } else if (value instanceof Integer) {
97
- writableMap.putInt((String)pair.getKey(), (Integer)value);
98
- } else if (value instanceof String) {
99
- writableMap.putString((String)pair.getKey(), (String)value);
100
- } else if (value instanceof Map) {
101
- writableMap.putMap((String)pair.getKey(),
102
- toWritableMap((Map<String, Object>)value));
103
- } else if (value instanceof List) {
104
- writableMap.putArray((String)pair.getKey(),
105
- toWritableArray((List)value));
106
- } else if (value.getClass() != null && value.getClass().isArray()) {
107
- writableMap.putArray((String)pair.getKey(),
108
- toWritableArray((Object[])value));
109
- }
110
- }
111
-
112
- return writableMap;
113
- }
114
-
115
- static WritableArray toWritableArray(Object[] array) {
116
- if (array == null) {
117
- return null;
118
- }
119
- WritableArray writableArr = Arguments.createArray();
120
-
121
- for (int i = 0; i < array.length; i++) {
122
- Object value = array[i];
123
-
124
- if (value == null) {
125
- writableArr.pushNull();
126
- } else if (value instanceof Boolean) {
127
- writableArr.pushBoolean((Boolean)value);
128
- } else if (value instanceof Double) {
129
- writableArr.pushDouble((Double)value);
130
- } else if (value instanceof Integer) {
131
- writableArr.pushInt((Integer)value);
132
- } else if (value instanceof String) {
133
- writableArr.pushString((String)value);
134
- } else if (value instanceof Map) {
135
- writableArr.pushMap(toWritableMap((Map<String, Object>)value));
136
- } else if (value instanceof List) {
137
- writableArr.pushArray(toWritableArray((List)value));
138
- } else if (value.getClass().isArray()) {
139
- writableArr.pushArray(toWritableArray((Object[])value));
140
- }
141
- }
142
-
143
- return writableArr;
144
- }
145
-
146
- static WritableArray toWritableArray(List array) {
147
- if (array == null) {
148
- return null;
149
- }
150
- WritableArray writableArr = Arguments.createArray();
151
-
152
- for (Object value : array) {
153
- if (value == null) {
154
- writableArr.pushNull();
155
- } else if (value instanceof Boolean) {
156
- writableArr.pushBoolean((Boolean)value);
157
- } else if (value instanceof Double) {
158
- writableArr.pushDouble((Double)value);
159
- } else if (value instanceof Integer) {
160
- writableArr.pushInt((Integer)value);
161
- } else if (value instanceof String) {
162
- writableArr.pushString((String)value);
163
- } else if (value instanceof Map) {
164
- writableArr.pushMap(toWritableMap((Map<String, Object>)value));
165
- } else if (value instanceof List) {
166
- writableArr.pushArray(toWritableArray((List)value));
167
- } else if (value.getClass().isArray()) {
168
- writableArr.pushArray(toWritableArray((Object[])value));
169
- }
170
- }
171
-
172
- return writableArr;
173
- }
174
-
175
- static Map convertMessageToMap(final Message message) {
176
- Map data = new HashMap<>();
177
- data.put("id", message.getId());
178
- data.put("autoTrack", message.getAutoTrack());
179
- return data;
180
- }
181
-
182
- static ReadableArray convertMessagesToJS(final Collection<Message> messages) {
183
- WritableArray result = new WritableNativeArray();
184
-
185
- for (Iterator<Message> iterator = messages.iterator();
186
- iterator.hasNext();) {
187
- result.pushMap((ReadableMap)convertMessageToMap(iterator.next()));
188
- }
189
-
190
- return result;
191
- }
192
-
193
- static WritableMap convertSurfacePropositions(
194
- final Map<Surface, List<Proposition>> propositionMap,
195
- String packageName) {
196
- WritableMap data = new WritableNativeMap();
197
-
198
- for (Map.Entry<Surface, List<Proposition>> entry :
199
- propositionMap.entrySet()) {
200
- String key = entry.getKey().getUri().replace(
201
- "mobileapp://" + packageName + "/", "");
202
- WritableArray propositions = new WritableNativeArray();
203
-
204
- for (Iterator<Proposition> iterator = entry.getValue().iterator();
205
- iterator.hasNext();) {
206
- propositions.pushMap(toWritableMap(iterator.next().toEventData()));
207
- }
208
-
209
- data.putArray(key, propositions);
210
- }
211
-
212
- return data;
213
- }
214
- }
13
+ package com.adobe.marketing.mobile.reactnative.messaging;
14
+
15
+ import com.adobe.marketing.mobile.Message;
16
+ import com.adobe.marketing.mobile.MessagingEdgeEventType;
17
+ import com.adobe.marketing.mobile.messaging.Proposition;
18
+ import com.adobe.marketing.mobile.messaging.Surface;
19
+ import com.facebook.react.bridge.Arguments;
20
+ import com.facebook.react.bridge.ReadableArray;
21
+ import com.facebook.react.bridge.ReadableMap;
22
+ import com.facebook.react.bridge.WritableArray;
23
+ import com.facebook.react.bridge.WritableMap;
24
+ import com.facebook.react.bridge.WritableNativeArray;
25
+ import com.facebook.react.bridge.WritableNativeMap;
26
+ import java.util.ArrayList;
27
+ import java.util.Collection;
28
+ import java.util.HashMap;
29
+ import java.util.Iterator;
30
+ import java.util.List;
31
+ import java.util.Map;
32
+
33
+ /**
34
+ * Utility class for converting data models to {@link
35
+ * com.facebook.react.bridge.WritableMap}
36
+ */
37
+
38
+ class RCTAEPMessagingUtil {
39
+
40
+ private static final String TAG = "RCTAEPMessaging";
41
+
42
+ private RCTAEPMessagingUtil() {}
43
+
44
+ // From React Native
45
+ static MessagingEdgeEventType getEventType(final int eventType) {
46
+ switch (eventType) {
47
+ case 0:
48
+ return MessagingEdgeEventType.DISMISS;
49
+ case 1:
50
+ return MessagingEdgeEventType.INTERACT;
51
+ case 2:
52
+ return MessagingEdgeEventType.TRIGGER;
53
+ case 3:
54
+ return MessagingEdgeEventType.DISPLAY;
55
+ case 4:
56
+ return MessagingEdgeEventType.PUSH_APPLICATION_OPENED;
57
+ case 5:
58
+ return MessagingEdgeEventType.PUSH_CUSTOM_ACTION;
59
+ default:
60
+ return null;
61
+ }
62
+ }
63
+
64
+ static List<Surface> convertSurfaces(final ReadableArray rawSurfaces) {
65
+ List<Surface> surfaces = new ArrayList<>();
66
+
67
+ for (int i = 0; i < rawSurfaces.size(); i++) {
68
+ surfaces.add(new Surface(rawSurfaces.getString(i)));
69
+ }
70
+
71
+ return surfaces;
72
+ }
73
+
74
+ // To React Native
75
+ static WritableMap toWritableMap(Map<String, Object> map) {
76
+ if (map == null) {
77
+ return null;
78
+ }
79
+
80
+ WritableMap writableMap = Arguments.createMap();
81
+ Iterator iterator = map.entrySet().iterator();
82
+
83
+ while (iterator.hasNext()) {
84
+ Map.Entry pair = (Map.Entry)iterator.next();
85
+ Object value = pair.getValue();
86
+
87
+ if (value == null) {
88
+ writableMap.putNull((String)pair.getKey());
89
+ } else if (value instanceof Boolean) {
90
+ writableMap.putBoolean((String)pair.getKey(), (Boolean)value);
91
+ } else if (value instanceof Double) {
92
+ writableMap.putDouble((String)pair.getKey(), (Double)value);
93
+ } else if (value instanceof Integer) {
94
+ writableMap.putInt((String)pair.getKey(), (Integer)value);
95
+ } else if (value instanceof String) {
96
+ writableMap.putString((String)pair.getKey(), (String)value);
97
+ } else if (value instanceof Map) {
98
+ writableMap.putMap((String)pair.getKey(),
99
+ toWritableMap((Map<String, Object>)value));
100
+ } else if (value instanceof List) {
101
+ writableMap.putArray((String)pair.getKey(),
102
+ toWritableArray((List)value));
103
+ } else if (value.getClass() != null && value.getClass().isArray()) {
104
+ writableMap.putArray((String)pair.getKey(),
105
+ toWritableArray((Object[])value));
106
+ }
107
+ }
108
+
109
+ return writableMap;
110
+ }
111
+
112
+ static WritableArray toWritableArray(Object[] array) {
113
+ if (array == null) {
114
+ return null;
115
+ }
116
+ WritableArray writableArr = Arguments.createArray();
117
+
118
+ for (int i = 0; i < array.length; i++) {
119
+ Object value = array[i];
120
+
121
+ if (value == null) {
122
+ writableArr.pushNull();
123
+ } else if (value instanceof Boolean) {
124
+ writableArr.pushBoolean((Boolean)value);
125
+ } else if (value instanceof Double) {
126
+ writableArr.pushDouble((Double)value);
127
+ } else if (value instanceof Integer) {
128
+ writableArr.pushInt((Integer)value);
129
+ } else if (value instanceof String) {
130
+ writableArr.pushString((String)value);
131
+ } else if (value instanceof Map) {
132
+ writableArr.pushMap(toWritableMap((Map<String, Object>)value));
133
+ } else if (value instanceof List) {
134
+ writableArr.pushArray(toWritableArray((List)value));
135
+ } else if (value.getClass().isArray()) {
136
+ writableArr.pushArray(toWritableArray((Object[])value));
137
+ }
138
+ }
139
+
140
+ return writableArr;
141
+ }
142
+
143
+ static WritableArray toWritableArray(List array) {
144
+ if (array == null) {
145
+ return null;
146
+ }
147
+ WritableArray writableArr = Arguments.createArray();
148
+
149
+ for (Object value : array) {
150
+ if (value == null) {
151
+ writableArr.pushNull();
152
+ } else if (value instanceof Boolean) {
153
+ writableArr.pushBoolean((Boolean)value);
154
+ } else if (value instanceof Double) {
155
+ writableArr.pushDouble((Double)value);
156
+ } else if (value instanceof Integer) {
157
+ writableArr.pushInt((Integer)value);
158
+ } else if (value instanceof String) {
159
+ writableArr.pushString((String)value);
160
+ } else if (value instanceof Map) {
161
+ writableArr.pushMap(toWritableMap((Map<String, Object>)value));
162
+ } else if (value instanceof List) {
163
+ writableArr.pushArray(toWritableArray((List)value));
164
+ } else if (value.getClass().isArray()) {
165
+ writableArr.pushArray(toWritableArray((Object[])value));
166
+ }
167
+ }
168
+
169
+ return writableArr;
170
+ }
171
+
172
+ static Map<String, String> convertMessageToMap(final Message message) {
173
+ Map<String, String> data = new HashMap<>();
174
+ data.put("id", message.getId());
175
+ data.put("autoTrack", String.valueOf(message.getAutoTrack()));
176
+ return data;
177
+ }
178
+
179
+ static ReadableArray convertMessagesToJS(final Collection<Message> messages) {
180
+ WritableArray result = new WritableNativeArray();
181
+
182
+ for (Message message : messages) {
183
+ result.pushMap(convertToReadableMap(convertMessageToMap(message)));
184
+ }
185
+
186
+ return result;
187
+ }
188
+
189
+ static WritableMap convertSurfacePropositions(
190
+ final Map<Surface, List<Proposition>> propositionMap,
191
+ String packageName) {
192
+ WritableMap data = new WritableNativeMap();
193
+
194
+ for (Map.Entry<Surface, List<Proposition>> entry :
195
+ propositionMap.entrySet()) {
196
+ String key = entry.getKey().getUri().replace(
197
+ "mobileapp://" + packageName + "/", "");
198
+ WritableArray propositions = new WritableNativeArray();
199
+
200
+ for (Iterator<Proposition> iterator = entry.getValue().iterator();
201
+ iterator.hasNext();) {
202
+ propositions.pushMap(toWritableMap(iterator.next().toEventData()));
203
+ }
204
+
205
+ data.putArray(key, propositions);
206
+ }
207
+
208
+ return data;
209
+ }
210
+
211
+ static ReadableMap convertToReadableMap(Map<String, String> map) {
212
+ WritableMap writableMap = Arguments.createMap();
213
+
214
+ for (Map.Entry<String, String> entry : map.entrySet()) {
215
+ writableMap.putString(entry.getKey(), entry.getValue());
216
+ }
217
+ return writableMap;
218
+ }
219
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adobe/react-native-aepmessaging",
3
- "version": "6.0.4",
3
+ "version": "6.0.5",
4
4
  "description": "Adobe Experience Platform support for React Native apps.",
5
5
  "homepage": "https://developer.adobe.com/client-sdks/documentation/",
6
6
  "license": "Apache-2.0",
@@ -39,5 +39,5 @@
39
39
  "installConfig": {
40
40
  "hoistingLimits": "dependencies"
41
41
  },
42
- "gitHead": "129d28814e8a2f46e59554ce976bd06d5b25aaea"
42
+ "gitHead": "d907afaf1a8d7521a95ab744bf0e7ea6890e79db"
43
43
  }