Skip to content

Commit f5c34df

Browse files
committed
make a fix to IAM click listener
* We have some legacy logic about IAM direct influence but if there are multiple click listeners added, we only want this to update once, and not for every listener.
1 parent 58cad6f commit f5c34df

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

iOS_SDK/OneSignalSDK/Source/OSMessagingController.m

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -832,10 +832,13 @@ - (void)messageViewDidSelectAction:(OSInAppMessageInternal *)message withAction:
832832
if (action.promptActions && action.promptActions.count > 0)
833833
[self handlePromptActions:action.promptActions withMessage:message];
834834

835+
if (_clickListeners.count > 0) {
836+
// Any outcome sent on the listener's callback should count as DIRECT from this IAM
837+
[[OSSessionManager sharedSessionManager] onDirectInfluenceFromIAMClick:message.messageId];
838+
}
839+
835840
for (NSObject<OSInAppMessageClickListener> *listener in _clickListeners) {
836-
if (listener && [listener respondsToSelector:@selector(onClickInAppMessage:)]) {
837-
// Any outcome sent on this callback should count as DIRECT from this IAM
838-
[[OSSessionManager sharedSessionManager] onDirectInfluenceFromIAMClick:message.messageId];
841+
if ([listener respondsToSelector:@selector(onClickInAppMessage:)]) {
839842
OSInAppMessageClickEvent *event = [[OSInAppMessageClickEvent alloc] initWithInAppMessage:message clickResult:action];
840843
[listener onClickInAppMessage:event];
841844
}

0 commit comments

Comments
 (0)