// #if UNITY_EDITOR
// #endif

using FairyGUI;
using SGame;
using UnityEngine;

namespace ScrewsMaster
{
    public class MainScene : BaseScene
    {
        public override int SceneIdx => 0;


        protected override void OnEnter()
        {

        }

        protected override void OnLeave()
        {
        }

        protected override void OnSwitchSceneComplete(object param = null)
        {
            StartUpAppProcess();
        }

        private void StartUpAppProcess()
        {
            OnPermanentAssetsInitComplete();
        }

        private void OnPermanentAssetsInitComplete(object param = null)
        {
            CtrlDispatcher.Instance.AddListener(CtrlMsg.Login_Succeed, OnLoginSucceed);
            var isAssetBundleLoad = false;

#if UNITY_EDITOR
            isAssetBundleLoad = false;
#else
            isAssetBundleLoad = false;
#endif
            if (isAssetBundleLoad)
            {
                int value = 0;
                CrazyZooFileKit.GetLocalAssetBundle(
                    max => { GameDispatcher.Instance.Dispatch(GameMsg.UpdateHotFixMax, max + 1); }, () =>
                    {
                        value++;
                        // GameDispatcher.Instance.Dispatch(GameMsg.UpdateHotFixProgress, value);
                    });
            }
            else
            {
                OnInitAsset();
            }
            MaxADKit.Init();
            AppDispatcher.Instance.AddListener(AppMsg.UI_LoadingInitAsset, OnInitAsset);
        }

        private void OnLoginSucceed(object param = null)
        {
            CtrlDispatcher.Instance.RemoveListener(CtrlMsg.Login_Succeed, OnLoginSucceed);
        }

        private void OnInitAsset(object param = null)
        {
            AppDispatcher.Instance.Dispatch(AppMsg.AppManagerRegister);
            AppDispatcher.Instance.Dispatch(AppMsg.InitUIMgr);
            // NetworkDispatcher.Instance.Dispatch(NetworkMsg.Login);
            AppDispatcher.Instance.AddListener(AppMsg.LoginInit, OnLoadingComplete);

            // NetworkDispatcher.Instance.Dispatch(NetworkMsg.GetConfig);
            // PreferencesMgr.Instance.InitPreferences();
        }

        private void OnLoadingComplete(object param = null)
        {
            CtrlDispatcher.Instance.Dispatch(CtrlMsg.Game_StartReady);

            TimerHelper.mEasy.AddTimer(3.0f, () =>
            {
                AudioManager.Instance.InitDefaultButtonClickSound(AudioConst.UIButtonDefault);
                ModuleManager.Instance.AllModuleGameStart();
                ShowScene();
                
                SaveingPotHelper.CheckSaveingPot();
                SaveingPotHelper.TestingClearTime();
                // if (GameHelper.IsGiftSwitch())
                // {
                //     WebviewManager.Instance.openWebview();
                // }
            });
            
        }

        private void ShowScene()
        {
            UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.GameLoginUI_Open);
            LoginSystem_sdk.Instance.RequestLogin();
        }

        public override void Dispose()
        {
        }
    }
}