/*
http://www.cgsoso.com/forum-211-1.html

CG搜搜 Unity3d 每日Unity3d插件免费更新 更有VIP资源!

CGSOSO 主打游戏开发,影视设计等CG资源素材。

插件如若商用,请务必官网购买!

daily assets update for try.

U should buy the asset from home store if u use it in your project!
*/

//using GoogleMobileAds.Api;
using System;
using UnityEngine;

public class RewardedVideoGroup : MonoBehaviour
{
	public GameObject buttonGroup;

	public GameObject textGroup;

	public TimerText timerText;

	private const string ACTION_NAME = "rewarded_video";

	private void Start()
	{
		if (timerText != null)
		{
			TimerText obj = timerText;
			obj.onCountDownComplete = (Action)Delegate.Combine(obj.onCountDownComplete, new Action(OnCountDownComplete));
		}
		Timer.Schedule(this, 0.1f, AddEvents);
		if (!IsAvailableToShow())
		{
			buttonGroup.SetActive(value: false);
			if (IsAdAvailable() && !IsActionAvailable())
			{
				int time = (int)((double)GameConfig.instance.rewardedVideoPeriod - CUtils.GetActionDeltaTime("rewarded_video"));
				ShowTimerText(time);
			}
		}
		InvokeRepeating("IUpdate", 1f, 1f);
	}

	private void AddEvents()
	{

		IronSourceRewardedVideoEvents.onAdRewardedEvent += HandleRewardBasedVideoRewarded;

	}

	private void IUpdate()
	{
		buttonGroup.SetActive(IsAvailableToShow());
	}

	public void OnClick()
	{
		IronSource.Agent.showRewardedVideo();
		//AdmobController.instance.ShowRewardBasedVideo();
		Sound.instance.PlayButton();
	}

	private void ShowTimerText(int time)
	{
		if (textGroup != null)
		{
			textGroup.SetActive(value: true);
			timerText.SetTime(time);
			timerText.Run();
		}
	}

	public void HandleRewardBasedVideoRewarded(IronSourcePlacement ironSourcePlacement, IronSourceAdInfo ironSourceAdInfo)
	{
		buttonGroup.SetActive(value: false);
		ShowTimerText(GameConfig.instance.rewardedVideoPeriod);
	}

	//public void HandleRewardBasedVideoRewarded(object sender, Reward args)
	//{
	//	buttonGroup.SetActive(value: false);
	//	ShowTimerText(GameConfig.instance.rewardedVideoPeriod);
	//}

	private void OnCountDownComplete()
	{
		textGroup.SetActive(value: false);
		if (IsAdAvailable())
		{
			buttonGroup.SetActive(value: true);
		}
	}

	public bool IsAvailableToShow()
	{
		return IsActionAvailable() && IsAdAvailable();
	}

	private bool IsActionAvailable()
	{
		return CUtils.IsActionAvailable("rewarded_video", GameConfig.instance.rewardedVideoPeriod);
	}

	private bool IsAdAvailable()
	{
		//if (AdmobController.instance.rewardBasedVideo == null)
		//{
		//	return false;
		//}
		return IronSource.Agent.isRewardedVideoAvailable();
	}

	private void OnDestroy()
	{
		IronSourceRewardedVideoEvents.onAdRewardedEvent -= HandleRewardBasedVideoRewarded;

	}

	private void OnApplicationPause(bool pause)
	{
		if (!pause && textGroup != null && textGroup.activeSelf)
		{
			int time = (int)((double)GameConfig.instance.rewardedVideoPeriod - CUtils.GetActionDeltaTime("rewarded_video"));
			ShowTimerText(time);
		}
	}
}