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;
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								}
							 |