4545#import " BNCAppGroupsData.h"
4646#import " BNCPartnerParameters.h"
4747#import " BranchEvent.h"
48+ #import " BNCPasteboard.h"
4849
4950#if !TARGET_OS_TV
5051#import " BNCUserAgentCollector.h"
@@ -225,6 +226,10 @@ - (id)initWithInterface:(BNCServerInterface *)interface
225226
226227 BranchJsonConfig *config = BranchJsonConfig.instance ;
227228
229+ if (config.checkPasteboardOnInstall ) {
230+ [self checkPasteboardOnInstall ];
231+ }
232+
228233 if (config.delayInitToCheckForSearchAds ) {
229234 [self delayInitToCheckForSearchAds ];
230235 }
@@ -800,26 +805,7 @@ - (BOOL)handleUniversalDeepLink_private:(NSString*)urlString sceneIdentifier:(NS
800805
801806 [self initUserSessionAndCallCallback: YES sceneIdentifier: sceneIdentifier];
802807
803- id branchUniversalLinkDomains = [self .preferenceHelper getBranchUniversalLinkDomains ];
804- if ([branchUniversalLinkDomains isKindOfClass: [NSString class ]] && [urlString bnc_containsString: branchUniversalLinkDomains]) {
805- return YES ;
806- } else if ([branchUniversalLinkDomains isKindOfClass: [NSArray class ]]) {
807- for (id oneDomain in branchUniversalLinkDomains) {
808- if ([oneDomain isKindOfClass: [NSString class ]] && [urlString bnc_containsString: oneDomain]) {
809- return YES ;
810- }
811- }
812- }
813-
814- NSString *userActivityURL = urlString;
815- NSArray *branchDomains = [NSArray arrayWithObjects: @" bnc.lt" , @" app.link" , @" test-app.link" , nil ];
816- for (NSString * domain in branchDomains) {
817- if ([userActivityURL bnc_containsString: domain]) {
818- return YES ;
819- }
820- }
821-
822- return NO ;
808+ return [Branch isBranchLink: urlString];
823809}
824810
825811- (BOOL )continueUserActivity : (NSUserActivity *)userActivity {
@@ -829,6 +815,12 @@ - (BOOL)continueUserActivity:(NSUserActivity *)userActivity {
829815- (BOOL )continueUserActivity : (NSUserActivity *)userActivity sceneIdentifier : (NSString *)sceneIdentifier {
830816 BNCLogDebugSDK (@" continueUserActivity:" );
831817
818+ if (@available (iOS 11.0 , tvOS 11.0 , *)) {
819+ if (userActivity.referrerURL ) {
820+ self.preferenceHelper .initialReferrer = userActivity.referrerURL .absoluteString ;
821+ }
822+ }
823+
832824 // Check to see if a browser activity needs to be handled
833825 if ([userActivity.activityType isEqualToString: NSUserActivityTypeBrowsingWeb ]) {
834826 return [self handleDeepLink: userActivity.webpageURL sceneIdentifier: sceneIdentifier];
@@ -841,9 +833,9 @@ - (BOOL)continueUserActivity:(NSUserActivity *)userActivity sceneIdentifier:(NSS
841833 spotlightIdentifier = [self .contentDiscoveryManager spotlightIdentifierFromActivity: userActivity];
842834 NSURL *webURL = userActivity.webpageURL ;
843835
844- if ([self isBranchLink: userActivity.userInfo[CSSearchableItemActivityIdentifier]]) {
836+ if ([Branch isBranchLink: userActivity.userInfo[CSSearchableItemActivityIdentifier]]) {
845837 return [self handleDeepLink: [NSURL URLWithString: userActivity.userInfo[CSSearchableItemActivityIdentifier]] sceneIdentifier: sceneIdentifier];
846- } else if (webURL != nil && [self isBranchLink: [webURL absoluteString ]]) {
838+ } else if (webURL != nil && [Branch isBranchLink: [webURL absoluteString ]]) {
847839 return [self handleDeepLink: webURL sceneIdentifier: sceneIdentifier];
848840 } else if (spotlightIdentifier) {
849841 self.preferenceHelper .spotlightIdentifier = spotlightIdentifier;
@@ -860,25 +852,28 @@ - (BOOL)continueUserActivity:(NSUserActivity *)userActivity sceneIdentifier:(NSS
860852 return spotlightIdentifier != nil ;
861853}
862854
863- - (BOOL )isBranchLink : (NSString *)urlString {
864- id branchUniversalLinkDomains = [self .preferenceHelper getBranchUniversalLinkDomains ];
865- if ([branchUniversalLinkDomains isKindOfClass: [NSString class ]] &&
866- [urlString containsString: branchUniversalLinkDomains]) {
855+ // checks if URL string looks like a branch link
856+ + (BOOL )isBranchLink : (NSString *)urlString {
857+ id branchUniversalLinkDomains = [[[NSBundle mainBundle ] infoDictionary ] objectForKey: @" branch_universal_link_domains" ];
858+
859+ // check url list in bundle
860+ if ([branchUniversalLinkDomains isKindOfClass: [NSString class ]] && [urlString containsString: branchUniversalLinkDomains]) {
867861 return YES ;
868- }
869- else if ([branchUniversalLinkDomains isKindOfClass: [NSArray class ]]) {
862+ } else if ([branchUniversalLinkDomains isKindOfClass: [NSArray class ]]) {
870863 for (id oneDomain in branchUniversalLinkDomains) {
871864 if ([oneDomain isKindOfClass: [NSString class ]] && [urlString containsString: oneDomain]) {
872865 return YES ;
873866 }
874867 }
875868 }
876869
870+ // check default urls
877871 NSString *userActivityURL = urlString;
878872 NSArray *branchDomains = [NSArray arrayWithObjects: @" bnc.lt" , @" app.link" , @" test-app.link" , nil ];
879873 for (NSString * domain in branchDomains) {
880- if ([userActivityURL containsString: domain])
874+ if ([userActivityURL containsString: domain]) {
881875 return YES ;
876+ }
882877 }
883878 return NO ;
884879}
@@ -950,6 +945,19 @@ - (void)ignoreAppleSearchAdsTestData {
950945 #endif
951946}
952947
948+ - (void )checkPasteboardOnInstall {
949+ [BNCPasteboard sharedInstance ].checkOnInstall = YES ;
950+ }
951+
952+ - (BOOL )willShowPasteboardToast {
953+ if (!self.preferenceHelper .identityID &&
954+ [BNCPasteboard sharedInstance ].checkOnInstall &&
955+ [BNCPasteboard sharedInstance ].isUrlOnPasteboard ) {
956+ return YES ;
957+ }
958+ return NO ;
959+ }
960+
953961- (void )checkAppleSearchAdsAttribution {
954962 #if !TARGET_OS_TV
955963 if (![BNCAppleSearchAds sharedInstance ].enableAppleSearchAdsCheck ) {
0 commit comments