195 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			195 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | // Inspired by: https://github.com/facebook/facebook-sdk-for-unity/blob/master/Facebook.Unity.Settings/FacebookSettings.cs | ||
|  | 
 | ||
|  | using System.Collections.Generic; | ||
|  | using System.IO; | ||
|  | using UnityEditor; | ||
|  | using UnityEngine; | ||
|  | 
 | ||
|  | namespace AdjustSdk | ||
|  | { | ||
|  |     public class AdjustSettings : ScriptableObject | ||
|  |     { | ||
|  |         private static AdjustSettings instance; | ||
|  |         public const string AdjustSettingsExportPath = "Adjust/Resources/AdjustSettings.asset"; | ||
|  | 
 | ||
|  |         [SerializeField] | ||
|  |         private bool _iOSFrameworkAdSupport = true; | ||
|  |         [SerializeField] | ||
|  |         private bool _iOSFrameworkAdServices = false; | ||
|  |         [SerializeField] | ||
|  |         private bool _iOSFrameworkAppTrackingTransparency = false; | ||
|  |         [SerializeField] | ||
|  |         private bool _iOSFrameworkStoreKit = false; | ||
|  |         [SerializeField] | ||
|  |         private bool _androidPermissionInternet = true; | ||
|  |         [SerializeField] | ||
|  |         private bool _androidPermissionInstallReferrerService = true; | ||
|  |         [SerializeField] | ||
|  |         private bool _androidPermissionAdId = true; | ||
|  |         [SerializeField] | ||
|  |         private bool _androidPermissionAccessNetworkState = false; | ||
|  |         [SerializeField] | ||
|  |         private string _iOSUserTrackingUsageDescription; | ||
|  |         [SerializeField] | ||
|  |         private string _iOSUrlIdentifier; | ||
|  |         [SerializeField] | ||
|  |         private string[] _iOSUrlSchemes = new string[0]; | ||
|  |         [SerializeField] | ||
|  |         private string[] _iOSUniversalLinksDomains = new string[0]; | ||
|  |         [SerializeField] | ||
|  |         private string[] androidUriSchemes = new string[0]; | ||
|  |         [SerializeField] | ||
|  |         private string _androidCustomActivityName; | ||
|  | 
 | ||
|  |         public static AdjustSettings Instance | ||
|  |         { | ||
|  |             get | ||
|  |             { | ||
|  |                 instance = NullableInstance; | ||
|  | 
 | ||
|  |                 if (instance == null) | ||
|  |                 { | ||
|  |                     // Create AdjustSettings.asset inside the folder in which AdjustSettings.cs reside. | ||
|  |                     instance = ScriptableObject.CreateInstance<AdjustSettings>(); | ||
|  |                     var guids = AssetDatabase.FindAssets(string.Format("{0} t:script", "AdjustSettings")); | ||
|  |                     if (guids == null || guids.Length <= 0) | ||
|  |                     { | ||
|  |                         return instance; | ||
|  |                     } | ||
|  | 
 | ||
|  |                     var assetPath = AssetDatabase.GUIDToAssetPath(guids[0]).Replace("AdjustSettings.cs", "AdjustSettings.asset"); | ||
|  |                     // AdjustSettings.asset will be stored inside of the Adjust/Resources directory | ||
|  |                     if (assetPath.StartsWith("Assets")) | ||
|  |                     { | ||
|  |                         // plugin located in Assets directory | ||
|  |                         string rootDir = assetPath.Replace("/Adjust/Scripts/Editor/AdjustSettings.asset", ""); | ||
|  |                         string adjustResourcesPath = Path.Combine(rootDir, "Adjust/Resources"); | ||
|  |                         if (!Directory.Exists(adjustResourcesPath)) | ||
|  |                         { | ||
|  |                             Directory.CreateDirectory(adjustResourcesPath); | ||
|  |                         } | ||
|  |                         assetPath = Path.Combine(rootDir, AdjustSettingsExportPath); | ||
|  |                     } | ||
|  |                     else | ||
|  |                     { | ||
|  |                         // plugin located in Packages folder | ||
|  |                         string adjustResourcesPath = Path.Combine("Assets", "Adjust/Resources"); | ||
|  |                         if (!Directory.Exists(adjustResourcesPath)) | ||
|  |                         { | ||
|  |                             Directory.CreateDirectory(adjustResourcesPath); | ||
|  |                         } | ||
|  |                         assetPath = Path.Combine("Assets", AdjustSettingsExportPath); | ||
|  |                     } | ||
|  | 
 | ||
|  |                     AssetDatabase.CreateAsset(instance, assetPath); | ||
|  |                 } | ||
|  | 
 | ||
|  |                 return instance; | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         public static AdjustSettings NullableInstance | ||
|  |         { | ||
|  |             get | ||
|  |             { | ||
|  |                 if (instance == null) | ||
|  |                 { | ||
|  |                     var guids = AssetDatabase.FindAssets(string.Format("{0} t:ScriptableObject", "AdjustSettings")); | ||
|  |                     if (guids == null || guids.Length <= 0) | ||
|  |                     { | ||
|  |                         return instance; | ||
|  |                     } | ||
|  |                     var assetPath = AssetDatabase.GUIDToAssetPath(guids[0]); | ||
|  |                     instance = (AdjustSettings)AssetDatabase.LoadAssetAtPath(assetPath, typeof(AdjustSettings)); | ||
|  |                 } | ||
|  | 
 | ||
|  |                 return instance; | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         public static bool iOSFrameworkAdSupport | ||
|  |         { | ||
|  |             get { return Instance._iOSFrameworkAdSupport; } | ||
|  |             set { Instance._iOSFrameworkAdSupport = value; } | ||
|  |         } | ||
|  | 
 | ||
|  |         public static bool iOSFrameworkAdServices | ||
|  |         { | ||
|  |             get { return Instance._iOSFrameworkAdServices; } | ||
|  |             set { Instance._iOSFrameworkAdServices = value; } | ||
|  |         } | ||
|  | 
 | ||
|  |         public static bool iOSFrameworkAppTrackingTransparency | ||
|  |         { | ||
|  |             get { return Instance._iOSFrameworkAppTrackingTransparency; } | ||
|  |             set { Instance._iOSFrameworkAppTrackingTransparency = value; } | ||
|  |         } | ||
|  | 
 | ||
|  |         public static bool iOSFrameworkStoreKit | ||
|  |         { | ||
|  |             get { return Instance._iOSFrameworkStoreKit; } | ||
|  |             set { Instance._iOSFrameworkStoreKit = value; } | ||
|  |         } | ||
|  | 
 | ||
|  |         public static bool androidPermissionInternet | ||
|  |         { | ||
|  |             get { return Instance._androidPermissionInternet; } | ||
|  |             set { Instance._androidPermissionInternet = value; } | ||
|  |         } | ||
|  | 
 | ||
|  |         public static bool androidPermissionInstallReferrerService | ||
|  |         { | ||
|  |             get { return Instance._androidPermissionInstallReferrerService; } | ||
|  |             set { Instance._androidPermissionInstallReferrerService = value; } | ||
|  |         } | ||
|  | 
 | ||
|  |         public static bool androidPermissionAdId | ||
|  |         { | ||
|  |             get { return Instance._androidPermissionAdId; } | ||
|  |             set { Instance._androidPermissionAdId = value; } | ||
|  |         } | ||
|  | 
 | ||
|  |         public static bool androidPermissionAccessNetworkState | ||
|  |         { | ||
|  |             get { return Instance._androidPermissionAccessNetworkState; } | ||
|  |             set { Instance._androidPermissionAccessNetworkState = value; } | ||
|  |         } | ||
|  | 
 | ||
|  |         public static string iOSUserTrackingUsageDescription | ||
|  |         { | ||
|  |             get { return Instance._iOSUserTrackingUsageDescription; } | ||
|  |             set { Instance._iOSUserTrackingUsageDescription = value; } | ||
|  |         } | ||
|  | 
 | ||
|  |         public static string iOSUrlIdentifier | ||
|  |         { | ||
|  |             get { return Instance._iOSUrlIdentifier; } | ||
|  |             set { Instance._iOSUrlIdentifier = value; } | ||
|  |         } | ||
|  | 
 | ||
|  |         public static string[] iOSUrlSchemes | ||
|  |         { | ||
|  |             get { return Instance._iOSUrlSchemes; } | ||
|  |             set { Instance._iOSUrlSchemes = value; } | ||
|  |         } | ||
|  | 
 | ||
|  |         public static string[] iOSUniversalLinksDomains | ||
|  |         { | ||
|  |             get { return Instance._iOSUniversalLinksDomains; } | ||
|  |             set { Instance._iOSUniversalLinksDomains = value; } | ||
|  |         } | ||
|  | 
 | ||
|  |         public static string[] AndroidUriSchemes | ||
|  |         { | ||
|  |             get { return Instance.androidUriSchemes; } | ||
|  |             set { Instance.androidUriSchemes = value; } | ||
|  |         } | ||
|  | 
 | ||
|  |         public static string AndroidCustomActivityName | ||
|  |         { | ||
|  |             get { return Instance._androidCustomActivityName; } | ||
|  |             set { Instance._androidCustomActivityName = value; } | ||
|  |         } | ||
|  |     } | ||
|  | } |