1818
1919NSString * const BRANCH_PREFS_FILE = @" BNCPreferences" ;
2020
21- NSString * const BRANCH_PREFS_KEY_APP_KEY = @" bnc_app_key" ;
2221NSString * const BRANCH_PREFS_KEY_APP_VERSION = @" bnc_app_version" ;
2322NSString * const BRANCH_PREFS_KEY_LAST_RUN_BRANCH_KEY = @" bnc_last_run_branch_key" ;
2423NSString * const BRANCH_PREFS_KEY_LAST_STRONG_MATCH_DATE = @" bnc_strong_match_created_date" ;
3332NSString * const BRANCH_PREFS_KEY_SESSION_PARAMS = @" bnc_session_params" ;
3433NSString * const BRANCH_PREFS_KEY_INSTALL_PARAMS = @" bnc_install_params" ;
3534NSString * const BRANCH_PREFS_KEY_USER_URL = @" bnc_user_url" ;
36- NSString * const BRANCH_PREFS_KEY_IS_REFERRABLE = @" bnc_is_referrable" ;
3735NSString * const BRANCH_PREFS_KEY_BRANCH_UNIVERSAL_LINK_DOMAINS = @" branch_universal_link_domains" ;
3836NSString * const BRANCH_REQUEST_KEY_EXTERNAL_INTENT_URI = @" external_intent_uri" ;
3937
4038NSString * const BRANCH_PREFS_KEY_CREDITS = @" bnc_credits" ;
4139NSString * const BRANCH_PREFS_KEY_CREDIT_BASE = @" bnc_credit_base_" ;
4240
43- NSString * const BRANCH_PREFS_KEY_COUNTS = @" bnc_counts" ;
44- NSString * const BRANCH_PREFS_KEY_TOTAL_BASE = @" bnc_total_base_" ;
45- NSString * const BRANCH_PREFS_KEY_UNIQUE_BASE = @" bnc_unique_base_" ;
46-
4741NSString * const BRANCH_PREFS_KEY_BRANCH_VIEW_USAGE_CNT = @" bnc_branch_view_usage_cnt_" ;
4842
4943// The name of this key was specified in the account-creation API integration
5246@interface BNCPreferenceHelper ()
5347
5448@property (strong , nonatomic ) NSMutableDictionary *persistenceDict;
55- @property (strong , nonatomic ) NSMutableDictionary *countsDictionary;
5649@property (strong , nonatomic ) NSMutableDictionary *creditsDictionary;
5750@property (strong , nonatomic ) NSMutableDictionary *requestMetadataDictionary;
51+ @property (strong , nonatomic ) NSMutableDictionary *instrumentationDictionary;
5852@property (assign , nonatomic ) BOOL isUsingLiveKey;
5953
6054@end
6155
6256@implementation BNCPreferenceHelper
6357
6458@synthesize branchKey = _branchKey,
65- appKey = _appKey,
6659 lastRunBranchKey = _lastRunBranchKey,
6760 appVersion = _appVersion,
6861 deviceFingerprintID = _deviceFingerprintID,
@@ -76,7 +69,6 @@ @implementation BNCPreferenceHelper
7669 installParams = _installParams,
7770 universalLinkUrl = _universalLinkUrl,
7871 externalIntentURI = _externalIntentURI,
79- isReferrable = _isReferrable,
8072 isDebug = _isDebug,
8173 shouldWaitForInit = _shouldWaitForInit,
8274 suppressWarningLogs = _suppressWarningLogs,
@@ -85,7 +77,8 @@ @implementation BNCPreferenceHelper
8577 timeout = _timeout,
8678 lastStrongMatchDate = _lastStrongMatchDate,
8779 checkedFacebookAppLinks = _checkedFacebookAppLinks,
88- requestMetadataDictionary = _requestMetadataDictionary;
80+ requestMetadataDictionary = _requestMetadataDictionary,
81+ instrumentationDictionary = _instrumentationDictionary;
8982
9083+ (BNCPreferenceHelper *)preferenceHelper {
9184 static BNCPreferenceHelper *preferenceHelper;
@@ -106,8 +99,6 @@ - (id)init {
10699
107100 _isDebug = NO ;
108101 _suppressWarningLogs = NO ;
109- _explicitlyRequestedReferrable = NO ;
110- _isReferrable = [self readBoolFromDefaults: BRANCH_PREFS_KEY_IS_REFERRABLE];
111102 }
112103
113104 return self;
@@ -162,24 +153,11 @@ - (NSString *)getAPIURL:(NSString *) endpoint {
162153 return [[self getAPIBaseURL ] stringByAppendingString: endpoint];
163154}
164155
165- #pragma mark - Preference Storage
166-
167- - (NSString *)appKey {
168- if (!_appKey) {
169- _appKey = [[[NSBundle mainBundle ] infoDictionary ] objectForKey: BRANCH_PREFS_KEY_APP_KEY];
170- }
171-
172- return _appKey;
173- }
174-
175- - (void )setAppKey : (NSString *)appKey {
176- NSLog (@" Usage of App Key is deprecated, please move toward using a Branch key" );
177-
178- if (![_appKey isEqualToString: appKey]) {
179- _appKey = appKey;
180- [self writeObjectToDefaults: BRANCH_PREFS_KEY_APP_KEY value: appKey];
181- }
156+ - (NSString *)getEndpointFromURL : (NSString *)url {
157+ NSUInteger index = BNC_API_BASE_URL.length ;
158+ return [url substringFromIndex: index];
182159}
160+ #pragma mark - Preference Storage
183161
184162- (NSString *)getBranchKey : (BOOL )isLive {
185163 // Already loaded a key, and it's the same state (live/test)
@@ -448,29 +426,8 @@ - (void)setCheckedFacebookAppLinks:(BOOL)checked {
448426 [self writeBoolToDefaults: BRANCH_PREFS_KEY_CHECKED_FACEBOOK_APP_LINKS value: checked];
449427}
450428
451- - (BOOL )isReferrable {
452- BOOL hasIdentity = self.identityID != nil ;
453-
454- // If referrable is set, but they already have an identity, they should only
455- // still be referrable if the dev has explicitly set always referrable.
456- if (_isReferrable && hasIdentity) {
457- return _explicitlyRequestedReferrable;
458- }
459-
460- // If not referrable, or no identity yet, whatever isReferrable has is fine to return.
461- return _isReferrable;
462- }
463-
464- - (void )setIsReferrable : (BOOL )isReferrable {
465- if (_isReferrable != isReferrable) {
466- _isReferrable = isReferrable;
467- [self writeBoolToDefaults: BRANCH_PREFS_KEY_IS_REFERRABLE value: isReferrable];
468- }
469- }
470-
471429- (void )clearUserCreditsAndCounts {
472430 self.creditsDictionary = [[NSMutableDictionary alloc ] init ];
473- self.countsDictionary = [[NSMutableDictionary alloc ] init ];
474431}
475432
476433- (id )getBranchUniversalLinkDomains {
@@ -496,6 +453,26 @@ - (void)setRequestMetadataKey:(NSString *)key value:(NSObject *)value {
496453 }
497454}
498455
456+ - (NSMutableDictionary *)instrumentationDictionary {
457+ if (!_instrumentationDictionary) {
458+ _instrumentationDictionary = [NSMutableDictionary dictionary ];
459+ }
460+ return _instrumentationDictionary;
461+ }
462+
463+ - (void )addInstrumentationDictionaryKey : (NSString *)key value : (NSString *)value {
464+ if (key && value) {
465+ [self .instrumentationDictionary setObject: value forKey: key];
466+ }
467+ }
468+
469+ - (void )clearInstrumentationDictionary {
470+ NSArray *keys = [_instrumentationDictionary allKeys ];
471+ for (int i = 0 ; i < [keys count ]; i++) {
472+ [_instrumentationDictionary removeObjectForKey: keys[i]];
473+ }
474+ }
475+
499476#pragma mark - Credit Storage
500477
501478- (NSMutableDictionary *)creditsDictionary {
@@ -552,38 +529,6 @@ - (void)clearUserCredits {
552529
553530#pragma mark - Count Storage
554531
555- - (NSMutableDictionary *)countsDictionary {
556- if (!_countsDictionary) {
557- _countsDictionary = [[self readObjectFromDefaults: BRANCH_PREFS_KEY_COUNTS] mutableCopy ];
558-
559- if (!_countsDictionary) {
560- _countsDictionary = [[NSMutableDictionary alloc ] init ];
561- }
562- }
563-
564- return _countsDictionary;
565- }
566-
567- - (void )setActionTotalCount : (NSString *)action withCount : (NSInteger )count {
568- self.countsDictionary [[BRANCH_PREFS_KEY_TOTAL_BASE stringByAppendingString: action]] = @(count);
569-
570- [self writeObjectToDefaults: BRANCH_PREFS_KEY_COUNTS value: self .countsDictionary];
571- }
572-
573- - (void )setActionUniqueCount : (NSString *)action withCount : (NSInteger )count {
574- self.countsDictionary [[BRANCH_PREFS_KEY_UNIQUE_BASE stringByAppendingString: action]] = @(count);
575-
576- [self writeObjectToDefaults: BRANCH_PREFS_KEY_COUNTS value: self .countsDictionary];
577- }
578-
579- - (NSInteger )getActionTotalCount : (NSString *)action {
580- return [self .countsDictionary[[BRANCH_PREFS_KEY_TOTAL_BASE stringByAppendingString: action]] integerValue ];
581- }
582-
583- - (NSInteger )getActionUniqueCount : (NSString *)action {
584- return [self .countsDictionary[[BRANCH_PREFS_KEY_UNIQUE_BASE stringByAppendingString: action]] integerValue ];
585- }
586-
587532- (void )updateBranchViewCount : (NSString *)branchViewID {
588533 NSInteger currentCount = [self getBranchViewCount: branchViewID] + 1 ;
589534 [self writeObjectToDefaults: [BRANCH_PREFS_KEY_BRANCH_VIEW_USAGE_CNT stringByAppendingString: branchViewID] value: @(currentCount)];
0 commit comments