@@ -130,15 +130,16 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
130130 _payloadData = data
131131 }
132132
133- func setEmail( _ email: String ? , authToken: String ? = nil , merge : Bool = true , successHandler : OnSuccessHandler ? = nil , failureHandler : OnFailureHandler ? = nil ) {
133+ func setEmail( _ email: String ? , authToken: String ? = nil , successHandler : OnSuccessHandler ? = nil , failureHandler : OnFailureHandler ? = nil , identityResolution : IterableIdentityResolution ? = nil ) {
134134
135135 ITBInfo ( )
136136
137- //let shouldMerge = merge && localStorage.userIdAnnon != nil
138-
137+ let merge = identityResolution? . mergeOnAnonymousToKnown ?? config. identityResolution. mergeOnAnonymousToKnown
138+ let replay = identityResolution? . replayOnVisitorToKnown ?? config. identityResolution. replayOnVisitorToKnown
139+
139140 if ( config. enableAnonTracking) {
140141 if ( email != nil ) {
141- attemptAndProcessMerge ( shouldMerge : merge, destinationUser: email, isEmail: true , failureHandler: failureHandler)
142+ attemptAndProcessMerge ( merge : merge ?? true , replay : replay ?? true , destinationUser: email, isEmail: true , failureHandler: failureHandler)
142143 }
143144 self . localStorage. userIdAnnon = nil
144145 }
@@ -164,14 +165,15 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
164165
165166 }
166167
167- func setUserId( _ userId: String ? , authToken: String ? = nil , merge : Bool = true , successHandler: OnSuccessHandler ? = nil , failureHandler: OnFailureHandler ? = nil , isAnon: Bool = false ) {
168+ func setUserId( _ userId: String ? , authToken: String ? = nil , successHandler: OnSuccessHandler ? = nil , failureHandler: OnFailureHandler ? = nil , isAnon: Bool = false , identityResolution : IterableIdentityResolution ? = nil ) {
168169 ITBInfo ( )
169170
170- //let shouldMerge = && localStorage.userIdAnnon != nil
171-
171+ let merge = identityResolution? . mergeOnAnonymousToKnown ?? config. identityResolution. mergeOnAnonymousToKnown
172+ let replay = identityResolution? . replayOnVisitorToKnown ?? config. identityResolution. replayOnVisitorToKnown
173+
172174 if ( config. enableAnonTracking) {
173175 if ( userId != nil && userId != localStorage. userIdAnnon) {
174- attemptAndProcessMerge ( shouldMerge : merge, destinationUser: userId, isEmail: false , failureHandler: failureHandler)
176+ attemptAndProcessMerge ( merge : merge ?? true , replay : replay ?? true , destinationUser: userId, isEmail: false , failureHandler: failureHandler)
175177 }
176178
177179 if ( !isAnon) {
@@ -203,11 +205,11 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
203205 logoutPreviousUser ( )
204206 }
205207
206- func attemptAndProcessMerge( shouldMerge : Bool , destinationUser: String ? , isEmail: Bool , failureHandler: OnFailureHandler ? = nil ) {
207- anonymousUserMerge. tryMergeUser ( destinationUser: destinationUser, isEmail: isEmail, shouldMerge : shouldMerge ) { mergeResult, error in
208+ func attemptAndProcessMerge( merge : Bool , replay : Bool , destinationUser: String ? , isEmail: Bool , failureHandler: OnFailureHandler ? = nil ) {
209+ anonymousUserMerge. tryMergeUser ( destinationUser: destinationUser, isEmail: isEmail, merge : merge ) { mergeResult, error in
208210
209211 if mergeResult == MergeResult . mergenotrequired || mergeResult == MergeResult . mergesuccessful {
210- if ( shouldMerge ) {
212+ if ( replay ) {
211213 self . anonymousUserManager. syncNonSyncedEvents ( )
212214 }
213215 } else {
0 commit comments