using UnityEngine;
using FairyGUI;
using UI.Launcher;
using System;
namespace GFGGame
{
    public class FullScreenTextView
    {
        private static FullScreenTextView m_Instance = null;
        /// 
        /// 单例
        /// 
        public static FullScreenTextView Instance
        {
            get
            {
                if (m_Instance == null)
                {
                    m_Instance = new FullScreenTextView();
                }
                return m_Instance;
            }
        }
        private UI_FullScreenTextUI _ui;
        /// 
        /// FairyGUI包名
        /// 
        private string _packageName;
        public void Dispose()
        {
            if (_ui != null)
            {
                _ui.Dispose();
                _ui = null;
            }
        }
        public FullScreenTextView()
        {
            _packageName = UI_FullScreenTextUI.PACKAGE_NAME;
            UIPackage.AddPackage("UI/" + _packageName + "/" + _packageName);
            _ui = UI_FullScreenTextUI.Create();
            _ui.target.MakeFullScreen();
            _ui.target.AddRelation(GRoot.inst, RelationType.Size);
            _ui.m_btnBack.onClick.Add(this.Hide);
        }
        public void Show(string eventName)
        {
            GRoot.inst.AddChild(_ui.target);
            _ui.m_txtComp.m_txtContent.text = "加载中...";
            _ui.m_txtComp.target.scrollPane.ScrollTop();
            LoadText(eventName);
            Timers.inst.AddUpdate(Update);
        }
        public void Hide()
        {
            Timers.inst.Remove(Update);
            _ui.target.RemoveFromParent();
        }
        private void Update(object param)
        {
            if (Input.GetKeyDown(KeyCode.Escape) || Input.GetKeyDown(KeyCode.Home))
            {
                this.Hide();
            }
        }
        private void LoadText(string eventName)
        {
            string fileName = null;
            switch (eventName)
            {
                case "event:a":
                    fileName = "serviceProtocal";
                    break;
                case "event:b":
                    fileName = "privacyPolicy";
                    break;
                case "event:c":
                    fileName = "privacyPolicyChildren";
                    break;
                default:
                    return;
            }
            string url = string.Format(LauncherConfig.privacy_v, fileName);
            HttpTool.Instance.Get(url, (string content) =>
            {
                _ui.m_txtComp.m_txtContent.text = content;
            });
        }
    }
}