110 lines
5.0 KiB
C#
110 lines
5.0 KiB
C#
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// Licensed under the MIT license.
|
|
|
|
#if UNITY_IOS && !UNITY_EDITOR
|
|
using AOT;
|
|
using System;
|
|
using System.Linq;
|
|
using System.Collections.Generic;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace Microsoft.AppCenter.Unity.Analytics.Internal
|
|
{
|
|
public class TransmissionTargetInternal
|
|
{
|
|
public static void TrackEvent(IntPtr transmissionTarget, string eventName)
|
|
{
|
|
appcenter_unity_transmission_target_track_event(transmissionTarget, eventName, (int)Flags.PersistenceNormal);
|
|
}
|
|
|
|
public static void TrackEvent(IntPtr transmissionTarget, string eventName, int flags)
|
|
{
|
|
appcenter_unity_transmission_target_track_event(transmissionTarget, eventName, flags);
|
|
}
|
|
|
|
public static void TrackEventWithProperties(IntPtr transmissionTarget, string eventName, IDictionary<string, string> properties)
|
|
{
|
|
appcenter_unity_transmission_target_track_event_with_props(transmissionTarget, eventName, properties.Keys.ToArray(), properties.Values.ToArray(), properties.Count, (int)Flags.PersistenceNormal);
|
|
}
|
|
|
|
public static void TrackEventWithProperties(IntPtr transmissionTarget, string eventName, EventProperties properties)
|
|
{
|
|
appcenter_unity_transmission_target_track_event_with_typed_props(transmissionTarget, eventName, properties.GetRawObject(), (int)Flags.PersistenceNormal);
|
|
}
|
|
|
|
public static void TrackEventWithProperties(IntPtr transmissionTarget, string eventName, IDictionary<string, string> properties, int flags)
|
|
{
|
|
appcenter_unity_transmission_target_track_event_with_props(transmissionTarget, eventName, properties.Keys.ToArray(), properties.Values.ToArray(), properties.Count, flags);
|
|
}
|
|
|
|
public static void TrackEventWithProperties(IntPtr transmissionTarget, string eventName, EventProperties properties, int flags)
|
|
{
|
|
appcenter_unity_transmission_target_track_event_with_typed_props(transmissionTarget, eventName, properties.GetRawObject(), flags);
|
|
}
|
|
|
|
public static AppCenterTask SetEnabledAsync(IntPtr transmissionTarget, bool enabled)
|
|
{
|
|
appcenter_unity_transmission_target_set_enabled(transmissionTarget, enabled);
|
|
return AppCenterTask.FromCompleted();
|
|
}
|
|
|
|
public static AppCenterTask<bool> IsEnabledAsync(IntPtr transmissionTarget)
|
|
{
|
|
bool isEnabled = appcenter_unity_transmission_target_is_enabled(transmissionTarget);
|
|
return AppCenterTask<bool>.FromCompleted(isEnabled);
|
|
}
|
|
|
|
public static IntPtr GetTransmissionTarget(IntPtr transmissionTargetParent, string transmissionTargetToken, out bool success)
|
|
{
|
|
var target = appcenter_unity_transmission_transmission_target_for_token(transmissionTargetParent, transmissionTargetToken);
|
|
success = target != IntPtr.Zero;
|
|
return target;
|
|
}
|
|
|
|
public static IntPtr GetPropertyConfigurator(IntPtr transmissionTarget)
|
|
{
|
|
return appcenter_unity_transmission_get_property_configurator(transmissionTarget);
|
|
}
|
|
|
|
public static void Pause(IntPtr transmissionTarget)
|
|
{
|
|
appcenter_unity_transmission_pause(transmissionTarget);
|
|
}
|
|
|
|
public static void Resume(IntPtr transmissionTarget)
|
|
{
|
|
appcenter_unity_transmission_resume(transmissionTarget);
|
|
}
|
|
|
|
#region External
|
|
|
|
[DllImport("__Internal")]
|
|
private static extern void appcenter_unity_transmission_target_track_event(IntPtr transmissionTarget, string eventName, int flags);
|
|
|
|
[DllImport("__Internal")]
|
|
private static extern void appcenter_unity_transmission_target_track_event_with_props(IntPtr transmissionTarget, string eventName, string[] keys, string[] values, int count, int flags);
|
|
|
|
[DllImport("__Internal")]
|
|
private static extern void appcenter_unity_transmission_target_track_event_with_typed_props(IntPtr transmissionTarget, string eventName, IntPtr properties, int flags);
|
|
|
|
[DllImport("__Internal")]
|
|
private static extern void appcenter_unity_transmission_target_set_enabled(IntPtr transmissionTarget, bool enabled);
|
|
|
|
[DllImport("__Internal")]
|
|
private static extern bool appcenter_unity_transmission_target_is_enabled(IntPtr transmissionTarget);
|
|
|
|
[DllImport("__Internal")]
|
|
private static extern IntPtr appcenter_unity_transmission_transmission_target_for_token(IntPtr transmissionTargetParent, string transmissionTargetToken);
|
|
|
|
[DllImport("__Internal")]
|
|
private static extern IntPtr appcenter_unity_transmission_get_property_configurator(IntPtr transmissionTarget);
|
|
|
|
[DllImport("__Internal")]
|
|
private static extern void appcenter_unity_transmission_pause(IntPtr transmissionTarget);
|
|
|
|
[DllImport("__Internal")]
|
|
private static extern void appcenter_unity_transmission_resume(IntPtr transmissionTarget);
|
|
#endregion
|
|
}
|
|
}
|
|
#endif |