492 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			492 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			C#
		
	
	
	
| #if ((!(UNITY_IOS) || UNITY_EDITOR) && (!(UNITY_ANDROID) || UNITY_EDITOR) && (!(UNITY_OPENHARMONY) || UNITY_EDITOR)) || TE_DISABLE_ANDROID_JAVA || TE_DISABLE_IOS_OC
 | |
| using System;
 | |
| using System.Collections.Generic;
 | |
| using ThinkingData.Analytics.Utils;
 | |
| using ThinkingSDK.PC.Main;
 | |
| using ThinkingSDK.PC.Utils;
 | |
| using ThinkingSDK.PC.DataModel;
 | |
| using ThinkingSDK.PC.Config;
 | |
| 
 | |
| namespace ThinkingData.Analytics.Wrapper
 | |
| {
 | |
|     public partial class TDWrapper : TDDynamicSuperPropertiesHandler_PC, TDAutoTrackEventHandler_PC
 | |
|     {
 | |
|         static TDAutoTrackEventHandler mEventCallback;
 | |
|         public Dictionary<string, object> GetDynamicSuperProperties_PC()
 | |
|         {
 | |
|             if (mDynamicSuperProperties != null)
 | |
|             {
 | |
|                 return mDynamicSuperProperties.GetDynamicSuperProperties();
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 return new Dictionary<string, object>();
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         public Dictionary<string, object> AutoTrackEventCallback_PC(int type, Dictionary<string, object> properties)
 | |
|         {
 | |
|             if (mEventCallback != null)
 | |
|             {
 | |
|                 return mEventCallback.GetAutoTrackEventProperties(type, properties);
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 return new Dictionary<string, object>();
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         private static void init(TDConfig token)
 | |
|         {
 | |
|             ThinkingSDKConfig config = ThinkingSDKConfig.GetInstance(token.appId, token.serverUrl, token.name);
 | |
|             if (!string.IsNullOrEmpty(token.getTimeZoneId()))
 | |
|             {
 | |
|                 try
 | |
|                 {
 | |
|                     config.SetTimeZone(TimeZoneInfo.FindSystemTimeZoneById(token.getTimeZoneId()));
 | |
|                 }
 | |
|                 catch (Exception)
 | |
|                 {
 | |
|                     //if (ThinkingSDKPublicConfig.IsPrintLog()) ThinkingSDKLogger.Print("TimeZoneInfo set failed : " + e.Message);
 | |
|                 }
 | |
|             }
 | |
|             if (token.mode == TDMode.Debug)
 | |
|             {
 | |
|                 config.SetMode(Mode.DEBUG);
 | |
|             }
 | |
|             else if (token.mode == TDMode.DebugOnly)
 | |
|             {
 | |
|                 config.SetMode(Mode.DEBUG_ONLY);
 | |
|             }
 | |
|             ThinkingPCSDK.Init(token.appId, token.serverUrl, token.name, config, sMono);
 | |
|         }
 | |
| 
 | |
|         private static void identify(string uniqueId, string appId)
 | |
|         {
 | |
|             ThinkingPCSDK.Identifiy(uniqueId, appId);
 | |
|         }
 | |
| 
 | |
|         private static string getDistinctId(string appId)
 | |
|         {
 | |
|             return ThinkingPCSDK.DistinctId(appId);
 | |
|         }
 | |
| 
 | |
|         private static void login(string accountId, string appId)
 | |
|         {
 | |
|             ThinkingPCSDK.Login(accountId, appId);
 | |
|         }
 | |
| 
 | |
|         private static void logout(string appId)
 | |
|         {
 | |
|             ThinkingPCSDK.Logout(appId);
 | |
|         }
 | |
| 
 | |
|         private static void flush(string appId)
 | |
|         {
 | |
|             ThinkingPCSDK.Flush(appId);
 | |
|         }
 | |
| 
 | |
|         private static void setVersionInfo(string lib_name, string lib_version)
 | |
|         {
 | |
|             ThinkingPCSDK.SetLibName(lib_name);
 | |
|             ThinkingPCSDK.SetLibVersion(lib_version);
 | |
|         }
 | |
| 
 | |
|         private static void track(TDEventModel taEvent, string appId)
 | |
|         {
 | |
|             ThinkingSDKEventData eventData = null;
 | |
|             switch (taEvent.EventType)
 | |
|             {
 | |
|                 case TDEventModel.TDEventType.First:
 | |
|                     {
 | |
|                         eventData = new ThinkingSDKFirstEvent(taEvent.EventName);
 | |
|                         if (!string.IsNullOrEmpty(taEvent.GetEventId()))
 | |
|                         {
 | |
|                             ((ThinkingSDKFirstEvent)eventData).SetFirstCheckId(taEvent.GetEventId());
 | |
|                         }
 | |
|                     }
 | |
|                     break;
 | |
|                 case TDEventModel.TDEventType.Updatable:
 | |
|                     eventData = new ThinkingSDKUpdateEvent(taEvent.EventName, taEvent.GetEventId());
 | |
|                     break;
 | |
|                 case TDEventModel.TDEventType.Overwritable:
 | |
|                     eventData = new ThinkingSDKOverWritableEvent(taEvent.EventName, taEvent.GetEventId());
 | |
|                     break;
 | |
|             }
 | |
|             if (mDynamicSuperProperties != null)
 | |
|             {
 | |
|                 eventData.SetProperties(mDynamicSuperProperties.GetDynamicSuperProperties());
 | |
|             }
 | |
|             if (taEvent.Properties != null)
 | |
|             {
 | |
|                 eventData.SetProperties(taEvent.Properties);
 | |
|             }
 | |
|             if (taEvent.GetEventTime() != null && taEvent.GetEventTimeZone() != null)
 | |
|             {
 | |
|                 eventData.SetEventTime(taEvent.GetEventTime());
 | |
|                 eventData.SetTimeZone(taEvent.GetEventTimeZone());
 | |
|             }
 | |
|             ThinkingPCSDK.Track(eventData, appId);
 | |
|         }
 | |
| 
 | |
|         private static void track(string eventName, Dictionary<string, object> properties, string appId)
 | |
|         {
 | |
|             ThinkingPCSDK.Track(eventName, properties, appId);
 | |
|         }
 | |
| 
 | |
|         private static void trackStr(string eventName, string properties, string appId)
 | |
|         {
 | |
|             try
 | |
|             {
 | |
|                 ThinkingPCSDK.Track(eventName, TDMiniJson.Deserialize(properties), appId);
 | |
|             }
 | |
|             catch (Exception)
 | |
|             {
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         private static void track(string eventName, Dictionary<string, object> properties, DateTime dateTime, string appId)
 | |
|         {
 | |
|             ThinkingPCSDK.Track(eventName, properties, dateTime, appId);
 | |
|         }
 | |
| 
 | |
|         private static void track(string eventName, Dictionary<string, object> properties, DateTime dateTime, TimeZoneInfo timeZone, string appId)
 | |
|         {
 | |
|             ThinkingPCSDK.Track(eventName, properties, dateTime, timeZone, appId);
 | |
|         }
 | |
| 
 | |
|         private static void trackForAll(string eventName, Dictionary<string, object> properties)
 | |
|         {
 | |
|             ThinkingPCSDK.TrackForAll(eventName, properties);
 | |
|         }
 | |
| 
 | |
|         private static void setSuperProperties(Dictionary<string, object> superProperties, string appId)
 | |
|         {
 | |
|             ThinkingPCSDK.SetSuperProperties(superProperties, appId);
 | |
|         }
 | |
| 
 | |
|         private static void setSuperProperties(string superProperties, string appId)
 | |
|         {
 | |
|             try
 | |
|             {
 | |
|                 ThinkingPCSDK.SetSuperProperties(TDMiniJson.Deserialize(superProperties), appId);
 | |
|             }
 | |
|             catch (Exception)
 | |
|             {
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         private static void unsetSuperProperty(string superPropertyName, string appId)
 | |
|         {
 | |
|             ThinkingPCSDK.UnsetSuperProperty(superPropertyName, appId);
 | |
|         }
 | |
| 
 | |
|         private static void clearSuperProperty(string appId)
 | |
|         {
 | |
|             ThinkingPCSDK.ClearSuperProperties(appId);
 | |
|         }
 | |
| 
 | |
|         private static Dictionary<string, object> getSuperProperties(string appId)
 | |
|         {
 | |
|             return ThinkingPCSDK.SuperProperties(appId);
 | |
|         }
 | |
| 
 | |
|         private static Dictionary<string, object> getPresetProperties(string appId)
 | |
|         {
 | |
|             return ThinkingPCSDK.PresetProperties(appId);
 | |
|         }
 | |
|         private static void timeEvent(string eventName, string appId)
 | |
|         {
 | |
|             ThinkingPCSDK.TimeEvent(eventName, appId);
 | |
|         }
 | |
|         private static void timeEventForAll(string eventName)
 | |
|         {
 | |
|             ThinkingPCSDK.TimeEventForAll(eventName);
 | |
|         }
 | |
| 
 | |
|         private static void userSet(Dictionary<string, object> properties, string appId)
 | |
|         {
 | |
|             ThinkingPCSDK.UserSet(properties, appId);
 | |
|         }
 | |
| 
 | |
|         private static void userSet(string properties, string appId)
 | |
|         {
 | |
|             try
 | |
|             {
 | |
|                 ThinkingPCSDK.UserSet(TDMiniJson.Deserialize(properties), appId);
 | |
|             }
 | |
|             catch (Exception)
 | |
|             {
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         private static void userSet(Dictionary<string, object> properties, DateTime dateTime, string appId)
 | |
|         {
 | |
|             ThinkingPCSDK.UserSet(properties, dateTime, appId);
 | |
|         }
 | |
| 
 | |
|         private static void userUnset(List<string> properties, string appId)
 | |
|         {
 | |
|             ThinkingPCSDK.UserUnset(properties, appId);
 | |
|         }
 | |
| 
 | |
|         private static void userUnset(List<string> properties, DateTime dateTime, string appId)
 | |
|         {
 | |
|             ThinkingPCSDK.UserUnset(properties, dateTime, appId);
 | |
|         }
 | |
| 
 | |
|         private static void userSetOnce(Dictionary<string, object> properties, string appId)
 | |
|         {
 | |
|             ThinkingPCSDK.UserSetOnce(properties, appId);
 | |
|         }
 | |
| 
 | |
|         private static void userSetOnce(string properties, string appId)
 | |
|         {
 | |
|             try
 | |
|             {
 | |
|                 ThinkingPCSDK.UserSetOnce(TDMiniJson.Deserialize(properties), appId);
 | |
|             }
 | |
|             catch (Exception)
 | |
|             {
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         private static void userSetOnce(Dictionary<string, object> properties, DateTime dateTime, string appId)
 | |
|         {
 | |
|             ThinkingPCSDK.UserSetOnce(properties, dateTime, appId);
 | |
|         }
 | |
| 
 | |
|         private static void userAdd(Dictionary<string, object> properties, string appId)
 | |
|         {
 | |
|             ThinkingPCSDK.UserAdd(properties, appId);
 | |
|         }
 | |
| 
 | |
|         private static void userAddStr(string properties, string appId)
 | |
|         {
 | |
|             try
 | |
|             {
 | |
|                 ThinkingPCSDK.UserAdd(TDMiniJson.Deserialize(properties), appId);
 | |
|             }
 | |
|             catch (Exception)
 | |
|             {
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         private static void userAdd(Dictionary<string, object> properties, DateTime dateTime, string appId)
 | |
|         {
 | |
|             ThinkingPCSDK.UserAdd(properties, dateTime, appId);
 | |
|         }
 | |
| 
 | |
|         private static void userDelete(string appId)
 | |
|         {
 | |
|             ThinkingPCSDK.UserDelete(appId);
 | |
|         }
 | |
| 
 | |
|         private static void userDelete(DateTime dateTime, string appId)
 | |
|         {
 | |
|             ThinkingPCSDK.UserDelete(dateTime, appId);
 | |
|         }
 | |
| 
 | |
|         private static void userAppend(Dictionary<string, object> properties, string appId)
 | |
|         {
 | |
|             ThinkingPCSDK.UserAppend(properties, appId);
 | |
|         }
 | |
| 
 | |
|         private static void userAppend(string properties, string appId)
 | |
|         {
 | |
|             try
 | |
|             {
 | |
|                 ThinkingPCSDK.UserAppend(TDMiniJson.Deserialize(properties), appId);
 | |
|             }
 | |
|             catch (Exception)
 | |
|             {
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         private static void userAppend(Dictionary<string, object> properties, DateTime dateTime, string appId)
 | |
|         {
 | |
|             ThinkingPCSDK.UserAppend(properties, dateTime, appId);
 | |
|         }
 | |
| 
 | |
|         private static void userUniqAppend(Dictionary<string, object> properties, string appId)
 | |
|         {
 | |
|             ThinkingPCSDK.UserUniqAppend(properties, appId);
 | |
|         }
 | |
| 
 | |
|         private static void userUniqAppend(string properties, string appId)
 | |
|         {
 | |
|             try
 | |
|             {
 | |
|                 ThinkingPCSDK.UserUniqAppend(TDMiniJson.Deserialize(properties), appId);
 | |
|             }
 | |
|             catch (Exception)
 | |
|             {
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         private static void userUniqAppend(Dictionary<string, object> properties, DateTime dateTime, string appId)
 | |
|         {
 | |
|             ThinkingPCSDK.UserUniqAppend(properties, dateTime, appId);
 | |
|         }
 | |
| 
 | |
|         private static void setNetworkType(TDNetworkType networkType)
 | |
|         {
 | |
| 
 | |
|         }
 | |
| 
 | |
|         private static string getDeviceId()
 | |
|         {
 | |
|             return ThinkingPCSDK.GetDeviceId();
 | |
|         }
 | |
| 
 | |
|         private static void setDynamicSuperProperties(TDDynamicSuperPropertiesHandler dynamicSuperProperties, string appId)
 | |
|         {
 | |
|             ThinkingPCSDK.SetDynamicSuperProperties(new TDWrapper());
 | |
|         }
 | |
| 
 | |
|         private static void setTrackStatus(TDTrackStatus status, string appId)
 | |
|         {
 | |
|             ThinkingPCSDK.SetTrackStatus((ThinkingSDK.PC.Main.TDTrackStatus)status, appId);
 | |
|         }
 | |
| 
 | |
|         private static void optOutTracking(string appId)
 | |
|         {
 | |
|             ThinkingPCSDK.OptTracking(false, appId);
 | |
|         }
 | |
| 
 | |
|         private static void optOutTrackingAndDeleteUser(string appId)
 | |
|         {
 | |
|             ThinkingPCSDK.OptTrackingAndDeleteUser(appId);
 | |
|         }
 | |
| 
 | |
|         private static void optInTracking(string appId)
 | |
|         {
 | |
|             ThinkingPCSDK.OptTracking(true, appId);
 | |
|         }
 | |
| 
 | |
|         private static void enableTracking(bool enabled, string appId)
 | |
|         {
 | |
|             ThinkingPCSDK.EnableTracking(enabled);
 | |
|         }
 | |
| 
 | |
|         private static string createLightInstance()
 | |
|         {
 | |
|             return ThinkingPCSDK.CreateLightInstance();
 | |
|         }
 | |
| 
 | |
|         private static string getTimeString(DateTime dateTime)
 | |
|         {
 | |
| 
 | |
|             return ThinkingPCSDK.TimeString(dateTime);
 | |
|         }
 | |
| 
 | |
|         private static void enableAutoTrack(TDAutoTrackEventType autoTrackEvents, Dictionary<string, object> properties, string appId)
 | |
|         {
 | |
|             ThinkingSDK.PC.Main.TDAutoTrackEventType pcAutoTrackEvents = ThinkingSDK.PC.Main.TDAutoTrackEventType.None;
 | |
|             if ((autoTrackEvents & TDAutoTrackEventType.AppInstall) != 0)
 | |
|             {
 | |
|                 pcAutoTrackEvents = pcAutoTrackEvents | ThinkingSDK.PC.Main.TDAutoTrackEventType.AppInstall;
 | |
|             }
 | |
|             if ((autoTrackEvents & TDAutoTrackEventType.AppStart) != 0)
 | |
|             {
 | |
|                 pcAutoTrackEvents = pcAutoTrackEvents | ThinkingSDK.PC.Main.TDAutoTrackEventType.AppStart;
 | |
|             }
 | |
|             if ((autoTrackEvents & TDAutoTrackEventType.AppEnd) != 0)
 | |
|             {
 | |
|                 pcAutoTrackEvents = pcAutoTrackEvents | ThinkingSDK.PC.Main.TDAutoTrackEventType.AppEnd;
 | |
|             }
 | |
|             if ((autoTrackEvents & TDAutoTrackEventType.AppCrash) != 0)
 | |
|             {
 | |
|                 pcAutoTrackEvents = pcAutoTrackEvents | ThinkingSDK.PC.Main.TDAutoTrackEventType.AppCrash;
 | |
|             }
 | |
|             if ((autoTrackEvents & TDAutoTrackEventType.AppSceneLoad) != 0)
 | |
|             {
 | |
|                 pcAutoTrackEvents = pcAutoTrackEvents | ThinkingSDK.PC.Main.TDAutoTrackEventType.AppSceneLoad;
 | |
|             }
 | |
|             if ((autoTrackEvents & TDAutoTrackEventType.AppSceneUnload) != 0)
 | |
|             {
 | |
|                 pcAutoTrackEvents = pcAutoTrackEvents | ThinkingSDK.PC.Main.TDAutoTrackEventType.AppSceneUnload;
 | |
|             }
 | |
|             ThinkingPCSDK.EnableAutoTrack(pcAutoTrackEvents, properties, appId);
 | |
|         }
 | |
| 
 | |
|         private static void enableAutoTrack(TDAutoTrackEventType autoTrackEvents, TDAutoTrackEventHandler eventCallback, string appId)
 | |
|         {
 | |
|             ThinkingSDK.PC.Main.TDAutoTrackEventType pcAutoTrackEvents = ThinkingSDK.PC.Main.TDAutoTrackEventType.None;
 | |
|             if ((autoTrackEvents & TDAutoTrackEventType.AppInstall) != 0)
 | |
|             {
 | |
|                 pcAutoTrackEvents = pcAutoTrackEvents | ThinkingSDK.PC.Main.TDAutoTrackEventType.AppInstall;
 | |
|             }
 | |
|             if ((autoTrackEvents & TDAutoTrackEventType.AppStart) != 0)
 | |
|             {
 | |
|                 pcAutoTrackEvents = pcAutoTrackEvents | ThinkingSDK.PC.Main.TDAutoTrackEventType.AppStart;
 | |
|             }
 | |
|             if ((autoTrackEvents & TDAutoTrackEventType.AppEnd) != 0)
 | |
|             {
 | |
|                 pcAutoTrackEvents = pcAutoTrackEvents | ThinkingSDK.PC.Main.TDAutoTrackEventType.AppEnd;
 | |
|             }
 | |
|             if ((autoTrackEvents & TDAutoTrackEventType.AppCrash) != 0)
 | |
|             {
 | |
|                 pcAutoTrackEvents = pcAutoTrackEvents | ThinkingSDK.PC.Main.TDAutoTrackEventType.AppCrash;
 | |
|             }
 | |
|             if ((autoTrackEvents & TDAutoTrackEventType.AppSceneLoad) != 0)
 | |
|             {
 | |
|                 pcAutoTrackEvents = pcAutoTrackEvents | ThinkingSDK.PC.Main.TDAutoTrackEventType.AppSceneLoad;
 | |
|             }
 | |
|             if ((autoTrackEvents & TDAutoTrackEventType.AppSceneUnload) != 0)
 | |
|             {
 | |
|                 pcAutoTrackEvents = pcAutoTrackEvents | ThinkingSDK.PC.Main.TDAutoTrackEventType.AppSceneUnload;
 | |
|             }
 | |
|             mEventCallback = eventCallback;
 | |
|             ThinkingPCSDK.EnableAutoTrack(pcAutoTrackEvents, new TDWrapper(), appId);
 | |
|         }
 | |
| 
 | |
|         private static void setAutoTrackProperties(TDAutoTrackEventType autoTrackEvents, Dictionary<string, object> properties, string appId)
 | |
|         {
 | |
|             if ((autoTrackEvents & TDAutoTrackEventType.AppInstall) != 0)
 | |
|             {
 | |
|                 ThinkingPCSDK.SetAutoTrackProperties(ThinkingSDK.PC.Main.TDAutoTrackEventType.AppInstall, properties, appId);
 | |
|             }
 | |
|             if ((autoTrackEvents & TDAutoTrackEventType.AppStart) != 0)
 | |
|             {
 | |
|                 ThinkingPCSDK.SetAutoTrackProperties(ThinkingSDK.PC.Main.TDAutoTrackEventType.AppStart, properties, appId);
 | |
|             }
 | |
|             if ((autoTrackEvents & TDAutoTrackEventType.AppEnd) != 0)
 | |
|             {
 | |
|                 ThinkingPCSDK.SetAutoTrackProperties(ThinkingSDK.PC.Main.TDAutoTrackEventType.AppEnd, properties, appId);
 | |
|             }
 | |
|             if ((autoTrackEvents & TDAutoTrackEventType.AppCrash) != 0)
 | |
|             {
 | |
|                 ThinkingPCSDK.SetAutoTrackProperties(ThinkingSDK.PC.Main.TDAutoTrackEventType.AppCrash, properties, appId);
 | |
|             }
 | |
|             if ((autoTrackEvents & TDAutoTrackEventType.AppSceneLoad) != 0)
 | |
|             {
 | |
|                 ThinkingPCSDK.SetAutoTrackProperties(ThinkingSDK.PC.Main.TDAutoTrackEventType.AppSceneLoad, properties, appId);
 | |
|             }
 | |
|             if ((autoTrackEvents & TDAutoTrackEventType.AppSceneUnload) != 0)
 | |
|             {
 | |
|                 ThinkingPCSDK.SetAutoTrackProperties(ThinkingSDK.PC.Main.TDAutoTrackEventType.AppSceneUnload, properties, appId);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         private static void enableLog(bool enable)
 | |
|         {
 | |
|             ThinkingPCSDK.EnableLog(enable);
 | |
|         }
 | |
|         private static void calibrateTime(long timestamp)
 | |
|         {
 | |
|             ThinkingPCSDK.CalibrateTime(timestamp);
 | |
|         }
 | |
| 
 | |
|         private static void calibrateTimeWithNtp(string ntpServer)
 | |
|         {
 | |
|             ThinkingPCSDK.CalibrateTimeWithNtp(ntpServer);
 | |
|         }
 | |
| 
 | |
|         private static void enableThirdPartySharing(TDThirdPartyType shareType, Dictionary<string, object> properties, string appId)
 | |
|         {
 | |
|             if (ThinkingSDKPublicConfig.IsPrintLog()) ThinkingSDKLogger.Print("Sharing data is not support on PC: " + shareType + ", " + properties + ", " + appId);
 | |
|         }
 | |
|     }
 | |
| }
 | |
| #endif |