101 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			101 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			C#
		
	
	
	
| 
								 | 
							
								#if UNITY_ANDROID
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								using System;
							 | 
						||
| 
								 | 
							
								using System.Collections.Generic;
							 | 
						||
| 
								 | 
							
								using System.Text;
							 | 
						||
| 
								 | 
							
								using BigoAds.Scripts.Api;
							 | 
						||
| 
								 | 
							
								using BigoAds.Scripts.Api.Constant;
							 | 
						||
| 
								 | 
							
								using UnityEngine;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace BigoAds.Scripts.Platforms.Android
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    internal static class AndroidPlatformTool
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        public const string ClassPackage = "sg.bigo.ads";
							 | 
						||
| 
								 | 
							
								        private const string UnityPlayerClassName = "com.unity3d.player.UnityPlayer";
							 | 
						||
| 
								 | 
							
								        private const string CurrentActivityMethod = "currentActivity";
							 | 
						||
| 
								 | 
							
								        private const string ResourceUtilClassName = ClassPackage + ".ResourceUtil";
							 | 
						||
| 
								 | 
							
								        private const string AdConfigClassName = ClassPackage + ".api.AdConfig$Builder";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        public static AndroidJavaObject GetGameActivity()
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            return new AndroidJavaClass(UnityPlayerClassName).GetStatic<AndroidJavaObject>(CurrentActivityMethod);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        public static AndroidJavaObject GetBigoConfig(BigoAdConfig config)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            var builder = new AndroidJavaObject(AdConfigClassName);
							 | 
						||
| 
								 | 
							
								            if (config != null)
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                void CallNativeFunction<T>(string methodName, T arg)
							 | 
						||
| 
								 | 
							
								                {
							 | 
						||
| 
								 | 
							
								                    builder.Call<AndroidJavaObject>(methodName, arg);
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                if (!string.IsNullOrEmpty(config.AppId))
							 | 
						||
| 
								 | 
							
								                {
							 | 
						||
| 
								 | 
							
								                    CallNativeFunction("setAppId", config.AppId);
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                if (config.DebugLog) //default value is false
							 | 
						||
| 
								 | 
							
								                {
							 | 
						||
| 
								 | 
							
								                    Debug.Log("set debug true");
							 | 
						||
| 
								 | 
							
								                    CallNativeFunction("setDebug", true);
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                if (!string.IsNullOrEmpty(config.Channel))
							 | 
						||
| 
								 | 
							
								                {
							 | 
						||
| 
								 | 
							
								                    CallNativeFunction("setChannel", config.Channel);
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                if (config.Age > 0)
							 | 
						||
| 
								 | 
							
								                {
							 | 
						||
| 
								 | 
							
								                    CallNativeFunction("setAge", config.Age);
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                if (config.Gender > 0)
							 | 
						||
| 
								 | 
							
								                {
							 | 
						||
| 
								 | 
							
								                    CallNativeFunction("setGender", config.Gender);
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                if (config.ActivatedTime > 0)
							 | 
						||
| 
								 | 
							
								                {
							 | 
						||
| 
								 | 
							
								                    CallNativeFunction("setActivatedTime", config.ActivatedTime);
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								                
							 | 
						||
| 
								 | 
							
								                foreach (KeyValuePair<string, string> item in config.ExtraDictionary)
							 | 
						||
| 
								 | 
							
								                {
							 | 
						||
| 
								 | 
							
								                    Debug.Log($"bigo sdk config extra:" + item.Key + "=" + item.Value);
							 | 
						||
| 
								 | 
							
								                    builder.Call<AndroidJavaObject>("addExtra", item.Key, item.Value);
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            return builder.Call<AndroidJavaObject>("build");
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        public static AndroidJavaObject GetAdRequest(BigoRequest request)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            switch (request)
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                case BigoBannerRequest _:
							 | 
						||
| 
								 | 
							
								                    break;
							 | 
						||
| 
								 | 
							
								                case BigoNativeRequest _:
							 | 
						||
| 
								 | 
							
								                    break;
							 | 
						||
| 
								 | 
							
								                case BigoSplashRequest _:
							 | 
						||
| 
								 | 
							
								                    break;
							 | 
						||
| 
								 | 
							
								                case BigoInterstitialRequest _:
							 | 
						||
| 
								 | 
							
								                    break;
							 | 
						||
| 
								 | 
							
								                case BigoRewardedRequest _:
							 | 
						||
| 
								 | 
							
								                    break;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            return null;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        public static void CallMethodOnMainThread(Action task)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            GetGameActivity()?.Call("runOnUiThread", new AndroidJavaRunnable(task));
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								#endif
							 |