80 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			80 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using UnityEngine; | |||
|  | using System; | |||
|  | using System.Collections.Generic; | |||
|  | 
 | |||
|  | public static class Tenjin  { | |||
|  | 
 | |||
|  | 	public delegate void DeferredDeeplinkDelegate(Dictionary<string, string> deferredLinkData); | |||
|  | 
 | |||
|  | 	//create dictionary of instances of tenjin with API keys | |||
|  | 	private static Dictionary<string, BaseTenjin> _instances = new Dictionary<string, BaseTenjin>(); | |||
|  | 
 | |||
|  | 	// App Tracking Transparency callback | |||
|  | 	public static Action<int> authorizationStatusDelegate = null; | |||
|  | 
 | |||
|  | 	//return instance with specific api key | |||
|  | 	public static BaseTenjin getInstance(string apiKey){ | |||
|  | 		string instanceKey = apiKey; | |||
|  | 		if (!_instances.ContainsKey (apiKey)){ | |||
|  | 			_instances.Add(apiKey, createTenjin(apiKey, null, 0)); | |||
|  | 		} | |||
|  | 		return _instances[instanceKey]; | |||
|  | 	} | |||
|  | 
 | |||
|  | 	public static BaseTenjin getInstanceWithSharedSecret(string apiKey, string sharedSecret){ | |||
|  | 		string instanceKey = apiKey + "." + sharedSecret; | |||
|  | 		if (!_instances.ContainsKey(instanceKey)){ | |||
|  | 			_instances.Add(instanceKey, createTenjin(apiKey, sharedSecret, 0)); | |||
|  | 		} | |||
|  | 		return _instances[instanceKey]; | |||
|  | 	} | |||
|  | 
 | |||
|  | 	public static BaseTenjin getInstanceWithAppSubversion(string apiKey, int appSubversion){ | |||
|  | 		string instanceKey = apiKey + "." + appSubversion; | |||
|  | 		if (!_instances.ContainsKey(instanceKey)){ | |||
|  | 			_instances.Add(instanceKey, createTenjin(apiKey, null, appSubversion)); | |||
|  | 		} | |||
|  | 		return _instances[instanceKey]; | |||
|  | 	} | |||
|  | 
 | |||
|  | 	public static BaseTenjin getInstanceWithSharedSecretAppSubversion(string apiKey, string sharedSecret, int appSubversion){ | |||
|  | 		string instanceKey = apiKey + "." + sharedSecret + "." + appSubversion; | |||
|  | 		if (!_instances.ContainsKey(instanceKey)){ | |||
|  | 			_instances.Add(instanceKey, createTenjin(apiKey, sharedSecret, appSubversion)); | |||
|  | 		} | |||
|  | 		return _instances[instanceKey]; | |||
|  | 	} | |||
|  | 
 | |||
|  | 	private static BaseTenjin createTenjin(string apiKey, string sharedSecret, int appSubversion){ | |||
|  | 		GameObject tenjinGameObject = new GameObject("Tenjin"); | |||
|  | 		tenjinGameObject.hideFlags = HideFlags.HideAndDontSave; | |||
|  |         UnityEngine.Object.DontDestroyOnLoad(tenjinGameObject); | |||
|  | 		 | |||
|  | #if UNITY_ANDROID && !UNITY_EDITOR | |||
|  | 		BaseTenjin retTenjin = tenjinGameObject.AddComponent<AndroidTenjin>(); | |||
|  | #elif UNITY_IPHONE && !UNITY_EDITOR | |||
|  | 		BaseTenjin retTenjin = tenjinGameObject.AddComponent<IosTenjin>(); | |||
|  | #else | |||
|  | 		BaseTenjin retTenjin = tenjinGameObject.AddComponent<DebugTenjin>(); | |||
|  | #endif | |||
|  | 
 | |||
|  | 		if (!string.IsNullOrEmpty(sharedSecret) && appSubversion != 0) | |||
|  | 		{ | |||
|  | 			retTenjin.InitWithSharedSecretAppSubversion(apiKey, sharedSecret, appSubversion); | |||
|  | 		} | |||
|  | 		else if (!string.IsNullOrEmpty(sharedSecret)) | |||
|  | 		{ | |||
|  | 			retTenjin.InitWithSharedSecret(apiKey, sharedSecret); | |||
|  | 		} | |||
|  | 		else if (appSubversion != 0) | |||
|  | 		{ | |||
|  | 			retTenjin.InitWithAppSubversion(apiKey, appSubversion); | |||
|  | 		} | |||
|  | 		else | |||
|  | 		{ | |||
|  | 			retTenjin.Init(apiKey); | |||
|  | 		} | |||
|  | 		return retTenjin; | |||
|  | 	} | |||
|  | } |