97 lines
3.4 KiB
C#
97 lines
3.4 KiB
C#
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// Licensed under the MIT license.
|
|
|
|
#if UNITY_ANDROID && !UNITY_EDITOR
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using Microsoft.AppCenter.Unity.Internal.Utility;
|
|
using UnityEngine;
|
|
|
|
namespace Microsoft.AppCenter.Unity.Analytics.Internal
|
|
{
|
|
class AnalyticsInternal
|
|
{
|
|
private static AndroidJavaClass _analytics = new AndroidJavaClass("com.microsoft.appcenter.analytics.Analytics");
|
|
|
|
public static void PrepareEventHandlers()
|
|
{
|
|
AppCenterBehavior.InitializedAppCenterAndServices += PostInitialize;
|
|
}
|
|
|
|
private static void PostInitialize()
|
|
{
|
|
var instance = _analytics.CallStatic<AndroidJavaObject>("getInstance");
|
|
AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
|
|
AndroidJavaObject activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
|
|
instance.Call("onActivityResumed", activity);
|
|
}
|
|
|
|
public static void AddNativeType(List<IntPtr> nativeTypes)
|
|
{
|
|
nativeTypes.Add(AndroidJNI.FindClass("com/microsoft/appcenter/analytics/Analytics"));
|
|
}
|
|
|
|
public static void TrackEvent(string eventName)
|
|
{
|
|
_analytics.CallStatic("trackEvent", eventName);
|
|
}
|
|
|
|
public static void TrackEvent(string eventName, int flags)
|
|
{
|
|
_analytics.CallStatic("trackEvent", eventName, null, flags);
|
|
}
|
|
|
|
public static void TrackEventWithProperties(string eventName, IDictionary<string, string> properties)
|
|
{
|
|
var androidProperties = JavaStringMapHelper.ConvertToJava(properties);
|
|
_analytics.CallStatic("trackEvent", eventName, androidProperties);
|
|
}
|
|
|
|
public static void TrackEventWithProperties(string eventName, EventProperties properties)
|
|
{
|
|
_analytics.CallStatic("trackEvent", eventName, properties.GetRawObject());
|
|
}
|
|
|
|
public static void TrackEventWithProperties(string eventName, IDictionary<string, string> properties, int flags)
|
|
{
|
|
var androidProperties = JavaStringMapHelper.ConvertToJava(properties);
|
|
_analytics.CallStatic("trackEvent", eventName, androidProperties, flags);
|
|
}
|
|
|
|
public static void TrackEventWithProperties(string eventName, EventProperties properties, int flags)
|
|
{
|
|
_analytics.CallStatic("trackEvent", eventName, properties.GetRawObject(), flags);
|
|
}
|
|
|
|
public static AppCenterTask SetEnabledAsync(bool isEnabled)
|
|
{
|
|
var future = _analytics.CallStatic<AndroidJavaObject>("setEnabled", isEnabled);
|
|
return new AppCenterTask(future);
|
|
}
|
|
|
|
public static AppCenterTask<bool> IsEnabledAsync()
|
|
{
|
|
var future = _analytics.CallStatic<AndroidJavaObject>("isEnabled");
|
|
return new AppCenterTask<bool>(future);
|
|
}
|
|
|
|
public static AndroidJavaObject GetTransmissionTarget(string transmissionTargetToken, out bool success)
|
|
{
|
|
var target = _analytics.CallStatic<AndroidJavaObject>("getTransmissionTarget", transmissionTargetToken);
|
|
success = target != null;
|
|
return target;
|
|
}
|
|
|
|
public static void Pause()
|
|
{
|
|
_analytics.CallStatic("pause");
|
|
}
|
|
|
|
public static void Resume()
|
|
{
|
|
_analytics.CallStatic("resume");
|
|
}
|
|
}
|
|
}
|
|
#endif
|