Skip to content

Commit 4b1f318

Browse files
committed
Native libraries update
1 parent c7ce044 commit 4b1f318

18 files changed

+198
-75
lines changed

android/libs/adjust-android.jar

2.9 KB
Binary file not shown.

ios/Adjust/ADJActivityHandler.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ sessionParametersActionsArray:(NSArray*)sessionParametersActionsArray
5252
- (void)finishedTracking:(ADJResponseData *)responseData;
5353
- (void)launchEventResponseTasks:(ADJEventResponseData *)eventResponseData;
5454
- (void)launchSessionResponseTasks:(ADJSessionResponseData *)sessionResponseData;
55+
- (void)launchSdkClickResponseTasks:(ADJSdkClickResponseData *)sdkClickResponseData;
5556
- (void)launchAttributionResponseTasks:(ADJAttributionResponseData *)attributionResponseData;
5657
- (void)setEnabled:(BOOL)enabled;
5758
- (BOOL)isEnabled;

ios/Adjust/ADJActivityHandler.m

Lines changed: 79 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,12 @@ - (void)finishedTracking:(ADJResponseData *)responseData {
238238
return;
239239
}
240240

241+
// redirect sdk_click responses to attribution handler to check for attribution information
242+
if ([responseData isKindOfClass:[ADJSdkClickResponseData class]]) {
243+
[self.attributionHandler checkSdkClickResponse:(ADJSdkClickResponseData*)responseData];
244+
return;
245+
}
246+
241247
// check if it's an event response
242248
if ([responseData isKindOfClass:[ADJEventResponseData class]]) {
243249
[self launchEventResponseTasks:(ADJEventResponseData*)responseData];
@@ -261,6 +267,14 @@ - (void)launchSessionResponseTasks:(ADJSessionResponseData *)sessionResponseData
261267
}];
262268
}
263269

270+
- (void)launchSdkClickResponseTasks:(ADJSdkClickResponseData *)sdkClickResponseData {
271+
[ADJUtil launchInQueue:self.internalQueue
272+
selfInject:self
273+
block:^(ADJActivityHandler * selfI) {
274+
[selfI launchSdkClickResponseTasksI:selfI sdkClickResponseData:sdkClickResponseData];
275+
}];
276+
}
277+
264278
- (void)launchAttributionResponseTasks:(ADJAttributionResponseData *)attributionResponseData {
265279
[ADJUtil launchInQueue:self.internalQueue
266280
selfInject:self
@@ -399,27 +413,14 @@ - (void)setDeviceToken:(NSData *)deviceToken {
399413
}];
400414
}
401415

