private void track(ThinkingAnalyticsEvent taEvent)
        {
            Dictionary <string, object> finalEvent = new Dictionary <string, object>();
            string extraId = taEvent.ExtraId;

            switch (taEvent.EventType)
            {
            case ThinkingAnalyticsEvent.Type.FIRST:
                finalEvent["event_type"] = "track_first";
                break;

            case ThinkingAnalyticsEvent.Type.UPDATABLE:
                finalEvent["event_type"] = "track_update";
                break;

            case ThinkingAnalyticsEvent.Type.OVERWRITABLE:
                finalEvent["event_type"] = "track_overwrite";
                break;
            }

            if (!string.IsNullOrEmpty(extraId))
            {
                finalEvent["extra_id"] = extraId;
            }

            finalEvent["event_name"]       = taEvent.EventName;
            finalEvent["event_properties"] = taEvent.Properties;

            if (taEvent.EventTime != DateTime.MinValue)
            {
                finalEvent["event_time"] = taEvent.EventTime;
                if (token.timeZone == ThinkingAnalyticsAPI.TATimeZone.Local)
                {
                    switch (taEvent.EventTime.Kind)
                    {
                    case DateTimeKind.Local:
                        finalEvent["event_timezone"] = "Local";
                        break;

                    case DateTimeKind.Utc:
                        finalEvent["event_timezone"] = "UTC";
                        break;

                    case DateTimeKind.Unspecified:
                        break;
                    }
                }
            }
            track_event(token.appid, serilize(finalEvent));
        }
        public void Track(ThinkingAnalyticsEvent taEvent)
        {
            if (null == taEvent || null == taEvent.EventType)
            {
                TD_Log.w("Ignoring invalid TA event");
                return;
            }

            if (taEvent.EventTime == null)
            {
                TD_Log.w("ppp null...");
            }

            track(taEvent);
        }
Пример #3
0
        private void track(ThinkingAnalyticsEvent taEvent)
        {
            AndroidJavaObject javaEvent = null;

            switch (taEvent.EventType)
            {
            case ThinkingAnalyticsEvent.Type.FIRST:
                javaEvent = new AndroidJavaObject("cn.thinkingdata.android.TDFirstEvent",
                                                  taEvent.EventName, getJSONObject(getFinalEventProperties(taEvent.Properties)));

                string extraId = taEvent.ExtraId;
                if (!string.IsNullOrEmpty(extraId))
                {
                    javaEvent.Call("setFirstCheckId", extraId);
                }

                break;

            case ThinkingAnalyticsEvent.Type.UPDATABLE:
                javaEvent = new AndroidJavaObject("cn.thinkingdata.android.TDUpdatableEvent",
                                                  taEvent.EventName, getJSONObject(getFinalEventProperties(taEvent.Properties)), taEvent.ExtraId);
                break;

            case ThinkingAnalyticsEvent.Type.OVERWRITABLE:
                javaEvent = new AndroidJavaObject("cn.thinkingdata.android.TDOverWritableEvent",
                                                  taEvent.EventName, getJSONObject(getFinalEventProperties(taEvent.Properties)), taEvent.ExtraId);
                break;
            }
            if (null == javaEvent)
            {
                TD_Log.w("Unexpected java event object. Returning...");
                return;
            }

            if (taEvent.EventTime != DateTime.MinValue)
            {
                AndroidJavaObject date    = getDate(taEvent.EventTime);
                AndroidJavaClass  tzClass = new AndroidJavaClass("java.util.TimeZone");
                AndroidJavaObject tz      = null;

                if (token.timeZone == ThinkingAnalyticsAPI.TATimeZone.Local)
                {
                    switch (taEvent.EventTime.Kind)
                    {
                    case DateTimeKind.Local:
                        tz = tzClass.CallStatic <AndroidJavaObject>("getDefault");
                        break;

                    case DateTimeKind.Utc:
                        tz = tzClass.CallStatic <AndroidJavaObject>("getTimeZone", "UTC");
                        break;

                    case DateTimeKind.Unspecified:
                        break;
                    }
                }
                else
                {
                    tz = tzClass.CallStatic <AndroidJavaObject>("getTimeZone", token.getTimeZoneId());
                }
                javaEvent.Call("setEventTime", date, tz);
            }
            instance.Call("track", javaEvent);
        }
 private void track(ThinkingAnalyticsEvent analyticsEvent)
 {
     TD_Log.d("TA.Wrapper(" + token.appid + ") - calling track with eventName: " + analyticsEvent.EventName + ", " +
              "properties: " + getFinalEventProperties(analyticsEvent.Properties));
 }