112 lines
2.6 KiB
Objective-C
112 lines
2.6 KiB
Objective-C
#import "ThinkingAnalyticsSDKPrivate.h"
|
|
#import "TDLogging.h"
|
|
|
|
@implementation LightThinkingAnalyticsSDK
|
|
|
|
- (instancetype)initWithAPPID:(NSString *)appID withServerURL:(NSString *)serverURL withConfig:(TDConfig *)config {
|
|
if (self = [self initLight:appID withServerURL:serverURL withConfig:config]) {
|
|
}
|
|
|
|
return self;
|
|
}
|
|
|
|
- (void)login:(NSString *)accountId {
|
|
if ([self hasDisabled])
|
|
return;
|
|
|
|
if (![accountId isKindOfClass:[NSString class]] || accountId.length == 0) {
|
|
TDLogError(@"accountId invald", accountId);
|
|
return;
|
|
}
|
|
|
|
@synchronized (self.accountId) {
|
|
self.accountId = accountId;
|
|
}
|
|
}
|
|
|
|
- (void)logout {
|
|
if ([self hasDisabled])
|
|
return;
|
|
|
|
@synchronized (self.accountId) {
|
|
self.accountId = nil;
|
|
};
|
|
}
|
|
|
|
- (void)identify:(NSString *)distinctId {
|
|
if ([self hasDisabled])
|
|
return;
|
|
|
|
if (![distinctId isKindOfClass:[NSString class]] || distinctId.length == 0) {
|
|
TDLogError(@"identify cannot null");
|
|
return;
|
|
}
|
|
|
|
@synchronized (self.identifyId) {
|
|
self.identifyId = distinctId;
|
|
};
|
|
}
|
|
|
|
- (NSString *)getDistinctId {
|
|
return [self.identifyId copy];
|
|
}
|
|
|
|
- (void)setSuperProperties:(NSDictionary *)properties {
|
|
if ([self hasDisabled])
|
|
return;
|
|
|
|
if (properties == nil) {
|
|
return;
|
|
}
|
|
properties = [properties copy];
|
|
|
|
if (![self checkEventProperties:properties withEventType:nil haveAutoTrackEvents:NO]) {
|
|
TDLogError(@"%@ propertieDict error.", properties);
|
|
return;
|
|
}
|
|
|
|
@synchronized (self.superProperty) {
|
|
NSMutableDictionary *tmp = [NSMutableDictionary dictionaryWithDictionary:self.superProperty];
|
|
[tmp addEntriesFromDictionary:[properties copy]];
|
|
self.superProperty = [NSDictionary dictionaryWithDictionary:tmp];
|
|
}
|
|
}
|
|
|
|
- (void)unsetSuperProperty:(NSString *)propertyKey {
|
|
if ([self hasDisabled])
|
|
return;
|
|
|
|
if (![propertyKey isKindOfClass:[NSString class]] || propertyKey.length == 0)
|
|
return;
|
|
|
|
@synchronized (self.superProperty) {
|
|
NSMutableDictionary *tmp = [NSMutableDictionary dictionaryWithDictionary:self.superProperty];
|
|
tmp[propertyKey] = nil;
|
|
self.superProperty = [NSDictionary dictionaryWithDictionary:tmp];
|
|
}
|
|
}
|
|
|
|
- (void)clearSuperProperties {
|
|
if ([self hasDisabled])
|
|
return;
|
|
|
|
@synchronized (self.superProperty) {
|
|
self.superProperty = @{};
|
|
}
|
|
}
|
|
|
|
- (NSDictionary *)currentSuperProperties {
|
|
return [self.superProperty copy];
|
|
}
|
|
|
|
- (void)enableAutoTrack:(ThinkingAnalyticsAutoTrackEventType)eventType {
|
|
return;
|
|
}
|
|
|
|
- (void)flush {
|
|
return;
|
|
}
|
|
|
|
@end
|
|
|