161 lines
6.6 KiB
C#
161 lines
6.6 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using UnityEngine;
|
||
|
||
namespace AmazonAds.Android {
|
||
public class AdRegistration {
|
||
private static readonly AndroidJavaClass adRegistrationClass = new AndroidJavaClass ("com.amazon.device.ads.AdRegistration");
|
||
private AndroidJavaObject adRegistration = null;
|
||
|
||
|
||
|
||
public void AddProvider (AndroidJavaObject provider) { // AdProvider params
|
||
adRegistration.CallStatic ("AddProvider", provider);
|
||
}
|
||
|
||
public AndroidJavaObject GetEventDistributer () { // return EventDistributor
|
||
return adRegistration.CallStatic<AndroidJavaObject> ("getEventDistributer");
|
||
}
|
||
|
||
public HashSet<AndroidJavaObject> GtAdProviders () { // return AdProvider
|
||
return adRegistration.CallStatic<HashSet<AndroidJavaObject>> ("getProprietaryProviderKeys");
|
||
}
|
||
|
||
public List<String> GetProprietaryProviderKeys () {
|
||
return adRegistration.CallStatic<List<String>> ("getProprietaryProviderKeys");
|
||
}
|
||
|
||
public String GetAppKey () {
|
||
return adRegistration.CallStatic<String> ("getAppKey");
|
||
}
|
||
|
||
public bool IsInitialized () {
|
||
return adRegistration.CallStatic<bool> ("isInitialized");
|
||
}
|
||
|
||
public AndroidJavaObject GetInstance (String appKey) {
|
||
AndroidJavaClass playerClass = new AndroidJavaClass (AmazonConstants.unityPlayerClass);
|
||
AndroidJavaObject currentActivityObject = playerClass.GetStatic<AndroidJavaObject> ("currentActivity");
|
||
object[] adRegParams = new object[2];
|
||
adRegParams[0] = appKey;
|
||
adRegParams[1] = currentActivityObject;
|
||
adRegistration = adRegistrationClass.CallStatic<AndroidJavaObject>
|
||
("getInstance", adRegParams);
|
||
|
||
return adRegistration;
|
||
}
|
||
|
||
public void SetMRAIDPolicy (Amazon.MRAIDPolicy policy) {
|
||
AndroidJavaClass mraidEnum = new AndroidJavaClass ("com.amazon.device.ads.MRAIDPolicy");
|
||
AndroidJavaObject curMraid = mraidEnum.CallStatic<AndroidJavaObject> ("valueOf", policy.ToString ());
|
||
adRegistration.CallStatic ("setMRAIDPolicy", curMraid);
|
||
}
|
||
|
||
public Amazon.MRAIDPolicy GetMRAIDPolicy () { // returns MRAIDPolicy
|
||
AndroidJavaObject mraid = adRegistration.CallStatic<AndroidJavaObject> ("getMRAIDPolicy");
|
||
int codeInt = mraid.Call<int> ("ordinal");
|
||
Amazon.MRAIDPolicy code = (Amazon.MRAIDPolicy) codeInt;
|
||
return code;
|
||
}
|
||
|
||
public void SetMRAIDSupportedVersions (String[] versions) {
|
||
adRegistration.CallStatic ("setMRAIDSupportedVersions", versions);
|
||
}
|
||
|
||
public void EnableLogging (bool enable) {
|
||
adRegistration.CallStatic ("enableLogging", enable);
|
||
}
|
||
|
||
public void EnableLogging (bool enable, AndroidJavaObject logLevel) { // DTBLogLevel logLevel
|
||
adRegistration.CallStatic ("enableLogging", enable, logLevel);
|
||
}
|
||
|
||
public void EnableTesting (bool isTesting) {
|
||
adRegistration.CallStatic ("enableTesting", isTesting);
|
||
}
|
||
|
||
public bool IsTestMode () {
|
||
return adRegistration.CallStatic<bool> ("isTestMode");
|
||
}
|
||
|
||
public void UseGeoLocation (bool isLocationEnabled) {
|
||
adRegistration.CallStatic ("useGeoLocation", isLocationEnabled);
|
||
}
|
||
|
||
public bool IsLocationEnabled () {
|
||
return adRegistration.CallStatic<bool> ("іsLocationEnabled");
|
||
}
|
||
|
||
public String GetVersion () {
|
||
return adRegistration.CallStatic<String> ("getVersion");
|
||
}
|
||
|
||
public void SetServerlessMarkers (String[] markers) {
|
||
adRegistration.CallStatic ("setServerlessMarkers", markers);
|
||
|
||
}
|
||
public void AddSlotGroup (SlotGroup sg) { // param SlotGroup sg
|
||
adRegistration.CallStatic ("addSlotGroup", sg.dTBSlot);
|
||
}
|
||
|
||
public AndroidJavaObject GetSlotGroup (String name) { // return SlotGroup
|
||
return adRegistration.CallStatic<AndroidJavaObject> ("getSlotGroup", name);
|
||
}
|
||
|
||
public bool IsConsentStatusUnknown () {
|
||
return adRegistration.CallStatic<bool> ("isConsentStatusUnknown");
|
||
}
|
||
|
||
public void SetVendorList (List<int> vendorList) {
|
||
adRegistration.CallStatic ("setVendorList", vendorList);
|
||
}
|
||
|
||
public void SetConsentStatus (Amazon.ConsentStatus consentStatus) {
|
||
AndroidJavaClass consEnum = new AndroidJavaClass ("com.amazon.device.ads.AdRegistration$ConsentStatus");
|
||
AndroidJavaObject curcons = consEnum.CallStatic<AndroidJavaObject> ("valueOf", consentStatus.ToString ());
|
||
adRegistration.CallStatic ("setConsentStatus", curcons);
|
||
}
|
||
|
||
public void SetCMPFlavor (Amazon.CMPFlavor cFlavor) {
|
||
AndroidJavaClass flavEnum = new AndroidJavaClass ("com.amazon.device.ads.AdRegistration$CMPFlavor");
|
||
AndroidJavaObject curFlav = flavEnum.CallStatic<AndroidJavaObject> ("valueOf", cFlavor.ToString ());
|
||
adRegistration.CallStatic ("setCMPFlavor", curFlav);
|
||
}
|
||
|
||
public void ResetNonIAB () {
|
||
adRegistration.CallStatic ("resetNonIAB");
|
||
}
|
||
|
||
public class SlotGroup {
|
||
private readonly AndroidJavaClass slotGroup = new AndroidJavaClass ("com.amazon.device.ads.AdRegistration$SlotGroup");
|
||
public AndroidJavaObject dTBSlot = null;
|
||
|
||
public SlotGroup () {
|
||
dTBSlot = new AndroidJavaObject ("com.amazon.device.ads.AdRegistration$SlotGroup");
|
||
}
|
||
|
||
public SlotGroup (string name) {
|
||
dTBSlot = new AndroidJavaObject ("com.amazon.device.ads.AdRegistration$SlotGroup", name);
|
||
}
|
||
|
||
public void AddSlot (IAdSize size) {
|
||
dTBSlot.Call ("addSlot", ((DTBAdSize) size).GetInstance ());
|
||
}
|
||
}
|
||
|
||
public void AddCustomAttribute (string withKey, string value) {
|
||
adRegistration.CallStatic ("addCustomAttribute", withKey, value);
|
||
}
|
||
|
||
public void RemoveCustomAttr (string forKey) {
|
||
adRegistration.CallStatic ("removeCustomAttribute", forKey);
|
||
}
|
||
|
||
public void SetAdNetworkInfo (string adNetworkName) {
|
||
AndroidJavaClass adNetworkEnum = new AndroidJavaClass (AmazonConstants.dtbAdNetworkClass);
|
||
AndroidJavaObject adNetworkObj = adNetworkEnum.CallStatic<AndroidJavaObject> ("valueOf", adNetworkName);
|
||
AndroidJavaObject dtbAdNetworkInfo = new AndroidJavaObject (AmazonConstants.dtbAdNetworkInfoClass, adNetworkObj);
|
||
adRegistration.CallStatic ("setAdNetworkInfo", dtbAdNetworkInfo);
|
||
}
|
||
}
|
||
} |