87 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Mathematica
		
	
	
	
		
		
			
		
	
	
			87 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Mathematica
		
	
	
	
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//  TATrackEvent.m
							 | 
						||
| 
								 | 
							
								//  ThinkingSDK
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//  Created by Yangxiongon 2022/6/12.
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#import "TDTrackEvent.h"
							 | 
						||
| 
								 | 
							
								#import "TDPresetProperties.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if __has_include(<ThinkingDataCore/NSDate+TDCore.h>)
							 | 
						||
| 
								 | 
							
								#import <ThinkingDataCore/NSDate+TDCore.h>
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								#import "NSDate+TDCore.h"
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if __has_include(<ThinkingDataCore/TDCoreDeviceInfo.h>)
							 | 
						||
| 
								 | 
							
								#import <ThinkingDataCore/TDCoreDeviceInfo.h>
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								#import "TDCoreDeviceInfo.h"
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if __has_include(<ThinkingDataCore/TDCorePresetDisableConfig.h>)
							 | 
						||
| 
								 | 
							
								#import <ThinkingDataCore/TDCorePresetDisableConfig.h>
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								#import "TDCorePresetDisableConfig.h"
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@implementation TDTrackEvent
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- (instancetype)initWithName:(NSString *)eventName {
							 | 
						||
| 
								 | 
							
								    if (self = [self init]) {
							 | 
						||
| 
								 | 
							
								        self.eventName = eventName;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    return self;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- (instancetype)init
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    self = [super init];
							 | 
						||
| 
								 | 
							
								    if (self) {
							 | 
						||
| 
								 | 
							
								        self.eventType = TDEventTypeTrack;
							 | 
						||
| 
								 | 
							
								        self.systemUpTime = [TDCoreDeviceInfo bootTime];
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    return self;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- (void)validateWithError:(NSError *__autoreleasing  _Nullable *)error {
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    [TDPropertyValidator validateEventOrPropertyName:self.eventName withError:error];
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- (NSMutableDictionary *)jsonObject {
							 | 
						||
| 
								 | 
							
								    NSMutableDictionary *dict = [super jsonObject];
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    dict[@"#event_name"] = self.eventName;
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    if (![TDCorePresetDisableConfig disableDuration]) {
							 | 
						||
| 
								 | 
							
								        if (self.foregroundDuration > 0) {
							 | 
						||
| 
								 | 
							
								            self.properties[@"#duration"] = @([NSString stringWithFormat:@"%.3f", self.foregroundDuration].floatValue);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    if (![TDCorePresetDisableConfig disableBackgroundDuration]) {
							 | 
						||
| 
								 | 
							
								        if (self.backgroundDuration > 0) {
							 | 
						||
| 
								 | 
							
								            self.properties[TD_BACKGROUND_DURATION] = @([NSString stringWithFormat:@"%.3f", self.backgroundDuration].floatValue);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    self.properties[@"#zone_offset"] = @([self timeZoneOffset]);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    return dict;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- (double)timeZoneOffset {
							 | 
						||
| 
								 | 
							
								    NSTimeZone *tz = self.timeZone ?: [NSTimeZone localTimeZone];
							 | 
						||
| 
								 | 
							
								    return [[NSDate date] td_timeZoneOffset:tz];
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//MARK: - Delegate
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- (void)ta_validateKey:(NSString *)key value:(id)value error:(NSError *__autoreleasing  _Nullable *)error {
							 | 
						||
| 
								 | 
							
								    [TDPropertyValidator validateNormalTrackEventPropertyKey:key value:value error:error];
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@end
							 |