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);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|