#if UNITY_IPHONE || UNITY_IOS
using UnityEngine;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System;
using System.Globalization;
// public class iOSAgent : IronSourceIAgent
// {
// struct IOSWaterfallConfiguration
// {
// public double Floor;
// public double Ceiling;
// }
// [DllImport("__Internal")]
// private static extern void LPPSetWaterfallConfiguration(IOSWaterfallConfiguration configurationParams, AdFormat adFormat);
// [DllImport("__Internal")]
// private static extern void CFSetPluginData(string pluginType, string pluginVersion, string pluginFrameworkVersion);
// [DllImport("__Internal")]
// private static extern string CFGetAdvertiserId();
// [DllImport("__Internal")]
// private static extern void CFValidateIntegration();
// [DllImport("__Internal")]
// private static extern void CFShouldTrackNetworkState(bool track);
// [DllImport("__Internal")]
// private static extern bool CFSetDynamicUserId(string dynamicUserId);
// [DllImport("__Internal")]
// private static extern void CFSetAdaptersDebug(bool enabled);
// [DllImport("__Internal")]
// private static extern void CFSetMetaData(string key, string value);
// [DllImport("__Internal")]
// private static extern void CFSetMetaDataWithValues(string key, params string[] values);
// [DllImport("__Internal")]
// private static extern string CFGetConversionValue();
// [DllImport("__Internal")]
// private static extern void CFSetManualLoadRewardedVideo(bool isOn);
// [DllImport("__Internal")]
// private static extern void CFSetNetworkData(string networkKey, string networkData);
// delegate void ISUnityPauseGame(bool pause);
// [DllImport("__Internal")]
// private static extern void RegisterPauseGameFunction(bool pasue);
// //******************* SDK Init *******************//
// [DllImport("__Internal")]
// private static extern void CFSetUserId(string userId);
// [DllImport("__Internal")]
// private static extern void CFInit(string appKey);
// [DllImport("__Internal")]
// private static extern void CFInitWithAdUnits(string appKey, params string[] adUnits);
// [DllImport("__Internal")]
// private static extern void CFInitISDemandOnly(string appKey, params string[] adUnits);
// //******************* RewardedVideo API *******************//
// [DllImport("__Internal")]
// private static extern void CFLoadRewardedVideo();
// [DllImport("__Internal")]
// private static extern void CFShowRewardedVideo();
// [DllImport("__Internal")]
// private static extern void CFShowRewardedVideoWithPlacementName(string placementName);
// [DllImport("__Internal")]
// private static extern bool CFIsRewardedVideoAvailable();
// [DllImport("__Internal")]
// private static extern bool CFIsRewardedVideoPlacementCapped(string placementName);
// [DllImport("__Internal")]
// private static extern string CFGetPlacementInfo(string placementName);
// [DllImport("__Internal")]
// private static extern void CFSetRewardedVideoServerParameters(string jsonString);
// [DllImport("__Internal")]
// private static extern void CFClearRewardedVideoServerParameters();
// //******************* RewardedVideo DemandOnly API *******************//
// [DllImport("__Internal")]
// private static extern void CFShowISDemandOnlyRewardedVideo(string instanceId);
// [DllImport("__Internal")]
// private static extern void CFLoadISDemandOnlyRewardedVideo(string instanceId);
// [DllImport("__Internal")]
// private static extern bool CFIsDemandOnlyRewardedVideoAvailable(string instanceId);
// //******************* Interstitial API *******************//
// [DllImport("__Internal")]
// private static extern void CFLoadInterstitial();
// [DllImport("__Internal")]
// private static extern void CFShowInterstitial();
// [DllImport("__Internal")]
// private static extern void CFShowInterstitialWithPlacementName(string placementName);
// [DllImport("__Internal")]
// private static extern bool CFIsInterstitialReady();
// [DllImport("__Internal")]
// private static extern bool CFIsInterstitialPlacementCapped(string placementName);
// //******************* Interstitial DemandOnly API *******************//
// [DllImport("__Internal")]
// private static extern void CFLoadISDemandOnlyInterstitial(string instanceId);
// [DllImport("__Internal")]
// private static extern void CFShowISDemandOnlyInterstitial(string instanceId);
// [DllImport("__Internal")]
// private static extern bool CFIsDemandOnlyInterstitialReady(string instanceId);
// //******************* Offerwall API *******************//
// [DllImport("__Internal")]
// private static extern void CFShowOfferwall();
// [DllImport("__Internal")]
// private static extern void CFShowOfferwallWithPlacementName(string placementName);
// [DllImport("__Internal")]
// private static extern void CFGetOfferwallCredits();
// [DllImport("__Internal")]
// private static extern bool CFIsOfferwallAvailable();
// //******************* Banner API *******************//
// [DllImport("__Internal")]
// private static extern void CFLoadBanner(string description, int width, int height, int position, string placementName, bool isAdaptive);
// [DllImport("__Internal")]
// private static extern void CFDestroyBanner();
// [DllImport("__Internal")]
// private static extern void CFDisplayBanner();
// [DllImport("__Internal")]
// private static extern void CFHideBanner();
// [DllImport("__Internal")]
// private static extern bool CFIsBannerPlacementCapped(string placementName);
// [DllImport("__Internal")]
// private static extern void CFSetSegment(string json);
// [DllImport("__Internal")]
// private static extern void CFSetConsent(bool consent);
// //******************* ConsentView API *******************//
// [DllImport("__Internal")]
// private static extern void CFLoadConsentViewWithType(string consentViewType);
// [DllImport("__Internal")]
// private static extern void CFShowConsentViewWithType(string consentViewType);
// //******************* ILRD API *******************//
// [DllImport("__Internal")]
// private static extern void CFSetAdRevenueData(string dataSource, string impressionData);
// //******************* TestSuite API *******************//
// [DllImport("__Internal")]
// private static extern void CFLaunchTestSuite();
// public iOSAgent()
// {
// }
// #region IronSourceIAgent implementation
// //******************* Base API *******************//
// ///
// /// Allows publishers to set configurations for a waterfall of a given ad type.
// ///
// /// The AdFormat for which to configure the waterfall.
// /// The configuration for the given ad types waterfall.
// public void SetWaterfallConfiguration(WaterfallConfiguration waterfallConfiguration, AdFormat adFormat)
// {
// var config = new IOSWaterfallConfiguration
// {
// Floor = waterfallConfiguration.Floor ?? 0.0,
// Ceiling = waterfallConfiguration.Ceiling ?? 0.0
// };
// LPPSetWaterfallConfiguration(config, adFormat);
// }
// public void onApplicationPause(bool pause)
// {
// }
// public string getAdvertiserId()
// {
// return CFGetAdvertiserId();
// }
// public void validateIntegration()
// {
// CFValidateIntegration();
// }
// public void shouldTrackNetworkState(bool track)
// {
// CFShouldTrackNetworkState(track);
// }
// public bool setDynamicUserId(string dynamicUserId)
// {
// return CFSetDynamicUserId(dynamicUserId);
// }
// public void setAdaptersDebug(bool enabled)
// {
// CFSetAdaptersDebug(enabled);
// }
// public void setMetaData(string key, params string[] values)
// {
// CFSetMetaDataWithValues(key, values);
// }
// public void setMetaData(string key, string value)
// {
// CFSetMetaData(key, value);
// }
// public int? getConversionValue()
// {
// CultureInfo invCulture = CultureInfo.InvariantCulture;
// int parsedInt;
// if (int.TryParse(string.Format(invCulture, "{0}", CFGetConversionValue()), NumberStyles.Any, invCulture, out parsedInt))
// {
// return parsedInt;
// }
// return null;
// }
// public void setManualLoadRewardedVideo(bool isOn)
// {
// CFSetManualLoadRewardedVideo(isOn);
// }
// public void setNetworkData(string networkKey, string networkData)
// {
// CFSetNetworkData(networkKey, networkData);
// }
// [AOT.MonoPInvokeCallback(typeof(ISUnityPauseGame))]
// public void SetPauseGame(bool pause)
// {
// RegisterPauseGameFunction(pause);
// if (pause)
// {
// setMetaData("IS_PAUSE_GAME_FLAG", "true");
// }
// else
// {
// setMetaData("IS_PAUSE_GAME_FLAG", "false");
// }
// }
// //******************* SDK Init *******************//
// public void setUserId(string userId)
// {
// CFSetUserId(userId);
// }
// public void init(string appKey)
// {
// CFSetPluginData("Unity", IronSource.pluginVersion(), IronSource.unityVersion());
// Debug.Log("IntegrationHelper pluginVersion: " + IronSource.pluginVersion());
// CFInit(appKey);
// }
// public void init(string appKey, params string[] adUnits)
// {
// CFSetPluginData("Unity", IronSource.pluginVersion(), IronSource.unityVersion());
// Debug.Log("IntegrationHelper pluginVersion: " + IronSource.pluginVersion());
// CFInitWithAdUnits(appKey, adUnits);
// }
// public void initISDemandOnly(string appKey, params string[] adUnits)
// {
// CFSetPluginData("Unity", IronSource.pluginVersion(), IronSource.unityVersion());
// Debug.Log("IntegrationHelper pluginVersion: " + IronSource.pluginVersion());
// CFInitISDemandOnly(appKey, adUnits);
// }
// //******************* RewardedVideo API *******************//
// public void loadRewardedVideo()
// {
// CFLoadRewardedVideo();
// }
// public void showRewardedVideo()
// {
// CFShowRewardedVideo();
// }
// public void showRewardedVideo(string placementName)
// {
// CFShowRewardedVideoWithPlacementName(placementName);
// }
// public bool isRewardedVideoAvailable()
// {
// return CFIsRewardedVideoAvailable();
// }
// public bool isRewardedVideoPlacementCapped(string placementName)
// {
// return CFIsRewardedVideoPlacementCapped(placementName);
// }
// public IronSourcePlacement getPlacementInfo(string placementName)
// {
// IronSourcePlacement sp = null;
// string spString = CFGetPlacementInfo(placementName);
// if (spString != null)
// {
// Dictionary spDic = IronSourceJSON.Json.Deserialize(spString) as Dictionary;
// string pName = spDic["placement_name"].ToString();
// string rewardName = spDic["reward_name"].ToString();
// int rewardAmount = Convert.ToInt32(spDic["reward_amount"].ToString());
// sp = new IronSourcePlacement(pName, rewardName, rewardAmount);
// }
// return sp;
// }
// public void setRewardedVideoServerParams(Dictionary parameters)
// {
// string json = IronSourceJSON.Json.Serialize(parameters);
// CFSetRewardedVideoServerParameters(json);
// }
// public void clearRewardedVideoServerParams()
// {
// CFClearRewardedVideoServerParameters();
// }
// //******************* RewardedVideo DemandOnly API *******************//
// public void showISDemandOnlyRewardedVideo(string instanceId)
// {
// CFShowISDemandOnlyRewardedVideo(instanceId);
// }
// public void loadISDemandOnlyRewardedVideo(string instanceId)
// {
// CFLoadISDemandOnlyRewardedVideo(instanceId);
// }
// public bool isISDemandOnlyRewardedVideoAvailable(string instanceId)
// {
// return CFIsDemandOnlyRewardedVideoAvailable(instanceId);
// }
// //******************* Interstitial API *******************//
// public void loadInterstitial()
// {
// CFLoadInterstitial();
// }
// public void showInterstitial()
// {
// CFShowInterstitial();
// }
// public void showInterstitial(string placementName)
// {
// CFShowInterstitialWithPlacementName(placementName);
// }
// public bool isInterstitialReady()
// {
// return CFIsInterstitialReady();
// }
// public bool isInterstitialPlacementCapped(string placementName)
// {
// return CFIsInterstitialPlacementCapped(placementName);
// }
// //******************* Interstitial DemandOnly API *******************//
// public void loadISDemandOnlyInterstitial(string instanceId)
// {
// CFLoadISDemandOnlyInterstitial(instanceId);
// }
// public void showISDemandOnlyInterstitial(string instanceId)
// {
// CFShowISDemandOnlyInterstitial(instanceId);
// }
// public bool isISDemandOnlyInterstitialReady(string instanceId)
// {
// return CFIsDemandOnlyInterstitialReady(instanceId);
// }
// //******************* Offerwall API *******************//
// public void showOfferwall()
// {
// CFShowOfferwall();
// }
// public void showOfferwall(string placementName)
// {
// CFShowOfferwallWithPlacementName(placementName);
// }
// public void getOfferwallCredits()
// {
// CFGetOfferwallCredits();
// }
// public bool isOfferwallAvailable()
// {
// return CFIsOfferwallAvailable();
// }
// //******************* Banner API *******************//
// public void loadBanner(IronSourceBannerSize size, IronSourceBannerPosition position)
// {
// loadBanner(size, position, "");
// }
// public void loadBanner(IronSourceBannerSize size, IronSourceBannerPosition position, string placementName)
// {
// CFLoadBanner(size.Description, (int)size.Width, (int)size.Height, (int)position, placementName, (bool)size.IsAdaptiveEnabled());
// }
// public void destroyBanner()
// {
// CFDestroyBanner();
// }
// public void displayBanner()
// {
// CFDisplayBanner();
// }
// public void hideBanner()
// {
// CFHideBanner();
// }
// public bool isBannerPlacementCapped(string placementName)
// {
// return CFIsBannerPlacementCapped(placementName);
// }
// public void setSegment(IronSourceSegment segment)
// {
// Dictionary dict = segment.getSegmentAsDict();
// string json = IronSourceJSON.Json.Serialize(dict);
// CFSetSegment(json);
// }
// public void setConsent(bool consent)
// {
// CFSetConsent(consent);
// }
// public void loadConsentViewWithType(string consentViewType)
// {
// CFLoadConsentViewWithType(consentViewType);
// }
// public void showConsentViewWithType(string consentViewType)
// {
// CFShowConsentViewWithType(consentViewType);
// }
// //******************* ILRD API *******************//
// public void setAdRevenueData(string dataSource, Dictionary impressionData)
// {
// string json = IronSourceJSON.Json.Serialize(impressionData);
// CFSetAdRevenueData(dataSource, json);
// }
// //******************* TestSuite API *******************//
// public void launchTestSuite()
// {
// Debug.Log("iOSAgent: launching TestSuite");
// CFLaunchTestSuite();
// }
// #endregion
// }
#endif