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