Skip to content

Commit 8d8f5ce

Browse files
authored
Custom callback test (#1528)
* Added defensive fix as suggested in code review (for swift + obj-c code) * Added some additional logging APIs.
1 parent 9a10152 commit 8d8f5ce

File tree

7 files changed

+25
-3
lines changed

7 files changed

+25
-3
lines changed

Sources/BranchSDK/BNCODMInfoCollector.m

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ typedef NS_ENUM(NSInteger, ODCInteractionType) {
138138
};
139139

140140
[invocation setArgument:&_odmFetchCompletion atIndex:3];
141+
[invocation retainArguments];
141142
[invocation invoke];
142143
[[BranchLogger shared] logDebug:[NSString stringWithFormat:@"fetchInfo:completion: invoked successfully."] error:nil];
143144

Sources/BranchSDK/Branch.m

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,7 @@ - (id)initWithInterface:(BNCServerInterface *)interface
279279
}
280280

281281
static Class bnc_networkServiceClass = NULL;
282+
static callbackForTracingRequests bnc_tracingCallback = nil;
282283

283284
+ (void)setNetworkServiceClass:(Class)networkServiceClass {
284285
@synchronized ([Branch class]) {
@@ -706,6 +707,10 @@ - (void)initSessionWithLaunchOptions:(NSDictionary *)options automaticallyDispla
706707
[self initSessionWithLaunchOptions:options isReferrable:isReferrable explicitlyRequestedReferrable:YES automaticallyDisplayController:automaticallyDisplayController registerDeepLinkHandler:callback];
707708
}
708709

710+
+ (void) setCallbackForTracingRequests: (callbackForTracingRequests) callback {
711+
bnc_tracingCallback = callback;
712+
}
713+
709714
#pragma mark - Actual Init Session
710715

711716
- (void)initSessionWithLaunchOptions:(NSDictionary *)options isReferrable:(BOOL)isReferrable explicitlyRequestedReferrable:(BOOL)explicitlyRequestedReferrable automaticallyDisplayController:(BOOL)automaticallyDisplayController registerDeepLinkHandlerUsingBranchUniversalObject:(callbackWithBranchUniversalObject)callback {
@@ -2170,6 +2175,7 @@ - (void)initializeSessionAndCallCallback:(BOOL)callCallback sceneIdentifier:(NSS
21702175
}
21712176
req.callback = initSessionCallback;
21722177
req.urlString = urlString;
2178+
req.traceCallback = bnc_tracingCallback;
21732179

21742180
[self.requestQueue insert:req at:0];
21752181

Sources/BranchSDK/BranchInstallRequest.m

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,10 @@ - (void)makeRequest:(BNCServerInterface *)serverInterface key:(NSString *)key ca
2222
BNCRequestFactory *factory = [[BNCRequestFactory alloc] initWithBranchKey:key UUID:self.requestUUID TimeStamp:self.requestCreationTimeStamp];
2323
NSDictionary *params = [factory dataForInstallWithURLString:self.urlString];
2424

25-
[serverInterface postRequest:params url:[[BNCServerAPI sharedInstance] installServiceURL] key:key callback:callback];
25+
self.requestParams = [params copy];
26+
self.requestServiceURL = [[BNCServerAPI sharedInstance] installServiceURL];
27+
28+
[serverInterface postRequest:params url:self.requestServiceURL key:key callback:callback];
2629
}
2730

2831
- (NSString *)getActionName {

Sources/BranchSDK/BranchOpenRequest.m

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,14 +50,20 @@ - (id)initWithCallback:(callbackWithStatus)callback isInstall:(BOOL)isInstall {
5050
- (void)makeRequest:(BNCServerInterface *)serverInterface key:(NSString *)key callback:(BNCServerCallback)callback {
5151
BNCRequestFactory *factory = [[BNCRequestFactory alloc] initWithBranchKey:key UUID:self.requestUUID TimeStamp:self.requestCreationTimeStamp];
5252
NSDictionary *params = [factory dataForOpenWithURLString:self.urlString];
53-
53+
self.requestParams = [params copy];
54+
self.requestServiceURL = [[BNCServerAPI sharedInstance] openServiceURL];
5455
[serverInterface postRequest:params
55-
url:[[BNCServerAPI sharedInstance] openServiceURL]
56+
url: self.requestServiceURL
5657
key:key
5758
callback:callback];
5859
}
5960

6061
- (void)processResponse:(BNCServerResponse *)response error:(NSError *)error {
62+
63+
if (self.traceCallback) {
64+
self.traceCallback(self.urlString, self.requestParams, response.data, error, self.requestServiceURL);
65+
}
66+
6167
BNCPreferenceHelper *preferenceHelper = [BNCPreferenceHelper sharedInstance];
6268
if (error && preferenceHelper.dropURLOpen) {
6369
// Ignore this response from the server. Dummy up a response:

Sources/BranchSDK/Private/BranchOpenRequest.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@
1515
@property (nonatomic, copy, readwrite) NSString *urlString;
1616
@property (assign, nonatomic) BOOL isFromArchivedQueue;
1717
@property (nonatomic, copy) callbackWithStatus callback;
18+
@property (nonatomic, copy) callbackForTracingRequests traceCallback;
19+
@property (strong, nonatomic) NSDictionary *requestParams;
20+
@property (nonatomic, copy, readwrite) NSString *requestServiceURL;
1821

1922
+ (void) waitForOpenResponseLock;
2023
+ (void) releaseOpenResponseLock;

Sources/BranchSDK/Public/BNCCallbacks.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,4 @@ typedef void (^callbackWithList) (NSArray * _Nullable list, NSError * _Nullable
2121
typedef void (^callbackWithUrlAndSpotlightIdentifier) (NSString * _Nullable url, NSString * _Nullable spotlightIdentifier, NSError * _Nullable error);
2222
typedef void (^callbackWithBranchUniversalObject) (BranchUniversalObject * _Nullable universalObject, BranchLinkProperties * _Nullable linkProperties, NSError * _Nullable error);
2323
typedef void (^callbackWithData) (NSData * _Nullable data, NSError * _Nullable error);
24+
typedef void (^callbackForTracingRequests) ( NSString * _Nullable url, NSDictionary * _Nullable request, NSDictionary * _Nullable response, NSError * _Nullable error, NSString * requestServiceURL);

Sources/BranchSDK/Public/Branch.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -602,6 +602,8 @@ Sets a custom base safetrack URL for non-linking calls to the Branch API.
602602

603603
+ (void)setSafetrackAPIURL:(NSString *)url ;
604604

605+
+ (void)setCallbackForTracingRequests: (callbackForTracingRequests) callback ;
606+
605607
/**
606608
@brief Use the `validateSDKIntegration` method as a debugging aid to assure that you've
607609
integrated the Branch SDK correctly.

0 commit comments

Comments
 (0)