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