//
// FairBid Unity SDK
//
// Copyright (c) 2019 Fyber. All rights reserved.
//
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System;
namespace Fyber
{
///
/// Class defining the FairBidSDK settings.
///
public class Settings : MonoBehaviour
{
private static Settings _instance;
public static void SetMuted(Boolean isMuted)
{
#if !UNITY_EDITOR && (UNITY_ANDROID || UNITY_IOS)
#if UNITY_ANDROID
SettingsAndroid.SetMuted(isMuted);
#elif UNITY_IOS
SettingsIOS.SetMuted(isMuted);
#endif
#else
UnityEngine.Debug.LogWarning("Call received to set muted, but the SDK does not function in the editor. You must use a device/emulator to mute.");
#endif
}
#region Internal methods
static internal void InitReceiver()
{
if (_instance == null)
{
GameObject receiverObject = new GameObject("FairBidSettings");
DontDestroyOnLoad(receiverObject);
_instance = receiverObject.AddComponent();
}
}
#endregion
}
#region Platform-specific translations
#if UNITY_IOS && !UNITY_EDITOR
public class SettingsIOS : MonoBehaviour
{
[DllImport ("__Internal")]
private static extern void fyb_settings_set_muted(Boolean isMuted);
public static void SetMuted(Boolean isMuted)
{
fyb_settings_set_muted(isMuted);
}
}
#endif
#if UNITY_ANDROID && !UNITY_EDITOR
public class SettingsAndroid : MonoBehaviour
{
public static void SetMuted(Boolean isMuted)
{
if (Application.platform != RuntimePlatform.Android) return;
AndroidJNIHelper.debug = false;
using (AndroidJavaClass javaClass = new AndroidJavaClass("com.fyber.FairBid$Settings")) {
javaClass.CallStatic("setMuted", isMuted);
}
}
}
#endif
#endregion
}