using System; 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() { TKGDebugger.LogDebug("onInitSuccess in AndroidProxyCallback"); Loom.QueueOnMainThread((pObj) => { if (TKGSDKCallback.mInitCallback != null) { TKGSDKCallback.mInitCallback.Invoke(); TKGSDKCallback.mInitCallback = null; } }, ""); } // init fail callback public void onInitFail() { TKGDebugger.LogDebug("onInitFail"); Loom.QueueOnMainThread((pObj) => { if (TKGSDKCallback.mInitCallback != null) { TKGSDKCallback.mInitCallback.Invoke(); TKGSDKCallback.mInitCallback = null; } }, ""); } // game Activity disable callback public void onPause() { TKGDebugger.LogDebug("onPause"); Loom.QueueOnMainThread((pObj) => { if (TKGSDKCallback.mGameFocusCallback != null) { TKGSDKCallback.mGameFocusCallback.Invoke(false); } }, ""); } // game Activity visible callback public void onResume() { TKGDebugger.LogDebug("onResume"); Loom.QueueOnMainThread((pObj) => { if (TKGSDKCallback.mGameFocusCallback != null) { TKGSDKCallback.mGameFocusCallback.Invoke(true); } }, ""); } // pause callback, like stop sound public void pauseGame() { TKGDebugger.LogDebug("pauseGame"); Loom.QueueOnMainThread((pObj) => { if (TKGSDKCallback.mGameFocusCallback != null) { TKGSDKCallback.mGameFocusCallback.Invoke(false); } }, ""); } // result callback, like replay sound public void resumeGame() { TKGDebugger.LogDebug("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() { TKGDebugger.LogDebug("onClosed"); Loom.QueueOnMainThread((pObj) => { if (TKGSDKCallback.mInterAdCallback != null) { TKGSDKCallback.mInterAdCallback.Invoke(); TKGSDKCallback.mInterAdCallback = null; } }, ""); } public void onClicked() { TKGDebugger.LogDebug("onClicked"); } // click to skip ad public void onSkip() { TKGDebugger.LogDebug("onSkip"); } public void onLoaded() { TKGDebugger.LogDebug("onLoaded"); } public void onLoadFail(int code, string msg) { TKGDebugger.LogDebug("onLoadFail"); } public void onShow() { TKGDebugger.LogDebug("onShow"); } public void onShowFail(int code, string msg) { TKGDebugger.LogDebug("onShowFail"); if (code == (int)AdShowFailCodeType.AdIsNotReady) { TKGDebugger.LogDebug("iv show failed - AdIsNotReady"); } else if (code == (int)AdShowFailCodeType.AdIsReadyCannotShow) { TKGDebugger.LogDebug("iv show failed - AdIsReadyCannotShow"); } else { TKGDebugger.LogDebug("iv show failed - AdShowFailReal"); } Loom.QueueOnMainThread((pObj) => { if (TKGSDKCallback.mInterAdCallback != null) { TKGSDKCallback.mInterAdCallback.Invoke(); TKGSDKCallback.mInterAdCallback = null; } }, ""); } } /// /// RewardAd callback /// public class AndroidRewardADTKGAdCallback : AndroidJavaProxy { public AndroidRewardADTKGAdCallback() : base("com.touka.tkg.idal.ITKGRewardADCallback") { } public void onClosed() { TKGDebugger.LogDebug("AndroidRewardADTKGAdCallback onClosed"); } public void onClicked() { TKGDebugger.LogDebug("AndroidRewardADTKGAdCallback onClicked"); Loom.QueueOnMainThread((pObj) => { if (TKGSDKCallback.mRewardClickCallback != null) { TKGSDKCallback.mRewardClickCallback.Invoke(); } }, ""); } // click to skip ad public void onSkip() { TKGDebugger.LogDebug("AndroidRewardADTKGAdCallback onSkip"); } public void onLoaded() { TKGDebugger.LogDebug("AndroidRewardADTKGAdCallback onLoaded"); } public void onLoadFail(int code, string msg) { TKGDebugger.LogDebug("AndroidRewardADTKGAdCallback onLoadFail, code : " + code + " , msg : " + msg); } public void onShow() { TKGDebugger.LogDebug("AndroidRewardADTKGAdCallback onShow"); } public void onShowFail(int code, string msg) { TKGDebugger.LogDebug("AndroidRewardADTKGAdCallback onShowFail, code : " + code + " , msg : " + msg); Loom.QueueOnMainThread((pObj) => { if (TKGSDKCallback.mRewardShowFailedCallback != null) { TKGSDKCallback.mRewardShowFailedCallback.Invoke(); TKGSDKCallback.mRewardShowFailedCallback = null; } }, ""); } /// /// 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) { TKGDebugger.LogDebug("onReward, msg : " + msg + " , code : " + code + " , isReward : " + isReward); Loom.QueueOnMainThread((pObj) => { if (isReward) { if (TKGSDKCallback.mRewardCallback != null) { TKGSDKCallback.mRewardCallback.Invoke(true); TKGSDKCallback.mRewardCallback = null; } } else { if (TKGSDKCallback.mRewardCallback != null) { TKGSDKCallback.mRewardCallback.Invoke(false); TKGSDKCallback.mRewardCallback = null; } } }, ""); } } /// /// bannerAd callback /// public class AndroidBannerADTKGAdCallback : AndroidJavaProxy { public AndroidBannerADTKGAdCallback() : base("com.touka.tkg.idal.ITKGAdCallback") { } public void onClosed() { TKGDebugger.LogDebug("onClosed"); } public void onClicked() { TKGDebugger.LogDebug("onClicked"); } public void onSkip() { TKGDebugger.LogDebug("onSkip"); } public void onLoaded() { TKGDebugger.LogDebug("onLoaded"); } public void onLoadFail(int code, string msg) { TKGDebugger.LogDebug("onLoadFail, code : " + code + " , msg : " + msg); } public void onShow() { TKGDebugger.LogDebug("onShow"); } public void onShowFail(int code, string msg) { TKGDebugger.LogDebug("onShowFail, code : " + code + " , msg : " + msg); } } /// /// tkg callback /// public class AndroidTKGCommonCalllback : AndroidJavaProxy { public AndroidTKGCommonCalllback() : base("com.touka.tkg.idal.TKGCalllback") { } public void onCall(int _code, string _msg) { TKGDebugger.LogDebug("TKGCallback onCall, code : " + _code + " , msg : " + _msg); Loom.QueueOnMainThread(pObj => { if (TKGSDKCallback.mTKGCommonCallback == null) return; TKGSDKCallback.mTKGCommonCallback.Invoke((CommonCallbackCode)_code, _msg); TKGSDKCallback.mTKGCommonCallback = null; }, ""); } } /// /// tkg callback /// public class AndroidTKGUserSourceCalllback : AndroidJavaProxy { public AndroidTKGUserSourceCalllback() : base("com.touka.tkg.idal.UserSourceCallback") { } public void onResult(bool _isOrganic, string _userSource) { TKGDebugger.LogDebug("TKGCallback onCall, isOrganic : " + _isOrganic + " , userSource : " + _userSource); Loom.QueueOnMainThread((pObj) => { if (TKGSDKCallback.mTKGUserSourceCallback != null) { TKGSDKCallback.mTKGUserSourceCallback.Invoke(_isOrganic, _userSource); TKGSDKCallback.mTKGUserSourceCallback = null; } }, ""); } } /// /// tkg callback /// public class AndroidTKGUserSourceCalllbackWithCampaignName : AndroidJavaProxy { public AndroidTKGUserSourceCalllbackWithCampaignName() : base("com.touka.tkg.idal.UserSourceCallbackWithType") { } public void onResult(bool _isOrganic, string _userSource, string campaignName) { TKGDebugger.LogDebug("TKGCallback onCall, isOrganic : " + _isOrganic + " , userSource : " + _userSource + " , campaignName : " + campaignName); Loom.QueueOnMainThread(_ => { if (TKGSDKCallback.mTKGUserSourceCallbackWithCampaignName == null) return; TKGSDKCallback.mTKGUserSourceCallbackWithCampaignName.Invoke(_isOrganic, _userSource, campaignName); TKGSDKCallback.mTKGUserSourceCallbackWithCampaignName = null; }, ""); } } /// /// FunctionSwitchCalllback /// public class AndroidFunctionSwitchCalllback : AndroidJavaProxy { public AndroidFunctionSwitchCalllback() : base("com.touka.tkg.idal.GameFunctionSwitchCallback") { } public void onFunctionSwitchResult(string _functionKey, bool _functionSwitch) { FunctionType enumType = (FunctionType)Enum.Parse(typeof(FunctionType), _functionKey); if (TKGSDKCallback.mFunctionSwitchCalllback != null) { Loom.QueueOnMainThread( _ => { TKGSDKCallback.mFunctionSwitchCalllback?.Invoke(enumType, _functionSwitch); }, ""); } } } /// /// FunctionSwitchCalllback /// public class AndroidLoginCalllback : AndroidJavaProxy { private bool _isAutoLogin; public AndroidLoginCalllback(bool isAutoLogin = false) : base("com.touka.tkg.idal.ITKGLoginCallback") { _isAutoLogin = isAutoLogin; } public void onLoginResult(int _code, string _msg, int _loginType, string _userId, string _token, string _email, string _displayName, string _photoUrl) { TKGDebugger.LogDebug("AndroidLoginCalllback onLoginResult, code : " + _code + " , msg : " + _msg + " , _loginType : " + _loginType + " , _userId : " + _userId + " , _token : " + _token + " , _email : " + _email + " , _displayName : " + _displayName + " , _photoUrl : " + _photoUrl ); TKGDebugger.LogDebug($"is auto login {_isAutoLogin}"); LoginStatus loginStatusEnum = (LoginStatus)Enum.ToObject(typeof(LoginStatus), _code); LoginType loginTypeEnum = (LoginType)Enum.ToObject(typeof(LoginType), _loginType); Loom.QueueOnMainThread(pObj => { if (_isAutoLogin) { TKGSDKCallback.mAutoLoginCallback?.Invoke(loginStatusEnum, loginTypeEnum, _msg, _userId, _token, _email, _displayName, _photoUrl); } else { TKGSDKCallback.mLoginCallback?.Invoke(loginStatusEnum, loginTypeEnum, _msg, _userId, _token, _email, _displayName, _photoUrl); } }, ""); } public void onLogout() { if (null != TKGSDKCallback.mLogoutCallback) { Loom.QueueOnMainThread(pObj => { TKGSDKCallback.mLogoutCallback?.Invoke(); }, ""); } } public void onDeleteAccount(int code, string userId) { if (null == TKGSDKCallback.mDeleteAccountCallback) return; var codeType = (DeleteStatus)Enum.ToObject(typeof(DeleteStatus), code); Loom.QueueOnMainThread(pObj => { TKGSDKCallback.mDeleteAccountCallback?.Invoke(codeType, userId); }, ""); } public void onBindAccount(int _code, string _msg, int _loginType, string _userId, string _token, string _email, string _displayName, string _photoUrl, string userIds) { TKGDebugger.LogDebug("AndroidLoginCalllback onBindAccount, code : " + _code + " , msg : " + _msg + " , _loginType : " + _loginType + " , _userId : " + _userId + " , _token : " + _token + " , _email : " + _email + " , _displayName : " + _displayName + " , _photoUrl : " + _photoUrl + " , userIds : " + userIds ); if (null == TKGSDKCallback.mBindAccountCallback) return; var bindAccountStatusEnum = (BindAccountStatus)Enum.ToObject(typeof(BindAccountStatus), _code); var loginTypeEnum = (LoginType)Enum.ToObject(typeof(LoginType), _loginType); var userIdList = userIds.Split(','); Loom.QueueOnMainThread(pObj => { TKGSDKCallback.mBindAccountCallback?.Invoke(bindAccountStatusEnum, loginTypeEnum, _msg, _userId, _token, _email, _displayName, _photoUrl, userIdList); }, ""); } } /// /// FunctionSwitchCalllback /// public class AdsRevenueCallback : AndroidJavaProxy { public AdsRevenueCallback() : base("com.touka.tkg.idal.IAdsRevenueCallback") { } public void revenueHandle(string _adsType, string _price, string _currnecy) { // FunctionType enumType = (AdsType)Enum.Parse(typeof(AdsType), _adsType); if (TKGSDKCallback.mAdsRevenueCallback != null) { AdsType adsType = AdsType.None; switch (_adsType) { case "1": adsType = AdsType.Splash; break; case "2": adsType = AdsType.Banner; break; case "3": adsType = AdsType.IV; break; case "4": adsType = AdsType.RV; break; case "5": adsType = AdsType.Native; break; } Loom.QueueOnMainThread( _ => { TKGSDKCallback.mAdsRevenueCallback?.Invoke(adsType, _price, _currnecy); }, ""); } } } /// /// FunctionSwitchCalllback /// public class SecondPurchaseCallback : AndroidJavaProxy { public SecondPurchaseCallback() : base("com.touka.tkg.idal.ISecondPurchaseCallback") { } public void onResult(string _orderID,string _poductName, string _productID, bool _result, string _gameExtraParam) { // FunctionType enumType = (AdsType)Enum.Parse(typeof(AdsType), _adsType); if (TKGSDKCallback.mSecondPurchaseCallback != null) { Loom.QueueOnMainThread( _ => { TKGSDKCallback.mSecondPurchaseCallback?.Invoke(_orderID, _poductName, _productID, _result, _gameExtraParam); }, ""); } } } /* Loom.QueueOnMainThread((pObj) => { }, ""); */ }