636 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			636 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | #if UNITY_ANDROID && !(UNITY_EDITOR) && !TE_DISABLE_ANDROID_JAVA | |||
|  | using System; | |||
|  | using System.Collections.Generic; | |||
|  | using ThinkingData.Analytics.Utils; | |||
|  | using UnityEngine; | |||
|  | 
 | |||
|  | namespace ThinkingData.Analytics.Wrapper | |||
|  | { | |||
|  |     public partial class TDWrapper | |||
|  |     { | |||
|  |         private static readonly AndroidJavaClass sdkClass = new AndroidJavaClass("cn.thinkingdata.analytics.ThinkingAnalyticsProxy"); | |||
|  | 
 | |||
|  |         private static TimeZoneInfo defaultTimeZone = null; | |||
|  |         private static TDTimeZone defaultTDTimeZone = TDTimeZone.Local; | |||
|  | 
 | |||
|  |         private static string getJsonStr(Dictionary<string, object> data) { | |||
|  |             if (data == null) | |||
|  |             { | |||
|  |                 return ""; | |||
|  |             } | |||
|  | 
 | |||
|  |             return serilize(data); | |||
|  |         } | |||
|  | 
 | |||
|  |         private static string getTimeString(DateTime dateTime) { | |||
|  |             if (defaultTimeZone == null) | |||
|  |             { | |||
|  |                 return TDCommonUtils.FormatDate(dateTime, defaultTDTimeZone); | |||
|  |             } | |||
|  |             else { | |||
|  |                 return TDCommonUtils.FormatDate(dateTime, defaultTimeZone); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void enableLog(bool enable) { | |||
|  |             sdkClass.CallStatic("enableTrackLog", enable); | |||
|  |         } | |||
|  |         private static void setVersionInfo(string libName, string version) { | |||
|  |             sdkClass.CallStatic("setCustomerLibInfo", libName, version); | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void init(TDConfig token) | |||
|  |         { | |||
|  |             AndroidJavaObject context = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity"); | |||
|  |             string timeZoneId = token.getTimeZoneId(); | |||
|  |             defaultTDTimeZone = token.timeZone; | |||
|  |             if (null != timeZoneId && timeZoneId.Length > 0) | |||
|  |             { | |||
|  |                 if (defaultTimeZone == null) | |||
|  |                 { | |||
|  |                     try | |||
|  |                     { | |||
|  |                         defaultTimeZone = TimeZoneInfo.FindSystemTimeZoneById(timeZoneId); | |||
|  |                     } | |||
|  |                     catch (Exception) | |||
|  |                     { | |||
|  |                     } | |||
|  |                 } | |||
|  |             } | |||
|  |             else { | |||
|  |                 if (defaultTimeZone == null) { | |||
|  |                     defaultTimeZone = TimeZoneInfo.Local; | |||
|  |                 } | |||
|  |             } | |||
|  |             sdkClass.CallStatic("init",context,token.appId,token.serverUrl, (int)token.mode,token.name, timeZoneId, token.encryptVersion,token.encryptPublicKey); | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void flush(string appId) | |||
|  |         { | |||
|  |             sdkClass.CallStatic("flush", appId); | |||
|  |         } | |||
|  | 
 | |||
|  |         private static long getDateTimeStamp(DateTime dateTime) | |||
|  |         { | |||
|  |             long dateTimeTicksUTC = TimeZoneInfo.ConvertTimeToUtc(dateTime).Ticks; | |||
|  | 
 | |||
|  |             DateTime dtFrom = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc); | |||
|  |             long currentMillis = (dateTimeTicksUTC - dtFrom.Ticks) / 10000; | |||
|  |             return currentMillis; | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void track(string eventName, Dictionary<string, object> properties, DateTime dateTime, string appId) | |||
|  |         { | |||
|  |             try | |||
|  |             { | |||
|  |                 sdkClass.CallStatic("track", eventName, getJsonStr(properties), getDateTimeStamp(dateTime), "Local", appId); | |||
|  |             } | |||
|  |             catch (Exception e) | |||
|  |             { | |||
|  |                 if (TDLog.GetEnable()) TDLog.w("ThinkingAnalytics: unexpected exception: " + e); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void track(string eventName, Dictionary<string, object> properties, DateTime dateTime, TimeZoneInfo timeZone, string appId) | |||
|  |         { | |||
|  |             try | |||
|  |             { | |||
|  |                 if (timeZone == null) | |||
|  |                 { | |||
|  |                     sdkClass.CallStatic("track", eventName, getJsonStr(properties), getDateTimeStamp(dateTime), "", appId); | |||
|  |                 } | |||
|  |                 else { | |||
|  |                     sdkClass.CallStatic("track", eventName, getJsonStr(properties), getDateTimeStamp(dateTime), timeZone.Id, appId); | |||
|  |                 } | |||
|  |             } | |||
|  |             catch (Exception e) | |||
|  |             { | |||
|  |                 if (TDLog.GetEnable()) TDLog.w("ThinkingAnalytics: unexpected exception: " + e); | |||
|  |             }     | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void trackForAll(string eventName, Dictionary<string, object> properties) | |||
|  |         { | |||
|  |             string appId = ""; | |||
|  |             track(eventName, properties, appId); | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void track(TDEventModel taEvent, string appId) | |||
|  |         { | |||
|  |             int eventType = -1; | |||
|  |             if (taEvent.EventType == TDEventModel.TDEventType.First) | |||
|  |             { | |||
|  |                 eventType = 0; | |||
|  |             } | |||
|  |             else if (taEvent.EventType == TDEventModel.TDEventType.Updatable) | |||
|  |             { | |||
|  |                 eventType = 1; | |||
|  |             } | |||
|  |             else if (taEvent.EventType == TDEventModel.TDEventType.Overwritable) | |||
|  |             { | |||
|  |                 eventType = 2; | |||
|  |             } | |||
|  |             if (eventType < 0) return; | |||
|  |             string jsonStr; | |||
|  |             if (taEvent.Properties == null) | |||
|  |             { | |||
|  |                 jsonStr = taEvent.StrProperties; | |||
|  |             } | |||
|  |             else { | |||
|  |                 jsonStr = getJsonStr(getFinalEventProperties(taEvent.Properties)); | |||
|  |             } | |||
|  |             if (taEvent.GetEventTimeZone() == null) | |||
|  |             { | |||
|  |                 sdkClass.CallStatic("trackEvent", eventType, taEvent.EventName, jsonStr, taEvent.GetEventId(), getDateTimeStamp(taEvent.GetEventTime()), "", appId); | |||
|  |             } | |||
|  |             else | |||
|  |             { | |||
|  |                 sdkClass.CallStatic("trackEvent", eventType, taEvent.EventName, jsonStr, taEvent.GetEventId(), getDateTimeStamp(taEvent.GetEventTime()), taEvent.GetEventTimeZone().Id, appId); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void track(string eventName, Dictionary<string, object> properties, string appId) | |||
|  |         { | |||
|  |             try | |||
|  |             { | |||
|  |                 sdkClass.CallStatic("track", eventName, getJsonStr(properties), 0L, "", appId); | |||
|  |             } | |||
|  |             catch (Exception e) | |||
|  |             { | |||
|  |                 if (TDLog.GetEnable()) TDLog.w("ThinkingAnalytics: unexpected exception: " + e); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void trackStr(string eventName, string properties, string appId) | |||
|  |         { | |||
|  |             try | |||
|  |             { | |||
|  |                 sdkClass.CallStatic("track", eventName, properties, 0L, "", appId); | |||
|  |             } | |||
|  |             catch (Exception e) | |||
|  |             { | |||
|  |                 if (TDLog.GetEnable()) TDLog.w("ThinkingAnalytics: unexpected exception: " + e); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void setSuperProperties(Dictionary<string, object> superProperties, string appId) | |||
|  |         { | |||
|  |             try | |||
|  |             { | |||
|  |                 sdkClass.CallStatic("setSuperProperties", getJsonStr(superProperties), appId); | |||
|  |             } | |||
|  |             catch (Exception e) | |||
|  |             { | |||
|  |                 if (TDLog.GetEnable()) TDLog.w("ThinkingAnalytics: unexpected exception: " + e); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void setSuperProperties(string superProperties, string appId) | |||
|  |         { | |||
|  |             try | |||
|  |             { | |||
|  |                 sdkClass.CallStatic("setSuperProperties", superProperties, appId); | |||
|  |             } | |||
|  |             catch (Exception e) | |||
|  |             { | |||
|  |                 if (TDLog.GetEnable()) TDLog.w("ThinkingAnalytics: unexpected exception: " + e); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void unsetSuperProperty(string superPropertyName, string appId) | |||
|  |         { | |||
|  |             sdkClass.CallStatic("unsetSuperProperty", superPropertyName, appId); | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void clearSuperProperty(string appId) | |||
|  |         { | |||
|  |             sdkClass.CallStatic("clearSuperProperties", appId); | |||
|  |         } | |||
|  | 
 | |||
|  |         private static Dictionary<string, object> getSuperProperties(string appId) | |||
|  |         { | |||
|  |             Dictionary<string, object> result = null; | |||
|  |             try | |||
|  |             { | |||
|  |                 result = TDMiniJson.Deserialize(sdkClass.CallStatic<string>("getSuperProperties", appId)); | |||
|  |             } | |||
|  |             catch (Exception e) | |||
|  |             { | |||
|  |                 if (TDLog.GetEnable()) TDLog.w("ThinkingAnalytics: unexpected exception: " + e); | |||
|  |             } | |||
|  |             return result; | |||
|  |         } | |||
|  | 
 | |||
|  |         private static Dictionary<string, object> getPresetProperties(string appId) | |||
|  |         { | |||
|  |             Dictionary<string, object> result = null; | |||
|  |             try | |||
|  |             { | |||
|  |                  result = TDMiniJson.Deserialize(sdkClass.CallStatic<string>("getPresetProperties",appId)); | |||
|  |             } | |||
|  |             catch (Exception e) | |||
|  |             { | |||
|  |                 if (TDLog.GetEnable()) TDLog.w("ThinkingAnalytics: unexpected exception: " + e); | |||
|  |             } | |||
|  |             return result; | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void timeEvent(string eventName, string appId) | |||
|  |         { | |||
|  |             sdkClass.CallStatic("timeEvent", eventName, appId); | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void timeEventForAll(string eventName) | |||
|  |         { | |||
|  |             sdkClass.CallStatic("timeEvent", eventName, ""); | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void identify(string uniqueId, string appId) | |||
|  |         { | |||
|  |             sdkClass.CallStatic("identify", uniqueId, appId); | |||
|  |         } | |||
|  | 
 | |||
|  |         private static string getDistinctId(string appId) | |||
|  |         { | |||
|  |             return sdkClass.CallStatic<string>("getDistinctId", appId); | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void login(string uniqueId, string appId) | |||
|  |         { | |||
|  |             sdkClass.CallStatic("login", uniqueId, appId); | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void userSetOnce(Dictionary<string, object> properties, string appId) | |||
|  |         { | |||
|  |             try | |||
|  |             { | |||
|  |                 sdkClass.CallStatic("userSetOnce", getJsonStr(properties), 0L,appId); | |||
|  |             } | |||
|  |             catch (Exception e) | |||
|  |             { | |||
|  |                 if (TDLog.GetEnable()) TDLog.w("ThinkingAnalytics: unexpected exception: " + e); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void userSetOnce(string properties, string appId) | |||
|  |         { | |||
|  |             try | |||
|  |             { | |||
|  |                 sdkClass.CallStatic("userSetOnce", properties, 0L, appId); | |||
|  |             } | |||
|  |             catch (Exception e) | |||
|  |             { | |||
|  |                 if (TDLog.GetEnable()) TDLog.w("ThinkingAnalytics: unexpected exception: " + e); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void userSetOnce(Dictionary<string, object> properties, DateTime dateTime, string appId) | |||
|  |         { | |||
|  |             try | |||
|  |             { | |||
|  |                 sdkClass.CallStatic("userSetOnce", getJsonStr(properties), getDateTimeStamp(dateTime), appId); | |||
|  |             } | |||
|  |             catch (Exception e) | |||
|  |             { | |||
|  |                 if (TDLog.GetEnable()) TDLog.w("ThinkingAnalytics: unexpected exception: " + e); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void userSet(Dictionary<string, object> properties, string appId) | |||
|  |         { | |||
|  |             try | |||
|  |             { | |||
|  |                 sdkClass.CallStatic("userSet", getJsonStr(properties), 0L, appId); | |||
|  |             } | |||
|  |             catch (Exception e) | |||
|  |             { | |||
|  |                 if (TDLog.GetEnable()) TDLog.w("ThinkingAnalytics: unexpected exception: " + e); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void userSet(Dictionary<string, object> properties, DateTime dateTime, string appId) | |||
|  |         { | |||
|  |             try | |||
|  |             { | |||
|  |                 sdkClass.CallStatic("userSet", getJsonStr(properties), getDateTimeStamp(dateTime), appId); | |||
|  |             } | |||
|  |             catch (Exception e) | |||
|  |             { | |||
|  |                 if (TDLog.GetEnable()) TDLog.w("ThinkingAnalytics: unexpected exception: " + e); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void userSet(string properties, string appId) | |||
|  |         { | |||
|  |             try | |||
|  |             { | |||
|  |                 sdkClass.CallStatic("userSet", properties, 0L, appId); | |||
|  |             } | |||
|  |             catch (Exception e) | |||
|  |             { | |||
|  |                 if (TDLog.GetEnable()) TDLog.w("ThinkingAnalytics: unexpected exception: " + e); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void userUnset(List<string> properties, string appId) | |||
|  |         { | |||
|  |             userUnset(properties, DateTime.Now, appId); | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void userUnset(List<string> properties, DateTime dateTime, string appId) | |||
|  |         { | |||
|  |             Dictionary<string, object> finalProperties = new Dictionary<string, object>(); | |||
|  |             foreach(string s in properties) | |||
|  |             { | |||
|  |                 finalProperties.Add(s, 0); | |||
|  |             } | |||
|  |             try | |||
|  |             { | |||
|  |                 sdkClass.CallStatic("userUnset", getJsonStr(finalProperties), getDateTimeStamp(dateTime), appId); | |||
|  |             } | |||
|  |             catch (Exception e) | |||
|  |             { | |||
|  |                 if (TDLog.GetEnable()) TDLog.w("ThinkingAnalytics: unexpected exception: " + e); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void userAdd(Dictionary<string, object> properties, string appId) | |||
|  |         { | |||
|  |             try | |||
|  |             { | |||
|  |                 sdkClass.CallStatic("userAdd", getJsonStr(properties), 0L, appId); | |||
|  |             } | |||
|  |             catch (Exception e) | |||
|  |             { | |||
|  |                 if (TDLog.GetEnable()) TDLog.w("ThinkingAnalytics: unexpected exception: " + e); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void userAddStr(string properties, string appId) | |||
|  |         { | |||
|  |             try | |||
|  |             { | |||
|  |                 sdkClass.CallStatic("userAdd", properties, 0L, appId); | |||
|  |             } | |||
|  |             catch (Exception e) | |||
|  |             { | |||
|  |                 if (TDLog.GetEnable()) TDLog.w("ThinkingAnalytics: unexpected exception: " + e); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void userAdd(Dictionary<string, object> properties, DateTime dateTime, string appId) | |||
|  |         { | |||
|  |             try | |||
|  |             { | |||
|  |                 sdkClass.CallStatic("userAdd", getJsonStr(properties), getDateTimeStamp(dateTime), appId); | |||
|  |             } | |||
|  |             catch (Exception e) | |||
|  |             { | |||
|  |                 if (TDLog.GetEnable()) TDLog.w("ThinkingAnalytics: unexpected exception: " + e); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void userAppend(Dictionary<string, object> properties, string appId) | |||
|  |         { | |||
|  |             try | |||
|  |             { | |||
|  |                 sdkClass.CallStatic("userAppend", getJsonStr(properties), 0L, appId); | |||
|  |             } | |||
|  |             catch (Exception e) | |||
|  |             { | |||
|  |                 if (TDLog.GetEnable()) TDLog.w("ThinkingAnalytics: unexpected exception: " + e); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void userAppend(string properties, string appId) | |||
|  |         { | |||
|  |             try | |||
|  |             { | |||
|  |                 sdkClass.CallStatic("userAppend", properties, 0L, appId); | |||
|  |             } | |||
|  |             catch (Exception e) | |||
|  |             { | |||
|  |                 if (TDLog.GetEnable()) TDLog.w("ThinkingAnalytics: unexpected exception: " + e); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void userAppend(Dictionary<string, object> properties, DateTime dateTime, string appId) | |||
|  |         { | |||
|  |             try | |||
|  |             { | |||
|  |                 sdkClass.CallStatic("userAppend", getJsonStr(properties), getDateTimeStamp(dateTime), appId); | |||
|  |             } | |||
|  |             catch (Exception e) | |||
|  |             { | |||
|  |                 if (TDLog.GetEnable()) TDLog.w("ThinkingAnalytics: unexpected exception: " + e); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void userUniqAppend(Dictionary<string, object> properties, string appId) | |||
|  |         { | |||
|  |             try | |||
|  |             { | |||
|  |                 sdkClass.CallStatic("userUniqAppend", getJsonStr(properties), 0L, appId); | |||
|  |             } | |||
|  |             catch (Exception e) | |||
|  |             { | |||
|  |                 if (TDLog.GetEnable()) TDLog.w("ThinkingAnalytics: unexpected exception: " + e); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void userUniqAppend(string properties, string appId) | |||
|  |         { | |||
|  |             try | |||
|  |             { | |||
|  |                 sdkClass.CallStatic("userUniqAppend", properties, 0L, appId); | |||
|  |             } | |||
|  |             catch (Exception e) | |||
|  |             { | |||
|  |                 if (TDLog.GetEnable()) TDLog.w("ThinkingAnalytics: unexpected exception: " + e); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void userUniqAppend(Dictionary<string, object> properties, DateTime dateTime, string appId) | |||
|  |         { | |||
|  |             try | |||
|  |             { | |||
|  |                 sdkClass.CallStatic("userUniqAppend", getJsonStr(properties), getDateTimeStamp(dateTime), appId); | |||
|  |             } | |||
|  |             catch (Exception e) | |||
|  |             { | |||
|  |                 if (TDLog.GetEnable()) TDLog.w("ThinkingAnalytics: unexpected exception: " + e); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void userDelete(string appId) | |||
|  |         { | |||
|  |             sdkClass.CallStatic("userDel", 0L, appId); | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void userDelete(DateTime dateTime, string appId) | |||
|  |         { | |||
|  |             try | |||
|  |             { | |||
|  |                 sdkClass.CallStatic("userDel", getDateTimeStamp(dateTime), appId); | |||
|  |             } | |||
|  |             catch (Exception e) | |||
|  |             { | |||
|  |                 if (TDLog.GetEnable()) TDLog.w("ThinkingAnalytics: unexpected exception: " + e); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void logout(string appId) | |||
|  |         { | |||
|  |             sdkClass.CallStatic("logout", appId); | |||
|  |         } | |||
|  | 
 | |||
|  |         private static string getDeviceId() | |||
|  |         { | |||
|  |             return sdkClass.CallStatic<string>("getDeviceId"); | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void setDynamicSuperProperties(TDDynamicSuperPropertiesHandler dynamicSuperProperties, string appId) | |||
|  |         { | |||
|  |             DynamicListenerAdapter listenerAdapter = new DynamicListenerAdapter(); | |||
|  |             sdkClass.CallStatic("setDynamicSuperPropertiesTrackerListener", appId, listenerAdapter); | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void setNetworkType(TDNetworkType networkType) { | |||
|  |             int type; | |||
|  |             switch (networkType) | |||
|  |             { | |||
|  |                 case TDNetworkType.Wifi: | |||
|  |                     type = 1; | |||
|  |                     break; | |||
|  |                 case TDNetworkType.All: | |||
|  |                     type = 0; | |||
|  |                     break; | |||
|  |                 default: | |||
|  |                     type = 0; | |||
|  |                     break; | |||
|  | 
 | |||
|  |             } | |||
|  |             sdkClass.CallStatic("setNetworkType", type,""); | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void enableAutoTrack(TDAutoTrackEventType events, Dictionary<string, object> properties, string appId) | |||
|  |         { | |||
|  |             sdkClass.CallStatic("enableAutoTrack", (int)events, TDMiniJson.Serialize(properties), appId); | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void enableAutoTrack(TDAutoTrackEventType events, TDAutoTrackEventHandler eventCallback, string appId) | |||
|  |         { | |||
|  |             AutoTrackListenerAdapter listenerAdapter = new AutoTrackListenerAdapter(); | |||
|  |             sdkClass.CallStatic("enableAutoTrack", (int)events, listenerAdapter, appId); | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void setAutoTrackProperties(TDAutoTrackEventType events, Dictionary<string, object> properties, string appId) | |||
|  |         { | |||
|  |             sdkClass.CallStatic("setAutoTrackProperties", (int)events, TDMiniJson.Serialize(properties), appId); | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void setTrackStatus(TDTrackStatus status, string appId) | |||
|  |         { | |||
|  |             int type; | |||
|  |             switch (status) | |||
|  |             { | |||
|  |                 case TDTrackStatus.Pause: | |||
|  |                     type = 1; | |||
|  |                     break; | |||
|  |                 case TDTrackStatus.Stop: | |||
|  |                     type = 2; | |||
|  |                     break; | |||
|  |                 case TDTrackStatus.SaveOnly: | |||
|  |                     type = 3; | |||
|  |                     break; | |||
|  |                 case TDTrackStatus.Normal: | |||
|  |                 default: | |||
|  |                     type = 0; | |||
|  |                     break; | |||
|  |             } | |||
|  |             sdkClass.CallStatic("setTrackStatus", type, appId); | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void optOutTracking(string appId) | |||
|  |         { | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void optOutTrackingAndDeleteUser(string appId) | |||
|  |         { | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void optInTracking(string appId) | |||
|  |         { | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void enableTracking(bool enabled, string appId) | |||
|  |         { | |||
|  |         } | |||
|  | 
 | |||
|  |         private static string createLightInstance() | |||
|  |         { | |||
|  |             return sdkClass.CallStatic<string>("createLightInstance",""); | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void calibrateTime(long timestamp) | |||
|  |         { | |||
|  |             sdkClass.CallStatic("calibrateTime", timestamp); | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void calibrateTimeWithNtp(string ntpServer) | |||
|  |         { | |||
|  |             sdkClass.CallStatic("calibrateTimeWithNtp", ntpServer); | |||
|  |         } | |||
|  | 
 | |||
|  |         private static void enableThirdPartySharing(TDThirdPartyType shareType, Dictionary<string, object> properties, string appId) | |||
|  |         { | |||
|  |             sdkClass.CallStatic("enableThirdPartySharing", (int)shareType, TDMiniJson.Serialize(properties), appId); | |||
|  |         } | |||
|  | 
 | |||
|  |         //dynamic super properties | |||
|  |         public interface IDynamicSuperPropertiesTrackerListener | |||
|  |         { | |||
|  |             string getDynamicSuperPropertiesString(); | |||
|  |         } | |||
|  | 
 | |||
|  |         private class DynamicListenerAdapter : AndroidJavaProxy { | |||
|  |             public DynamicListenerAdapter() : base("cn.thinkingdata.analytics.ThinkingAnalyticsProxy$DynamicSuperPropertiesTrackerListener") {} | |||
|  |             public string getDynamicSuperPropertiesString() | |||
|  |             { | |||
|  |                 Dictionary<string, object> ret; | |||
|  |                 if (TDWrapper.mDynamicSuperProperties != null) { | |||
|  |                     ret = TDWrapper.mDynamicSuperProperties.GetDynamicSuperProperties(); | |||
|  |                 }  | |||
|  |                 else { | |||
|  |                     ret = new Dictionary<string, object>(); | |||
|  |                 } | |||
|  |                 //return TDMiniJson.Serialize(ret); | |||
|  |                 return serilize(ret); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         //auto-tracking | |||
|  |         public interface IAutoTrackEventTrackerListener | |||
|  |         { | |||
|  |             string eventCallback(int type, string appId, string properties); | |||
|  |         } | |||
|  | 
 | |||
|  |         private class AutoTrackListenerAdapter : AndroidJavaProxy { | |||
|  |             public AutoTrackListenerAdapter() : base("cn.thinkingdata.analytics.ThinkingAnalyticsProxy$AutoTrackEventTrackerListener") {} | |||
|  |             string eventCallback(int type, string appId, string properties) | |||
|  |             { | |||
|  |                 Dictionary<string, object> ret; | |||
|  |                 if (TDWrapper.mAutoTrackEventCallbacks.ContainsKey(appId)) | |||
|  |                 { | |||
|  |                     Dictionary<string, object> propertiesDic = TDMiniJson.Deserialize(properties); | |||
|  |                     ret = TDWrapper.mAutoTrackEventCallbacks[appId].GetAutoTrackEventProperties(type, propertiesDic); | |||
|  |                 }  | |||
|  |                 else { | |||
|  |                     ret = new Dictionary<string, object>(); | |||
|  |                 } | |||
|  |                 return serilize(ret); | |||
|  |             } | |||
|  |         } | |||
|  |     } | |||
|  | } | |||
|  | #endif |