92 lines
3.4 KiB
C#
92 lines
3.4 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using Kill.Managers;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
namespace Kill.UI.Pages
|
|
{
|
|
public class HomePageDevicePage : MonoBehaviour
|
|
{
|
|
public GameObject devicePrefab;
|
|
public Transform deviceParent;
|
|
private List<GameObject> deviceList;
|
|
private DeviceInfo lastSelectedDevice;
|
|
private DeviceInfo selectedDevice;
|
|
public void InitDeviceList(List<DeviceInfo> ownedDevices, List<DeviceInfo> sharedDevices, DeviceInfo selectedDevice)
|
|
{
|
|
lastSelectedDevice = selectedDevice;
|
|
this.selectedDevice = selectedDevice;
|
|
devicePrefab.SetActive(false);
|
|
if (deviceList != null && deviceList.Count > 0)
|
|
{
|
|
foreach (var item in deviceList)
|
|
{
|
|
Destroy(item);
|
|
}
|
|
deviceList.Clear();
|
|
}
|
|
deviceList = new List<GameObject>();
|
|
foreach (var device in ownedDevices)
|
|
{
|
|
var deviceItem = Instantiate(devicePrefab, deviceParent);
|
|
deviceItem.SetActive(true);
|
|
deviceItem.GetComponent<HomePageDeviceItem>().InitDeviceItem(device);
|
|
deviceList.Add(deviceItem);
|
|
deviceItem.gameObject.SetActive(true);
|
|
deviceItem.GetComponent<Button>().onClick.AddListener(() =>
|
|
{
|
|
OnClickDeviceItem(deviceItem);
|
|
});
|
|
}
|
|
foreach (var device in sharedDevices)
|
|
{
|
|
var deviceItem = Instantiate(devicePrefab, deviceParent);
|
|
deviceItem.SetActive(true);
|
|
deviceItem.GetComponent<HomePageDeviceItem>().InitDeviceItem(device);
|
|
deviceList.Add(deviceItem);
|
|
deviceItem.gameObject.SetActive(true);
|
|
deviceItem.GetComponent<Button>().onClick.AddListener(() =>
|
|
{
|
|
OnClickDeviceItem(deviceItem);
|
|
});
|
|
}
|
|
if (selectedDevice != null)
|
|
{
|
|
foreach (var deviceItem in deviceList)
|
|
{
|
|
if (deviceItem.GetComponent<HomePageDeviceItem>().deviceInfo.device_sn == selectedDevice.device_sn)
|
|
{
|
|
deviceItem.GetComponent<HomePageDeviceItem>().SetSelectedState(true);
|
|
deviceItem.transform.SetAsFirstSibling();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public void OnClickDeviceItem(GameObject deviceItem)
|
|
{
|
|
foreach (var item in deviceList)
|
|
{
|
|
item.GetComponent<HomePageDeviceItem>().SetSelectedState(item == deviceItem);
|
|
}
|
|
selectedDevice = deviceItem.GetComponent<HomePageDeviceItem>().deviceInfo;
|
|
}
|
|
public void AddNewDevice()
|
|
{
|
|
UIManager.Instance.OpenPage(UIManager.PageName.connectDevicePage);
|
|
}
|
|
public void ClosePage()
|
|
{
|
|
if(lastSelectedDevice==selectedDevice)
|
|
{
|
|
gameObject.SetActive(false);
|
|
}
|
|
else
|
|
{
|
|
DataManager.Instance.SavaSelectedDeviceMac(selectedDevice.device_sn);
|
|
UIManager.Instance.OpenPage(UIManager.PageName.homePage,null,true);
|
|
}
|
|
}
|
|
}
|
|
}
|