Skip to content

Commit 5f2df82

Browse files
authored
Merge pull request #939 from Iterable/evan/MOB-11993
[MOB-11993] adds consent tracking to register device failure handler
2 parents 9243d18 + b7406dc commit 5f2df82

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

iterableapi/src/main/java/com/iterable/iterableapi/IterableApi.java

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -619,28 +619,41 @@ protected void registerDeviceToken(@Nullable String email, @Nullable String user
619619
IterableLogger.e(TAG, "registerDeviceToken: applicationName is null, check that pushIntegrationName is set in IterableConfig");
620620
}
621621

622-
// Create a wrapper success handler that tracks consent before calling the original success handler
623622
IterableHelper.SuccessHandler wrappedSuccessHandler = getSuccessHandler();
623+
IterableHelper.FailureHandler wrappedFailureHandler = getFailureHandler();
624624

625-
apiClient.registerDeviceToken(email, userId, authToken, applicationName, deviceToken, dataFields, deviceAttributes, wrappedSuccessHandler, _setUserFailureCallbackHandler);
625+
apiClient.registerDeviceToken(email, userId, authToken, applicationName, deviceToken, dataFields, deviceAttributes, wrappedSuccessHandler, wrappedFailureHandler);
626626
}
627627

628628
private IterableHelper.SuccessHandler getSuccessHandler() {
629629
IterableHelper.SuccessHandler wrappedSuccessHandler = null;
630630
if (_setUserSuccessCallbackHandler != null || (config.enableUnknownUserActivation && getVisitorUsageTracked() && config.identityResolution.getReplayOnVisitorToKnown())) {
631631
final IterableHelper.SuccessHandler originalSuccessHandler = _setUserSuccessCallbackHandler;
632632
wrappedSuccessHandler = data -> {
633-
// Track consent now that user has been created/updated via device registration
634633
trackConsentOnDeviceRegistration();
635634

636-
// Call the original success handler if it exists
637635
if (originalSuccessHandler != null) {
638636
originalSuccessHandler.onSuccess(data);
639637
}
640638
};
641639
}
642640
return wrappedSuccessHandler;
643641
}
642+
643+
private IterableHelper.FailureHandler getFailureHandler() {
644+
IterableHelper.FailureHandler wrappedFailureHandler = null;
645+
if (_setUserFailureCallbackHandler != null || (config.enableUnknownUserActivation && getVisitorUsageTracked() && config.identityResolution.getReplayOnVisitorToKnown())) {
646+
final IterableHelper.FailureHandler originalFailureHandler = _setUserFailureCallbackHandler;
647+
wrappedFailureHandler = (reason, data) -> {
648+
trackConsentOnDeviceRegistration();
649+
650+
if (originalFailureHandler != null) {
651+
originalFailureHandler.onFailure(reason, data);
652+
}
653+
};
654+
}
655+
return wrappedFailureHandler;
656+
}
644657
//endregion
645658

646659
//region SDK initialization

0 commit comments

Comments
 (0)