using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Touka
{
    public class TKGSDKCallbackAndroid
    {
    }
    /// 
    /// TGK framework level callback
    /// 
    public class AndroidProxyCallback : AndroidJavaProxy
    {
        public AndroidProxyCallback() : base("com.touka.tkg.idal.ITKGProxyCallback") { }
        // init succ callback
        public void onInitSuccess()
        {
            Debug.Log("onInitSuccess");
            Loom.QueueOnMainThread((pObj) =>
            {
                if (TKGSDKCallback.mInitCallback != null)
                {
                    TKGSDKCallback.mInitCallback.Invoke();
                }
            }, "");
        }
        // init fail callback
        public void onInitFail()
        {
            Debug.Log("onInitFail");
            Loom.QueueOnMainThread((pObj) =>
            {
                if (TKGSDKCallback.mInitCallback != null)
                {
                    TKGSDKCallback.mInitCallback.Invoke();
                }
            }, "");
        }
        // game Activity disable callback
        public void onPause()
        {
            Debug.Log("onPause");
            Loom.QueueOnMainThread((pObj) =>
            {
                if (TKGSDKCallback.mGameFocusCallback != null)
                {
                    TKGSDKCallback.mGameFocusCallback.Invoke(false);
                }
            }, "");
        }
        // game Activity visible callback
        public void onResume()
        {
            Debug.Log("onResume");
            Loom.QueueOnMainThread((pObj) =>
            {
                if (TKGSDKCallback.mGameFocusCallback != null)
                {
                    TKGSDKCallback.mGameFocusCallback.Invoke(true);
                }
            }, "");
        }
        // pause callback, like stop sound
        public void pauseGame()
        {
            Debug.Log("pauseGame");
            Loom.QueueOnMainThread((pObj) =>
            {
                if (TKGSDKCallback.mGameFocusCallback != null)
                {
                    TKGSDKCallback.mGameFocusCallback.Invoke(false);
                }
            }, "");
        }
        // result callback, like replay sound
        public void resumeGame()
        {
            Debug.Log("resumeGame");
            Loom.QueueOnMainThread((pObj) =>
            {
                if (TKGSDKCallback.mGameFocusCallback != null)
                {
                    TKGSDKCallback.mGameFocusCallback.Invoke(true);
                }
            }, "");
        }
    }
    /// 
    /// InterAd callback
    /// 
    public class AndroidInterADTKGAdCallback : AndroidJavaProxy
    {
        public AndroidInterADTKGAdCallback() : base("com.touka.tkg.idal.ITKGAdCallback") { }
        public void onClosed()
        {
            Debug.Log("onClosed");
            Loom.QueueOnMainThread((pObj) =>
            {
                if (TKGSDKCallback.mInterAdCallback != null)
                {
                    TKGSDKCallback.mInterAdCallback.Invoke();
                }
            }, "");
            
        }
        public void onClicked()
        {
            Debug.Log("onClicked");
        }
        // click to skip ad
        public void onSkip()
        {
            Debug.Log("onSkip");
        }
        public void onLoaded()
        {
            Debug.Log("onLoaded");
        }
        public void onLoadFail(int code, string msg)
        {
            Debug.Log("onLoadFail");
        }
        public void onShow()
        {
            Debug.Log("onShow");
        }
        public void onShowFail(int code, string msg)
        {
            Debug.Log("onShowFail");
            if (code == (int)AdShowFailCodeType.AdIsNotReady)
            {
                Debug.Log("iv show failed - AdIsNotReady");
            }else if(code == (int)AdShowFailCodeType.AdIsReadyCannotShow)
            {
                Debug.Log("iv show failed - AdIsReadyCannotShow");
            }
            else
            {
                Debug.Log("iv show failed - AdShowFailReal");
            }
            Loom.QueueOnMainThread((pObj) =>
            {
                if (TKGSDKCallback.mInterAdCallback != null)
                {
                    TKGSDKCallback.mInterAdCallback.Invoke();
                }
            }, "");
        }
    }
    /// 
    /// RewardAd callback
    /// 
    public class AndroidRewardADTKGAdCallback : AndroidJavaProxy
    {
        public AndroidRewardADTKGAdCallback() : base("com.touka.tkg.idal.ITKGRewardADCallback") { }
        public void onClosed()
        {
            Debug.Log("AndroidRewardADTKGAdCallback onClosed");
        }
        public void onClicked()
        {
            Debug.Log("AndroidRewardADTKGAdCallback onClicked");
        }
        // click to skip ad
        public void onSkip()
        {
            Debug.Log("AndroidRewardADTKGAdCallback onSkip");
        }
        public void onLoaded()
        {
            Debug.Log("AndroidRewardADTKGAdCallback onLoaded");
        }
        public void onLoadFail(int code, string msg)
        {
            Debug.Log("AndroidRewardADTKGAdCallback onLoadFail, code : " + code + " , msg : " + msg);
        }
        public void onShow()
        {
            Debug.Log("AndroidRewardADTKGAdCallback onShow");
        }
        public void onShowFail(int code, string msg)
        {
            Debug.Log("AndroidRewardADTKGAdCallback onShowFail, code : " + code + " , msg : " + msg);
            Loom.QueueOnMainThread((pObj) =>
            {
                if (TKGSDKCallback.mRewardShowFailedCallback != null)
                {
                    TKGSDKCallback.mRewardShowFailedCallback.Invoke();
                }
            }, "");
        }
        /// 
        /// RewardAd give reward in this method
        ///
        /// when show rv succ, close rv must call back this, can use as iOS close callback
        /// 
        /// 
        /// 
        /// 
        public void onReward(string msg, int code, bool isReward)
        {
            Debug.Log("onReward, msg : " + msg + " , code : " + code + " , isReward : " + isReward);
            Loom.QueueOnMainThread((pObj) =>
            {
                if (isReward)
                {
                    if (TKGSDKCallback.mRewardCallback != null)
                    {
                        TKGSDKCallback.mRewardCallback.Invoke(true);
                    }
                }
                else
                {
                    if (TKGSDKCallback.mRewardCallback != null)
                    {
                        TKGSDKCallback.mRewardCallback.Invoke(false);
                    }
                }
            }, "");
        }
    }
    /// 
    /// bannerAd callback
    /// 
    public class AndroidBannerADTKGAdCallback : AndroidJavaProxy
    {
        public AndroidBannerADTKGAdCallback() : base("com.touka.tkg.idal.ITKGAdCallback") { }
        public void onClosed()
        {
            Debug.Log("onClosed");
        }
        public void onClicked()
        {
            Debug.Log("onClicked");
        }
        public void onSkip()
        {
            Debug.Log("onSkip");
        }
        public void onLoaded()
        {
            Debug.Log("onLoaded");
        }
        public void onLoadFail(int code, string msg)
        {
            Debug.Log("onLoadFail, code : " + code + " , msg : " + msg);
        }
        public void onShow()
        {
            Debug.Log("onShow");
        }
        public void onShowFail(int code, string msg)
        {
            Debug.Log("onShowFail, code : " + code + " , msg : " + msg);
        }
    }
    /*
    Loom.QueueOnMainThread((pObj) =>
    {
    
    }, "");
     */
}