|
1 | 1 | package com.geektime.rnonesignalandroid; |
2 | 2 |
|
3 | | -import java.util.Collection; |
4 | 3 | import java.util.Iterator; |
5 | 4 |
|
6 | 5 | import android.content.Context; |
|
18 | 17 | import com.facebook.react.bridge.ReadableArray; |
19 | 18 | import com.facebook.react.bridge.ReadableMap; |
20 | 19 | import com.facebook.react.bridge.WritableMap; |
| 20 | +import com.facebook.react.bridge.WritableNativeMap; |
21 | 21 | import com.facebook.react.modules.core.DeviceEventManagerModule; |
22 | 22 | import com.facebook.react.bridge.Promise; |
23 | 23 | import com.onesignal.OSInAppMessageAction; |
|
28 | 28 | import com.onesignal.OneSignal; |
29 | 29 | import com.onesignal.OneSignal.EmailUpdateHandler; |
30 | 30 | import com.onesignal.OneSignal.EmailUpdateError; |
| 31 | +import com.onesignal.OneSignal.OutcomeCallback; |
31 | 32 |
|
32 | 33 | import com.onesignal.OneSignal.InAppMessageClickHandler; |
33 | 34 | import com.onesignal.OneSignal.NotificationOpenedHandler; |
34 | 35 | import com.onesignal.OneSignal.NotificationReceivedHandler; |
35 | 36 | import com.onesignal.OSNotificationOpenResult; |
36 | 37 | import com.onesignal.OSNotification; |
| 38 | +import com.onesignal.OutcomeEvent; |
37 | 39 |
|
38 | 40 | import org.json.JSONObject; |
39 | 41 | import org.json.JSONArray; |
@@ -422,6 +424,10 @@ public void notificationOpened(OSNotificationOpenResult result) { |
422 | 424 | this.sendEvent("OneSignal-remoteNotificationOpened", RNUtils.jsonToWritableMap(result.toJSONObject())); |
423 | 425 | } |
424 | 426 |
|
| 427 | + /** |
| 428 | + * In-App Messaging |
| 429 | + */ |
| 430 | + |
425 | 431 | @ReactMethod |
426 | 432 | public void addTrigger(String key, Object object) { |
427 | 433 | OneSignal.addTrigger(key, object); |
@@ -470,6 +476,53 @@ public void inAppMessageClicked(OSInAppMessageAction result) { |
470 | 476 | this.sendEvent("OneSignal-inAppMessageClicked", RNUtils.jsonToWritableMap(result.toJSONObject())); |
471 | 477 | } |
472 | 478 |
|
| 479 | + /** |
| 480 | + * Outcomes |
| 481 | + */ |
| 482 | + |
| 483 | + @ReactMethod |
| 484 | + public void sendOutcome(String name, final Callback callback) { |
| 485 | + OneSignal.sendOutcome(name, new OutcomeCallback() { |
| 486 | + @Override |
| 487 | + public void onSuccess(OutcomeEvent outcomeEvent) { |
| 488 | + if (outcomeEvent == null) |
| 489 | + callback.invoke(new WritableNativeMap()); |
| 490 | + else |
| 491 | + callback.invoke(RNUtils.jsonToWritableMap(outcomeEvent.toJSONObject())); |
| 492 | + } |
| 493 | + }); |
| 494 | + } |
| 495 | + |
| 496 | + @ReactMethod |
| 497 | + public void sendUniqueOutcome(String name, final Callback callback) { |
| 498 | + OneSignal.sendUniqueOutcome(name, new OutcomeCallback() { |
| 499 | + @Override |
| 500 | + public void onSuccess(OutcomeEvent outcomeEvent) { |
| 501 | + if (outcomeEvent == null) |
| 502 | + callback.invoke(new WritableNativeMap()); |
| 503 | + else |
| 504 | + callback.invoke(RNUtils.jsonToWritableMap(outcomeEvent.toJSONObject())); |
| 505 | + } |
| 506 | + }); |
| 507 | + } |
| 508 | + |
| 509 | + @ReactMethod |
| 510 | + public void sendOutcomeWithValue(String name, float value, final Callback callback) { |
| 511 | + OneSignal.sendOutcomeWithValue(name, value, new OutcomeCallback() { |
| 512 | + @Override |
| 513 | + public void onSuccess(OutcomeEvent outcomeEvent) { |
| 514 | + if (outcomeEvent == null) |
| 515 | + callback.invoke(new WritableNativeMap()); |
| 516 | + else |
| 517 | + callback.invoke(RNUtils.jsonToWritableMap(outcomeEvent.toJSONObject())); |
| 518 | + } |
| 519 | + }); |
| 520 | + } |
| 521 | + |
| 522 | + /** |
| 523 | + * Overrides |
| 524 | + */ |
| 525 | + |
473 | 526 | @Override |
474 | 527 | public String getName() { |
475 | 528 | return "OneSignal"; |
|
0 commit comments