|
26 | 26 | static NSString * const BRANCH_PREFS_KEY_LAST_RUN_BRANCH_KEY = @"bnc_last_run_branch_key"; |
27 | 27 | static NSString * const BRANCH_PREFS_KEY_LAST_STRONG_MATCH_DATE = @"bnc_strong_match_created_date"; |
28 | 28 |
|
29 | | -static NSString * const BRANCH_PREFS_KEY_API_URL = @"bnc_api_url"; |
30 | 29 | static NSString * const BRANCH_PREFS_KEY_PATTERN_LIST_URL = @"bnc_pattern_list_url"; |
31 | 30 |
|
32 | 31 | static NSString * const BRANCH_PREFS_KEY_RANDOMIZED_DEVICE_TOKEN = @"bnc_randomized_device_token"; |
|
61 | 60 |
|
62 | 61 | static NSString * const BRANCH_PREFS_KEY_LOG_IAP_AS_EVENTS = @"bnc_log_iap_as_events"; |
63 | 62 |
|
| 63 | +static NSString * const BRANCH_PREFS_KEY_DMA_EEA = @"bnc_dma_eea"; |
| 64 | +static NSString * const BRANCH_PREFS_KEY_DMA_AD_PERSONALIZATION = @"bnc_dma_ad_personalization"; |
| 65 | +static NSString * const BRANCH_PREFS_KEY_DMA_AD_USER_DATA = @"bnc_dma_ad_user_data"; |
| 66 | + |
64 | 67 |
|
65 | 68 | NSURL* /* _Nonnull */ BNCURLForBranchDirectory_Unthreaded(void); |
66 | 69 |
|
67 | 70 | @interface BNCPreferenceHelper () { |
68 | 71 | NSOperationQueue *_persistPrefsQueue; |
69 | 72 | NSString *_lastSystemBuildVersion; |
70 | 73 | NSString *_browserUserAgentString; |
71 | | - NSString *_branchAPIURL; |
72 | 74 | NSString *_referringURL; |
73 | 75 | } |
74 | 76 |
|
@@ -114,7 +116,10 @@ @implementation BNCPreferenceHelper |
114 | 116 | highestConversionValueSent = _highestConversionValueSent, |
115 | 117 | referringURLQueryParameters = _referringURLQueryParameters, |
116 | 118 | anonID = _anonID, |
117 | | - patternListURL = _patternListURL; |
| 119 | + patternListURL = _patternListURL, |
| 120 | + eeaRegion = _eeaRegion, |
| 121 | + adPersonalizationConsent = _adPersonalizationConsent, |
| 122 | + adUserDataUsageConsent = _adUserDataUsageConsent; |
118 | 123 |
|
119 | 124 | + (BNCPreferenceHelper *)sharedInstance { |
120 | 125 | static BNCPreferenceHelper *preferenceHelper; |
@@ -156,34 +161,6 @@ - (void) dealloc { |
156 | 161 |
|
157 | 162 | #pragma mark - API methods |
158 | 163 |
|
159 | | -- (void)setBranchAPIURL:(NSString *)url { |
160 | | - if ([url hasPrefix:@"http://"] || [url hasPrefix:@"https://"] ){ |
161 | | - @synchronized (self) { |
162 | | - _branchAPIURL = [url copy]; |
163 | | - [self writeObjectToDefaults:BRANCH_PREFS_KEY_API_URL value:_branchAPIURL]; |
164 | | - } |
165 | | - } else { |
166 | | - [[BranchLogger shared] logWarning:@"Ignoring invalid custom API URL"]; |
167 | | - } |
168 | | -} |
169 | | - |
170 | | -// TODO: This method is not used with the Tracking domain change. See SDK-2118 |
171 | | -- (NSString *)branchAPIURL { |
172 | | - @synchronized (self) { |
173 | | - if (!_branchAPIURL) { |
174 | | - _branchAPIURL = [self readStringFromDefaults:BRANCH_PREFS_KEY_API_URL]; |
175 | | - } |
176 | | - |
177 | | - // return the default URL in the event there's nothing in storage |
178 | | - if (_branchAPIURL == nil || [_branchAPIURL isEqualToString:@""]) { |
179 | | - _branchAPIURL = [BNC_API_URL copy]; |
180 | | - [self writeObjectToDefaults:BRANCH_PREFS_KEY_API_URL value:_branchAPIURL]; |
181 | | - } |
182 | | - |
183 | | - return _branchAPIURL; |
184 | | - } |
185 | | -} |
186 | | - |
187 | 164 | - (void)setPatternListURL:(NSString *)url { |
188 | 165 | if ([url hasPrefix:@"http://"] || [url hasPrefix:@"https://"] ){ |
189 | 166 | @synchronized (self) { |
@@ -791,6 +768,60 @@ - (void) setInvokeRegisterApp:(BOOL)invoke { |
791 | 768 | } |
792 | 769 | } |
793 | 770 |
|
| 771 | +- (BOOL) eeaRegionInitialized { |
| 772 | + @synchronized(self) { |
| 773 | + if([self readObjectFromDefaults:BRANCH_PREFS_KEY_DMA_EEA]) |
| 774 | + return YES; |
| 775 | + return NO; |
| 776 | + } |
| 777 | +} |
| 778 | + |
| 779 | +- (BOOL) eeaRegion { |
| 780 | + @synchronized(self) { |
| 781 | + NSNumber *b = (id) [self readObjectFromDefaults:BRANCH_PREFS_KEY_DMA_EEA]; |
| 782 | + if ([b isKindOfClass:NSNumber.class]) return [b boolValue]; |
| 783 | + return NO; |
| 784 | + } |
| 785 | +} |
| 786 | + |
| 787 | +- (void) setEeaRegion:(BOOL)isEEARegion { |
| 788 | + @synchronized(self) { |
| 789 | + NSNumber *b = [NSNumber numberWithBool:isEEARegion]; |
| 790 | + [self writeObjectToDefaults:BRANCH_PREFS_KEY_DMA_EEA value:b]; |
| 791 | + } |
| 792 | +} |
| 793 | + |
| 794 | +- (BOOL) adPersonalizationConsent { |
| 795 | + @synchronized(self) { |
| 796 | + NSNumber *b = (id) [self readObjectFromDefaults:BRANCH_PREFS_KEY_DMA_AD_PERSONALIZATION]; |
| 797 | + if ([b isKindOfClass:NSNumber.class]) return [b boolValue]; |
| 798 | + return NO; |
| 799 | + } |
| 800 | +} |
| 801 | + |
| 802 | +- (void) setAdPersonalizationConsent:(BOOL)hasConsent { |
| 803 | + @synchronized(self) { |
| 804 | + NSNumber *b = [NSNumber numberWithBool:hasConsent]; |
| 805 | + [self writeObjectToDefaults:BRANCH_PREFS_KEY_DMA_AD_PERSONALIZATION value:b]; |
| 806 | + } |
| 807 | +} |
| 808 | + |
| 809 | +- (BOOL) adUserDataUsageConsent { |
| 810 | + @synchronized(self) { |
| 811 | + NSNumber *b = (id) [self readObjectFromDefaults:BRANCH_PREFS_KEY_DMA_AD_USER_DATA]; |
| 812 | + if ([b isKindOfClass:NSNumber.class]) return [b boolValue]; |
| 813 | + return NO; |
| 814 | + } |
| 815 | +} |
| 816 | + |
| 817 | +- (void) setAdUserDataUsageConsent:(BOOL)hasConsent { |
| 818 | + @synchronized(self) { |
| 819 | + NSNumber *b = [NSNumber numberWithBool:hasConsent]; |
| 820 | + [self writeObjectToDefaults:BRANCH_PREFS_KEY_DMA_AD_USER_DATA value:b]; |
| 821 | + } |
| 822 | +} |
| 823 | + |
| 824 | + |
794 | 825 | - (void) clearTrackingInformation { |
795 | 826 | @synchronized(self) { |
796 | 827 | /* |
|
0 commit comments