Skip to content

Commit d147292

Browse files
authored
Merge pull request #276 from adjust/v4111
Version 4.11.1
2 parents 00fecbe + 898fe5d commit d147292

File tree

139 files changed

+3170
-4770
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

139 files changed

+3170
-4770
lines changed

Adjust.podspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
Pod::Spec.new do |s|
22
s.name = "Adjust"
3-
s.version = "4.11.0"
3+
s.version = "4.11.1"
44
s.summary = "This is the iOS SDK of adjust. You can read more about it at http://adjust.com."
55
s.homepage = "https://github.com/adjust/ios_sdk"
66
s.license = { :type => 'MIT', :file => 'MIT-LICENSE' }
77
s.author = { "Christian Wellenbrock" => "[email protected]" }
8-
s.source = { :git => "https://github.com/adjust/ios_sdk.git", :tag => "v4.11.0" }
8+
s.source = { :git => "https://github.com/adjust/ios_sdk.git", :tag => "v4.11.1" }
99
s.ios.deployment_target = '6.0'
1010
s.tvos.deployment_target = '9.0'
1111
s.framework = 'SystemConfiguration'

Adjust.xcodeproj/project.pbxproj

Lines changed: 235 additions & 28 deletions
Large diffs are not rendered by default.

Adjust.xcodeproj/xcshareddata/xcschemes/AdjustSdk.xcscheme

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<Scheme
3-
LastUpgradeVersion = "0730"
3+
LastUpgradeVersion = "0820"
44
version = "1.3">
55
<BuildAction
66
parallelizeBuildables = "YES"

Adjust.xcodeproj/xcshareddata/xcschemes/AdjustSdkTv.xcscheme

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<Scheme
3-
LastUpgradeVersion = "0810"
3+
LastUpgradeVersion = "0820"
44
version = "1.3">
55
<BuildAction
66
parallelizeBuildables = "YES"

Adjust/ADJActivityHandler.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
@property (nonatomic, assign) BOOL background;
1717
@property (nonatomic, assign) BOOL delayStart;
1818
@property (nonatomic, assign) BOOL updatePackages;
19+
@property (nonatomic, assign) BOOL firstLaunch;
20+
@property (nonatomic, assign) BOOL sessionResponseProcessed;
1921

2022
- (id)init;
2123

@@ -28,6 +30,8 @@
2830
- (BOOL)isDelayStart;
2931
- (BOOL)isToStartNow;
3032
- (BOOL)isToUpdatePackages;
33+
- (BOOL)isFirstLaunch;
34+
- (BOOL)hasSessionResponseNotProcessed;
3135

3236
@end
3337

Adjust/ADJActivityHandler.m

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ - (BOOL)isForeground { return !self.background; }
6262
- (BOOL)isDelayStart { return self.delayStart; }
6363
- (BOOL)isToStartNow { return !self.delayStart; }
6464
- (BOOL)isToUpdatePackages { return self.updatePackages; }
65+
- (BOOL)isFirstLaunch { return self.firstLaunch; }
66+
- (BOOL)hasSessionResponseNotProcessed { return !self.sessionResponseProcessed; }
6567

6668
@end
6769

@@ -158,6 +160,13 @@ - (id)initWithConfig:(ADJConfig *)adjustConfig
158160
} else {
159161
self.internalState.updatePackages = self.activityState.updatePackages;
160162
}
163+
if (self.activityState == nil) {
164+
self.internalState.firstLaunch = YES;
165+
} else {
166+
self.internalState.firstLaunch = NO;
167+
}
168+
// does not have the session response by default
169+
self.internalState.sessionResponseProcessed = NO;
161170
self.deviceTokenData = deviceToken;
162171

163172
self.internalQueue = dispatch_queue_create(kInternalQueueName, DISPATCH_QUEUE_SERIAL);
@@ -794,9 +803,12 @@ - (void)transferSessionPackageI:(ADJActivityHandler *)selfI
794803
- (void)checkAttributionStateI:(ADJActivityHandler *)selfI {
795804
if (![selfI checkActivityStateI:selfI]) return;
796805

797-
// if it' a new session
798-
if (selfI.activityState.subsessionCount <= 1) {
799-
return;
806+
// if it's the first launch
807+
if ([selfI.internalState isFirstLaunch]) {
808+
// and it hasn't received the session response
809+
if ([selfI.internalState hasSessionResponseNotProcessed]) {
810+
return;
811+
}
800812
}
801813

802814
// if there is already an attribution saved and there was no attribution being asked
@@ -911,6 +923,8 @@ - (void)launchSessionResponseTasksI:(ADJActivityHandler *)selfI
911923
selector:@selector(adjustAttributionChanged:)
912924
withObject:sessionResponseData.attribution];
913925
}
926+
927+
self.internalState.sessionResponseProcessed = YES;
914928
}
915929

