66// Copyright (c) 2013 adeven. All rights reserved.
77//
88
9+ #import " AIActivityPackage.h"
910#import " AIActivityHandler.h"
1011#import " AIActivityState.h"
1112#import " AIPackageBuilder.h"
@@ -40,6 +41,7 @@ @interface AIActivityHandler()
4041@property (nonatomic , copy ) NSString *fbAttributionId;
4142@property (nonatomic , copy ) NSString *userAgent;
4243@property (nonatomic , copy ) NSString *clientSdk;
44+ @property (nonatomic , assign ) BOOL trackingEnabled;
4345
4446@end
4547
@@ -57,6 +59,7 @@ - (id)initWithAppToken:(NSString *)yourAppToken {
5759
5860 [self addNotificationObserver ];
5961 self.internalQueue = dispatch_queue_create (kInternalQueueName , DISPATCH_QUEUE_SERIAL);
62+ self.environment = @" unknown" ; // default value
6063
6164 dispatch_async (self.internalQueue , ^{
6265 [self initInternal: yourAppToken];
@@ -105,6 +108,7 @@ - (void)initInternal:(NSString *)yourAppToken {
105108 self.appToken = yourAppToken;
106109 self.macSha1 = macAddress.aiSha1 ;
107110 self.macShortMd5 = macShort.aiMd5 ;
111+ self.trackingEnabled = UIDevice.currentDevice .aiTrackingEnabled ;
108112 self.idForAdvertisers = UIDevice.currentDevice .aiIdForAdvertisers ;
109113 self.fbAttributionId = UIDevice.currentDevice .aiFbAttributionId ;
110114 self.userAgent = AIUtil.userAgent ;
@@ -201,6 +205,12 @@ - (void)eventInternal:(NSString *)eventToken
201205 AIActivityPackage *eventPackage = [eventBuilder buildEventPackage ];
202206 [self .packageHandler addPackage: eventPackage];
203207
208+ if (self.bufferEvents ) {
209+ [AILogger info: @" Buffered event%@ " , eventPackage.suffix];
210+ } else {
211+ [self .packageHandler sendFirstPackage ];
212+ }
213+
204214 [self writeActivityState ];
205215 [AILogger debug: @" Event %d " , self .activityState.eventCount];
206216}
@@ -229,6 +239,12 @@ - (void)revenueInternal:(double)amount
229239 AIActivityPackage *revenuePackage = [revenueBuilder buildRevenuePackage ];
230240 [self .packageHandler addPackage: revenuePackage];
231241
242+ if (self.bufferEvents ) {
243+ [AILogger info: @" Buffered revenue%@ " , revenuePackage.suffix];
244+ } else {
245+ [self .packageHandler sendFirstPackage ];
246+ }
247+
232248 [self writeActivityState ];
233249 [AILogger debug: @" Event %d (revenue)" , self .activityState.eventCount];
234250}
@@ -302,25 +318,28 @@ - (void)transferSessionPackage {
302318 [self .activityState injectSessionAttributes: sessionBuilder];
303319 AIActivityPackage *sessionPackage = [sessionBuilder buildSessionPackage ];
304320 [self .packageHandler addPackage: sessionPackage];
321+ [self .packageHandler sendFirstPackage ];
305322}
306323
307324- (void )injectGeneralAttributes : (AIPackageBuilder *)builder {
308- builder.userAgent = self.userAgent ;
309- builder.clientSdk = self.clientSdk ;
310- builder.appToken = self.appToken ;
311- builder.macShortMd5 = self.macShortMd5 ;
312- builder.macSha1 = self.macSha1 ;
325+ builder.userAgent = self.userAgent ;
326+ builder.clientSdk = self.clientSdk ;
327+ builder.appToken = self.appToken ;
328+ builder.macShortMd5 = self.macShortMd5 ;
329+ builder.macSha1 = self.macSha1 ;
330+ builder.trackingEnabled = self.trackingEnabled ;
313331 builder.idForAdvertisers = self.idForAdvertisers ;
314- builder.fbAttributionId = self.fbAttributionId ;
332+ builder.fbAttributionId = self.fbAttributionId ;
333+ builder.environment = self.environment ;
315334}
316335
317336# pragma mark - timer
318337- (void )startTimer {
319338 if (self.timer == nil ) {
320339 self.timer = [AITimer timerWithInterval: kTimerInterval
321- leeway: kTimerLeeway
322- queue: self .internalQueue
323- block: ^{ [self timerFired ]; }];
340+ leeway: kTimerLeeway
341+ queue: self .internalQueue
342+ block: ^{ [self timerFired ]; }];
324343 }
325344 [self .timer resume ];
326345}
0 commit comments