22
33#if TARGET_OS_IOS
44 @import BrazeKit;
5- @import BrazeKitCompat;
65 @import BrazeUI;
76#else
87 @import BrazeKit;
9- @import BrazeKitCompat;
108#endif
119
1210static NSString *const eabAPIKey = @" apiKey" ;
6058static NSString *const BGoogleAdUserDataKey = @" $google_ad_user_data" ;
6159static NSString *const BGoogleAdPersonalizationKey = @" $google_ad_personalization" ;
6260
61+ // Braze configuration option keys used internally by the options dictionary
62+ static NSString *const kMPBrazeConfigEndpoint = @" endpoint" ;
63+ static NSString *const kMPBrazeConfigRequestPolicy = @" requestPolicy" ;
64+ static NSString *const kMPBrazeConfigFlushInterval = @" flushInterval" ;
65+ static NSString *const kMPBrazeConfigSessionTimeout = @" sessionTimeout" ;
66+ static NSString *const kMPBrazeConfigTriggerMinimumTimeInterval = @" triggerMinimumTimeInterval" ;
67+ static NSString *const kMPBrazeConfigAutomaticLocationCollection = @" automaticLocationCollection" ;
68+
6369#if TARGET_OS_IOS
6470static id <BrazeInAppMessageUIDelegate> inAppMessageControllerDelegate = nil ;
6571static BOOL shouldDisableNotificationHandling = NO ;
@@ -371,20 +377,20 @@ - (id const)providerKitInstance {
371377- (void )start {
372378 if (!self->appboyInstance ) {
373379 NSDictionary *optionsDict = [self optionsDictionary ];
374- BRZConfiguration *configuration = [[BRZConfiguration alloc ] initWithApiKey: self .configuration[eabAPIKey] endpoint: optionsDict[ABKEndpointKey ]];
380+ BRZConfiguration *configuration = [[BRZConfiguration alloc ] initWithApiKey: self .configuration[eabAPIKey] endpoint: optionsDict[kMPBrazeConfigEndpoint ]];
375381
376382 [configuration.api addSDKMetadata: @[BRZSDKMetadata.mparticle]];
377- configuration.api .sdkFlavor = (( NSNumber *)optionsDict[ABKSDKFlavorKey]). intValue ;
378- configuration.api .requestPolicy = ((NSNumber *)optionsDict[ABKRequestProcessingPolicyOptionKey ]).intValue ;
379- NSNumber *flushIntervalOption = (NSNumber *)optionsDict[ABKFlushIntervalOptionKey ] ?: @10 ; // If not set, use the default 10 seconds specified in Braze SDK header
383+ configuration.api .sdkFlavor = BRZSDKFlavorMparticle ;
384+ configuration.api .requestPolicy = ((NSNumber *)optionsDict[kMPBrazeConfigRequestPolicy ]).intValue ;
385+ NSNumber *flushIntervalOption = (NSNumber *)optionsDict[kMPBrazeConfigFlushInterval ] ?: @10 ; // If not set, use the default 10 seconds specified in Braze SDK header
380386 configuration.api .flushInterval = flushIntervalOption.doubleValue < 1.0 ? 1.0 : flushIntervalOption.doubleValue ; // Ensure value is above the minimum of 1.0 per run time warning from Braze SDK
381387 configuration.api .trackingPropertyAllowList = brazeTrackingPropertyAllowList;
382388
383- configuration.sessionTimeout = ((NSNumber *)optionsDict[ABKSessionTimeoutKey ]).doubleValue ;
389+ configuration.sessionTimeout = ((NSNumber *)optionsDict[kMPBrazeConfigSessionTimeout ]).doubleValue ;
384390
385- configuration.triggerMinimumTimeInterval = ((NSNumber *)optionsDict[ABKMinimumTriggerTimeIntervalKey ]).doubleValue ;
391+ configuration.triggerMinimumTimeInterval = ((NSNumber *)optionsDict[kMPBrazeConfigTriggerMinimumTimeInterval ]).doubleValue ;
386392
387- NSNumber *automaticLocationTrackingOption = (NSNumber *)optionsDict[ABKEnableAutomaticLocationCollectionKey ];
393+ NSNumber *automaticLocationTrackingOption = (NSNumber *)optionsDict[kMPBrazeConfigAutomaticLocationCollection ];
388394 if (automaticLocationTrackingOption != nil && automaticLocationTrackingOption.boolValue && brazeLocationProvider) {
389395 configuration.location .automaticLocationCollection = YES ;
390396 configuration.location .brazeLocationProvider = brazeLocationProvider;
@@ -444,8 +450,9 @@ - (void)stop {
444450}
445451
446452- (NSMutableDictionary <NSString *, NSObject *> *)optionsDictionary {
453+ // This maps the mParticle keys (prefixed with ABK) to the Braze Swift SDK configuration keys (prefixed with kMPBrazeConfig)
447454 NSArray <NSString *> *serverKeys = @[@" ABKRequestProcessingPolicyOptionKey" , @" ABKFlushIntervalOptionKey" , @" ABKSessionTimeoutKey" , @" ABKMinimumTriggerTimeIntervalKey" ];
448- NSArray <NSString *> *appboyKeys = @[ABKRequestProcessingPolicyOptionKey, ABKFlushIntervalOptionKey, ABKSessionTimeoutKey, ABKMinimumTriggerTimeIntervalKey ];
455+ NSArray <NSString *> *configKeys = @[kMPBrazeConfigRequestPolicy , kMPBrazeConfigFlushInterval , kMPBrazeConfigSessionTimeout , kMPBrazeConfigTriggerMinimumTimeInterval ];
449456 NSMutableDictionary <NSString *, NSObject *> *optionsDictionary = [[NSMutableDictionary alloc ] initWithCapacity: serverKeys.count];
450457 NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc ] init ];
451458 numberFormatter.numberStyle = NSNumberFormatterNoStyle;
@@ -454,42 +461,31 @@ - (void)stop {
454461 NSString *optionValue = self.configuration [serverKey];
455462
456463 if (optionValue != nil && (NSNull *)optionValue != [NSNull null ]) {
457- NSString *appboyKey = appboyKeys[idx];
458464 NSNumber *numberValue = nil ;
459465 @try {
460466 numberValue = [numberFormatter numberFromString: optionValue];
461467 } @catch (NSException *exception) {
462468 numberValue = nil ;
463469 }
464470 if (numberValue != nil ) {
465- optionsDictionary[appboyKey ] = numberValue;
471+ optionsDictionary[configKeys[idx] ] = numberValue;
466472 }
467473 }
468474 }];
469475
470476 if (self.host .length ) {
471- #pragma clang diagnostic push
472- #pragma clang diagnostic ignored "-Wincompatible-pointer-types"
473- optionsDictionary[ABKEndpointKey] = self.host ;
474- #pragma clang diagnostic pop
477+ optionsDictionary[kMPBrazeConfigEndpoint ] = self.host ;
475478 }
476479
477480 if (optionsDictionary.count == 0 ) {
478- #pragma clang diagnostic push
479- #pragma clang diagnostic ignored "-Wincompatible-pointer-types"
480481 optionsDictionary = [[NSMutableDictionary alloc ] initWithCapacity: serverKeys.count];
481482 }
482- optionsDictionary[ABKSDKFlavorKey] = @(MPARTICLE );
483- #pragma clang diagnostic pop
484-
483+
485484#if TARGET_OS_IOS
486- optionsDictionary[ABKEnableAutomaticLocationCollectionKey ] = @(YES );
485+ optionsDictionary[kMPBrazeConfigAutomaticLocationCollection ] = @(YES );
487486 if (self.configuration [@" ABKDisableAutomaticLocationCollectionKey" ]) {
488487 if ([self .configuration[@" ABKDisableAutomaticLocationCollectionKey" ] caseInsensitiveCompare: @" true" ] == NSOrderedSame) {
489- #pragma clang diagnostic push
490- #pragma clang diagnostic ignored "-Wincompatible-pointer-types"
491- optionsDictionary[ABKEnableAutomaticLocationCollectionKey] = @(NO );
492- #pragma clang diagnostic pop
488+ optionsDictionary[kMPBrazeConfigAutomaticLocationCollection ] = @(NO );
493489 }
494490 }
495491#endif
0 commit comments