Golf2D/Assets/Appodeal/Editor/InternalResources/AppodealSettings.cs
2023-12-06 14:51:43 +05:30

156 lines
5.2 KiB
C#

using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.IO;
using UnityEditor;
using UnityEngine;
namespace AppodealAds.Unity.Editor.InternalResources
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public class AppodealSettings : ScriptableObject
{
private const string AppodealSettingsExportPath = "Appodeal/Editor/InternalResources/AppodealSettings.asset";
private static AppodealSettings instance;
[SerializeField] private string adMobAndroidAppId = string.Empty;
[SerializeField] private string adMobIosAppId = string.Empty;
[SerializeField] private bool accessCoarseLocationPermission;
[SerializeField] private bool writeExternalStoragePermission;
[SerializeField] private bool accessWifiStatePermission;
[SerializeField] private bool vibratePermission;
[SerializeField] private bool accessFineLocationPermission;
[SerializeField] private bool androidMultidex;
[SerializeField] private bool nSUserTrackingUsageDescription;
[SerializeField] private bool nSLocationWhenInUseUsageDescription;
[SerializeField] private bool nSCalendarsUsageDescription;
[SerializeField] private bool nSAppTransportSecurity;
[SerializeField] private bool iOSSKAdNetworkItems;
[SerializeField] private List<string> iOsskAdNetworkItemsList;
public static AppodealSettings Instance
{
get
{
if (instance != null) return instance;
var settingsFilePath = Path.Combine("Assets", AppodealSettingsExportPath);
var settingsDir = Path.GetDirectoryName(settingsFilePath);
if (!Directory.Exists(settingsDir))
{
Directory.CreateDirectory(settingsDir ?? string.Empty);
}
instance = AssetDatabase.LoadAssetAtPath<AppodealSettings>(settingsFilePath);
if (instance != null) return instance;
instance = CreateInstance<AppodealSettings>();
AssetDatabase.CreateAsset(instance, settingsFilePath);
return instance;
}
}
public string AdMobAndroidAppId
{
get { return Instance.adMobAndroidAppId; }
set { Instance.adMobAndroidAppId = value.Trim(); }
}
public string AdMobIosAppId
{
get { return Instance.adMobIosAppId; }
set { Instance.adMobIosAppId = value.Trim(); }
}
public bool AccessCoarseLocationPermission
{
get { return accessCoarseLocationPermission; }
set { Instance.accessCoarseLocationPermission = value; }
}
public bool WriteExternalStoragePermission
{
get { return writeExternalStoragePermission; }
set { Instance.writeExternalStoragePermission = value; }
}
public bool AccessWifiStatePermission
{
get { return accessWifiStatePermission; }
set { Instance.accessWifiStatePermission = value; }
}
public bool VibratePermission
{
get { return vibratePermission; }
set { Instance.vibratePermission = value; }
}
public bool AccessFineLocationPermission
{
get { return accessFineLocationPermission; }
set { Instance.accessFineLocationPermission = value; }
}
public bool AndroidMultidex
{
get { return androidMultidex; }
set { Instance.androidMultidex = value; }
}
public bool NSUserTrackingUsageDescription
{
get { return nSUserTrackingUsageDescription; }
set { Instance.nSUserTrackingUsageDescription = value; }
}
public bool NSLocationWhenInUseUsageDescription
{
get { return nSLocationWhenInUseUsageDescription; }
set { Instance.nSLocationWhenInUseUsageDescription = value; }
}
public bool NSCalendarsUsageDescription
{
get { return nSCalendarsUsageDescription; }
set { Instance.nSCalendarsUsageDescription = value; }
}
public bool NSAppTransportSecurity
{
get { return nSAppTransportSecurity; }
set
{
Instance.nSAppTransportSecurity = value;
#if UNITY_2018_1_OR_NEWER
if (BuildPipeline.IsBuildTargetSupported(BuildTargetGroup.iOS, BuildTarget.iOS)) PlayerSettings.iOS.allowHTTPDownload = value;
else Instance.nSAppTransportSecurity = false;
#elif UNITY_IOS
PlayerSettings.iOS.allowHTTPDownload = value;
#else
Instance.nSAppTransportSecurity = false;
#endif
}
}
public bool IOSSkAdNetworkItems
{
get { return iOSSKAdNetworkItems; }
set { Instance.iOSSKAdNetworkItems = value; }
}
public List<string> IOSSkAdNetworkItemsList
{
get { return iOsskAdNetworkItemsList; }
set { Instance.iOsskAdNetworkItemsList = value; }
}
public void SaveAsync()
{
EditorUtility.SetDirty(instance);
}
}
}