107 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			107 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using BigoAds.Scripts.Common; | ||
|  | using BigoAds.Scripts.Api.Constant; | ||
|  | 
 | ||
|  | namespace BigoAds.Scripts.Api | ||
|  | { | ||
|  |     public static class BigoAdSdk | ||
|  |     { | ||
|  |         private static IClientFactory _clientFactory; | ||
|  | 
 | ||
|  |         private static ISDK _sdk; | ||
|  | 
 | ||
|  |         internal static ISDK SDK | ||
|  |         { | ||
|  |             get | ||
|  |             { | ||
|  |                 if (_sdk == null) | ||
|  |                 { | ||
|  |                     _sdk = GetClientFactory().BuildSDKClient(); | ||
|  |                 } | ||
|  | 
 | ||
|  |                 return _sdk; | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         internal static IClientFactory GetClientFactory() | ||
|  |         { | ||
|  |             if (_clientFactory != null) | ||
|  |             { | ||
|  |                 return _clientFactory; | ||
|  |             } | ||
|  | 
 | ||
|  |             _clientFactory = | ||
|  | #if UNITY_ANDROID | ||
|  |                 new BigoAds.Scripts.Platforms.Android.AndroidClientFactory(); | ||
|  | #elif UNITY_IOS | ||
|  |                 new BigoAds.Scripts.Platforms.iOS.IOSClientFactory(); | ||
|  | #else | ||
|  |                 null; | ||
|  |             throw new PlatformNotSupportedException(); | ||
|  | #endif | ||
|  |             return _clientFactory; | ||
|  |         } | ||
|  | 
 | ||
|  |         public delegate void InitResultDelegate(); | ||
|  | 
 | ||
|  |         public static event InitResultDelegate OnInitFinish; | ||
|  | 
 | ||
|  |                 /// Starts the Bigo SDK | ||
|  |         /// @warning Call this method as early as possible to reduce  ad request fail. | ||
|  |         /// @param config SDK configuration | ||
|  |         /// @param callback Callback for starting the Bigo SDK | ||
|  |         /// //// | ||
|  |         public static void Initialize(BigoAdConfig config) | ||
|  |         { | ||
|  |             if (IsInitSuccess()) | ||
|  |             { | ||
|  |                 OnInitFinish?.Invoke(); | ||
|  |                 return; | ||
|  |             } | ||
|  | 
 | ||
|  |             SDK.Init(config, (() => { OnInitFinish?.Invoke(); })); | ||
|  |         } | ||
|  | 
 | ||
|  |         //// | ||
|  |         /// The SDK initialization state | ||
|  |         //// | ||
|  |         public static bool IsInitSuccess() | ||
|  |         { | ||
|  |             return SDK.IsInitSuccess(); | ||
|  |         } | ||
|  | 
 | ||
|  |         /////// | ||
|  |         /// Bigo SDK version | ||
|  |         /// //// | ||
|  |         public static string GetSDKVersion() | ||
|  |         { | ||
|  |             return SDK.GetSDKVersion(); | ||
|  |         } | ||
|  | 
 | ||
|  |         /////// | ||
|  |         /// Bigo SDK version name | ||
|  |         /// //// | ||
|  |         public static string GetSDKVersionName() | ||
|  |         { | ||
|  |             return SDK.GetSDKVersionName(); | ||
|  |         } | ||
|  | 
 | ||
|  |         /////// | ||
|  |         /// Bigo SDK set user consent | ||
|  |         /// //// | ||
|  |         public static void SetUserConsent(ConsentOptions option, bool consent) | ||
|  |         { | ||
|  |             SDK.SetUserConsent(option, consent); | ||
|  |         } | ||
|  | 
 | ||
|  |         /////// | ||
|  |         /// Only works on Android | ||
|  |         /// Bigo SDK set user consent | ||
|  |         /// //// | ||
|  |         public static void AddExtraHost(string country, string host) | ||
|  |         { | ||
|  |             SDK.AddExtraHost(country, host); | ||
|  |         } | ||
|  |          | ||
|  |     } | ||
|  | } |