102 lines
3.3 KiB
C#
102 lines
3.3 KiB
C#
using System;
|
|
using IgnoreOPS;
|
|
using SGModule.Common.Extensions;
|
|
using SGModule.Common.Helper;
|
|
using SGModule.NetKit;
|
|
using UnityEngine;
|
|
|
|
namespace BallKingdomCrush {
|
|
public class LoginSystem : BaseSystem {
|
|
private int loginCount = 0;
|
|
|
|
private bool _isLogin = false;
|
|
|
|
|
|
private TimerTask timerTask = null;
|
|
|
|
public LoginSystem(bool isAutoInit = true) {
|
|
if (isAutoInit) {
|
|
Init();
|
|
}
|
|
}
|
|
|
|
public sealed override void Init() {
|
|
base.Init();
|
|
InitData();
|
|
AddListener();
|
|
}
|
|
|
|
private void InitData() {
|
|
}
|
|
|
|
private void AddListener() {
|
|
NetworkDispatcher.Instance.AddListener(NetworkMsg.Login, RequestLogin);
|
|
}
|
|
|
|
private void RemoveListener() {
|
|
NetworkDispatcher.Instance.RemoveListener(NetworkMsg.Login, RequestLogin);
|
|
}
|
|
|
|
private void RequestLogin(object obj = null) {
|
|
|
|
// if (!GameHelper.IsConnect())
|
|
// {
|
|
// LoginFail();
|
|
// }
|
|
// else
|
|
// {
|
|
if (_isLogin) return;
|
|
_isLogin = true;
|
|
|
|
TrackKit.TrackLoginFunnel(LoginFunnelEventType.LoginSend);
|
|
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.NetworkErrorTipsUI_Open);
|
|
Log.Info("login request", $"attribution: {SuperApplication.Instance.attribution}, haveSimCard: {NetworkManager.haveSimCard}");
|
|
LoginKit.Instance.LoginRequest(SuperApplication.Instance.attribution.ToLower(), NetworkManager.haveSimCard, (isSuccess, loginData) => {
|
|
TrackKit.TrackLoginFunnel(LoginFunnelEventType.LoginRecv, isSuccess ? "success" : "fail");
|
|
|
|
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.NetworkErrorTipsUI_Close);
|
|
|
|
if (isSuccess)
|
|
{
|
|
Debug.Log($"loginData.CdnURL======={loginData.CdnURL}");
|
|
// AB上传 BI
|
|
BIManager.Instance.TrackABConfig(loginData.IsMagic ? 30 : 15);
|
|
|
|
// loginData.CdnURL = "https://asserts.minskyfun.top";
|
|
|
|
|
|
// TextureHelper.imgUrl = loginData.CdnURL + "/encrypt/image/";
|
|
// LiveVideoManager.videoBaseUrl = loginData.CdnURL + "/encrypt/video/";
|
|
|
|
DateTimeManager.Instance.SetServerCurrTimestamp(loginData.LoginTime);
|
|
|
|
NetworkDispatcher.Instance.Dispatch(NetworkMsg.GetPlayData);
|
|
|
|
MaxADKit.SetUserID(loginData.Uid.As<string>());
|
|
}
|
|
else
|
|
{
|
|
LoginFail();
|
|
}
|
|
});
|
|
// }
|
|
}
|
|
|
|
private static void LoginFail()
|
|
{
|
|
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.NetLoadingUI_Close);
|
|
|
|
void OnFail() {
|
|
NetworkDispatcher.Instance.Dispatch(NetworkMsg.Login);
|
|
}
|
|
|
|
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.TipsViewUI_Open, (Action) OnFail);
|
|
}
|
|
|
|
public override void Dispose() {
|
|
base.Dispose();
|
|
RemoveListener();
|
|
}
|
|
}
|
|
}
|