@@ -288,6 +288,24 @@ + (void)verifyAppStorePurchase:(nonnull ADJAppStorePurchase *)purchase
288288 }
289289}
290290
291+ + (void )enableCoppaComplianceInDelay {
292+ @synchronized (self) {
293+ [[Adjust getInstance ] enableCoppaComplianceInDelay ];
294+ }
295+ }
296+
297+ + (void )disableCoppaComplianceInDelay {
298+ @synchronized (self) {
299+ [[Adjust getInstance ] disableCoppaComplianceInDelay ];
300+ }
301+ }
302+
303+ + (void )setExternalDeviceIdInDelay : (nullable NSString *)externalDeviceId {
304+ @synchronized (self) {
305+ [[Adjust getInstance ] setExternalDeviceIdInDelay: externalDeviceId];
306+ }
307+ }
308+
291309+ (void )verifyAndTrackAppStorePurchase : (nonnull ADJEvent *)event
292310 withCompletionHandler : (void (^_Nonnull)(ADJPurchaseVerificationResult * _Nonnull verificationResult))completion {
293311 @synchronized (self) {
@@ -296,6 +314,13 @@ + (void)verifyAndTrackAppStorePurchase:(nonnull ADJEvent *)event
296314 }
297315}
298316
317+ + (void )endFirstSessionDelay {
318+ @synchronized (self) {
319+ [[Adjust getInstance ] endFirstSessionDelay ];
320+ }
321+ }
322+
323+
299324+ (void )setTestOptions : (NSDictionary *)testOptions {
300325 @synchronized (self) {
301326 if ([testOptions[@" teardown" ] boolValue ]) {
@@ -534,7 +559,6 @@ - (void)removeGlobalPartnerParameterForKey:(nonnull NSString *)key {
534559}
535560
536561- (void )removeGlobalCallbackParameters {
537-
538562 if ([self checkActivityHandler: @" removing all global callback parameters" ]) {
539563 [self .activityHandler removeGlobalCallbackParameters ];
540564 return ;
@@ -570,19 +594,26 @@ - (void)gdprForgetMe {
570594
571595- (void )trackThirdPartySharing : (nonnull ADJThirdPartySharing *)thirdPartySharing {
572596 if (![self checkActivityHandler: @" track third party sharing" ]) {
573- if (self.savedPreLaunch .preLaunchAdjustThirdPartySharingArray == nil ) {
574- self.savedPreLaunch .preLaunchAdjustThirdPartySharingArray =
575- [[NSMutableArray alloc ] init ];
597+ if (self.savedPreLaunch .preLaunchActionsArray == nil ) {
598+ self.savedPreLaunch .preLaunchActionsArray = [[NSMutableArray alloc ] init ];
576599 }
577- [self .savedPreLaunch.preLaunchAdjustThirdPartySharingArray addObject: thirdPartySharing];
600+ [self .savedPreLaunch.preLaunchActionsArray addObject: ^(ADJActivityHandler *activityHandler) {
601+ [activityHandler tryTrackThirdPartySharingI: thirdPartySharing];
602+ }];
578603 return ;
579604 }
580605 [self .activityHandler trackThirdPartySharing: thirdPartySharing];
581606}
582607
583608- (void )trackMeasurementConsent : (BOOL )enabled {
584609 if (![self checkActivityHandler: @" track measurement consent" ]) {
585- self.savedPreLaunch .lastMeasurementConsentTracked = [NSNumber numberWithBool: enabled];
610+ if (self.savedPreLaunch .preLaunchActionsArray == nil ) {
611+ self.savedPreLaunch .preLaunchActionsArray =
612+ [[NSMutableArray alloc ] init ];
613+ }
614+ [self .savedPreLaunch.preLaunchActionsArray addObject: ^(ADJActivityHandler *activityHandler) {
615+ [activityHandler tryTrackMeasurementConsentI: enabled];
616+ }];
586617 return ;
587618 }
588619 [self .activityHandler trackMeasurementConsent: enabled];
@@ -619,7 +650,8 @@ - (void)updateSkanConversionValue:(NSInteger)conversionValue
619650 coarseValue: coarseValue
620651 lockWindow: lockWindow
621652 source: ADJSkanSourceClient
622- withCompletionHandler: ^(NSDictionary * _Nonnull result) {
653+ withCompletionHandler: ^(NSDictionary * _Nonnull result)
654+ {
623655 if ([self checkActivityHandler ]) {
624656 [self .activityHandler invokeClientSkanUpdateCallbackWithResult: result];
625657 }
@@ -712,6 +744,30 @@ - (void)verifyAppStorePurchase:(nonnull ADJAppStorePurchase *)purchase
712744 withCompletionHandler: completion];
713745}
714746
747+ - (void )enableCoppaComplianceInDelay {
748+ if (![self checkActivityHandler: @" enable coppa compliance in delay" ]) {
749+ return ;
750+ }
751+
752+ [self .activityHandler setCoppaComplianceInDelay: YES ];
753+ }
754+
755+ - (void )disableCoppaComplianceInDelay {
756+ if (![self checkActivityHandler: @" disable coppa compliance in delay" ]) {
757+ return ;
758+ }
759+
760+ [self .activityHandler setCoppaComplianceInDelay: NO ];
761+ }
762+
763+ - (void )setExternalDeviceIdInDelay : (nullable NSString *)externalDeviceId {
764+ if (![self checkActivityHandler: @" set external device id in delay" ]) {
765+ return ;
766+ }
767+
768+ [self .activityHandler setExternalDeviceIdInDelay: externalDeviceId];
769+ }
770+
715771- (void )verifyAndTrackAppStorePurchase : (nonnull ADJEvent *)event
716772 withCompletionHandler : (void (^_Nonnull)(ADJPurchaseVerificationResult * _Nonnull verificationResult))completion {
717773 if (![self checkActivityHandler ]) {
@@ -727,6 +783,14 @@ - (void)verifyAndTrackAppStorePurchase:(nonnull ADJEvent *)event
727783 [self .activityHandler verifyAndTrackAppStorePurchase: event withCompletionHandler: completion];
728784}
729785
786+ - (void )endFirstSessionDelay {
787+ if (![self checkActivityHandler ]) {
788+ return ;
789+ }
790+
791+ [self .activityHandler endFirstSessionDelay ];
792+ }
793+
730794- (void )teardown {
731795 if (self.activityHandler == nil ) {
732796 [self .logger error: @" Adjust already down or not initialized" ];
0 commit comments