2022-06-13 07:55:30 +00:00
#if UNITY_ANDROID
2022-08-30 02:21:29 +00:00
using System ;
2022-06-13 07:55:30 +00:00
using System.Collections ;
using System.Collections.Generic ;
2023-09-12 09:23:21 +00:00
using System.Linq ;
2022-06-13 07:55:30 +00:00
using UnityEngine ;
namespace Touka
{
/// <summary>
/// TKG Native SDK Android platform interface call
/// </summary>
public class TKGNativeInterfaceAndroid : TKGNativeInterface
{
private AndroidJavaObject jo ;
public TKGNativeInterfaceAndroid ( )
{
// java interface class
using ( AndroidJavaClass jc = new AndroidJavaClass ( "com.touka.tkg.TKGProxyJava" ) )
{
jo = jc . CallStatic < AndroidJavaObject > ( "getInstance" ) ;
}
}
private T SDKCall < T > ( string _method , params object [ ] _param )
{
try
{
return jo . Call < T > ( _method , _param ) ;
}
catch ( Exception e )
{
Debug . LogError ( e ) ;
}
2023-09-12 09:23:21 +00:00
2022-06-13 07:55:30 +00:00
return default ( T ) ;
}
private void SDKCall ( string _method , params object [ ] _param )
{
try
{
jo . Call ( _method , _param ) ;
}
catch ( Exception e )
{
Debug . LogError ( e ) ;
}
}
2023-09-12 09:23:21 +00:00
#region init
2022-06-13 07:55:30 +00:00
/// <summary>
/// init
/// </summary>
/// <param name="_initCallback"></param>
public override void Init ( Action _initCallback = null )
{
2022-08-30 02:21:29 +00:00
TKGDebugger . LogDebug ( "init ----- 00" ) ;
2022-06-13 07:55:30 +00:00
base . Init ( _initCallback ) ;
2022-08-30 02:21:29 +00:00
TKGDebugger . LogDebug ( "init ----- 01" ) ;
2022-06-13 07:55:30 +00:00
SetBannerAdCallback ( new AndroidBannerADTKGAdCallback ( ) ) ;
2022-08-30 02:21:29 +00:00
TKGDebugger . LogDebug ( "init ----- 01 ------- a" ) ;
2022-06-13 07:55:30 +00:00
setInterstitalAdCallback ( new AndroidInterADTKGAdCallback ( ) ) ;
2022-08-30 02:21:29 +00:00
TKGDebugger . LogDebug ( "init ----- 01 ------- b" ) ;
2022-06-13 07:55:30 +00:00
SetRewardAdCallback ( new AndroidRewardADTKGAdCallback ( ) ) ;
2022-08-30 02:21:29 +00:00
TKGDebugger . LogDebug ( "init ----- 01 ------- c" ) ;
SetSDKCommonCallback ( new AndroidTKGCommonCalllback ( ) ) ;
TKGDebugger . LogDebug ( "init ----- 01 ------- d" ) ;
2023-09-12 09:23:21 +00:00
SetSecondPurchaseCallback ( ) ;
SetAdsRevenueCallback ( ) ;
2022-06-13 07:55:30 +00:00
SDKCall ( "init" , new AndroidProxyCallback ( ) ) ;
2022-08-30 02:21:29 +00:00
TKGDebugger . LogDebug ( "init ----- 02" ) ;
2022-06-13 07:55:30 +00:00
}
2023-09-12 09:23:21 +00:00
private void SetSecondPurchaseCallback ( )
{
#if USE_IAP
SDKCall ( "setSecondPurchaseCallback" , new SecondPurchaseCallback ( ) ) ;
#endif
}
private void SetAdsRevenueCallback ( )
{
SDKCall ( "setAdsRevenueCallback" , new AdsRevenueCallback ( ) ) ;
}
#endregion
2022-06-13 07:55:30 +00:00
/// <summary>
/// Get Channel
/// </summary>
/// <returns></returns>
public override string GetChannel ( )
{
2022-08-30 02:21:29 +00:00
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
return SDKCall < string > ( "getChannel" ) ;
2022-08-30 02:21:29 +00:00
#endif
return "AndroidRoot" ;
2022-06-13 07:55:30 +00:00
}
2023-09-12 09:23:21 +00:00
#region Ads
2022-06-13 07:55:30 +00:00
2022-08-30 02:21:29 +00:00
public override void PurchasedRemoveAds ( )
{
#if UNITY_ANDROID
SDKCall ( "purchasedRemoveAds" ) ;
#endif
}
public override void SetUnitySDKVersion ( string sdkVersion )
{
#if UNITY_ANDROID
2023-09-12 09:23:21 +00:00
SDKCall ( "setUnitySDKVersion" , "UnitySDK" , sdkVersion ) ;
2022-08-30 02:21:29 +00:00
#endif
}
2023-09-12 09:23:21 +00:00
#region Ads Show
2022-06-13 07:55:30 +00:00
/// <summary>
/// Show banner Ad
/// </summary>
2022-08-30 02:21:29 +00:00
/// <param name="_bannerAlign">bannerAlign</param>
2023-09-12 09:23:21 +00:00
public override void showBannerAd ( TKGBannerAlign _pos )
2022-06-13 07:55:30 +00:00
{
2022-08-30 02:21:29 +00:00
int _posIndex = 2 ;
2023-09-12 09:23:21 +00:00
if ( _pos = = TKGBannerAlign . BannerCenterTopAlign )
2022-08-30 02:21:29 +00:00
{
_posIndex = 1 ;
}
2023-09-12 09:23:21 +00:00
else if ( _pos = = TKGBannerAlign . BannerCenterBottomAlign )
2022-08-30 02:21:29 +00:00
{
_posIndex = 2 ;
}
#if UNITY_ANDROID
SDKCall ( "showBannerAd" , _posIndex ) ;
#endif
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// Hide Banner Ad
/// </summary>
public override void hideBannerAd ( )
{
2022-08-30 02:21:29 +00:00
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall ( "hideBannerAd" ) ;
2022-08-30 02:21:29 +00:00
#endif
}
public override void RemoveNativeAd ( )
{
#if UNITY_ANDROID
SDKCall ( "hideNative" ) ;
#endif
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// Show Interstitial Ad
/// </summary>
public override void showInterstitialAd ( )
{
2022-08-30 02:21:29 +00:00
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall ( "showInterstitialAd" ) ;
2022-08-30 02:21:29 +00:00
#endif
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// Show Interstitial Ad
/// </summary>
/// <param name="_adPos"></param>
public override void showInterstitialAd ( string _adPos , IVADType _IvType = IVADType . IV1 )
{
2022-08-30 02:21:29 +00:00
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall ( "showInterstitialAd" , _adPos , ( int ) _IvType ) ;
2022-08-30 02:21:29 +00:00
#endif
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// Show Reward Ad
/// </summary>
/// <param name="_adPos"></param>
/// <param name="_itemCount"></param>
public override void showRewardAd ( string _adPos , int _itemCount = - 1 )
{
2022-08-30 02:21:29 +00:00
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall ( "showRewardAd" , _adPos , _itemCount ) ;
2022-08-30 02:21:29 +00:00
#endif
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// Show Reward Ad
/// </summary>
/// <param name="_adPos"></param>
/// <param name="_itemCount"></param>
/// <param name="_extraEvent"></param>
public override void showRewardAd ( string _adPos , int _itemCount , Dictionary < string , string > _extraEvent )
{
2022-08-30 02:21:29 +00:00
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall ( "showRewardAd" , _adPos , _itemCount , _extraEvent ) ;
2022-08-30 02:21:29 +00:00
#endif
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// Show Video Ad
/// </summary>
/// <param name="_adPos"></param>
/// <param name="_itemCount"></param>
public override void showVideoAd ( string _adPos , int _itemCount = - 1 )
{
2022-08-30 02:21:29 +00:00
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall ( "showVideoAd" , _adPos , _itemCount ) ;
2022-08-30 02:21:29 +00:00
#endif
2022-06-13 07:55:30 +00:00
}
2022-08-30 05:43:52 +00:00
public override void SetShowSDKToast ( bool _useSDKToast )
{
#if UNITY_ANDROID
2023-09-12 09:23:21 +00:00
SDKCall ( "setShowSDKRewardTips" , _useSDKToast ) ;
2022-08-30 05:43:52 +00:00
#endif
}
2022-08-30 02:21:29 +00:00
public override void ShowNativeAd ( RectTransform pRect , Camera pCam = null , string pAdPos = "" )
{
#if UNITY_ANDROID
Vector3 [ ] tWorldCorners = new Vector3 [ 4 ] ;
pRect . GetWorldCorners ( tWorldCorners ) ;
Vector2 tTopLeft = RectTransformUtility . WorldToScreenPoint ( pCam , tWorldCorners [ 1 ] ) ;
Vector2 tBottomRight = RectTransformUtility . WorldToScreenPoint ( pCam , tWorldCorners [ 3 ] ) ;
float tWidth = Mathf . Abs ( tBottomRight . x - tTopLeft . x ) ;
float tHeight = Mathf . Abs ( tBottomRight . y - tTopLeft . y ) ;
// x , y , width , height
// ((tTopLeft.x, Screen.height - tTopLeft.y, tWidth, tHeight)
2023-09-12 09:23:21 +00:00
SDKCall ( "showNative" , pAdPos , tTopLeft . x , Screen . height - tTopLeft . y , tWidth , tHeight ) ;
2022-08-30 02:21:29 +00:00
#endif
}
2023-09-12 09:23:21 +00:00
#endregion
2022-06-13 07:55:30 +00:00
2023-09-12 09:23:21 +00:00
#region Ads isready
2022-06-13 07:55:30 +00:00
/// <summary>
/// banner isReady
/// </summary>
/// <returns></returns>
public override bool isBannerAdReady ( )
{
2022-08-30 02:21:29 +00:00
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
bool isReady = SDKCall < bool > ( "isBannerAdReady" ) ;
return isReady ;
2022-08-30 02:21:29 +00:00
#else
return false ;
#endif
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// Interstitial isReady
/// </summary>
/// <returns></returns>
public override bool isInterstitialAdReady ( )
{
2022-08-30 02:21:29 +00:00
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
bool isReady = SDKCall < bool > ( "isInterstitialAdReady" ) ;
return isReady ;
2022-08-30 02:21:29 +00:00
#else
return false ;
#endif
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// Reward isReady
/// </summary>
/// <returns></returns>
public override bool isRewardAdReady ( )
{
2022-08-30 02:21:29 +00:00
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
bool isReady = SDKCall < bool > ( "isRewardAdReady" ) ;
return isReady ;
2022-08-30 02:21:29 +00:00
#else
return false ;
#endif
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// FullScreen isReady
/// </summary>
/// <returns></returns>
public override bool isVideoAdReady ( )
{
2022-08-30 02:21:29 +00:00
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
bool isReady = SDKCall < bool > ( "isVideoAdReady" ) ;
return isReady ;
2022-08-30 02:21:29 +00:00
#else
return false ;
#endif
}
public override bool IsReadyNativeAd ( )
{
#if UNITY_ANDROID
bool isReady = SDKCall < bool > ( "isNativeReady" ) ;
return isReady ;
#else
return false ;
#endif
2022-06-13 07:55:30 +00:00
}
2023-09-12 09:23:21 +00:00
#endregion
2022-06-13 07:55:30 +00:00
2023-09-12 09:23:21 +00:00
#region Set ads callback
2022-06-13 07:55:30 +00:00
/// <summary>
/// Set Banner Ad Callback
/// </summary>
/// <param name="_bannerCallback"></param>
public override void SetBannerAdCallback ( AndroidBannerADTKGAdCallback _bannerCallback )
{
2022-08-30 02:21:29 +00:00
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall ( "setBannerAdCallback" , _bannerCallback ) ;
2022-08-30 02:21:29 +00:00
#endif
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// Set Interstital Ad Callback
/// </summary>
/// <param name="_interCallback"></param>
public override void setInterstitalAdCallback ( AndroidInterADTKGAdCallback _interCallback )
{
2022-08-30 02:21:29 +00:00
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall ( "setInterstitalAdCallback" , _interCallback ) ;
2022-08-30 02:21:29 +00:00
#endif
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// Set reward Ad Callback
/// </summary>
/// <param name="_rewardCallback"></param>
public override void SetRewardAdCallback ( AndroidRewardADTKGAdCallback _rewardCallback )
{
2022-08-30 02:21:29 +00:00
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall ( "setRewardAdCallback" , _rewardCallback ) ;
2022-08-30 02:21:29 +00:00
#endif
2022-06-13 07:55:30 +00:00
}
2022-08-30 02:21:29 +00:00
2022-06-13 07:55:30 +00:00
/// <summary>
/// Set video Ad Callback(full screen ad, reward ad with no reward callback)
/// </summary>
/// <param name="_videoCallback"></param>
public override void setVideoAdCallback ( AndroidInterADTKGAdCallback _videoCallback )
{
2022-08-30 02:21:29 +00:00
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall ( "setVideoAdCallback" , _videoCallback ) ;
2022-08-30 02:21:29 +00:00
#endif
2022-06-13 07:55:30 +00:00
}
2023-09-12 09:23:21 +00:00
#endregion
2022-06-13 07:55:30 +00:00
2023-09-12 09:23:21 +00:00
#region load ads
2022-06-13 07:55:30 +00:00
/// <summary>
/// load interstitial ad
/// (retry 3 times, per time interval 10s)
/// </summary>
public override void loadInterstitialAD ( )
{
2022-08-30 02:21:29 +00:00
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall ( "loadInterstitialAD" ) ;
2022-08-30 02:21:29 +00:00
#endif
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// load reward ad
/// (retry 3 times, per time interval 10s)
/// </summary>
public override void loadRewardAD ( )
{
2022-08-30 02:21:29 +00:00
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall ( "loadRewardAD" ) ;
2022-08-30 02:21:29 +00:00
#endif
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// load video ad
/// (retry 3 times, per time interval 10s)
/// </summary>
public override void loadVideoAD ( )
{
2022-08-30 02:21:29 +00:00
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall ( "loadVideoAD" ) ;
2022-08-30 02:21:29 +00:00
#endif
2022-06-13 07:55:30 +00:00
}
2023-09-12 09:23:21 +00:00
#endregion
2022-06-13 07:55:30 +00:00
2023-09-12 09:23:21 +00:00
#endregion
2022-06-13 07:55:30 +00:00
2023-09-12 09:23:21 +00:00
#region Log Event
2022-06-13 07:55:30 +00:00
2023-09-12 09:23:21 +00:00
#region Normal
2022-06-13 07:55:30 +00:00
/// <summary>
/// onEvent
/// </summary>
/// <param name="_eventName"></param>
/// <returns></returns>
public override void onEvent ( string _eventName )
{
2022-08-30 02:21:29 +00:00
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall ( "onEvent" , _eventName ) ;
2022-08-30 02:21:29 +00:00
#endif
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// onEvent
/// </summary>
/// <param name="_eventName"></param>
/// <param name="_key01"></param>
/// <param name="_value01"></param>
/// <returns></returns>
public override void onEvent ( string _eventName , string _key01 , string _value01 )
{
2022-08-30 02:21:29 +00:00
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall ( "onEvent" , _eventName , _key01 , _value01 ) ;
2022-08-30 02:21:29 +00:00
#endif
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// onEvent
/// </summary>
/// <param name="_eventName"></param>
/// <param name="_key01"></param>
/// <param name="_value01"></param>
/// <param name="_key02"></param>
/// <param name="_value02"></param>
/// <returns></returns>
public override void onEvent ( string _eventName , string _key01 , string _value01 , string _key02 , string _value02 )
{
2022-08-30 02:21:29 +00:00
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall ( "onEvent" , _eventName , _key01 , _value01 , _key02 , _value02 ) ;
2022-08-30 02:21:29 +00:00
#endif
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// onEvent
/// </summary>
/// <param name="_eventName"></param>
/// <param name="_keyValues"></param>
public override void onEvent ( string _eventName , Dictionary < string , string > _keyValues )
{
2022-08-30 02:21:29 +00:00
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall ( "onEvent" , _eventName , Analytics . ToJavaHashMap ( _keyValues ) ) ;
2022-08-30 02:21:29 +00:00
#endif
2022-06-13 07:55:30 +00:00
}
2023-09-12 09:23:21 +00:00
#endregion
2022-06-13 07:55:30 +00:00
2023-09-12 09:23:21 +00:00
#region Level Event
2022-06-13 07:55:30 +00:00
/// <summary>
/// Level Start
/// </summary>
/// <param name="_levelId"></param>
public override void LevelStart ( string _levelId )
{
2022-08-30 02:21:29 +00:00
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall ( "levelStart" , _levelId ) ;
2022-08-30 02:21:29 +00:00
#endif
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// Level end
/// </summary>
/// <param name="_levelId"></param>
2022-08-30 02:21:29 +00:00
/// <param name="_stageResult"></param>
public override void LevelEnd ( string _levelId , StageResult _stageResult )
2022-06-13 07:55:30 +00:00
{
2022-08-30 02:21:29 +00:00
#if UNITY_ANDROID
SDKCall ( "levelEnd" , _levelId , ( int ) _stageResult ) ;
#endif
2022-06-13 07:55:30 +00:00
}
2023-09-12 09:23:21 +00:00
#endregion
2022-06-13 07:55:30 +00:00
2023-09-12 09:23:21 +00:00
#region Tracking Event
2022-06-13 07:55:30 +00:00
/// <summary>
/// Log Tracking Event
/// </summary>
/// <param name="_eventType"></param>
public override void LogTrackingEvent ( TrackingEventType _eventType )
{
2022-08-30 02:21:29 +00:00
#if UNITY_ANDROID
2022-06-13 07:55:30 +00:00
SDKCall ( "LogTrackingEvent" , ( int ) _eventType ) ;
2022-08-30 02:21:29 +00:00
#endif
2022-06-13 07:55:30 +00:00
}
2023-09-12 09:23:21 +00:00
#endregion
2022-06-13 07:55:30 +00:00
2023-09-12 09:23:21 +00:00
#endregion
2022-06-13 07:55:30 +00:00
2023-09-12 09:23:21 +00:00
#region Online Config
2022-06-13 07:55:30 +00:00
/// <summary>
/// get config - int
/// </summary>
/// <param name="_key"></param>
/// <returns></returns>
2022-08-30 02:21:29 +00:00
public override int GetConfigInt ( string _key , int _default )
2022-06-13 07:55:30 +00:00
{
2022-08-30 02:21:29 +00:00
TKGDebugger . LogDebug ( "int _key : " + _key + " , _default : " + _default ) ;
int newValue = SDKCall < int > ( "getConfigInt" , _key , _default ) ;
2022-06-13 07:55:30 +00:00
return newValue ;
}
/// <summary>
/// get config - string
/// </summary>
/// <param name="_key"></param>
/// <returns></returns>
2022-08-30 02:21:29 +00:00
public override string GetConfigString ( string _key , string _default )
2022-06-13 07:55:30 +00:00
{
2022-08-30 02:21:29 +00:00
TKGDebugger . LogDebug ( "string _key : " + _key + " , _default : " + _default ) ;
string newValue = SDKCall < string > ( "getConfigString" , _key , _default ) ;
2022-06-13 07:55:30 +00:00
return newValue ;
}
/// <summary>
/// get config - bool
/// </summary>
/// <param name="_key"></param>
/// <returns></returns>
2022-08-30 02:21:29 +00:00
public override bool GetConfigBool ( string _key , bool _default )
2022-06-13 07:55:30 +00:00
{
2022-08-30 02:21:29 +00:00
TKGDebugger . LogDebug ( "bool _key : " + _key + " , _default : " + _default ) ;
bool newValue = SDKCall < bool > ( "getConfigBool" , _key , _default ) ;
2022-06-13 07:55:30 +00:00
return newValue ;
}
2023-09-12 09:23:21 +00:00
#endregion
2022-08-30 02:21:29 +00:00
2023-09-12 09:23:21 +00:00
#region Others ( Common )
2022-06-13 07:55:30 +00:00
/// <summary>
/// review
/// </summary>
public override void Review ( )
{
SDKCall ( "review" ) ;
}
/// <summary>
/// open Privacy
/// </summary>
public override void OpenPrivacyURL ( )
{
SDKCall ( "openPrivacy" ) ;
}
/// <summary>
/// open agreement
/// </summary>
public override void OpenUserTermURL ( )
{
SDKCall ( "openAgreement" ) ;
}
/// <summary>
/// open policy pop
/// </summary>
public override void OpenPolicyPop ( )
{
SDKCall ( "openPrivacyDialog" ) ;
}
/// <summary>
/// More Games
/// </summary>
public override void OpenMoreGame ( )
{
SDKCall ( "moreGames" ) ;
}
2022-08-30 02:21:29 +00:00
/// <summary>
/// Set Log Enable
/// </summary>
/// <param name="_enable"></param>
public override void SetLogEnable ( bool _enable )
{
2022-08-30 05:43:52 +00:00
SDKCall ( "setEnableLog" , _enable ) ;
2022-08-30 02:21:29 +00:00
}
2022-06-13 07:55:30 +00:00
2023-09-12 09:23:21 +00:00
/// <summary>
/// get a iap product list for sdk config file
/// </summary>
public override Dictionary < string , string > GetIAPProductList ( )
{
Dictionary < string , string > dic = new Dictionary < string , string > ( ) ;
return dic ;
}
public override bool IsDebugMode ( )
{
return SDKCall < bool > ( "isDebugMode" ) ;
}
/// <summary>
/// get user name and user id card
/// </summary>
public override string GetUserNameAndUserIDCard ( )
{
return "0_0" ;
}
/// <summary>
/// set segment type to sdk
/// </summary>
/// <param name="type">segment type</param>
public override void SetSegment ( SegmentType type )
{
SDKCall ( "setSegment" , type . ToString ( ) ) ;
}
#endregion
#region Others ( Uncommon )
2022-06-13 07:55:30 +00:00
/// <summary>
/// shake(no repeat)
/// </summary>
/// <param name="_shakeTime"> shake time </param>
public override void shake ( int _shakeType , float _intensity = 1 )
{
long tShakeMS = _shakeType * _shakeType * 20 + ( int ) ( _intensity * ( _shakeType + 1 ) * 10 ) ;
SDKCall ( "shake" , tShakeMS ) ;
}
/// <summary>
/// shake(can repeat)
/// </summary>
/// <param name="_repeatTimes"> repeat times : -1 </param>
/// <param name="_shakeTime"> wait time, shake time( 100,1000,100,111) </param>
//public override void shake(int _repeatTimes, params int[] _shakeTime)
//{
// SDKCall("shake", _repeatTimes, _shakeTime);
//}
/// <summary>
/// cancel shake
/// </summary>
public override void cancelShake ( )
{
SDKCall ( "cancelShake" ) ;
}
/// <summary>
/// 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
/// </summary>
/// <param name="_titleStr"> title </param>
/// <param name="_contentStr"> content </param>
public override void dialogTips ( string _titleStr , string _contentStr = "" )
{
SDKCall ( "dialogTips" , _titleStr ) ;
}
/// <summary>
/// Open ULR by Browser
/// </summary>
/// <param name="_url"></param>
public override void openUrlBrowser ( string _url )
{
SDKCall ( "openUrlBrowser" , _url ) ;
}
/// <summary>
/// Open ULR By WEB POP
/// </summary>
/// <param name="_url"></param>
public override void openWebUrl ( string _url )
{
SDKCall ( "openWebUrl" , _url ) ;
}
/// <summary>
/// show Toast
/// </summary>
/// <param name="_content"></param>
public override void toast ( string _content )
{
2023-09-12 09:23:21 +00:00
SDKCall ( "dialogTips" , _content ) ;
2022-06-13 07:55:30 +00:00
}
/// <summary>
/// push message
/// </summary>
public override void pushMsg ( )
{
SDKCall ( "pushMsg" ) ;
}
2022-08-30 05:43:52 +00:00
// <summary>
/// share txt
/// </summary>
/// <param name="_shareTxt"></param>
public override void ShareTxt ( string _shareTxt )
{
SDKCall ( "localShareTxt" , _shareTxt ) ;
}
public override void RegistAPNS ( )
{
}
2023-09-12 09:23:21 +00:00
/// <summary>
/// show picture cross
/// </summary>
public override bool showPictureCross ( )
{
return SDKCall < bool > ( "showPictureCross" ) ;
}
/// <summary>
/// remove picture cross
/// </summary>
public override void removePictureCross ( )
{
SDKCall ( "removePictureCross" ) ;
}
/// <summary>
/// show more game icon
/// </summary>
public override bool showMoreGameIcon ( )
{
return SDKCall < bool > ( "showMoreGameIcon" ) ;
}
/// <summary>
/// remove more game icon
/// </summary>
public override void removeMoreGameIcon ( )
{
SDKCall ( "removeMoreGameIcon" ) ;
}
public override void RegistNotification ( string notiId , string body , string fireDate , int badge , string title ,
string subTitle )
2022-08-30 05:43:52 +00:00
{
2023-09-12 09:23:21 +00:00
SDKCall ( "registNotification" , notiId , body , fireDate , badge , title , subTitle ) ;
2022-08-30 05:43:52 +00:00
}
public override void RemoveNotification ( string notiId )
{
2023-09-12 09:23:21 +00:00
SDKCall ( "removeNotification" , notiId ) ;
2022-08-30 05:43:52 +00:00
}
public override void RemoveAllNotifications ( )
{
2023-09-12 09:23:21 +00:00
SDKCall ( "removeAllNotifications" ) ;
2022-08-30 05:43:52 +00:00
}
2023-09-12 09:23:21 +00:00
#endregion
2022-08-30 02:21:29 +00:00
2023-09-12 09:23:21 +00:00
#region 数 据 中 台
public override void LogPurchasePrice ( string price , string currency )
{
SDKCall ( "logPurchasePrice" , price , currency ) ;
}
public override void LogRobuxCashOut ( )
{
SDKCall ( "logRobuxCashOut" ) ;
}
public override void LogNoviceGuideFinish ( )
{
SDKCall ( "logNoviceGuideFinish" ) ;
}
#endregion
#region common callback
2022-06-13 07:55:30 +00:00
2022-08-30 02:21:29 +00:00
public override void SetSDKCommonCallback ( AndroidTKGCommonCalllback _commonCallback )
{
SDKCall ( "setTkgCallback" , _commonCallback ) ;
}
public override void SetUserSourceCallback ( AndroidTKGUserSourceCalllback _userSourceCallback )
{
SDKCall ( "getUserSource" , _userSourceCallback ) ;
}
2022-06-13 07:55:30 +00:00
2022-08-30 05:43:52 +00:00
public override void SetUserSourceCallback ( AndroidTKGUserSourceCalllbackWithCampaignName _userSourceCallback )
{
SDKCall ( "getUserSource" , _userSourceCallback ) ;
}
2023-09-12 09:23:21 +00:00
public override void SetFunctionSwitchCalllback ( List < FunctionType > _functionKeys ,
AndroidFunctionSwitchCalllback _functionSwitchCalllback )
{
string keys = "" ;
for ( int i = 0 ; i < _functionKeys . Count ; i + + )
{
FunctionType enumType = _functionKeys [ i ] ;
string enumTypeString = enumType . ToString ( ) ;
if ( keys ! = "" )
{
keys = keys + "@" ;
}
keys = keys + enumTypeString ;
}
SDKCall ( "setGameSwitchListener" , keys , _functionSwitchCalllback ) ;
}
public override bool GuidGpComment ( )
{
return SDKCall < bool > ( "guidGpComment" ) ;
}
#endregion
#region 用 户 登 录
public override void Login ( LoginType loginType ,
Action < LoginStatus , LoginType , string , string , string , string , string , string > _loginResultCallback = null )
{
TKGSDKCallback . mLoginCallback = _loginResultCallback ;
SDKCall ( "login" , ( int ) loginType , new AndroidLoginCalllback ( ) ) ;
}
public override void Logout ( Action _logoutCallback = null )
{
TKGSDKCallback . mLogoutCallback = _logoutCallback ;
SDKCall ( "logout" , new AndroidLoginCalllback ( ) ) ;
}
public override List < LoginType > AvailableLoginChannelList ( )
{
var availableLoginChannelList = SDKCall < int [ ] > ( "availableLoginChannelList" ) ;
return availableLoginChannelList . Select ( channel = > ( LoginType ) Enum . ToObject ( typeof ( LoginType ) , channel ) )
. ToList ( ) ;
}
public override void DeleteAccount ( Action < DeleteStatus , string > deleteAccountCallback = null )
{
TKGSDKCallback . mDeleteAccountCallback = deleteAccountCallback ;
SDKCall ( "deleteAccount" , new AndroidLoginCalllback ( ) ) ;
}
public override void BindAccount ( LoginType type , BindType isForce , string userId ,
Action < BindAccountStatus , LoginType , string , string , string , string , string , string , string [ ] >
bindAccountCallback )
{
TKGSDKCallback . mBindAccountCallback = bindAccountCallback ;
SDKCall ( "bindAccount" , ( int ) type , ( int ) isForce , userId , new AndroidLoginCalllback ( ) ) ;
}
public override void AutoLogin (
Action < LoginStatus , LoginType , string , string , string , string , string , string > loginResultCallback )
{
TKGSDKCallback . mAutoLoginCallback = loginResultCallback ;
SDKCall ( "autoLogin" , new AndroidLoginCalllback ( isAutoLogin : true ) ) ;
}
public override LoginType GetAccountType ( )
{
var userType = SDKCall < int > ( "getUserType" ) ;
return ( LoginType ) Enum . ToObject ( typeof ( LoginType ) , userType ) ;
}
public override bool IsCanAutoLogin ( )
{
return SDKCall < bool > ( "isCanAutoLogin" ) ;
}
#endregion
#region IAP Event
/// <summary>
/// Log IAP button show
/// </summary>
public override void LogIAPBtnShow ( string _productName , string _productID )
{
Dictionary < string , string > _keyValues = new Dictionary < string , string > ( ) ;
_keyValues . Add ( "IAP" , _productName ) ;
_keyValues . Add ( "ID" , _productID ) ;
//_keyValues.Add("Currency", _currency);
//_keyValues.Add("Price", _price);
onEvent ( "IAP_Button_Show" , _keyValues ) ;
}
/// <summary>
/// Log IAP button Click
/// </summary>
public override void LogIAPBtnClick ( string _productName , string _productID )
{
Dictionary < string , string > _keyValues = new Dictionary < string , string > ( ) ;
_keyValues . Add ( "IAP" , _productName ) ;
_keyValues . Add ( "ID" , _productID ) ;
//_keyValues.Add("Currency", _currency);
//_keyValues.Add("Price", _price);
onEvent ( "IAP_Button_Click" , _keyValues ) ;
}
/// <summary>
/// Log IAP First payment successful
/// </summary>
public override void LogIAPFirstPurchase ( string _iap , string _id , string _paymentChannelOrderid ,
string _currency , string _price )
{
// 放到native层实现了
//Dictionary<string, string> _keyValues = new Dictionary<string, string>();
//_keyValues.Add("IAP", _iap);
//_keyValues.Add("ID", _id);
//_keyValues.Add("Currency", _currency);
//_keyValues.Add("Price", _price);
//_keyValues.Add("order_id", _paymentChannelOrderid);
//onEvent("First_purchase", _keyValues);
}
/// <summary>
/// Log IAP payment successful
/// </summary>
public override void LogIAPSuccess ( string _iap , string _id , string _gameOrderid , string _paymentChannelOrderid ,
string _productToken , string _paymentMethod , string _currency , string _price )
{
// 放到native层实现了
//Dictionary<string, string> _keyValues = new Dictionary<string, string>();
//_keyValues.Add("IAP", _iap);
//_keyValues.Add("ID", _id);
//_keyValues.Add("Currency", _currency);
//_keyValues.Add("Price", _price);
//_keyValues.Add("order_id", _paymentChannelOrderid);
//onEvent("IAP_Success", _keyValues);
//SDKCall("logIAPSuccess", _price, _id, _gameOrderid, _paymentChannelOrderid, _productToken, _currency, _paymentMethod, _iap);
}
public override void SaveCloudArchiving ( string content , Action < int , string > callback )
{
void Action ( CommonCallbackCode code , string s )
{
if ( code = = CommonCallbackCode . SaveCloudArchiving_Succ | |
code = = CommonCallbackCode . SaveCloudArchiving_Fail )
{
callback . Invoke ( code = = CommonCallbackCode . SaveCloudArchiving_Succ ? 0 : - 1 , s ) ;
TKGSDKCallback . RemoveTKGCommonCallback ( Action ) ;
}
}
TKGSDKCallback . SetTKGCommonCallback ( Action ) ;
SDKCall ( "saveCloudArchiving" , content ) ;
}
public override void DetailCloudArchiving ( Action < int , string > callback )
{
void Action ( CommonCallbackCode code , string s )
{
if ( code = = CommonCallbackCode . DetailCloudArchiving_Succ | |
code = = CommonCallbackCode . DetailCloudArchiving_Fail )
{
callback . Invoke ( code = = CommonCallbackCode . DetailCloudArchiving_Succ ? 0 : - 1 , s ) ;
TKGSDKCallback . RemoveTKGCommonCallback ( Action ) ;
}
}
TKGSDKCallback . SetTKGCommonCallback ( Action ) ;
SDKCall ( "detailCloudArchiving" ) ;
}
#endregion
#region serve for wz
/// <summary>
/// Set userid and third account
/// </summary>
/// <param name="_userID"> userID (Unique user id)</param>
/// <param name="_thirdAccount">third account </param>
/// <param name="_thirdAccountType"> third account type </param>
public override void SetUserIDAndThirdAccount ( string _userID , string _thirdAccount ,
ThirdAccountType _thirdAccountType )
{
Debug . Log ( "【TKGNativeInterfaceAndroid】 SetUserIDAndThirdAccount _userID : " + _userID +
" , _thirdAccount : " + _thirdAccount + " , _thirdAccountType : " + _thirdAccountType ) ;
SDKCall ( "setUserIDAndThirdAccount" , _userID , _thirdAccount , _thirdAccountType . ToString ( ) ) ;
}
#endregion
#region client iap pay result
/// <summary>
/// Client IAP Success
/// </summary>
public override void ClientIAPSuccess ( string _productName , string _productID , string _purchaseOrderID ,
string _purchaseToken , string _currency , string _price , string _gameExtra )
{
SDKCall ( "ClientIAPSuccess" , _productName , _productID , _purchaseOrderID , _purchaseToken , _currency , _price ,
_gameExtra ) ;
}
/// <summary>
/// Client IAP Failed
/// </summary>
public override void ClientIAPFailed ( string _productName , string _productID , string _purchaseOrderID ,
string _purchaseToken , string _currency , string _price , string _gameExtra ,
IAPClientFailReasonType _failType )
{
SDKCall ( "ClientIAPFailed" , _productName , _productID , _purchaseOrderID , _purchaseToken , _currency , _price ,
_gameExtra , _failType . ToString ( ) ) ;
}
2022-06-13 07:55:30 +00:00
2023-09-12 09:23:21 +00:00
#endregion
2022-06-13 07:55:30 +00:00
}
}
#endif