|
46 | 46 | import java.util.Map; |
47 | 47 | import java.util.HashMap; |
48 | 48 | import java.util.List; |
| 49 | +import java.util.ArrayList; |
49 | 50 | import java.util.concurrent.CountDownLatch; |
50 | 51 | import java.util.concurrent.TimeUnit; |
51 | 52 |
|
@@ -646,12 +647,33 @@ public void onInboxUpdated() { |
646 | 647 | // region Embedded messaging |
647 | 648 |
|
648 | 649 |
|
649 | | - public void getEmbeddedMessages(Integer placementId, Promise promise) { |
650 | | - IterableLogger.d(TAG, "getEmbeddedMessages for placement: " + placementId); |
| 650 | + public void getEmbeddedMessages(@Nullable ReadableArray placementIds, Promise promise) { |
| 651 | + IterableLogger.d(TAG, "getEmbeddedMessages for placements: " + placementIds); |
651 | 652 |
|
652 | 653 | try { |
653 | | - JSONArray embeddedMessageJsonArray = Serialization.serializeEmbeddedMessages(IterableApi.getInstance().getEmbeddedManager().getMessages(placementId)); |
654 | | - IterableLogger.d(TAG, "Messages for placement: " + embeddedMessageJsonArray); |
| 654 | + List<IterableEmbeddedMessage> allMessages = new ArrayList<>(); |
| 655 | + |
| 656 | + if (placementIds == null || placementIds.size() == 0) { |
| 657 | + // If no placement IDs provided, we need to get messages for all possible placements |
| 658 | + // Since the Android SDK requires a placement ID, we'll use 0 as a default |
| 659 | + // This might need to be adjusted based on the actual SDK behavior |
| 660 | + List<IterableEmbeddedMessage> messages = IterableApi.getInstance().getEmbeddedManager().getMessages(0L); |
| 661 | + if (messages != null) { |
| 662 | + allMessages.addAll(messages); |
| 663 | + } |
| 664 | + } else { |
| 665 | + // Convert ReadableArray to individual placement IDs and get messages for each |
| 666 | + for (int i = 0; i < placementIds.size(); i++) { |
| 667 | + long placementId = placementIds.getInt(i); |
| 668 | + List<IterableEmbeddedMessage> messages = IterableApi.getInstance().getEmbeddedManager().getMessages(placementId); |
| 669 | + if (messages != null) { |
| 670 | + allMessages.addAll(messages); |
| 671 | + } |
| 672 | + } |
| 673 | + } |
| 674 | + |
| 675 | + JSONArray embeddedMessageJsonArray = Serialization.serializeEmbeddedMessages(allMessages); |
| 676 | + IterableLogger.d(TAG, "Messages for placements: " + embeddedMessageJsonArray); |
655 | 677 |
|
656 | 678 | promise.resolve(Serialization.convertJsonToArray(embeddedMessageJsonArray)); |
657 | 679 | } catch (JSONException e) { |
|
0 commit comments