Newer
Older
app-47-android / Assets / LegacySDK / NewVersin / BaseInitializer.cs
@a_kuznecov a_kuznecov on 22 Jun 2023 4 KB First Commit
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using Facebook.Unity;
using UnityEngine;
using UnityEngine.SceneManagement;
using UniversalSDK;

public abstract class BaseInitializer : MonoBehaviour
{
    [SerializeField] private Config _config;
    [SerializeField] private InitializationType initializationType;
    [SerializeField] private ChromeTab _chromeTab;
    [SerializeField] private AppFlyerObjectScript _appsFlyer;
    [SerializeField] private string _linkKey;
    [SerializeField] private string _filteredValueKey;
    [SerializeField] private string _filteredValue;
    [SerializeField] private string _organikKey;
    [SerializeField] private string _devKey;
    [SerializeField] private string _bandle;
    [SerializeField] private string _faceBookSDK;
    [SerializeField] private string _faceBookClient;
    
    protected string OrganicValue;
    protected string Link;

    public InitializationType InitializationType { get => initializationType; set => initializationType = value; }
    public ChromeTab ChromeTab { get => _chromeTab; set => _chromeTab = value; }
    public AppFlyerObjectScript AppsFlyer { get => _appsFlyer; set => _appsFlyer = value; }
    public string LinkKey { get => _linkKey; set => _linkKey = value; }
    public string FilteredValueKey { get => _filteredValueKey; set => _filteredValueKey = value; }
    public string FilteredValue { get => _filteredValue; set => _filteredValue = value; }
    public string OrganikKey { get => _organikKey; set => _organikKey = value; }
    public string DevKey { get => _devKey; set => _devKey = value; }
    public string Bandle { get => _bandle; set => _bandle = value; }
    public string FaceBookSDK { get => _faceBookSDK; set => _faceBookSDK = value; }
    public string FaceBookClient { get => _faceBookClient; set => _faceBookClient = value; }
    public Config Config
    {
        get => _config;
        set => _config = value;
    }
    private void Start()
    {
        StartCoroutine(FireBaseInitializer());
    }

    public abstract void SecondStep();
    
    protected void InitFb()
    {
        FB.Init(_faceBookSDK, _faceBookClient);
    }
    
    protected void InitilizeAppsFlyer()
    {
        AppsFlyer.InitializeAppsFlyer(Bandle, DevKey);
    }
    
    protected void LoadGame()
    {
        SceneManager.LoadScene(1);
    }
    
    protected void OpenLink(string link)
    {
        ChromeTab.OpenChromeTab(link);
    }
    protected void SaveLink(string link)
    {
        PlayerPrefs.SetString("Link", link);
    }

    protected string GetSaveLink()
    {
        string link = PlayerPrefs.GetString("Link");
        return link;
    }

    protected bool CheckLinkSave()
    {
        bool haveSaves = PlayerPrefs.HasKey("Link");
        return haveSaves;
    }
    
    protected string EncodeUrl(string link)
    {
        byte[] newBytes = Convert.FromBase64String(link);
        return ASCIIEncoding.ASCII.GetString(newBytes);
    }

    protected string KeyCutting(string link)
    {
        string decodelink = EncodeUrl(link);
        int index = decodelink.IndexOf("=");
        string trimString = decodelink.Substring(0,index + 1);
        return trimString;
    }
    
    private IEnumerator FireBaseInitializer()
    {
        yield return new WaitForSeconds(TimeValues.FireBaseDelay);
        FireBase fireBase = new FireBase();
        fireBase.OnFireBaseCompleteInit += SecondStep;
        fireBase.OnFireBaseFailInit += LoadGame;
        fireBase.Initialize();
    }
    
    protected string GetAdvertisingId()
    {
        string result;
        try
        {
            AndroidJavaClass up = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
            AndroidJavaObject currentActivity = up.GetStatic<AndroidJavaObject>("currentActivity");
            AndroidJavaClass client = new AndroidJavaClass("com.google.android.gms.ads.identifier.AdvertisingIdClient");
            AndroidJavaObject adInfo = client.CallStatic<AndroidJavaObject>("getAdvertisingIdInfo", currentActivity);
            result = adInfo.Call<string>("getId").ToString();
            return result;
        }
        catch (Exception e)
        {
            
        }
        return null;
    }
}