diff --git a/iterableapi/src/main/java/com/iterable/iterableapi/IterableApi.java b/iterableapi/src/main/java/com/iterable/iterableapi/IterableApi.java index fd9eec6e0..36faba06d 100644 --- a/iterableapi/src/main/java/com/iterable/iterableapi/IterableApi.java +++ b/iterableapi/src/main/java/com/iterable/iterableapi/IterableApi.java @@ -241,25 +241,52 @@ void getInAppMessages(int count, @NonNull IterableHelper.IterableActionHandler o } /** - * A package-private method to get a list of Embedded Messages from Iterable; - * Passes the result to the callback. - * To get list of messages as a list of EmbeddedMessages in memory, use - * {@link IterableEmbeddedManager#getEmbeddedMessages()} instead + * Gets a list of placements for the list of placement ids passed in from Iterable; + * passes the result to the callback. * + * @param placementIds array of placement ids * @param onCallback */ - void getEmbeddedMessages(@NonNull IterableHelper.IterableActionHandler onCallback) { + + public void getEmbeddedMessages(@Nullable Long[] placementIds, @NonNull IterableHelper.IterableActionHandler onCallback) { + if (!checkSDKInitialization()) { + return; + } + apiClient.getEmbeddedMessages(placementIds, onCallback); + } + + /** + * Gets a list of placements for the list of placement ids passed in from Iterable; + * passes the result to the success or failure callback. + * + * @param placementIds + * @param onSuccess + * @param onFailure + */ + + public void getEmbeddedMessages(@Nullable Long[] placementIds, @NonNull IterableHelper.SuccessHandler onSuccess, @NonNull IterableHelper.FailureHandler onFailure) { if (!checkSDKInitialization()) { return; } - apiClient.getEmbeddedMessages(onCallback); + apiClient.getEmbeddedMessages(placementIds, onSuccess, onFailure); } + /** + * A package-private method to get a list of Embedded Messages from Iterable; + * Passes the result to the success or failure callback. + * Used by the IterableEmbeddedManager. + * + * To get list of messages as a list of EmbeddedMessages in memory, use + * {@link IterableEmbeddedManager#getMessages(Long)} instead + * + * @param onSuccess + * @param onFailure + */ void getEmbeddedMessages(@NonNull IterableHelper.SuccessHandler onSuccess, @NonNull IterableHelper.FailureHandler onFailure) { if (!checkSDKInitialization()) { return; } - apiClient.getEmbeddedMessages(onSuccess, onFailure); + apiClient.getEmbeddedMessages(null, onSuccess, onFailure); } /** diff --git a/iterableapi/src/main/java/com/iterable/iterableapi/IterableApiClient.java b/iterableapi/src/main/java/com/iterable/iterableapi/IterableApiClient.java index e9e20a64e..2b20a4996 100644 --- a/iterableapi/src/main/java/com/iterable/iterableapi/IterableApiClient.java +++ b/iterableapi/src/main/java/com/iterable/iterableapi/IterableApiClient.java @@ -217,7 +217,7 @@ public void getInAppMessages(int count, @NonNull IterableHelper.IterableActionHa } } - void getEmbeddedMessages(@NonNull IterableHelper.IterableActionHandler onCallback) { + void getEmbeddedMessages(@Nullable Long[] placementIds, @NonNull IterableHelper.IterableActionHandler onCallback) { JSONObject requestJSON = new JSONObject(); try { @@ -226,15 +226,29 @@ void getEmbeddedMessages(@NonNull IterableHelper.IterableActionHandler onCallbac requestJSON.put(IterableConstants.ITBL_KEY_SDK_VERSION, IterableConstants.ITBL_KEY_SDK_VERSION_NUMBER); requestJSON.put(IterableConstants.ITBL_SYSTEM_VERSION, Build.VERSION.RELEASE); requestJSON.put(IterableConstants.KEY_PACKAGE_NAME, authProvider.getContext().getPackageName()); - requestJSON.put("placementId", "0"); - sendGetRequest(IterableConstants.ENDPOINT_GET_EMBEDDED_MESSAGES, requestJSON, onCallback); + StringBuilder pathBuilder = new StringBuilder(IterableConstants.ENDPOINT_GET_EMBEDDED_MESSAGES + "?"); + + if (authProvider.getEmail() != null) { + pathBuilder.append("email=").append(authProvider.getEmail()); + } else { + pathBuilder.append("userId=").append(authProvider.getUserId()); + } + + if (placementIds != null) { + for (Long placementId : placementIds) { + pathBuilder.append("&placementIds=").append(placementId); + } + } + + String path = pathBuilder.toString(); + sendGetRequest(path, requestJSON, onCallback); } catch (JSONException e) { e.printStackTrace(); } } - void getEmbeddedMessages(@NonNull IterableHelper.SuccessHandler onSuccess, @NonNull IterableHelper.FailureHandler onFailure) { + void getEmbeddedMessages(@Nullable Long[] placementIds, @NonNull IterableHelper.SuccessHandler onSuccess, @NonNull IterableHelper.FailureHandler onFailure) { JSONObject requestJSON = new JSONObject(); try { @@ -245,7 +259,23 @@ void getEmbeddedMessages(@NonNull IterableHelper.SuccessHandler onSuccess, @NonN requestJSON.put(IterableConstants.KEY_PACKAGE_NAME, authProvider.getContext().getPackageName()); requestJSON.put("placementId", "0"); - sendGetRequest(IterableConstants.ENDPOINT_GET_EMBEDDED_MESSAGES, requestJSON, onSuccess, onFailure); + StringBuilder pathBuilder = new StringBuilder(IterableConstants.ENDPOINT_GET_EMBEDDED_MESSAGES + "?"); + + if (authProvider.getEmail() != null) { + pathBuilder.append("email=").append(authProvider.getEmail()); + } else { + pathBuilder.append("userId=").append(authProvider.getUserId()); + } + + if (placementIds != null) { + for (Long placementId : placementIds) { + pathBuilder.append("&placementIds=").append(placementId); + } + } + + String path = pathBuilder.toString(); + IterableLogger.d("IterableApiClient", path); + sendGetRequest(path, requestJSON, onSuccess, onFailure); } catch (JSONException e) { e.printStackTrace(); } diff --git a/iterableapi/src/main/java/com/iterable/iterableapi/IterableEmbeddedManager.kt b/iterableapi/src/main/java/com/iterable/iterableapi/IterableEmbeddedManager.kt index a22e675b8..f06430258 100644 --- a/iterableapi/src/main/java/com/iterable/iterableapi/IterableEmbeddedManager.kt +++ b/iterableapi/src/main/java/com/iterable/iterableapi/IterableEmbeddedManager.kt @@ -15,7 +15,6 @@ public class IterableEmbeddedManager : IterableActivityMonitor.AppStateCallback private var localPlacementMessagesMap = mutableMapOf>() private var placementIds = mutableListOf() - private var localMessages: List = ArrayList() private var updateHandleListeners = mutableListOf() private var iterableApi: IterableApi private var context: Context @@ -80,7 +79,7 @@ public class IterableEmbeddedManager : IterableActivityMonitor.AppStateCallback } } - private fun getPlacementIds(): List { + fun getPlacementIds(): List { return placementIds } @@ -88,6 +87,8 @@ public class IterableEmbeddedManager : IterableActivityMonitor.AppStateCallback fun syncMessages() { IterableLogger.v(TAG, "Syncing messages...") + //var testPlacements: Array = arrayOf(83) + IterableApi.sharedInstance.getEmbeddedMessages(SuccessHandler { data -> IterableLogger.v(TAG, "Got response from network call to get embedded messages") try {