using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

namespace MPStudio
{
    public class SetPanel : MonoBehaviour
    {
        public string email = "894982165@qq.com";
        public string web = "www.ytn0.com";
        public string shareSide = "www.ytn0.com";
        
        internal static SetPanel Inst;
        public Slider musicSlider;
        public  Slider effectSlider;

        public Toggle shakeToggle;

        public Dropdown dp;
        
        private void Awake()
        {
            if (Inst == null) Inst = this;
            
           // musicSlider = transform.Find("musicSlider").GetComponent<Slider>();
            //effectSlider = transform.Find("effectSlider").GetComponent<Slider>();
        }

        private void OnDisable()
        {
            AudioManager.Inst.SaveConfig();
            SaveManager.Inst.SaveTestData();
        }

        public void Email()
        {
            string gameMark = $"--From the game {Application.identifier} version {Application.version} find bug!";

            string str = "mailto:" + email + "?subject=" + "&body="+gameMark;

            Application.OpenURL(str);
        }

        public void WebSide()
        {
            Application.OpenURL(web);
        }

        public void ShareSide()
        {
            Application.OpenURL(shareSide);
        }


        public void ReloadGame()
        {
            var txt = dp.transform.Find("reloadTipText").GetComponent<Text>();

            int waiS = 6;
            IEnumerator DelayReload()
            {
                for (int i = waiS; i >= 1; i--)
                {
                    txt.text =LanguageManager.Inst.FillMessage(1,i)  ;
                    //print(SaveManager.Inst.testData.languageID+":"+txt.text);
                    yield return    new WaitForSeconds(1f);
                }
                
                this.gameObject.SetActive(false);
                Application.Quit();   
            }

            StartCoroutine(DelayReload());

        }
        
        
        

        private void Start()
        {
            dp.value = SaveManager.Inst.testData.languageID;
            
            musicSlider.value = AudioManager.Inst.musicVolume;
            effectSlider.value = AudioManager.Inst.effectVolume;

//            print(shakeToggle==null);
            shakeToggle.isOn = SaveManager.Inst.testData.isShake;
            
            shakeToggle.onValueChanged.AddListener((b) =>
            {
                SaveManager.Inst.testData.isShake = b;
            });

            musicSlider.onValueChanged.AddListener((f) =>
            {
                
                AudioManager.Inst.ChangeConfig(f,AudioManager.Inst.effectVolume);
            });
            effectSlider.onValueChanged.AddListener((f) =>
            {
                AudioManager.Inst.ChangeConfig(AudioManager.Inst.musicVolume,f);
            });
            
            dp.onValueChanged.AddListener((v) =>
            {
                SaveManager.Inst.testData.languageID = v;
                ReloadGame();
            });
        }
    }
}