402-
- (void)setIadDate:(NSDate *)iAdImpressionDate withPurchaseDate:(NSDate *)appPurchaseDate {
403-
if (iAdImpressionDate == nil) {
404-
[self.logger debug:@"iAdImpressionDate not received"];
405-
return;
406-
}
407-
408-
[self.logger debug:@"iAdImpressionDate received: %@", iAdImpressionDate];
409-
410-
411-
double now = [NSDate.date timeIntervalSince1970];
412-
ADJPackageBuilder *clickBuilder = [[ADJPackageBuilder alloc]
413-
initWithDeviceInfo:self.deviceInfo
414-
activityState:self.activityState
415-
config:self.adjustConfig
416-
createdAt:now];
417-
418-
clickBuilder.purchaseTime = appPurchaseDate;
419-
clickBuilder.clickTime = iAdImpressionDate;
420-
421-
ADJActivityPackage *clickPackage = [clickBuilder buildClickPackage:@"iad"];
422-
[self.sdkClickHandler sendSdkClick:clickPackage];
416+
- (void)setIadDate:(NSDate *)iAdImpressionDate
417+
withPurchaseDate:(NSDate *)appPurchaseDate
418+
{
419+
[ADJUtil launchInQueue:self.internalQueue
420+
selfInject:self
421+
block:^(ADJActivityHandler * selfI) {
422+
[selfI setIadDateI:selfI iAdImpressionDate:iAdImpressionDate withPurchaseDate:appPurchaseDate];
423+
}];
423424
}
424425

425426
- (void)setAttributionDetails:(NSDictionary *)attributionDetails
@@ -485,6 +486,10 @@ - (void)sendIad3ClickPackage:(ADJActivityHandler *)selfI
485486
attributionDetails:(NSDictionary *)attributionDetails
486487
{
487488
double now = [NSDate.date timeIntervalSince1970];
489+
if (selfI.activityState != nil) {
490+
double lastInterval = now - selfI.activityState.lastActivity;
491+
selfI.activityState.lastInterval = lastInterval;
492+
}
488493
ADJPackageBuilder *clickBuilder = [[ADJPackageBuilder alloc]
489494
initWithDeviceInfo:selfI.deviceInfo
490495
activityState:selfI.activityState
@@ -493,7 +498,7 @@ - (void)sendIad3ClickPackage:(ADJActivityHandler *)selfI
493498

494499
clickBuilder.attributionDetails = attributionDetails;
495500

496-
ADJActivityPackage *clickPackage = [clickBuilder buildClickPackage:@"iad3"];
501+
ADJActivityPackage *clickPackage = [clickBuilder buildClickPackage:@"iad3" sessionParameters:selfI.sessionParameters];
497502
[selfI.sdkClickHandler sendSdkClick:clickPackage];
498503
}
499504

@@ -716,7 +721,8 @@ - (void)initI:(ADJActivityHandler *)selfI
716721
startsSending:[selfI toSendI:selfI
717722
sdkClickHandlerOnly:NO]];
718723

719-
selfI.sdkClickHandler = [ADJAdjustFactory sdkClickHandlerWithStartsPaused:[selfI toSendI:selfI
724+
selfI.sdkClickHandler = [ADJAdjustFactory sdkClickHandlerWithStartsPaused:selfI
725+
startsSending:[selfI toSendI:selfI
720726
sdkClickHandlerOnly:YES]];
721727

722728
[[UIDevice currentDevice] adjSetIad:selfI triesV3Left:kTryIadV3];
@@ -930,6 +936,21 @@ - (void)launchSessionResponseTasksI:(ADJActivityHandler *)selfI
930936
self.internalState.sessionResponseProcessed = YES;
931937
}
932938

939+
- (void)launchSdkClickResponseTasksI:(ADJActivityHandler *)selfI
940+
sdkClickResponseData:(ADJSdkClickResponseData *)sdkClickResponseData {
941+
[selfI updateAdidI:selfI adid:sdkClickResponseData.adid];
942+
943+
BOOL toLaunchAttributionDelegate = [selfI updateAttributionI:selfI attribution:sdkClickResponseData.attribution];
944+
945+
// try to update and launch the attribution changed delegate
946+
if (toLaunchAttributionDelegate) {
947+
[selfI.logger debug:@"Launching attribution changed delegate"];
948+
[ADJUtil launchInMainThread:selfI.adjustDelegate
949+
selector:@selector(adjustAttributionChanged:)
950+
withObject:sdkClickResponseData.attribution];
951+
}
952+
}
953+
933954
- (void)launchAttributionResponseTasksI:(ADJActivityHandler *)selfI
934955
attributionResponseData:(ADJAttributionResponseData *)attributionResponseData {
935956
[selfI updateAdidI:selfI adid:attributionResponseData.adid];
@@ -1034,6 +1055,9 @@ - (void)appWillOpenUrlI:(ADJActivityHandler *)selfI
10341055
}
10351056

10361057
double now = [NSDate.date timeIntervalSince1970];
1058+
double lastInterval = now - selfI.activityState.lastActivity;
1059+
selfI.activityState.lastInterval = lastInterval;
1060+
10371061
ADJPackageBuilder *clickBuilder = [[ADJPackageBuilder alloc]
10381062
initWithDeviceInfo:selfI.deviceInfo
10391063
activityState:selfI.activityState
@@ -1044,7 +1068,7 @@ - (void)appWillOpenUrlI:(ADJActivityHandler *)selfI
10441068
clickBuilder.clickTime = [NSDate date];
10451069
clickBuilder.deeplink = [url absoluteString];
10461070

1047-
ADJActivityPackage *clickPackage = [clickBuilder buildClickPackage:@"deeplink"];
1071+
ADJActivityPackage *clickPackage = [clickBuilder buildClickPackage:@"deeplink" sessionParameters:selfI.sessionParameters];
10481072
[selfI.sdkClickHandler sendSdkClick:clickPackage];
10491073
}
10501074

@@ -1133,6 +1157,37 @@ - (void)setDeviceTokenI:(ADJActivityHandler *)selfI
11331157
[selfI.packageHandler sendFirstPackage];
11341158
}
11351159

1160+
- (void)setIadDateI:(ADJActivityHandler *)selfI
1161+
iAdImpressionDate:(NSDate *)iAdImpressionDate
1162+
withPurchaseDate:(NSDate *)appPurchaseDate
1163+
{
1164+
if (iAdImpressionDate == nil) {
1165+
[self.logger debug:@"iAdImpressionDate not received"];
1166+
return;
1167+
}
1168+
1169+
[self.logger debug:@"iAdImpressionDate received: %@", iAdImpressionDate];
1170+
1171+
double now = [NSDate.date timeIntervalSince1970];
1172+
if (selfI.activityState != nil) {
1173+
double lastInterval = now - selfI.activityState.lastActivity;
1174+
selfI.activityState.lastInterval = lastInterval;
1175+
}
1176+
1177+
ADJPackageBuilder *clickBuilder = [[ADJPackageBuilder alloc]
1178+
initWithDeviceInfo:self.deviceInfo
1179+
activityState:self.activityState
1180+
config:self.adjustConfig
1181+
createdAt:now];
1182+
1183+
clickBuilder.purchaseTime = appPurchaseDate;
1184+
clickBuilder.clickTime = iAdImpressionDate;
1185+
1186+
ADJActivityPackage *clickPackage = [clickBuilder buildClickPackage:@"iad" sessionParameters:selfI.sessionParameters];
1187+
[self.sdkClickHandler sendSdkClick:clickPackage];
1188+
}
1189+
1190+
11361191
#pragma mark - private
11371192

11381193
- (BOOL)isEnabledI:(ADJActivityHandler *)selfI {

ios/Adjust/ADJAdjustFactory.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@
2424
+ (id<ADJActivityHandler>)activityHandlerWithConfig:(ADJConfig *)adjustConfig
2525
sessionParametersActionsArray:(NSArray*)sessionParametersActionsArray
2626
deviceToken:(NSData*)deviceToken;
27-
+ (id<ADJSdkClickHandler>)sdkClickHandlerWithStartsPaused:(BOOL)startsSending;
27+
+ (id<ADJSdkClickHandler>)sdkClickHandlerWithStartsPaused:(id<ADJActivityHandler>)activityHandler
28+
startsSending:(BOOL)startsSending;
2829

2930
+ (id<ADJLogger>)logger;
3031
+ (double)sessionInterval;

ios/Adjust/ADJAdjustFactory.m

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,13 +122,14 @@ + (ADJBackoffStrategy *)sdkClickHandlerBackoffStrategy {
122122
startsSending:startsSending];
123123
}
124124

125-
+ (id<ADJSdkClickHandler>)sdkClickHandlerWithStartsPaused:(BOOL)startsSending
125+
+ (id<ADJSdkClickHandler>)sdkClickHandlerWithStartsPaused:(id<ADJActivityHandler>)activityHandler
126+
startsSending:(BOOL)startsSending
126127
{
127128
if (internalSdkClickHandler == nil) {
128-
return [ADJSdkClickHandler handlerWithStartsSending:startsSending];
129+
return [ADJSdkClickHandler handlerWithActivityHandler:activityHandler startsSending:startsSending];
129130
}
130131

131-
return [internalSdkClickHandler initWithStartsSending:startsSending];
132+
return [internalSdkClickHandler initWithActivityHandler:activityHandler startsSending:startsSending];
132133
}
133134

134135
+ (BOOL)testing {

ios/Adjust/ADJAttributionHandler.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818

1919
- (void)checkSessionResponse:(ADJSessionResponseData *)sessionResponseData;
2020

21+
- (void)checkSdkClickResponse:(ADJSdkClickResponseData *)sdkClickResponseData;
22+
2123
- (void)checkAttributionResponse:(ADJAttributionResponseData *)attributionResponseData;
2224

2325
- (void)getAttribution;

ios/Adjust/ADJAttributionHandler.m

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,15 @@ - (void)checkSessionResponse:(ADJSessionResponseData *)sessionResponseData {
7474
}];
7575
}
7676

