4242#import " BNCAppGroupsData.h"
4343#import " BNCPartnerParameters.h"
4444#import " BranchEvent.h"
45+ #import " BNCPasteboard.h"
4546
4647#if !TARGET_OS_TV
4748#import " BNCUserAgentCollector.h"
@@ -222,6 +223,10 @@ - (id)initWithInterface:(BNCServerInterface *)interface
222223
223224 BranchJsonConfig *config = BranchJsonConfig.instance ;
224225
226+ if (config.checkPasteboardOnInstall ) {
227+ [self checkPasteboardOnInstall ];
228+ }
229+
225230 if (config.delayInitToCheckForSearchAds ) {
226231 [self delayInitToCheckForSearchAds ];
227232 }
@@ -783,26 +788,7 @@ - (BOOL)handleUniversalDeepLink_private:(NSString*)urlString sceneIdentifier:(NS
783788
784789 [self initUserSessionAndCallCallback: YES sceneIdentifier: sceneIdentifier];
785790
786- id branchUniversalLinkDomains = [self .preferenceHelper getBranchUniversalLinkDomains ];
787- if ([branchUniversalLinkDomains isKindOfClass: [NSString class ]] && [urlString bnc_containsString: branchUniversalLinkDomains]) {
788- return YES ;
789- } else if ([branchUniversalLinkDomains isKindOfClass: [NSArray class ]]) {
790- for (id oneDomain in branchUniversalLinkDomains) {
791- if ([oneDomain isKindOfClass: [NSString class ]] && [urlString bnc_containsString: oneDomain]) {
792- return YES ;
793- }
794- }
795- }
796-
797- NSString *userActivityURL = urlString;
798- NSArray *branchDomains = [NSArray arrayWithObjects: @" bnc.lt" , @" app.link" , @" test-app.link" , nil ];
799- for (NSString * domain in branchDomains) {
800- if ([userActivityURL bnc_containsString: domain]) {
801- return YES ;
802- }
803- }
804-
805- return NO ;
791+ return [Branch isBranchLink: urlString];
806792}
807793
808794- (BOOL )continueUserActivity : (NSUserActivity *)userActivity {
@@ -812,7 +798,7 @@ - (BOOL)continueUserActivity:(NSUserActivity *)userActivity {
812798- (BOOL )continueUserActivity : (NSUserActivity *)userActivity sceneIdentifier : (NSString *)sceneIdentifier {
813799 BNCLogDebugSDK (@" continueUserActivity:" );
814800
815- if (@available (iOS 11.0 , *)) {
801+ if (@available (iOS 11.0 , tvOS 11.0 , *)) {
816802 if (userActivity.referrerURL ) {
817803 self.preferenceHelper .initialReferrer = userActivity.referrerURL .absoluteString ;
818804 }
@@ -830,9 +816,9 @@ - (BOOL)continueUserActivity:(NSUserActivity *)userActivity sceneIdentifier:(NSS
830816 spotlightIdentifier = [self .contentDiscoveryManager spotlightIdentifierFromActivity: userActivity];
831817 NSURL *webURL = userActivity.webpageURL ;
832818
833- if ([self isBranchLink: userActivity.userInfo[CSSearchableItemActivityIdentifier]]) {
819+ if ([Branch isBranchLink: userActivity.userInfo[CSSearchableItemActivityIdentifier]]) {
834820 return [self handleDeepLink: [NSURL URLWithString: userActivity.userInfo[CSSearchableItemActivityIdentifier]] sceneIdentifier: sceneIdentifier];
835- } else if (webURL != nil && [self isBranchLink: [webURL absoluteString ]]) {
821+ } else if (webURL != nil && [Branch isBranchLink: [webURL absoluteString ]]) {
836822 return [self handleDeepLink: webURL sceneIdentifier: sceneIdentifier];
837823 } else if (spotlightIdentifier) {
838824 self.preferenceHelper .spotlightIdentifier = spotlightIdentifier;
@@ -849,25 +835,28 @@ - (BOOL)continueUserActivity:(NSUserActivity *)userActivity sceneIdentifier:(NSS
849835 return spotlightIdentifier != nil ;
850836}
851837
852- - (BOOL )isBranchLink : (NSString *)urlString {
853- id branchUniversalLinkDomains = [self .preferenceHelper getBranchUniversalLinkDomains ];
854- if ([branchUniversalLinkDomains isKindOfClass: [NSString class ]] &&
855- [urlString containsString: branchUniversalLinkDomains]) {
838+ // checks if URL string looks like a branch link
839+ + (BOOL )isBranchLink : (NSString *)urlString {
840+ id branchUniversalLinkDomains = [[[NSBundle mainBundle ] infoDictionary ] objectForKey: @" branch_universal_link_domains" ];
841+
842+ // check url list in bundle
843+ if ([branchUniversalLinkDomains isKindOfClass: [NSString class ]] && [urlString containsString: branchUniversalLinkDomains]) {
856844 return YES ;
857- }
858- else if ([branchUniversalLinkDomains isKindOfClass: [NSArray class ]]) {
845+ } else if ([branchUniversalLinkDomains isKindOfClass: [NSArray class ]]) {
859846 for (id oneDomain in branchUniversalLinkDomains) {
860847 if ([oneDomain isKindOfClass: [NSString class ]] && [urlString containsString: oneDomain]) {
861848 return YES ;
862849 }
863850 }
864851 }
865852
853+ // check default urls
866854 NSString *userActivityURL = urlString;
867855 NSArray *branchDomains = [NSArray arrayWithObjects: @" bnc.lt" , @" app.link" , @" test-app.link" , nil ];
868856 for (NSString * domain in branchDomains) {
869- if ([userActivityURL containsString: domain])
857+ if ([userActivityURL containsString: domain]) {
870858 return YES ;
859+ }
871860 }
872861 return NO ;
873862}
@@ -939,6 +928,19 @@ - (void)ignoreAppleSearchAdsTestData {
939928 #endif
940929}
941930
931+ - (void )checkPasteboardOnInstall {
932+ [BNCPasteboard sharedInstance ].checkOnInstall = YES ;
933+ }
934+
935+ - (BOOL )willShowPasteboardToast {
936+ if (!self.preferenceHelper .randomizedBundleToken &&
937+ [BNCPasteboard sharedInstance ].checkOnInstall &&
938+ [BNCPasteboard sharedInstance ].isUrlOnPasteboard ) {
939+ return YES ;
940+ }
941+ return NO ;
942+ }
943+
942944- (void )checkAppleSearchAdsAttribution {
943945 #if !TARGET_OS_TV
944946 if (![BNCAppleSearchAds sharedInstance ].enableAppleSearchAdsCheck ) {
0 commit comments