using System.Collections; using System.Collections.Generic; using System.Threading.Tasks; using Kill.Managers; using Kill.Network; using Kill.UI.Components; using UnityEngine; using UnityEngine.UI; namespace Kill.UI.Pages { public class SelfPage : MonoBehaviour { public Button backButton; public Button showQrCodeButton; public Button showInfoButton; public SelfInfoPage selfInfoPagePrefab; public Button safetyTestButton; public ChangeLanguagePage changeLanguagePagePrefab; public Button languageSettingButton; public Image avatarImage; public Text nicknameText; public Text emailText; UserInfo userInfo; public ShowImageText safeHighlightPagePrefab; public ShowImageText statusPagePrefab; async Task Start() { UIManager.Instance.RegisterBackAction(OnBack); backButton.onClick.RemoveAllListeners(); backButton.onClick.AddListener(OnBack); showQrCodeButton.onClick.RemoveAllListeners(); showQrCodeButton.onClick.AddListener(OnShowQrCode); showInfoButton.onClick.RemoveAllListeners(); showInfoButton.onClick.AddListener(OnShowInfo); safetyTestButton.onClick.RemoveAllListeners(); safetyTestButton.onClick.AddListener(OnSafetyTest); languageSettingButton.onClick.RemoveAllListeners(); languageSettingButton.onClick.AddListener(OnChangeLanguage); await RefreshAsync(); } public void OnBack() { UIManager.Instance.OpenMainPage(UIManager.PageName.homePage); } public GameObject qrCodePanelPrefab; public void OnShowQrCode() { GameObject qrCodePanel = Instantiate(qrCodePanelPrefab, transform); qrCodePanel.GetComponent().Init(userInfo); } public void OnShowInfo() { SelfInfoPage infoPage = Instantiate(selfInfoPagePrefab, transform); infoPage.Init(userInfo); } public void OnSafetyTest() { UIManager.Instance.OpenPage(UIManager.PageName.safetylearningPage); } public void OnChangeLanguage() { ChangeLanguagePage languagePage = Instantiate(changeLanguagePagePrefab, transform); } public async Task RefreshAsync() { userInfo = DataManager.Instance.userInfo; avatarImage.gameObject.SetActive(false); nicknameText.text = userInfo.username; emailText.text = userInfo.email; if (string.IsNullOrEmpty(userInfo.avatar)) { avatarImage.gameObject.SetActive(false); avatarImage.transform.parent.GetComponent().showMaskGraphic=true; } else { await NetworkCtrl.Instance.LoadImageToUIImageAsync(userInfo.avatar, avatarImage); avatarImage.gameObject.SetActive(true); avatarImage.transform.parent.GetComponent().showMaskGraphic=false; } } public void EnterSafePage() { ShowImageText safePage=Instantiate(safeHighlightPagePrefab,transform); safePage.gameObject.SetActive(true); safePage.Init(()=>{UIManager.Instance.RegisterBackAction(OnBack);}); } public void EnterStatusPage() { ShowImageText statusPage=Instantiate(statusPagePrefab,transform); statusPage.gameObject.SetActive(true); statusPage.Init(()=>{UIManager.Instance.RegisterBackAction(OnBack);}); } public FAQPage fAQPagePrefab; public void EnterFaqPage() { FAQPage fAQPage=Instantiate(fAQPagePrefab,transform); fAQPage.gameObject.SetActive(true); fAQPage.Init(()=>{UIManager.Instance.RegisterBackAction(OnBack);}); } public DeviceTeachingPage[] deviceTeachingPagePrefabs; public void EnterDeviceTeachingPage() { int type=(int)LanguageManager.Instance.languageType; DeviceTeachingPage deviceTeachingPage=Instantiate(deviceTeachingPagePrefabs[type],transform); deviceTeachingPage.gameObject.SetActive(true); deviceTeachingPage.Init(()=>{UIManager.Instance.RegisterBackAction(OnBack);}); } } }