using System.Collections; using System.Collections.Generic; using UnityEngine; using Kill.UI.Components; using Kill.Managers; using UnityEngine.UI; using System; using Kill.Network; using Kill.Bluetooth; using Kill.Core; using System.Threading.Tasks; namespace Kill.UI.Pages { public class DeviceSharedUserPage : MonoBehaviour { public Transform sharedUserListContainer; public GameObject sharedUserItemPrefab; public WindowTipCtrl stopShareTip; public Button backButton; public List sharedUsers = new List(); List sharedUserItems = new List(); public string shareTimeLanguageKey = "100211"; string shareTimeString = ""; public GameObject noTip; // Start is called before the first frame update void Start() { shareTimeString = LanguageManager.Instance.GetLanguage(shareTimeLanguageKey); UIManager.Instance.RegisterBackAction(Back); backButton.onClick.RemoveAllListeners(); backButton.onClick.AddListener(Back); stopShareTip.Init(SureStopShare, () => { selectedSharedUserIndex = -1; stopShareTip.gameObject.SetActive(false); }); LoadSharedUsersAsync(); } public async Task LoadSharedUsersAsync() { LoadingUI.Show(); var response = await NetworkCtrl.Instance.Get("/api/v1/device/shared-users?mac=" + DataManager.Instance.selectedDevice.ble_mac); LoadingUI.Hide(); ResponseCodeHandler.HandleResponse(response, onSuccess: (data) => { sharedUsers = data.data.list; if (sharedUsers == null) { sharedUsers = new List(); } InitUserList(); }, onError: (code, msg) => { Debug.LogError("获取共享用户列表失败: " + msg); } ); } public void InitUserList() { noTip.SetActive(false); if (sharedUserItems != null) { foreach (var item in sharedUserItems) { Destroy(item); } sharedUserItems.Clear(); sharedUserItems = new List(); for (int i = 0; i < sharedUsers.Count; i++) { var user = sharedUsers[i]; var item = Instantiate(sharedUserItemPrefab, sharedUserListContainer); item.SetActive(true); item.transform.Find("昵称").GetComponent().text = user.user_name; item.transform.Find("分享时间").GetComponent().text = shareTimeString + user.share_time.ToString("yyyy-MM-dd HH:mm"); Image image = item.transform.Find("头像遮罩").Find("头像").GetComponent(); if (string.IsNullOrEmpty(user.avatar)) { Debug.Log("用户 " + user.user_name + " 没有头像,使用默认头像"); image.gameObject.SetActive(false); image.GetComponentInParent().showMaskGraphic = true; } else { Debug.Log("用户 " + user.user_name + " 有头像,加载头像"); image.gameObject.SetActive(true); image.GetComponentInParent().showMaskGraphic = false; NetworkCtrl.Instance.LoadImageToUIImageAsync(user.avatar, image); } int index = i; item.transform.Find("删除").GetComponent