Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[MOB-6731] updates get messages for placement support #649

Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -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 {
Expand All @@ -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();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ public class IterableEmbeddedManager : IterableActivityMonitor.AppStateCallback
private var localPlacementMessagesMap = mutableMapOf<Long, List<IterableEmbeddedMessage>>()
private var placementIds = mutableListOf<Long>()

private var localMessages: List<IterableEmbeddedMessage> = ArrayList()
private var updateHandleListeners = mutableListOf<IterableEmbeddedUpdateHandler>()
private var iterableApi: IterableApi
private var context: Context
Expand Down Expand Up @@ -80,14 +79,16 @@ public class IterableEmbeddedManager : IterableActivityMonitor.AppStateCallback
}
}

private fun getPlacementIds(): List<Long> {
fun getPlacementIds(): List<Long> {
return placementIds
}

//Network call to get the embedded messages
fun syncMessages() {
IterableLogger.v(TAG, "Syncing messages...")

//var testPlacements: Array<Long> = arrayOf(83)

IterableApi.sharedInstance.getEmbeddedMessages(SuccessHandler { data ->
IterableLogger.v(TAG, "Got response from network call to get embedded messages")
try {
Expand Down
Loading