com.guru.unity.max/Amazon/Scripts/Internal/IOS/DTBAdRequest.cs

185 lines
6.1 KiB
C#
Raw Normal View History

2023-12-26 03:47:44 +00:00
using System;
using System.Collections;
using System.Runtime.InteropServices;
using UnityEngine;
namespace AmazonAds.IOS {
public class DTBAdRequest : IAdRequest {
private IntPtr adLoader;
private string _slotGroupName = null;
private IAdSize _bannerAdSize = null;
private IInterstitialAdSize _interstitialAdSize = null;
private IVideo _videoAdSize = null;
public DTBAdRequest () {
adLoader = Externs._createAdLoader ();
}
public DTBAdRequest (IntPtr adRequest) {
adLoader = adRequest;
}
public IntPtr GetInstance(){
return adLoader;
}
public override void DisposeAd () {
if (fetchManager != null) {
fetchManager.dispense();
} else {
UnityEngine.Debug.LogWarning ("FetchManager not Init. Please turn on auto-refresh.");
}
}
public override void LoadAd (Amazon.OnFailureDelegate failure, Amazon.OnSuccessDelegate success) {
requestHasBeenUsed = true;
if (IsAutoRefreshAdMob ()) {
Schedule.WaitForAdResponce (fetchManager, failure, success);
return;
}
DTBCallback callback = new DTBCallback (failure, success);
Externs._loadAd (adLoader, callback.GetPtr ());
}
public override void LoadSmartBanner (Amazon.OnFailureDelegate failure, Amazon.OnSuccessDelegate success) {
requestHasBeenUsed = true;
if (IsAutoRefreshAdMob ()) {
Schedule.WaitForAdResponce (fetchManager, failure, success);
return;
}
DTBCallback callback = new DTBCallback (failure, success);
Externs._loadSmartBanner (adLoader, callback.GetPtr ());
}
public override void LoadAd (Amazon.OnFailureWithErrorDelegate failureWithError, Amazon.OnSuccessDelegate success) {
requestHasBeenUsed = true;
DTBCallback callback = new DTBCallback (failureWithError, success);
Externs._loadAd (adLoader, callback.GetPtr ());
}
public override void LoadSmartBanner (Amazon.OnFailureWithErrorDelegate failureWithError, Amazon.OnSuccessDelegate success) {
requestHasBeenUsed = true;
DTBCallback callback = new DTBCallback (failureWithError, success);
Externs._loadSmartBanner (adLoader, callback.GetPtr ());
}
public override void PutCustomTarget (string key, string value) {
Externs._putCustomTarget (adLoader, key, value);
}
public override void SetAutoRefresh() {
Externs._setAutoRefreshNoArgs(adLoader);
}
public override void SetAutoRefresh(int secs) {
Externs._setAutoRefresh(adLoader,secs);
}
public override void PauseAutoRefresh() {
Externs._pauseAutoRefresh(adLoader);
}
public override void StopAutoRefresh() {
Externs._stopAutoRefresh(adLoader);
}
public override void ResumeAutoRefresh() {
Externs._resumeAutoRefresh(adLoader);
}
public override void SetAutoRefreshMoPub (bool flag){
SetAutoRefreshMoPub(flag, refreshTime);
}
public override void SetAutoRefreshMoPub (bool flag, int refreshTime) {
isAutoRefreshMoPub = flag;
this.refreshTime = refreshTime;
if(flag){
if( requestHasBeenUsed ){
ResumeAutoRefresh();
} else {
SetAutoRefresh(refreshTime);
}
} else {
PauseAutoRefresh();
}
}
public override void SetAutoRefreshAdMob (bool flag, bool isSmartBanner = false) {
isAutoRefreshAdMob = flag;
if(flag){
CreateFetchManager(isSmartBanner);
StartFetchManager();
} else {
StopFetchManager();
}
}
public override void SetRefreshFlag (bool flag) {
Externs._setRefreshFlag(adLoader, flag);
}
public override void StartFetchManager () {
if (fetchManager != null){
fetchManager.start ();
}
}
public override void StopFetchManager () {
if (fetchManager != null){
fetchManager.stop ();
}
}
public override void CreateFetchManager (bool isSmartBanner = false) {
if (fetchManager == null){
fetchManager = new DTBFetchManager(this, autoRefreshID, isSmartBanner);
}
}
public override void DestroyFetchManager () {
if (fetchManager != null){
((AmazonAds.IOS.DTBFetchManager)fetchManager).destroy(autoRefreshID);
}
}
public override void SetSizes (IAdSize sizes) {
_bannerAdSize = sizes;
int height = sizes.GetHeight ();
int width = sizes.GetWidth ();
string slotType = "SLOT_" + width + "_" + height;
autoRefreshID = slotType;
Externs._setSizes (adLoader, ((DTBAdSize) sizes).GetInstance ());
}
public override void SetSizes (IInterstitialAdSize sizes) {
_interstitialAdSize = sizes;
Externs._setSizes (adLoader, ((DTBAdSize.DTBInterstitialAdSize) sizes).GetInstance ());
}
public override void SetSizes (IVideo sizes) {
_videoAdSize = sizes;
Externs._setSizes (adLoader, ((DTBAdSize.DTBVideo) sizes).GetInstance ());
}
public override void SetSlotGroup (string slotGroupName) {
_slotGroupName = slotGroupName;
Externs._setSlotGroup (adLoader, slotGroupName);
}
public IAdSize GetBannerAdSizes () {
return _bannerAdSize;
}
public IInterstitialAdSize GetInterstitialSizes () {
return _interstitialAdSize;
}
public IVideo GetVideoSizes () {
return _videoAdSize;
}
public string GetSlotGroup () {
return _slotGroupName;
}
}
}