diff --git a/iterableapi/src/main/java/com/iterable/iterableapi/IterableApi.java b/iterableapi/src/main/java/com/iterable/iterableapi/IterableApi.java index ffc04eaf6..43a6a7722 100644 --- a/iterableapi/src/main/java/com/iterable/iterableapi/IterableApi.java +++ b/iterableapi/src/main/java/com/iterable/iterableapi/IterableApi.java @@ -870,11 +870,7 @@ public void inAppConsume(@NonNull String messageId) { */ public void inAppConsume(@NonNull String messageId, @Nullable IterableHelper.SuccessHandler successHandler, @Nullable IterableHelper.FailureHandler failureHandler) { IterableInAppMessage message = getInAppManager().getMessageById(messageId); - if (message == null) { - IterableLogger.e(TAG, "inAppConsume: message is null"); - if (failureHandler != null) { - failureHandler.onFailure("inAppConsume: message is null", null); - } + if (checkIfMessageIsNull(message, failureHandler)) { return; } inAppConsume(message, null, null, successHandler, failureHandler); @@ -894,6 +890,9 @@ public void inAppConsume(@NonNull IterableInAppMessage message, @Nullable Iterab if (!checkSDKInitialization()) { return; } + if (checkIfMessageIsNull(message, null)) { + return; + } apiClient.inAppConsume(message, source, clickLocation, inboxSessionId, null, null); } @@ -912,9 +911,31 @@ public void inAppConsume(@NonNull IterableInAppMessage message, @Nullable Iterab if (!checkSDKInitialization()) { return; } + if (checkIfMessageIsNull(message, failureHandler)) { + return; + } apiClient.inAppConsume(message, source, clickLocation, inboxSessionId, successHandler, failureHandler); } + /** + * Handles the case when the provided message is null. + * If the message is null and a failure handler is provided, it calls the onFailure method of the failure handler. + * + * @param message The in-app message to be checked. + * @param failureHandler The failure handler to be called if the message is null. + * @return True if the message is null, false otherwise. + */ + private boolean checkIfMessageIsNull(@Nullable IterableInAppMessage message, @Nullable IterableHelper.FailureHandler failureHandler) { + if (message == null) { + IterableLogger.e(TAG, "inAppConsume: message is null"); + if (failureHandler != null) { + failureHandler.onFailure("inAppConsume: message is null", null); + } + return true; + } + return false; + } + /** * Tracks a click on the uri if it is an iterable link. * @param uri the