2023-08-09 22:10:47 +08:00

43 lines
1.8 KiB
C#

// https://stackoverflow.com/questions/55492214/the-annotation-for-nullable-reference-types-should-only-be-used-in-code-within-a
#nullable enable
using UnityEngine;
using System;
namespace MolocoSdk
{
public class AndroidDelegate : PlatformDelegate
{
internal const string PACKAGE_PREFIX = "com.moloco.sdk.publisher";
public void SetPrivacy(PrivacySettings privacySettings){
var molocoPrivacyJavaClasspath = "com.moloco.sdk.adapter.MolocoPrivacy";
using (var MolocoPrivacyJavaClass = new AndroidJavaClass(molocoPrivacyJavaClasspath))
using (var privacySettingsJavaObject = new AndroidJavaObject($"{molocoPrivacyJavaClasspath}$PrivacySettings"))
{
privacySettingsJavaObject.Set("isUserConsent", privacySettings.IsUserConsent.ToBooleanJavaObject());
privacySettingsJavaObject.Set("isAgeRestrictedUser", privacySettings.IsAgeRestrictedUser.ToBooleanJavaObject());
privacySettingsJavaObject.Set("isDoNotSell", privacySettings.IsDoNotSell.ToBooleanJavaObject());
MolocoPrivacyJavaClass.CallStatic("setPrivacy", privacySettingsJavaObject);
}
}
}
internal static class BooleanExtensions
{
internal static AndroidJavaObject? ToBooleanJavaObject(this Boolean? me)
{
using (var BooleanJavaClass = new AndroidJavaClass("java.lang.Boolean")){
var trueJavaObject = BooleanJavaClass.GetStatic<AndroidJavaObject>("TRUE");
var falseJavaObject = BooleanJavaClass.GetStatic<AndroidJavaObject>("FALSE");
if (me == true) return trueJavaObject;
if (me == false) return falseJavaObject;
}
return null;
}
}
}