|
- using System;
- using System.Diagnostics;
- using SUISS.Core;
- using SUISSEngine;
- using UnityEngine;
-
- namespace CIG
- {
- public sealed class ChartboostVideoAdsProvider : Singleton<ChartboostVideoAdsProvider>, IAdProvider
- {
- public ChartboostVideoAdsProvider()
- {
- GameObject gameObject = new GameObject("ChartBoostVideoAdsProvider");
- UnityEngine.Object.DontDestroyOnLoad(gameObject);
- gameObject.hideFlags = HideFlags.HideAndDontSave;
- this._providerMonoBehaviour = gameObject.AddComponent<AdProviderMonoBehaviour>();
- }
-
- //[DebuggerBrowsable(DebuggerBrowsableState.Never)]
- public event AdAvailabilityChangedEventHandler AvailabilityChangedEvent;
-
- private void FireAvailabilityChangedEvent()
- {
- if (this.AvailabilityChangedEvent != null)
- {
- this.AvailabilityChangedEvent(this);
- }
- }
-
- public void StartCaching()
- {
- AdProviderState providerState = this._providerState;
- if (providerState != AdProviderState.None)
- {
- if (providerState == AdProviderState.Initialized)
- {
- AdState adState = this._adState;
- if (adState == AdState.None)
- {
- this.RequestAd();
- }
- }
- }
- else
- {
- try
- {
- this._providerState = AdProviderState.Initializing;
- this._providerState = AdProviderState.Initialized;
- this.StartCaching();
- }
- catch (Exception ex)
- {
- this._providerState = AdProviderState.None;
- UnityEngine.Debug.LogErrorFormat("[ChartboostVideoAdsProvider] Failed to Initialize Chartboost. Error: {1}\r\nStacktrace:\r\n{2}", new object[]
- {
- ex.Message,
- ex.StackTrace
- });
- }
- }
- }
-
- public bool ShowAd(Action<bool, bool> callback)
- {
- if (this.IsReady)
- {
- this._adState = AdState.Showing;
- this._callback = callback;
- SingletonMonobehaviour<CIGGameStats>.Instance.AddScreenViewed("video_chartboost");
- this.FireAvailabilityChangedEvent();
- return true;
- }
- return false;
- }
-
- public bool IsReady
- {
- get
- {
- return true;
- }
- }
-
- public AdType AdType
- {
- get
- {
- return AdType.Video;
- }
- }
-
- public AdProviderType AdProviderType
- {
- get
- {
- return AdProviderType.Chartboost;
- }
- }
-
- private void RequestAd()
- {
- this._adState = AdState.Requesting;
- }
-
-
- private const float MaxBackOffSeconds = 120f;
-
- private AdProviderState _providerState;
-
- private AdState _adState;
-
- private Action<bool, bool> _callback;
-
- private float _backOffSeconds;
-
- private AdProviderMonoBehaviour _providerMonoBehaviour;
- }
- }
|