using Chartboost.Constants; using Chartboost.Mediation.Vungle.Common; using UnityEngine; namespace Chartboost.Mediation.Vungle.Android { internal sealed class VungleAdapter : IVungleAdapter { private const string VungleAdapterConfiguration = "com.chartboost.mediation.vungleadapter.VungleAdapterConfiguration"; private const string FunctionGetBackButtonImmediatelyEnabled = "getBackBtnImmediatelyEnabled"; private const string FunctionSetBackButtonImmediatelyEnabled = "setBackBtnImmediatelyEnabled"; private const string FunctionIntValue = "intValue"; private const string FunctionGetAdOrientation = "getAdOrientation"; private const string FunctionSetAdOrientation = "setAdOrientation"; private const string FunctionSetGdprStatusOverride = "setGdprStatusOverride"; private const string FunctionSetCcpaStatusOverride = "setCcpaStatusOverride"; [RuntimeInitializeOnLoadMethod] private static void RegisterInstance() { if (Application.isEditor) return; Vungle.VungleAdapter.Instance = new VungleAdapter(); } /// public string AdapterNativeVersion { get { using var adapterConfiguration = new AndroidJavaObject(VungleAdapterConfiguration); return adapterConfiguration.Call(SharedAndroidConstants.FunctionGetAdapterVersion); } } /// public string PartnerSDKVersion { get { using var adapterConfiguration = new AndroidJavaObject(VungleAdapterConfiguration); return adapterConfiguration.Call(SharedAndroidConstants.FunctionGetPartnerSdkVersion); } } /// public string PartnerIdentifier { get { using var adapterConfiguration = new AndroidJavaObject(VungleAdapterConfiguration); return adapterConfiguration.Call(SharedAndroidConstants.FunctionGetPartnerId); } } /// public string PartnerDisplayName { get { using var adapterConfiguration = new AndroidJavaObject(VungleAdapterConfiguration); return adapterConfiguration.Call(SharedAndroidConstants.FunctionGetPartnerDisplayName); } } /// public bool BackButtonImmediatelyEnabled { get { using var adapterConfiguration = new AndroidJavaObject(VungleAdapterConfiguration); return adapterConfiguration.Call(FunctionGetBackButtonImmediatelyEnabled); } set { using var adapterConfiguration = new AndroidJavaObject(VungleAdapterConfiguration); adapterConfiguration.Call(FunctionSetBackButtonImmediatelyEnabled, value); } } /// public VungleAdOrientation? AdOrientation { get { using var adapterConfiguration = new AndroidJavaObject(VungleAdapterConfiguration); using var nativeOrientationValue = adapterConfiguration.Call(FunctionGetAdOrientation); if (nativeOrientationValue == null) return null; var nativeIntValue = nativeOrientationValue.Call(FunctionIntValue); if (nativeIntValue == -1) return null; return (VungleAdOrientation)nativeIntValue; } set { using var adapterConfiguration = new AndroidJavaObject(VungleAdapterConfiguration); if (value.HasValue) { var valueAsInt = (int)value; adapterConfiguration.Call(FunctionSetAdOrientation, valueAsInt.GetNativeInt()); } else { const int valueAsInt = -1; adapterConfiguration.Call(FunctionSetAdOrientation, valueAsInt.GetNativeInt()); } } } /// public void SetGDPRStatusOverride(bool gdprStatus) { using var adapterConfiguration = new AndroidJavaObject(VungleAdapterConfiguration); adapterConfiguration.Call(FunctionSetGdprStatusOverride, gdprStatus); } /// public void SetCCPAStatusOverride(bool ccpaStatus) { using var adapterConfiguration = new AndroidJavaObject(VungleAdapterConfiguration); adapterConfiguration.Call(FunctionSetCcpaStatusOverride, ccpaStatus); } } }