61 lines
2.2 KiB
C#
61 lines
2.2 KiB
C#
using System;
|
|
using AOT;
|
|
using System.Runtime.InteropServices;
|
|
using UnityEngine;
|
|
namespace AmazonAds.IOS {
|
|
public class DTBAdBannerDispatcher {
|
|
public delegate void OnAdLoadedDelegate (IntPtr callback);
|
|
public delegate void OnAdFailedDelegate (IntPtr callback);
|
|
public delegate void OnAdClickedDelegate (IntPtr callback);
|
|
public delegate void OnImpressionFiredDelegate (IntPtr callback);
|
|
|
|
IntPtr clientPtr;
|
|
IntPtr thisPtr;
|
|
public APSAdDelegate adDelegate;
|
|
|
|
public DTBAdBannerDispatcher (APSAdDelegate delegates) {
|
|
thisPtr = (IntPtr)GCHandle.Alloc(this);
|
|
clientPtr = Externs._createBannerDelegate();
|
|
adDelegate = delegates;
|
|
Externs._setBannerDelegate(thisPtr, clientPtr,
|
|
OnAdLoaded, OnAdFailed,
|
|
OnAdClicked, OnImpressionFired);
|
|
}
|
|
|
|
public IntPtr GetPtr()
|
|
{
|
|
return clientPtr;
|
|
}
|
|
|
|
private static DTBAdBannerDispatcher IntPtrToClient(IntPtr client)
|
|
{
|
|
GCHandle handle = (GCHandle)client;
|
|
return handle.Target as DTBAdBannerDispatcher;
|
|
}
|
|
|
|
[MonoPInvokeCallback (typeof (OnAdLoadedDelegate))]
|
|
public static void OnAdLoaded (IntPtr client) {
|
|
DTBAdBannerDispatcher bannerDispatcher = IntPtrToClient(client);
|
|
bannerDispatcher.adDelegate.onAdLoaded();
|
|
}
|
|
|
|
[MonoPInvokeCallback (typeof (OnAdFailedDelegate))]
|
|
public static void OnAdFailed (IntPtr client) {
|
|
DTBAdBannerDispatcher bannerDispatcher = IntPtrToClient(client);
|
|
bannerDispatcher.adDelegate.onAdFailed();
|
|
}
|
|
|
|
[MonoPInvokeCallback (typeof (OnAdClickedDelegate))]
|
|
public static void OnAdClicked (IntPtr client) {
|
|
DTBAdBannerDispatcher bannerDispatcher = IntPtrToClient(client);
|
|
bannerDispatcher.adDelegate.onAdClicked();
|
|
}
|
|
|
|
[MonoPInvokeCallback (typeof (OnImpressionFiredDelegate))]
|
|
public static void OnImpressionFired (IntPtr client) {
|
|
DTBAdBannerDispatcher bannerDispatcher = IntPtrToClient(client);
|
|
bannerDispatcher.adDelegate.onImpressionFired();
|
|
}
|
|
}
|
|
|
|
} |