using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
namespace Touka
{
///
/// TKG Native SDK Default platform interface call
///
public class TKGNativeInterfaceDefault : TKGNativeInterface
{
public override void Init(Action _initCallback = null)
{
_initCallback?.Invoke();
}
public override void SetUnitySDKVersion(string sdkVersion)
{
}
///
/// Get Channel
///
///
public override string GetChannel()
{
return "";
}
///
/// Set Log Enable
///
///
public override void SetLogEnable(bool _enable)
{
}
#region Ads
public override void PurchasedRemoveAds()
{
}
#region Ads Show
///
/// Show banner Ad
///
/// bannerAlign
public override void showBannerAd(TKGBannerAlign _pos)
{
}
///
/// Hide Banner Ad
///
public override void hideBannerAd()
{
}
///
/// Show Interstitial Ad
///
public override void showInterstitialAd()
{
}
///
/// Show Interstitial Ad
///
public override void showInterstitialAd(string _adPos, IVADType _IvType = IVADType.IV1)
{
}
///
/// Show Reward Ad
///
public override void showRewardAd(string _adPos, int _itemCount = -1)
{
}
///
/// Show Reward Ad
///
///
///
///
public override void showRewardAd(string _adPos, int _itemCount, Dictionary _extraEvent)
{
}
///
/// Show FullScreen Ad(is RV without reward callback)
///
public override void showVideoAd(string _adPos, int _itemCount = -1)
{
}
#endregion
#region Ads isready
///
/// banner isReady
///
///
public override bool isBannerAdReady()
{
return false;
}
///
/// Interstitial isReady
///
///
public override bool isInterstitialAdReady()
{
return false;
}
///
/// Reward isReady
///
///
public override bool isRewardAdReady()
{
return false;
}
///
/// FullScreen isReady
///
///
public override bool isVideoAdReady()
{
return false;
}
#endregion
#region Set callback
///
/// Set Banner Ad Callback
///
///
public override void SetBannerAdCallback(AndroidBannerADTKGAdCallback _bannerCallback)
{
}
///
/// Set reward video click Callback
///
///
public override void SetRewardClickListener(Action _rewardClickAction)
{
}
///
/// Set game focus Callback
///
///
public override void SetGameFocusListener(Action _gameFocusAction)
{
}
///
/// Set Interstital Ad Callback
///
///
public override void setInterstitalAdCallback(AndroidInterADTKGAdCallback _interCallback)
{
}
///
/// Set reward Ad Callback
///
///
public override void SetRewardAdCallback(AndroidRewardADTKGAdCallback _rewardCallback)
{
}
///
/// Set video Ad Callback(full screen ad, reward ad with no reward callback)
///
///
public override void setVideoAdCallback(AndroidInterADTKGAdCallback _videoCallback)
{
}
#endregion
#region load ads
///
/// load interstitial ad
/// (retry 3 times, per time interval 10s)
///
public override void loadInterstitialAD()
{
}
///
/// load reward ad
/// (retry 3 times, per time interval 10s)
///
public override void loadRewardAD()
{
}
///
/// load video ad
/// (retry 3 times, per time interval 10s)
///
public override void loadVideoAD()
{
}
#endregion
#endregion
#region Log Event
///
/// onEvent
///
///
///
public override void onEvent(string _eventName)
{
}
///
/// onEvent
///
///
///
///
///
public override void onEvent(string _eventName, string _key01, string _value01)
{
}
///
/// onEvent
///
///
///
///
///
///
///
public override void onEvent(string _eventName, string _key01, string _value01, string _key02, string _value02)
{
}
///
/// onEvent
///
///
///
public override void onEvent(string _eventName, Dictionary _keyValues)
{
}
#region Level Event
///
/// Level Start
///
///
public override void LevelStart(string _levelId)
{
}
///
/// Level end
///
///
///
public override void LevelEnd(string _levelId, StageResult _stageResult)
{
}
#endregion
#region Tracking Event
///
/// Log Tracking Event
///
///
public override void LogTrackingEvent(TrackingEventType _eventType)
{
}
#endregion
#endregion
#region Online Config
///
/// get config - int
///
///
///
public override int GetConfigInt(string _key, int _default)
{
return _default;
}
///
/// get config - string
///
///
///
public override string GetConfigString(string _key, string _default)
{
return _default;
}
///
/// get config - bool
///
///
///
public override bool GetConfigBool(string _key, bool _default)
{
return default;
}
#endregion
#region Others (Common)
///
/// review
///
public override void Review()
{
}
///
/// open Privacy
///
public override void OpenPrivacyURL()
{
}
///
/// open agreement
///
public override void OpenUserTermURL()
{
}
///
/// open policy pop
///
public override void OpenPolicyPop()
{
}
///
/// More Games
///
public override void OpenMoreGame()
{
}
#endregion
#region Others (Uncommon)
///
/// shake(no repeat)
///
/// shake time
public override void shake(int _shakeType, float _intensity = 1)
{
}
///
/// show picture cross
///
public override bool showPictureCross()
{
return false;
}
///
/// remove picture cross
///
public override void removePictureCross()
{
}
///
/// show more game icon
///
public override bool showMoreGameIcon()
{
return false;
}
///
/// remove more game icon
///
public override void removeMoreGameIcon()
{
}
///
/// shake(can repeat)
///
/// repeat times : -1
/// wait time,shake time(100,1000,100,111)
//public override void shake(int _repeatTimes, params int[] _shakeTime)
//{
//}
///
/// cancel shake
///
public override void cancelShake()
{
}
///
/// Show Tips
/// Pop-up prompt (the one with black transparent background) unified style, Chinese, Japanese, Korean and English, support multi-language, multi-language text
///
/// game judges different languages by itself and passes different strings
///
/// title
/// content
public override void dialogTips(string _titleStr, string _contentStr)
{
}
///
/// Open ULR by Browser
///
///
public override void openUrlBrowser(string _url)
{
}
///
/// Open ULR By WEB POP
///
///
public override void openWebUrl(string _url)
{
}
///
/// show Toast
///
///
public override void toast(string _content)
{
}
///
/// push message
///
public override void pushMsg()
{
}
#endregion
#region common callback
public override void SetSDKCommonCallback(AndroidTKGCommonCalllback _commonCallback)
{
}
public override void SetUserSourceCallback(AndroidTKGUserSourceCalllback _userSourceCallback)
{
}
public override void SetUserSourceCallback(AndroidTKGUserSourceCalllbackWithCampaignName _userSourceCallback)
{
}
///
/// get a iap product list for sdk config file
///
public override Dictionary GetIAPProductList()
{
return new Dictionary();
}
public override void RemoveNativeAd()
{
}
///
/// set segment type to sdk
///
/// segment type
public override void SetSegment(SegmentType type)
{
}
public override bool IsDebugMode()
{
return false;
}
///
/// get user name and user id card
///
public override string GetUserNameAndUserIDCard()
{
return "0_0";
}
public override bool IsReadyNativeAd()
{
return false;
}
public override void ShowNativeAd(RectTransform pRect, Camera pCam = null, string pAdPos = "")
{
}
public override void ShareTxt(string _shareTxt)
{
}
public override void RegistAPNS()
{
}
public override void RegistNotification(string notiId, string body, string fireDate, int badge, string title,
string subTitle)
{
}
public override void RemoveNotification(string notiId)
{
}
public override void RemoveAllNotifications()
{
}
public override void SetShowSDKToast(bool _useSDKToast)
{
}
public override void SetFunctionSwitchCalllback(List _functionKeys,
AndroidFunctionSwitchCalllback _functionSwitchCalllback)
{
}
#endregion
#region 数据中台
public override void LogPurchasePrice(string price,string currency)
{
}
public override void LogRobuxCashOut()
{
}
public override void LogNoviceGuideFinish()
{
}
public override bool GuidGpComment()
{
return true;
}
#endregion
#region 用户登录
public override void Login(LoginType loginType,
Action loginResultCallback = null)
{
Server.Instance.Login(loginType, (status, msg, loginInfo) =>
{
PlayerPrefs.SetInt("last_login_type", (int)loginType);
var loginStatus = status == 0 ? LoginStatus.LOGIN_STATUS_SUCC : LoginStatus.LOGIN_STATUS_FAILED;
var loginTypeEnum = (LoginType)Enum.ToObject(typeof(LoginType), loginInfo.user_type);
PlayerPrefs.SetString("user_id", loginInfo.user_id);
PlayerPrefs.SetString("token", loginInfo.token);
PlayerPrefs.SetInt("user_type", loginInfo.user_type);
loginResultCallback?.Invoke(loginStatus, loginTypeEnum, msg, loginInfo.user_id, loginInfo.token, "", "",
"");
});
}
public override void Logout(Action _logoutCallback = null)
{
PlayerPrefs.DeleteKey("last_login_type");
PlayerPrefs.DeleteKey("user_id");
PlayerPrefs.DeleteKey("user_type");
PlayerPrefs.DeleteKey("token");
_logoutCallback?.Invoke();
}
public override List AvailableLoginChannelList()
{
var loginChannels = PlayerPrefs.GetString("loginChannels", "" + (int)LoginType.LOGIN_BY_GUESTER);
return loginChannels.Split(',')
.Select(channel => (LoginType)Enum.ToObject(typeof(LoginType), int.Parse(channel))).ToList();
}
public override void DeleteAccount(Action deleteAccountCallback = null)
{
Server.Instance.DeleteAccount(PlayerPrefs.GetString("user_id"), (code, msg) =>
{
// 退出账号
Logout();
deleteAccountCallback?.Invoke(
code == 0 ? DeleteStatus.DELETE_ACCOUNT_SUCC : DeleteStatus.DELETE_ACCOUNT_FAILED, msg);
});
}
public override void BindAccount(LoginType type, BindType isForce, string userId,
Action
bindAccountCallback)
{
var thirdUserId = "";
switch (type)
{
case LoginType.LOGIN_BY_GOOGLE:
thirdUserId = PlayerPrefs.GetString("google_user_id");
break;
case LoginType.LOGIN_BY_FACEBOOK:
thirdUserId = PlayerPrefs.GetString("facebook_user_id");
break;
}
if (isForce == BindType.NO_FORCE)
{
userId = PlayerPrefs.GetString("user_id");
}
Server.Instance.Bind(type, isForce, thirdUserId, userId, (status, msg, data) =>
{
if (status != 0)
{
bindAccountCallback.Invoke(BindAccountStatus.BIND_CODE_FAILED, type, msg, data.user_id, data.token,
"", "", "", data.user_ids);
return;
}
if (data.user_ids != null && data.user_ids.Length == 2)
{
// (status, loginTYpe, msg, userId, token, email, displayName, photoUrl, userIdList)
bindAccountCallback.Invoke(BindAccountStatus.BIND_CODE_SELECT, type, msg, data.user_id, data.token,
"", "", "", data.user_ids);
}
else
{
PlayerPrefs.SetString("user_id", data.user_id);
PlayerPrefs.SetString("token", data.token);
PlayerPrefs.SetInt("user_type", (int)type);
bindAccountCallback.Invoke(BindAccountStatus.BIND_CODE_SUCC, type, msg, data.user_id, data.token,
"", "", "", data.user_ids);
}
});
}
public override void AutoLogin(
Action loginResultCallback)
{
if (!IsCanAutoLogin())
{
loginResultCallback?.Invoke(LoginStatus.LOGIN_STATUS_NO_CACHE, LoginType.LOGIN_BY_AUTO,
"not cache login", "", "", "", "", "");
}
else
{
var lastLoginType = PlayerPrefs.GetInt("last_login_type");
Login((LoginType)Enum.ToObject(typeof(LoginType), lastLoginType), loginResultCallback);
}
}
public override LoginType GetAccountType()
{
var userType = PlayerPrefs.GetInt("user_type");
return (LoginType)Enum.ToObject(typeof(LoginType), userType);
}
public override bool IsCanAutoLogin()
{
return PlayerPrefs.HasKey("last_login_type");
}
#endregion
#region IAP Event
///
/// Log IAP button show
///
public override void LogIAPBtnShow(string _productName, string _productID)
{
}
///
/// Log IAP button Click
///
public override void LogIAPBtnClick(string _productName, string _productID)
{
}
///
/// Log IAP First payment successful
///
public override void LogIAPFirstPurchase(string _iap, string _id, string _paymentChannelOrderid, string _currency, string _price)
{
}
///
/// Log IAP payment successful
///
public override void LogIAPSuccess(string _iap, string _id, string _gameOrderid, string _paymentChannelOrderid,
string _productToken, string _paymentMethod, string _currency, string _price)
{
}
public override void SaveCloudArchiving(string content, Action callback)
{
var userId = PlayerPrefs.GetString("user_id");
var token = PlayerPrefs.GetString("token");
Server.Instance.SaveCloudArchiving(userId, token, content, callback);
}
public override void DetailCloudArchiving(Action callback)
{
var userId = PlayerPrefs.GetString("user_id");
var token = PlayerPrefs.GetString("token");
Server.Instance.DetailCloudArchiving(userId, token,
(code, msg, content) => { callback.Invoke(code, code == 0 ? content : msg); });
}
#endregion
#region
///
/// Set userid and third account
///
/// userID (Unique user id)
/// third account
/// third account type
public override void SetUserIDAndThirdAccount(string _userID, string _thirdAccount, ThirdAccountType _thirdAccountType)
{
Debug.Log("【TKGNativeInterfaceDefault】 SetUserIDAndThirdAccount _userID : " + _userID + " , _thirdAccount : " + _thirdAccount + " , _thirdAccountType : " + _thirdAccountType);
}
#endregion
#region client iap pay result
///
/// Client IAP Success
///
public override void ClientIAPSuccess(string _productName, string _productID, string _purchaseOrderID, string _purchaseToken, string _currency, string _price, string _gameExtra)
{
// todo 直接回调支付成功
TKGSDKCallback.mSecondPurchaseCallback?.Invoke(_purchaseOrderID,_productName, _productID, true, _gameExtra);
}
///
/// Client IAP Failed
///
public override void ClientIAPFailed(string _productName, string _productID, string _purchaseOrderID, string _purchaseToken, string _currency, string _price, string _gameExtra, IAPClientFailReasonType _failType)
{
// todo 直接回调支付失败
TKGSDKCallback.mSecondPurchaseCallback?.Invoke(_purchaseOrderID, _productName, _productID, false, _gameExtra);
}
#endregion
}
}