916930
- (void)launchAttributionResponseTasksI:(ADJActivityHandler *)selfI

Adjust/ADJActivityKind.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,16 @@ typedef NS_ENUM(int, ADJActivityKind) {
1616
ADJActivityKindUnknown = 0,
1717
ADJActivityKindSession = 1,
1818
ADJActivityKindEvent = 2,
19-
// ADJActivityKindRevenue = 3,
19+
// ADJActivityKindRevenue = 3,
2020
ADJActivityKindClick = 4,
2121
ADJActivityKindAttribution = 5,
2222
ADJActivityKindInfo = 6,
2323
};
2424

2525
@interface ADJActivityKindUtil : NSObject
2626

27+
+ (NSString *)activityKindToString:(ADJActivityKind)activityKind;
28+
2729
+ (ADJActivityKind)activityKindFromString:(NSString *)activityKindString;
28-
+ (NSString*)activityKindToString:(ADJActivityKind)activityKind;
2930

3031
@end

Adjust/ADJActivityKind.m

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010

1111
@implementation ADJActivityKindUtil
1212

13+
#pragma mark - Public methods
14+
1315
+ (ADJActivityKind)activityKindFromString:(NSString *)activityKindString {
1416
if ([@"session" isEqualToString:activityKindString]) {
1517
return ADJActivityKindSession;
@@ -19,18 +21,27 @@ + (ADJActivityKind)activityKindFromString:(NSString *)activityKindString {
1921
return ADJActivityKindClick;
2022
} else if ([@"attribution" isEqualToString:activityKindString]) {
2123
return ADJActivityKindAttribution;
24+
} else if ([@"info" isEqualToString:activityKindString]) {
25+
return ADJActivityKindInfo;
2226
} else {
2327
return ADJActivityKindUnknown;
2428
}
2529
}
2630

27-
+ (NSString*)activityKindToString:(ADJActivityKind)activityKind {
31+
+ (NSString *)activityKindToString:(ADJActivityKind)activityKind {
2832
switch (activityKind) {
29-
case ADJActivityKindSession: return @"session";
30-
case ADJActivityKindEvent: return @"event";
31-
case ADJActivityKindClick: return @"click";
32-
case ADJActivityKindAttribution: return @"attribution";
33-
default: return @"unknown";
33+
case ADJActivityKindSession:
34+
return @"session";
35+
case ADJActivityKindEvent:
36+
return @"event";
37+
case ADJActivityKindClick:
38+
return @"click";
39+
case ADJActivityKindAttribution:
40+
return @"attribution";
41+
case ADJActivityKindInfo:
42+
return @"info";
43+
default:
44+
return @"unknown";
3445
}
3546
}
3647

Adjust/ADJActivityPackage.h

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,34 @@
1010

1111
@interface ADJActivityPackage : NSObject <NSCoding>
1212

13-
// data
13+
// Data
14+
1415
@property (nonatomic, copy) NSString *path;
16+
1517
@property (nonatomic, copy) NSString *clientSdk;
16-
@property (nonatomic, strong) NSMutableDictionary *parameters;
1718

1819
@property (nonatomic, assign) NSInteger retries;
1920

20-
@property (nonatomic, strong) NSDictionary *callbackParameters;
21+
@property (nonatomic, strong) NSMutableDictionary *parameters;
22+
2123
@property (nonatomic, strong) NSDictionary *partnerParameters;
2224

23-
// logs
24-
@property (nonatomic, assign) ADJActivityKind activityKind;
25+
@property (nonatomic, strong) NSDictionary *callbackParameters;
26+
27+
// Logs
28+
2529
@property (nonatomic, copy) NSString *suffix;
2630

31+
@property (nonatomic, assign) ADJActivityKind activityKind;
32+
2733
- (NSString *)extendedString;
34+
2835
- (NSString *)successMessage;
36+
2937
- (NSString *)failureMessage;
3038

3139
- (NSInteger)getRetries;
40+
3241
- (NSInteger)increaseRetries;
3342

3443
@end

Adjust/ADJActivityPackage.m

Lines changed: 33 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -6,84 +6,88 @@
66
// Copyright (c) 2013 adjust GmbH. All rights reserved.
77
//
88

9-
#import "ADJActivityPackage.h"
109
#import "ADJActivityKind.h"
10+
#import "ADJActivityPackage.h"
1111

12-
#pragma mark -
1312
@implementation ADJActivityPackage
1413

15-
- (NSString *)description {
16-
return [NSString stringWithFormat:@"%@%@",
17-
[ADJActivityKindUtil activityKindToString:self.activityKind],
18-
self.suffix];
19-
}
14+
#pragma mark - Public methods
2015

2116
- (NSString *)extendedString {
2217
NSMutableString *builder = [NSMutableString string];
18+
2319
[builder appendFormat:@"Path: %@\n", self.path];
2420
[builder appendFormat:@"ClientSdk: %@\n", self.clientSdk];
2521

2622
if (self.parameters != nil) {
27-
NSArray * sortedKeys = [[self.parameters allKeys] sortedArrayUsingSelector:@selector(localizedStandardCompare:)];
23+
NSArray *sortedKeys = [[self.parameters allKeys] sortedArrayUsingSelector:@selector(localizedStandardCompare:)];
2824
NSUInteger keyCount = [sortedKeys count];
25+
2926
[builder appendFormat:@"Parameters:"];
30-
for (int i = 0; i < keyCount; i++) {
27+
28+
for (NSUInteger i = 0; i < keyCount; i++) {
3129
NSString *key = (NSString*)[sortedKeys objectAtIndex:i];
3230
NSString *value = [self.parameters objectForKey:key];
31+
3332
[builder appendFormat:@"\n\t\t%-22s %@", [key UTF8String], value];
3433
}
3534
}
3635

3736
return builder;
3837
}
3938

40-
- (NSString *)successMessage {
41-
return [NSString stringWithFormat:@"Tracked %@%@",
42-
[ADJActivityKindUtil activityKindToString:self.activityKind],
43-
self.suffix];
44-
}
45-
46-
- (NSString *)failureMessage {
47-
return [NSString stringWithFormat:@"Failed to track %@%@",
48-
[ADJActivityKindUtil activityKindToString:self.activityKind],
49-
self.suffix];
50-
}
51-
5239
- (NSInteger)getRetries {
5340
return self.retries;
5441
}
5542

5643
- (NSInteger)increaseRetries {
5744
self.retries = self.retries + 1;
45+
5846
return self.retries;
5947
}
6048

61-
#pragma mark NSCoding
49+
- (NSString *)description {
50+
return [NSString stringWithFormat:@"%@%@", [ADJActivityKindUtil activityKindToString:self.activityKind], self.suffix];
51+
}
52+
53+
- (NSString *)successMessage {
54+
return [NSString stringWithFormat:@"Tracked %@%@", [ADJActivityKindUtil activityKindToString:self.activityKind], self.suffix];
55+
}
56+
57+
- (NSString *)failureMessage {
58+
return [NSString stringWithFormat:@"Failed to track %@%@", [ADJActivityKindUtil activityKindToString:self.activityKind], self.suffix];
59+
}
60+
61+
#pragma mark - NSCoding protocol methods
62+
6263
- (id)initWithCoder:(NSCoder *)decoder {
6364
self = [super init];
64-
if (self == nil) return self;
65+
66+
if (self == nil) {
67+
return self;
68+
}
6569

6670
self.path = [decoder decodeObjectForKey:@"path"];
71+
self.suffix = [decoder decodeObjectForKey:@"suffix"];
6772
self.clientSdk = [decoder decodeObjectForKey:@"clientSdk"];
6873
self.parameters = [decoder decodeObjectForKey:@"parameters"];
69-
NSString *kindString = [decoder decodeObjectForKey:@"kind"];
70-
self.suffix = [decoder decodeObjectForKey:@"suffix"];
74+
self.partnerParameters = [decoder decodeObjectForKey:@"partnerParameters"];
75+
self.callbackParameters = [decoder decodeObjectForKey:@"callbackParameters"];
7176

77+
NSString *kindString = [decoder decodeObjectForKey:@"kind"];
7278
self.activityKind = [ADJActivityKindUtil activityKindFromString:kindString];
7379

74-
self.callbackParameters = [decoder decodeObjectForKey:@"callbackParameters"];
75-
self.partnerParameters = [decoder decodeObjectForKey:@"partnerParameters"];
7680
return self;
7781
}
7882

7983
- (void)encodeWithCoder:(NSCoder *)encoder {
8084
NSString *kindString = [ADJActivityKindUtil activityKindToString:self.activityKind];
8185

8286
[encoder encodeObject:self.path forKey:@"path"];
83-
[encoder encodeObject:self.clientSdk forKey:@"clientSdk"];
84-
[encoder encodeObject:self.parameters forKey:@"parameters"];
8587
[encoder encodeObject:kindString forKey:@"kind"];
8688
[encoder encodeObject:self.suffix forKey:@"suffix"];
89+
[encoder encodeObject:self.clientSdk forKey:@"clientSdk"];
90+
[encoder encodeObject:self.parameters forKey:@"parameters"];
8791
[encoder encodeObject:self.callbackParameters forKey:@"callbackParameters"];
8892
[encoder encodeObject:self.partnerParameters forKey:@"partnerParameters"];
8993
}

0 commit comments

Comments
 (0)