using Lovense.UnityKit;
using Lovense.UnityKit.iOS;
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
using UnityEngine.Android;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

public class iOSLovenseController : MonoBehaviour
{
   
    public static bool isFirstEnter = true;
    List<iOSLovenseItem> uiList = new List<iOSLovenseItem>();

    [SerializeField]
    public Transform content;
    [SerializeField]
    public Text title;
    [SerializeField]
    public iOSLovenseItem newToysObj;
    

    public int accessAccount;
    private void Awake()
    {
        for(int i = 0; i < uiList.Count; i ++)
        {
            iOSLovenseItem item = uiList[i];
            Destroy(item);
        }
        uiList.Clear();
        title.text = "toys list";
        if(LovenseiOSSDK.iOSToys.Count > 0 )
        {
            OnGetToysEvent(null);
        }
        LovenseiOSSDK.oniOSGetToysEvent.AddListener(OnGetToysEvent);
    }

    public void OnGetToysEvent(LovenseiOSToy newToy)
    {
        for (int i = 0; i < LovenseiOSSDK.iOSToys.Count; i++)
        {
            LovenseiOSToy toy = LovenseiOSSDK.iOSToys[i];
            iOSLovenseItem newObject;
            if (i < uiList.Count)
            {
                iOSLovenseItem ui = uiList[i];
                ui.gameObject.SetActive(true);
                ui.SetToys(toy);
            }
            else
            {
                newObject = GameObject.Instantiate(newToysObj, content);
                if (newObject != null)
                {
                    newObject.gameObject.SetActive(true);
                    newObject.SetToys(toy);
                    uiList.Add(newObject);
                }
            }
        }
        if (LovenseiOSSDK.iOSToys.Count < uiList.Count)
        {
            for (int i = LovenseiOSSDK.iOSToys.Count; i < uiList.Count; i++)
            {
                uiList[i].gameObject.SetActive(false);
            }
        }
    }

    // Start is called before the first frame update
    void Start()
    {
       
    }


    // Update is called once per frame
    void Update()
    {
        
    }


    public void OnFinishFunc()
    {
        title.text = "toys list";
    }

    public void OnStartScanClick()
    {
        title.text = "Searching toys...";
        LovenseiOSSDK.GetInstance().SearchToys();
    }

    public void OnStopScanClick()
    {
        title.text = "toys list";
        LovenseiOSSDK.GetInstance().StopSearch();
    }


    public void OnControlClick()
    {
        List<string> ids = new List<string>();
        List<string> names = new List<string>();
        for (int i = 0; i < uiList.Count; i++)
        {
            iOSLovenseItem item = uiList[i];
            if (item.gameObject.activeInHierarchy && item.IsCheck())
            {
                ids.Add(item.GetToyId());
                names.Add(item.GetToyName());
            }
        }
        iOSGlobal.GetInstance().thisToy = null;
        iOSGlobal.GetInstance().thisToys = ids;
        iOSGlobal.GetInstance().thisToysNames = names;
        SceneManager.LoadScene("LovenseiOSScene1");
    }
}
