using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using Chartboost.Constants;
using Chartboost.Mediation.MetaAudienceNetwork.Common;
using Chartboost.Mediation.Utilities;
using UnityEngine;
namespace Chartboost.Mediation.MetaAudienceNetwork.IOS
{
internal sealed class MetaAudienceNetworkAdapter : IMetaAudienceNetworkAdapter
{
[RuntimeInitializeOnLoadMethod]
private static void RegisterInstance()
{
if (Application.isEditor)
return;
MetaAudienceNetwork.MetaAudienceNetworkAdapter.Instance = new MetaAudienceNetworkAdapter();
}
///
public string AdapterNativeVersion => _CBMMetaAudienceNetworkAdapterAdapterVersion();
///
public string PartnerSDKVersion => _CBMMetaAudienceNetworkAdapterPartnerSDKVersion();
///
public string PartnerIdentifier => _CBMMetaAudienceNetworkAdapterPartnerId();
///
public string PartnerDisplayName => _CBMMetaAudienceNetworkAdapterPartnerDisplayName();
///
public bool TestMode
{
get => _CBMMetaAudienceNetworkAdapterGetTestMode();
set => _CBMMetaAudienceNetworkAdapterSetTestMode(value);
}
///
public bool VerboseLogging
{
get => _CBMMetaAudienceNetworkAdapterGetVerboseLogging();
set => _CBMMetaAudienceNetworkAdapterSetVerboseLogging(value);
}
///
public IReadOnlyCollection PlacementIds
{
get
{
var testDeviceIds = _CBMAdMobAdapterGetPlacementIds();
return string.IsNullOrEmpty(testDeviceIds) ? Array.Empty() : testDeviceIds.ToList();
}
set
{
if (value == null || value.Count == 0)
{
_CBMAdMobAdapterSetPlacementIds(Array.Empty(), 0);
return;
}
_CBMAdMobAdapterSetPlacementIds(value.ToArray(), value.Count);
}
}
[DllImport(SharedIOSConstants.DLLImport)] private static extern string _CBMMetaAudienceNetworkAdapterAdapterVersion();
[DllImport(SharedIOSConstants.DLLImport)] private static extern string _CBMMetaAudienceNetworkAdapterPartnerSDKVersion();
[DllImport(SharedIOSConstants.DLLImport)] private static extern string _CBMMetaAudienceNetworkAdapterPartnerId();
[DllImport(SharedIOSConstants.DLLImport)] private static extern string _CBMMetaAudienceNetworkAdapterPartnerDisplayName();
[DllImport(SharedIOSConstants.DLLImport)] private static extern bool _CBMMetaAudienceNetworkAdapterGetTestMode();
[DllImport(SharedIOSConstants.DLLImport)] private static extern void _CBMMetaAudienceNetworkAdapterSetTestMode(bool testMode);
[DllImport(SharedIOSConstants.DLLImport)] private static extern bool _CBMMetaAudienceNetworkAdapterGetVerboseLogging();
[DllImport(SharedIOSConstants.DLLImport)] private static extern void _CBMMetaAudienceNetworkAdapterSetVerboseLogging(bool verboseLogging);
[DllImport(SharedIOSConstants.DLLImport)] private static extern string _CBMAdMobAdapterGetPlacementIds();
[DllImport(SharedIOSConstants.DLLImport)] private static extern void _CBMAdMobAdapterSetPlacementIds(string[] placementIds, int placementIdsCount);
}
}