#if UNITY_IOS
using System.Runtime.InteropServices;
using AOT;

namespace UnityEngine.Monetization
{
    sealed internal class IosAnalytics
    {
        private static IosAnalytics Instance { get; set; }

        delegate void unityAnalyticsTriggerAddExtras(string jsonExtras);

        [DllImport("__Internal")]
        static extern void UANAEngineDelegateSetTriggerAddExtras(unityAnalyticsTriggerAddExtras trigger);

        [DllImport("__Internal")] private static extern void InitializeUANAEngineWrapper();

        [MonoPInvokeCallback(typeof(unityAnalyticsTriggerAddExtras))]
        static void TriggerAddExtras(string extras)
        {
            Analytics.SetAnalyticsEventExtra(extras);
        }

        public void Initialize()
        {
            Instance = this;
            UANAEngineDelegateSetTriggerAddExtras(TriggerAddExtras);
            InitializeUANAEngineWrapper();
        }
    }
}
#endif