using System; using Azerion.BlueStack.Internal; namespace Azerion.BlueStack.API { public class InterstitialAd { private IInterstitialAdClient _interstitialAdClient; public event EventHandler OnInterstitialDidLoaded; public event EventHandler OnInterstitialDidFail; public event EventHandler OnInterstitialClicked; public event EventHandler OnInterstitialDisappear; public event EventHandler OnInterstitialDidShown; public InterstitialAd(string placementId) : this(placementId, BlueStackAds.GetClientsFactory().CreatInterstitialAdClient()) { } internal InterstitialAd(string placementId, IInterstitialAdClient interstitialAdClient) { _interstitialAdClient = interstitialAdClient; _interstitialAdClient.Create(placementId); ConfigureEvents(); } private void ConfigureEvents() { _interstitialAdClient.OnInterstitialDidLoaded += (sender, args) => { OnInterstitialDidLoaded?.Invoke(this, args); }; _interstitialAdClient.OnInterstitialDidShown += (sender, args) => { OnInterstitialDidShown?.Invoke(this, args); }; _interstitialAdClient.OnInterstitialDisappear += (sender, args) => { OnInterstitialDisappear?.Invoke(this, args); }; _interstitialAdClient.OnInterstitialDidFail += (sender, args) => { OnInterstitialDidFail?.Invoke(this, args); }; _interstitialAdClient.OnInterstitialClicked += (sender, args) => { OnInterstitialClicked?.Invoke(this, args); }; } public void Load() { Preference preference = new Preference(); _interstitialAdClient.Load(preference.getIPreferenceClient()); } public void Load(Preference preference) { _interstitialAdClient.Load(preference.getIPreferenceClient()); } public void Show() { _interstitialAdClient.Show(); } public void Destroy() { _interstitialAdClient.Destroy(); } } }