@@ -40,6 +40,8 @@ public class IterableApi {
4040 private IterableNotificationData _notificationData ;
4141 private String _deviceId ;
4242 private boolean _firstForegroundHandled ;
43+ private IterableHelper .SuccessHandler _setUserSuccessCallbackHandler ;
44+ private IterableHelper .FailureHandler _setUserFailureCallbackHandler ;
4345
4446 IterableApiClient apiClient = new IterableApiClient (new IterableApiAuthProvider ());
4547 private @ Nullable IterableInAppManager inAppManager ;
@@ -278,6 +280,8 @@ private void completeUserLogin() {
278280
279281 if (config .autoPushRegistration ) {
280282 registerForPush ();
283+ } else if (_setUserSuccessCallbackHandler != null ) {
284+ _setUserSuccessCallbackHandler .onSuccess (new JSONObject ()); // passing blank json object here as onSuccess is @Nonnull
281285 }
282286
283287 getInAppManager ().syncInApp ();
@@ -471,7 +475,7 @@ protected void registerDeviceToken(@Nullable String email, @Nullable String user
471475 IterableLogger .e (TAG , "registerDeviceToken: applicationName is null, check that pushIntegrationName is set in IterableConfig" );
472476 }
473477
474- apiClient .registerDeviceToken (email , userId , authToken , applicationName , deviceToken , dataFields , deviceAttributes );
478+ apiClient .registerDeviceToken (email , userId , authToken , applicationName , deviceToken , dataFields , deviceAttributes , _setUserSuccessCallbackHandler , _setUserFailureCallbackHandler );
475479 }
476480//endregion
477481
@@ -573,10 +577,18 @@ public IterableAttributionInfo getAttributionInfo() {
573577 }
574578
575579 public void setEmail (@ Nullable String email ) {
576- setEmail (email , null );
580+ setEmail (email , null , null , null );
581+ }
582+
583+ public void setEmail (@ Nullable String email , @ Nullable IterableHelper .SuccessHandler successHandler , @ Nullable IterableHelper .FailureHandler failureHandler ) {
584+ setEmail (email , null , successHandler , failureHandler );
577585 }
578586
579587 public void setEmail (@ Nullable String email , @ Nullable String authToken ) {
588+ setEmail (email , authToken , null , null );
589+ }
590+
591+ public void setEmail (@ Nullable String email , @ Nullable String authToken , @ Nullable IterableHelper .SuccessHandler successHandler , @ Nullable IterableHelper .FailureHandler failureHandler ) {
580592 //Only if passed in same non-null email
581593 if (_email != null && _email .equals (email )) {
582594 checkAndUpdateAuthToken (authToken );
@@ -591,16 +603,26 @@ public void setEmail(@Nullable String email, @Nullable String authToken) {
591603
592604 _email = email ;
593605 _userId = null ;
606+ _setUserSuccessCallbackHandler = successHandler ;
607+ _setUserFailureCallbackHandler = failureHandler ;
594608 storeAuthData ();
595609
596610 onLogin (authToken );
597611 }
598612
599613 public void setUserId (@ Nullable String userId ) {
600- setUserId (userId , null );
614+ setUserId (userId , null , null , null );
615+ }
616+
617+ public void setUserId (@ Nullable String userId , @ Nullable IterableHelper .SuccessHandler successHandler , @ Nullable IterableHelper .FailureHandler failureHandler ) {
618+ setUserId (userId , null , successHandler , failureHandler );
601619 }
602620
603621 public void setUserId (@ Nullable String userId , @ Nullable String authToken ) {
622+ setUserId (userId , authToken , null , null );
623+ }
624+
625+ public void setUserId (@ Nullable String userId , @ Nullable String authToken , @ Nullable IterableHelper .SuccessHandler successHandler , @ Nullable IterableHelper .FailureHandler failureHandler ) {
604626 //If same non null userId is passed
605627 if (_userId != null && _userId .equals (userId )) {
606628 checkAndUpdateAuthToken (authToken );
@@ -615,6 +637,8 @@ public void setUserId(@Nullable String userId, @Nullable String authToken) {
615637
616638 _email = null ;
617639 _userId = userId ;
640+ _setUserSuccessCallbackHandler = successHandler ;
641+ _setUserFailureCallbackHandler = failureHandler ;
618642 storeAuthData ();
619643
620644 onLogin (authToken );
0 commit comments