99 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C#
		
	
	
	
| #if UNITY_ANDROID
 | |
| 
 | |
| using BigoAds.Scripts.Api;
 | |
| using BigoAds.Scripts.Common;
 | |
| using UnityEngine;
 | |
| using BigoAds.Scripts.Api.Constant;
 | |
| 
 | |
| namespace BigoAds.Scripts.Platforms.Android
 | |
| {
 | |
|     class BigoSdkClient : ISDK
 | |
|     {
 | |
|         private const string SDKClientClassName = AndroidPlatformTool.ClassPackage + ".BigoAdSdk";
 | |
|         private const string InitMethod = "initialize";
 | |
|         private const string InitSuccessMethod = "isInitialized";
 | |
|         private const string SDKVersionMethod = "getSDKVersion";
 | |
|         private const string InitListenerInterfaceName = AndroidPlatformTool.ClassPackage + ".BigoAdSdk$InitListener";
 | |
|         private const string ConsentOptionsClassName = AndroidPlatformTool.ClassPackage + ".ConsentOptions";
 | |
| 
 | |
| 
 | |
|         public void Init(BigoAdConfig config, BigoAdSdk.InitResultDelegate initResultDelegate)
 | |
|         {
 | |
|             InvokeNativeMethod(InitMethod, AndroidPlatformTool.GetGameActivity(),
 | |
|                 AndroidPlatformTool.GetBigoConfig(config),
 | |
|                 new InitCallBack(initResultDelegate));
 | |
|         }
 | |
| 
 | |
|         public bool IsInitSuccess()
 | |
|         {
 | |
|             return InvokeNativeMethod<bool>(InitSuccessMethod);
 | |
|         }
 | |
| 
 | |
|         public string GetSDKVersion()
 | |
|         {
 | |
|             return InvokeNativeMethod<string>("getSDKVersion");
 | |
|         }
 | |
| 
 | |
|         public string GetSDKVersionName()
 | |
|         {
 | |
|             return InvokeNativeMethod<string>("getSDKVersionName");
 | |
|         }
 | |
| 
 | |
|         public void SetUserConsent(ConsentOptions option, bool consent)
 | |
|         {
 | |
|             var clazz = new AndroidJavaClass(ConsentOptionsClassName);
 | |
|             AndroidJavaObject obj = null;
 | |
|             switch (option)
 | |
|             {
 | |
|                 case ConsentOptions.GDPR:
 | |
|                     obj = clazz.GetStatic<AndroidJavaObject>("GDPR");
 | |
|                     break;
 | |
|                 case ConsentOptions.CCPA:
 | |
|                     obj = clazz.GetStatic<AndroidJavaObject>("CCPA");
 | |
|                     break;
 | |
|                 case ConsentOptions.LGPD:
 | |
|                     obj = clazz.GetStatic<AndroidJavaObject>("LGPD");
 | |
|                     break;
 | |
|                 case ConsentOptions.COPPA:
 | |
|                     obj = clazz.GetStatic<AndroidJavaObject>("COPPA");
 | |
|                     break;
 | |
|                 default:
 | |
|                     break;
 | |
|             }
 | |
| 
 | |
|             InvokeNativeMethod("setUserConsent", AndroidPlatformTool.GetGameActivity(), obj, consent);
 | |
|         }
 | |
| 
 | |
|         public void AddExtraHost(string country, string host)
 | |
|         {
 | |
|             InvokeNativeMethod("addExtraHost", country, host);
 | |
|         }
 | |
| 
 | |
| 
 | |
|         private static void InvokeNativeMethod(string methodName, params object[] args)
 | |
|         {
 | |
|             new AndroidJavaClass(SDKClientClassName).CallStatic(methodName, args);
 | |
|         }
 | |
| 
 | |
|         private static T InvokeNativeMethod<T>(string methodName, params object[] args)
 | |
|         {
 | |
|             return new AndroidJavaClass(SDKClientClassName).CallStatic<T>(methodName, args);
 | |
|         }
 | |
| 
 | |
|         private class InitCallBack : AndroidJavaProxy
 | |
|         {
 | |
|             private event BigoAdSdk.InitResultDelegate InitListener;
 | |
| 
 | |
|             public InitCallBack(BigoAdSdk.InitResultDelegate initResultDelegate) : base(InitListenerInterfaceName)
 | |
|             {
 | |
|                 this.InitListener = initResultDelegate;
 | |
|             }
 | |
| 
 | |
|             public void onInitialized()
 | |
|             {
 | |
|                 InitListener?.Invoke();
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| }
 | |
| #endif |