99 lines
2.9 KiB
C#
99 lines
2.9 KiB
C#
|
using System;
|
||
|
using UnityEngine.Advertisements.Utilities;
|
||
|
|
||
|
namespace UnityEngine.Advertisements
|
||
|
{
|
||
|
internal class Banner : IBanner
|
||
|
{
|
||
|
public IUnityLifecycleManager UnityLifecycleManager { get; }
|
||
|
|
||
|
public bool IsLoaded => m_NativeBanner.IsLoaded;
|
||
|
|
||
|
public bool ShowAfterLoad { get; set; }
|
||
|
|
||
|
private INativeBanner m_NativeBanner;
|
||
|
|
||
|
public Banner(INativeBanner nativeBanner, IUnityLifecycleManager unityLifecycleManager)
|
||
|
{
|
||
|
m_NativeBanner = nativeBanner;
|
||
|
UnityLifecycleManager = unityLifecycleManager;
|
||
|
m_NativeBanner.SetupBanner(this);
|
||
|
}
|
||
|
|
||
|
public void Load(string placementId, BannerLoadOptions loadOptions)
|
||
|
{
|
||
|
m_NativeBanner.Load(placementId, loadOptions);
|
||
|
}
|
||
|
|
||
|
public void Show(string placementId, BannerOptions showOptions)
|
||
|
{
|
||
|
m_NativeBanner.Show(placementId, showOptions);
|
||
|
}
|
||
|
|
||
|
public void Hide(bool destroy = false)
|
||
|
{
|
||
|
m_NativeBanner.Hide(destroy);
|
||
|
}
|
||
|
|
||
|
public void SetPosition(BannerPosition position)
|
||
|
{
|
||
|
m_NativeBanner.SetPosition(position);
|
||
|
}
|
||
|
|
||
|
public void UnityAdsBannerDidShow(string placementId, BannerOptions bannerOptions)
|
||
|
{
|
||
|
var showCallback = bannerOptions?.showCallback;
|
||
|
if (showCallback != null)
|
||
|
{
|
||
|
UnityLifecycleManager?.Post(() => {
|
||
|
bannerOptions.showCallback();
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void UnityAdsBannerDidHide(string placementId, BannerOptions bannerOptions)
|
||
|
{
|
||
|
var hideCallback = bannerOptions?.hideCallback;
|
||
|
if (hideCallback != null)
|
||
|
{
|
||
|
UnityLifecycleManager?.Post(() => {
|
||
|
bannerOptions.hideCallback();
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void UnityAdsBannerClick(string placementId, BannerOptions bannerOptions)
|
||
|
{
|
||
|
var clickCallback = bannerOptions?.clickCallback;
|
||
|
if (clickCallback != null)
|
||
|
{
|
||
|
UnityLifecycleManager?.Post(() => {
|
||
|
bannerOptions.clickCallback();
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void UnityAdsBannerDidLoad(string placementId, BannerLoadOptions bannerOptions)
|
||
|
{
|
||
|
var loadCallback = bannerOptions?.loadCallback;
|
||
|
if (loadCallback != null)
|
||
|
{
|
||
|
UnityLifecycleManager?.Post(() => {
|
||
|
bannerOptions.loadCallback();
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void UnityAdsBannerDidError(string message, BannerLoadOptions bannerOptions)
|
||
|
{
|
||
|
var errorCallback = bannerOptions?.errorCallback;
|
||
|
if (errorCallback != null)
|
||
|
{
|
||
|
UnityLifecycleManager?.Post(() => {
|
||
|
bannerOptions.errorCallback(message ?? "");
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|