using System.Collections; 
 | 
using System.Collections.Generic; 
 | 
using UnityEngine; 
 | 
using LitJson; 
 | 
using System.IO; 
 | 
using UnityEngine.UI; 
 | 
  
 | 
  
 | 
public class DebugUtility : Singleton<DebugUtility> 
 | 
{ 
 | 
  
 | 
    GameObject debugRoot; 
 | 
  
 | 
    bool m_DebugAccount = false; 
 | 
    public bool debugAccount 
 | 
    { 
 | 
        get { return m_DebugAccount; } 
 | 
        private set 
 | 
        { 
 | 
            if (m_DebugAccount != value) 
 | 
            { 
 | 
                m_DebugAccount = value; 
 | 
                if (m_DebugAccount) 
 | 
                { 
 | 
                    RunTimeExceptionUtility.Instance.Init(); 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
  
 | 
    public int debugBranch = -1; 
 | 
  
 | 
    public bool isWhiteListAccount { get; set; } 
 | 
  
 | 
    public bool autoLogin { get; private set; } 
 | 
  
 | 
    public void Init() 
 | 
    { 
 | 
        isWhiteListAccount = false; 
 | 
        if (VersionConfig.Get().debugVersion) 
 | 
        { 
 | 
            debugAccount = true; 
 | 
        } 
 | 
        else 
 | 
        { 
 | 
            var parentDirectory = Directory.GetParent(Application.persistentDataPath); 
 | 
            debugAccount = File.Exists(parentDirectory + "/Debug"); 
 | 
        } 
 | 
  
 | 
        if (LocalSave.GetString("#@#BrancH") != string.Empty) 
 | 
        { 
 | 
            var branch = LocalSave.GetString("#@#BrancH"); 
 | 
            int tmpbranch; 
 | 
            int.TryParse(LocalSave.GetString("#@#BrancH").Substring(1), out tmpbranch); 
 | 
            if (branch.StartsWith("d") && tmpbranch != 0) 
 | 
            { 
 | 
                debugBranch = tmpbranch; 
 | 
                debugAccount = true; 
 | 
            } 
 | 
            else if (branch.StartsWith("r") && tmpbranch != 0) 
 | 
            { 
 | 
                debugBranch = tmpbranch; 
 | 
                debugAccount = false; 
 | 
            } 
 | 
        } 
 | 
  
 | 
        if (debugAccount) 
 | 
        { 
 | 
            if (Application.isMobilePlatform) 
 | 
            { 
 | 
                var parentDirectory = Directory.GetParent(Application.persistentDataPath); 
 | 
                if (File.Exists(parentDirectory + "/Debug")) 
 | 
                { 
 | 
                    var content = File.ReadAllText(parentDirectory + "/Debug"); 
 | 
                    if (!string.IsNullOrEmpty(content)) 
 | 
                    { 
 | 
                        var json = JsonMapper.ToObject<DebugBranch>(File.ReadAllText(parentDirectory + "/Debug")); 
 | 
                        debugBranch = json.branch; 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
  
 | 
  
 | 
  
 | 
  
 | 
        if (debugAccount) 
 | 
        { 
 | 
            Launch.Instance.EnableLog = LocalSave.GetBool("DesignEnableLog", true); 
 | 
            Launch.Instance.EnableLogWarning = LocalSave.GetBool("DesignEnableLogWarning", true); 
 | 
            Launch.Instance.EnableLogError = LocalSave.GetBool("DesignEnableLogError", true); 
 | 
            Launch.Instance.EnableNetLog = false; 
 | 
        } 
 | 
        else 
 | 
        { 
 | 
            Launch.Instance.EnableLog = false; 
 | 
            Launch.Instance.EnableLogWarning = false; 
 | 
            Launch.Instance.EnableLogError = false; 
 | 
            Launch.Instance.EnableNetLog = false; 
 | 
        } 
 | 
  
 | 
        autoLogin = Resources.Load<TextAsset>("AutoLogin") != null; 
 | 
        if (autoLogin) 
 | 
        { 
 | 
            var update = new LogicUpdate(3f); 
 | 
            update.Start(OnAutoLoginUpdate); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    private void OnAutoLoginUpdate() 
 | 
    { 
 | 
        // TODO YYL 
 | 
        // if (StageLoad.Instance.currentStage is LoginStage) 
 | 
        // { 
 | 
            var loginWin = UIManager.Instance.GetUI<LoginWin>(); 
 | 
            if (loginWin != null) 
 | 
            { 
 | 
                var accountIpf = loginWin.transform.FindComponent("InputField", "Container_Account/AccountInput"); 
 | 
                if (accountIpf != null) 
 | 
                { 
 | 
                    (accountIpf as InputField).text = StringUtility.Contact("Test_", UnityEngine.Random.Range(10000, 99999)); 
 | 
                } 
 | 
  
 | 
                var enterGame = loginWin.transform.FindComponent("Button", "Container_EnterGame/LoginButton"); 
 | 
                (enterGame as Button).onClick.Invoke(); 
 | 
            } 
 | 
        // } 
 | 
  
 | 
  
 | 
        // if (StageLoad.Instance.currentStage is CreateRoleStage) 
 | 
        // { 
 | 
        //     var win = WindowCenter.Instance.Get<CreateRoleWin>(); 
 | 
        //     if (win != null) 
 | 
        //     { 
 | 
        //         var enterGame = win.transform.FindComponent("Button", "Container_Right/Btn_CreateRole"); 
 | 
        //         if (enterGame is Button) 
 | 
        //         { 
 | 
        //             (enterGame as Button).onClick.Invoke(); 
 | 
        //         } 
 | 
        //     } 
 | 
        // } 
 | 
    } 
 | 
  
 | 
    public void CreateDebugRoot() 
 | 
    { 
 | 
        if (debugRoot == null) 
 | 
        { 
 | 
            // var prefab = BuiltInLoader.LoadPrefab("UIRootDebug"); 
 | 
            // debugRoot = GameObject.Instantiate(prefab); 
 | 
            // MonoBehaviour.DontDestroyOnLoad(debugRoot); 
 | 
            // debugRoot.name = "UIRootDebug"; 
 | 
        } 
 | 
    } 
 | 
  
 | 
    public void RequestWhiteListAuthority(string _account) 
 | 
    { 
 | 
        //isWhiteListAccount = false; 
 | 
        //var tables = new Dictionary<string, string>(); 
 | 
        //tables["channel"] = VersionConfig.Get().appId; 
 | 
        //tables["player"] = ModelCenter.Instance.GetModel<LoginModel>().sdkLoginResult.account; 
 | 
        //tables["game"] = VersionConfig.Get().gameId; 
 | 
  
 | 
        //HttpRequest.Instance.RequestHttpGet(StringUtility.Contact(url, HttpRequest.HashtablaToString(tables)), HttpRequest.defaultHttpContentType, 1, OnDebugAuthority); 
 | 
    } 
 | 
  
 | 
    private void OnDebugAuthority(bool _ok, string _result) 
 | 
    { 
 | 
        if (_ok) 
 | 
        { 
 | 
            var debugAuthority = JsonMapper.ToObject<DebugAuthority>(_result); 
 | 
            isWhiteListAccount = debugAuthority.dbg == 1; 
 | 
        } 
 | 
    } 
 | 
  
 | 
    public static void SetLogAble(bool _able) 
 | 
    { 
 | 
        LocalSave.SetBool("DesignEnableLog", _able); 
 | 
        Launch.Instance.EnableLog = _able; 
 | 
    } 
 | 
  
 | 
    public static void SetLogWarningAble(bool _able) 
 | 
    { 
 | 
        LocalSave.SetBool("DesignEnableLogWarning", _able); 
 | 
        Launch.Instance.EnableLogWarning = _able; 
 | 
    } 
 | 
  
 | 
    public static void SetLogErrorAble(bool _able) 
 | 
    { 
 | 
        LocalSave.SetBool("DesignEnableLogError", _able); 
 | 
        Launch.Instance.EnableLogError = _able; 
 | 
    } 
 | 
  
 | 
    public static void SetLogNetAble(bool _able) 
 | 
    { 
 | 
        Launch.Instance.EnableNetLog = _able; 
 | 
    } 
 | 
  
 | 
    struct DebugAuthority 
 | 
    { 
 | 
        public int dbg; 
 | 
    } 
 | 
  
 | 
    public class DebugBranch 
 | 
    { 
 | 
        public int branch = -1; 
 | 
    } 
 | 
  
 | 
} 
 |