77+
- (void)checkSdkClickResponse:(ADJSdkClickResponseData *)sdkClickResponseData {
78+
[ADJUtil launchInQueue:self.internalQueue
79+
selfInject:self
80+
block:^(ADJAttributionHandler* selfI) {
81+
[selfI checkSdkClickResponseI:selfI
82+
sdkClickResponseData:sdkClickResponseData];
83+
}];
84+
}
85+
7786
- (void)checkAttributionResponse:(ADJAttributionResponseData *)attributionResponseData {
7887
[ADJUtil launchInQueue:self.internalQueue
7988
selfInject:self
@@ -110,6 +119,13 @@ - (void)checkSessionResponseI:(ADJAttributionHandler*)selfI
110119
[selfI.activityHandler launchSessionResponseTasks:sessionResponseData];
111120
}
112121

122+
- (void)checkSdkClickResponseI:(ADJAttributionHandler*)selfI
123+
sdkClickResponseData:(ADJSdkClickResponseData *)sdkClickResponseData {
124+
[selfI checkAttributionI:selfI responseData:sdkClickResponseData];
125+
126+
[selfI.activityHandler launchSdkClickResponseTasks:sdkClickResponseData];
127+
}
128+
113129
- (void)checkAttributionResponseI:(ADJAttributionHandler*)selfI
114130
attributionResponseData:(ADJAttributionResponseData *)attributionResponseData {
115131
[selfI checkAttributionI:selfI responseData:attributionResponseData];

ios/Adjust/ADJConfig.m

Lines changed: 11 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
@interface ADJConfig()
1616

1717
@property (nonatomic, weak) id<ADJLogger> logger;
18-
@property (nonatomic, assign) BOOL allowSuppressLogLevel;
1918

2019
@end
2120

@@ -48,10 +47,13 @@ - (id)initWithAppToken:(NSString *)appToken
4847
self = [super init];
4948
if (self == nil) return nil;
5049

51-
self.allowSuppressLogLevel = allowSuppressLogLevel;
5250
self.logger = ADJAdjustFactory.logger;
5351
// default values
54-
[self setLogLevel:ADJLogLevelInfo environment:environment];
52+
if (allowSuppressLogLevel && [ADJEnvironmentProduction isEqualToString:environment]) {
53+
[self setLogLevel:ADJLogLevelSuppress environment:environment];
54+
} else {
55+
[self setLogLevel:ADJLogLevelInfo environment:environment];
56+
}
5557

5658
if (![self checkEnvironment:environment]) return self;
5759
if (![self checkAppToken:appToken]) return self;
@@ -69,25 +71,12 @@ - (void)setLogLevel:(ADJLogLevel)logLevel {
6971
}
7072

7173
- (void)setLogLevel:(ADJLogLevel)logLevel
72-
environment:(NSString *)environment{
73-
if ([environment isEqualToString:ADJEnvironmentProduction]) {
74-
if (self.allowSuppressLogLevel) {
75-
_logLevel = ADJLogLevelSuppress;
76-
} else {
77-
_logLevel = ADJLogLevelAssert;
78-
}
79-
} else {
80-
if (!self.allowSuppressLogLevel &&
81-
logLevel == ADJLogLevelSuppress) {
82-
_logLevel = ADJLogLevelAssert;
83-
} else {
84-
_logLevel = logLevel;
85-
}
86-
}
87-
[self.logger setLogLevel:self.logLevel];
74+
environment:(NSString *)environment
75+
{
76+
[self.logger setLogLevel:logLevel
77+
isProductionEnvironment:[ADJEnvironmentProduction isEqualToString:environment]];
8878
}
8979

90-
9180
- (void)setDelegate:(NSObject<AdjustDelegate> *)delegate {
9281
BOOL hasResponseDelegate = NO;
9382
BOOL implementsDeeplinkCallback = NO;
@@ -151,10 +140,10 @@ - (BOOL)checkEnvironment:(NSString *)environment
151140
return NO;
152141
}
153142
if ([environment isEqualToString:ADJEnvironmentSandbox]) {
154-
[self.logger assert:@"SANDBOX: Adjust is running in Sandbox mode. Use this setting for testing. Don't forget to set the environment to `production` before publishing"];
143+
[self.logger warnInProduction:@"SANDBOX: Adjust is running in Sandbox mode. Use this setting for testing. Don't forget to set the environment to `production` before publishing"];
155144
return YES;
156145
} else if ([environment isEqualToString:ADJEnvironmentProduction]) {
157-
[self.logger assert:@"PRODUCTION: Adjust is running in Production mode. Use this setting only for the build that you want to publish. Set the environment to `sandbox` if you want to test your app!"];
146+
[self.logger warnInProduction:@"PRODUCTION: Adjust is running in Production mode. Use this setting only for the build that you want to publish. Set the environment to `sandbox` if you want to test your app!"];
158147
return YES;
159148
}
160149
[self.logger error:@"Unknown environment '%@'", environment];

ios/Adjust/ADJLogger.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ typedef enum {
2727
*
2828
* @param logLevel Level of the logs to be displayed.
2929
*/
30-
- (void)setLogLevel:(ADJLogLevel)logLevel;
30+
- (void)setLogLevel:(ADJLogLevel)logLevel isProductionEnvironment:(BOOL)isProductionEnvironment;
3131

3232
/**
3333
* @brief Prevent log level changes.
@@ -53,6 +53,7 @@ typedef enum {
5353
* @brief Print warn logs.
5454
*/
5555
- (void)warn:(nonnull NSString *)message, ...;
56+
- (void)warnInProduction:(nonnull NSString *)message, ...;
5657

5758
/**
5859
* @brief Print error logs.

0 commit comments

Comments
 (0)