@@ -362,6 +362,14 @@ - (void)setDeviceToken:(NSData *)deviceToken {
362362 }];
363363}
364364
365+ - (void )setPushToken : (NSString *)pushToken {
366+ [ADJUtil launchInQueue: self .internalQueue
367+ selfInject: self
368+ block: ^(ADJActivityHandler * selfI) {
369+ [selfI setPushTokenI: selfI pushToken: pushToken];
370+ }];
371+ }
372+
365373- (void )setGdprForgetMe {
366374 [ADJUtil launchInQueue: self .internalQueue
367375 selfInject: self
@@ -664,8 +672,10 @@ - (void)initI:(ADJActivityHandler *)selfI
664672 }
665673 } else {
666674 if (selfI.activityState != nil ) {
667- NSData *deviceToken = [ADJUserDefaults getPushToken ];
675+ NSData *deviceToken = [ADJUserDefaults getPushTokenData ];
668676 [selfI setDeviceToken: deviceToken];
677+ NSString *pushToken = [ADJUserDefaults getPushTokenString ];
678+ [selfI setPushToken: pushToken];
669679 }
670680 }
671681
@@ -770,7 +780,10 @@ - (void)processSessionI:(ADJActivityHandler *)selfI {
770780 selfI.activityState = [[ADJActivityState alloc ] init ];
771781
772782 // selfI.activityState.deviceToken = [ADJUtil convertDeviceToken:selfI.deviceTokenData];
773- selfI.activityState .deviceToken = [ADJUtil convertDeviceToken: [ADJUserDefaults getPushToken ]];
783+ NSData *deviceToken = [ADJUserDefaults getPushTokenData ];
784+ NSString *deviceTokenString = [ADJUtil convertDeviceToken: deviceToken];
785+ NSString *pushToken = [ADJUserDefaults getPushTokenString ];
786+ selfI.activityState .deviceToken = deviceTokenString != nil ? deviceTokenString : pushToken;
774787
775788 // track the first session package only if it's enabled
776789 if ([selfI.internalState isEnabled ]) {
@@ -1135,13 +1148,14 @@ - (void)setEnabledI:(ADJActivityHandler *)selfI enabled:(BOOL)enabled {
11351148 double now = [NSDate .date timeIntervalSince1970 ];
11361149 [self trackNewSessionI: now withActivityHandler: selfI];
11371150 }
1138-
1139- NSData *deviceToken = [ADJUserDefaults getPushToken ];
1140-
1151+ NSData *deviceToken = [ADJUserDefaults getPushTokenData ];
11411152 if (deviceToken != nil && ![selfI.activityState.deviceToken isEqualToString: [ADJUtil convertDeviceToken: deviceToken]]) {
11421153 [self setDeviceToken: deviceToken];
11431154 }
1144-
1155+ NSString *pushToken = [ADJUserDefaults getPushTokenString ];
1156+ if (pushToken != nil && ![selfI.activityState.deviceToken isEqualToString: pushToken]) {
1157+ [self setPushToken: pushToken];
1158+ }
11451159 if ([ADJUserDefaults getGdprForgetMe ]) {
11461160 [selfI setGdprForgetMe ];
11471161 }
@@ -1380,6 +1394,48 @@ - (void)setDeviceTokenI:(ADJActivityHandler *)selfI
13801394 }
13811395}
13821396
1397+ - (void )setPushTokenI : (ADJActivityHandler *)selfI
1398+ pushToken : (NSString *)pushToken {
1399+ if (![selfI isEnabledI: selfI]) {
1400+ return ;
1401+ }
1402+ if (!selfI.activityState ) {
1403+ return ;
1404+ }
1405+ if (selfI.activityState .isGdprForgotten ) {
1406+ return ;
1407+ }
1408+ if (pushToken == nil ) {
1409+ return ;
1410+ }
1411+ if ([pushToken isEqualToString: selfI.activityState.deviceToken]) {
1412+ return ;
1413+ }
1414+
1415+ // save new push token
1416+ selfI.activityState .deviceToken = pushToken;
1417+ [selfI writeActivityStateI: selfI];
1418+
1419+ // send info package
1420+ double now = [NSDate .date timeIntervalSince1970 ];
1421+ ADJPackageBuilder *infoBuilder = [[ADJPackageBuilder alloc ] initWithDeviceInfo: selfI.deviceInfo
1422+ activityState: selfI.activityState
1423+ config: selfI.adjustConfig
1424+ sessionParameters: selfI.sessionParameters
1425+ createdAt: now];
1426+ ADJActivityPackage *infoPackage = [infoBuilder buildInfoPackage: @" push" ];
1427+ [selfI.packageHandler addPackage: infoPackage];
1428+
1429+ // if push token was cached, remove it
1430+ [ADJUserDefaults removePushToken ];
1431+
1432+ if (selfI.adjustConfig .eventBufferingEnabled ) {
1433+ [selfI.logger info: @" Buffered info %@ " , infoPackage.suffix];
1434+ } else {
1435+ [selfI.packageHandler sendFirstPackage ];
1436+ }
1437+ }
1438+
13831439- (void )setGdprForgetMeI : (ADJActivityHandler *)selfI {
13841440 if (![selfI isEnabledI: selfI]) {
13851441 return ;
0 commit comments