1. 新增自动锁定相关数据存储与逻辑,支持配置锁定间隔 2. 添加个人页安全设置入口与自动锁定设置页面 3. 重构主页自动锁定检测逻辑,替换原有临时计时变量 4. 更新多语言文案与项目版本号
134 lines
5.3 KiB
C#
134 lines
5.3 KiB
C#
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;
|
|
public GameObject safetySettingPage;
|
|
public Button safetySettingButton;
|
|
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);
|
|
safetySettingButton.onClick.RemoveAllListeners();
|
|
safetySettingButton.onClick.AddListener(EnterSafetySettingPage);
|
|
await RefreshAsync();
|
|
|
|
}
|
|
public void OnBack()
|
|
{
|
|
UIManager.Instance.OpenMainPage(UIManager.PageName.homePage);
|
|
}
|
|
public GameObject qrCodePanelPrefab;
|
|
public void OnShowQrCode()
|
|
{
|
|
GameObject qrCodePanel = Instantiate(qrCodePanelPrefab, transform);
|
|
qrCodePanel.GetComponent<SelfQrcodePage>().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;
|
|
nicknameText.text = userInfo.username;
|
|
emailText.text = userInfo.email;
|
|
if (!string.IsNullOrEmpty(userInfo.avatar))
|
|
{
|
|
avatarImage.gameObject.SetActive(true);
|
|
await NetworkCtrl.Instance.LoadImageToUIImageAsync(userInfo.avatar, avatarImage);
|
|
avatarImage.transform.parent.GetComponent<Mask>().showMaskGraphic=false;
|
|
}
|
|
}
|
|
public void EnterSafePage()
|
|
{
|
|
ShowImageText safePage=Instantiate(safeHighlightPagePrefab,transform);
|
|
safePage.gameObject.SetActive(true);
|
|
safePage.Init(()=>{UIManager.Instance.RegisterBackAction(OnSafetySettingBack);});
|
|
}
|
|
public Button safetySettingBackButton;
|
|
public Button autoLockButton;
|
|
public GameObject autoLockSettingPanelPrefab;
|
|
public void EnterSafetySettingPage()
|
|
{
|
|
safetySettingPage.SetActive(true);
|
|
safetySettingBackButton.onClick.RemoveAllListeners();
|
|
safetySettingBackButton.onClick.AddListener(OnSafetySettingBack);
|
|
autoLockButton.onClick.RemoveAllListeners();
|
|
autoLockButton.onClick.AddListener(OnAutoLockSetting);
|
|
UIManager.Instance.RegisterBackAction(OnSafetySettingBack);
|
|
}
|
|
public void OnSafetySettingBack()
|
|
{
|
|
safetySettingPage.SetActive(false);
|
|
UIManager.Instance.RegisterBackAction(OnBack);
|
|
}
|
|
GameObject autoLockSettingPanel;
|
|
public void OnAutoLockSetting()
|
|
{
|
|
autoLockSettingPanel=Instantiate(autoLockSettingPanelPrefab,transform);
|
|
autoLockSettingPanel.gameObject.SetActive(true);
|
|
}
|
|
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);});
|
|
}
|
|
}
|
|
|
|
}
|