154 lines
5.4 KiB
C#
154 lines
5.4 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using Kill.Managers;
|
|
using UnityEngine.UI;
|
|
using Kill.Network;
|
|
using System.Threading.Tasks;
|
|
using Kill.UI.Components;
|
|
namespace Kill.UI.Pages
|
|
{
|
|
|
|
public class SelfInfoPage : MonoBehaviour
|
|
{
|
|
UserInfo userInfo;
|
|
public RawImage avatarImage;
|
|
public Text nicknameText;
|
|
public RenamePage renamePagePrefab;
|
|
public Button renameButton;
|
|
public Button backButton;
|
|
public SelfVerificationCodePanel verificationCodePanelPrefab;
|
|
public SelfSetPasswordPanel setPasswordPanelPrefab;
|
|
List<string> passwordSetKeys = new List<string> { "100200", "100201" };
|
|
public Button signoutButton;
|
|
/// <summary>
|
|
/// 0设置 1修改
|
|
/// </summary>
|
|
List<string> passwordSet;
|
|
/// <summary>
|
|
/// <summary>
|
|
/// 0简单密码 1复杂密码
|
|
/// </summary>
|
|
public Button[] setPasswordButtons;
|
|
public Text[] setPasswordButtonTexts;
|
|
public async Task Init(UserInfo userInfo)
|
|
{
|
|
this.userInfo = userInfo;
|
|
UIManager.Instance.RegisterBackAction(OnBack);
|
|
backButton.onClick.RemoveAllListeners();
|
|
backButton.onClick.AddListener(OnBack);
|
|
renameButton.onClick.RemoveAllListeners();
|
|
renameButton.onClick.AddListener(() =>
|
|
{
|
|
RenamePage renamePage = Instantiate(renamePagePrefab, transform);
|
|
renamePage.Init(userInfo.username, CloseRenamePage, 1);
|
|
});
|
|
signoutButton.onClick.RemoveAllListeners();
|
|
signoutButton.onClick.AddListener(ClickSignOut);
|
|
// 在这里初始化个人信息页面,显示用户信息
|
|
if (avatarImage != null)
|
|
{
|
|
// 设置头像
|
|
if (userInfo.avatar != null)
|
|
{
|
|
await NetworkCtrl.Instance.LoadImageToUIRawImageAsync(userInfo.avatar, avatarImage);
|
|
avatarImage.gameObject.SetActive(true);
|
|
avatarImage.transform.parent.GetComponent<Mask>().showMaskGraphic = false;
|
|
}
|
|
else
|
|
{
|
|
avatarImage.gameObject.SetActive(false);
|
|
avatarImage.transform.parent.GetComponent<Mask>().showMaskGraphic = true;
|
|
}
|
|
}
|
|
|
|
if (nicknameText != null)
|
|
{
|
|
nicknameText.text = userInfo.username;
|
|
}
|
|
InitLanguageText();
|
|
}
|
|
public void InitLanguageText()
|
|
{
|
|
passwordSet = new List<string>();
|
|
foreach (var key in passwordSetKeys)
|
|
{
|
|
passwordSet.Add(LanguageManager.Instance.GetLanguage(key));
|
|
}
|
|
if (userInfo.has_simple_password)
|
|
{
|
|
setPasswordButtonTexts[0].text = passwordSet[1];
|
|
}
|
|
else
|
|
{
|
|
setPasswordButtonTexts[0].text = passwordSet[0];
|
|
}
|
|
if (userInfo.has_complex_password)
|
|
{
|
|
setPasswordButtonTexts[1].text = passwordSet[1];
|
|
}
|
|
else
|
|
{
|
|
setPasswordButtonTexts[1].text = passwordSet[0];
|
|
}
|
|
setPasswordButtons[0].onClick.RemoveAllListeners();
|
|
setPasswordButtons[0].onClick.AddListener(() => OnSetPassword(0));
|
|
setPasswordButtons[1].onClick.RemoveAllListeners();
|
|
setPasswordButtons[1].onClick.AddListener(() => OnSetPassword(1));
|
|
|
|
}
|
|
public void CloseRenamePage(string newNickname)
|
|
{
|
|
if (nicknameText != null)
|
|
{
|
|
nicknameText.text = newNickname;
|
|
}
|
|
DataManager.Instance.userInfo.username = newNickname;
|
|
UIManager.Instance.RegisterBackAction(OnBack);
|
|
}
|
|
int passwordType = -1;
|
|
SelfVerificationCodePanel verificationCodePanel;
|
|
public void OnSetPassword(int passwordType)
|
|
{
|
|
this.passwordType = passwordType;
|
|
verificationCodePanel = Instantiate(verificationCodePanelPrefab, transform);
|
|
verificationCodePanel.Init(OnSureVerificationCode);
|
|
}
|
|
SelfSetPasswordPanel setPasswordPanel;
|
|
public void OnSureVerificationCode()
|
|
{
|
|
Destroy(verificationCodePanel.gameObject);
|
|
setPasswordPanel = Instantiate(setPasswordPanelPrefab, transform);
|
|
setPasswordPanel.Init(passwordType, OnSetPasswordSuccess);
|
|
}
|
|
public void OnSetPasswordSuccess()
|
|
{
|
|
Destroy(setPasswordPanel.gameObject);
|
|
|
|
UIManager.Instance.RegisterBackAction(OnBack);
|
|
Init(DataManager.Instance.userInfo);
|
|
}
|
|
public void OnBack()
|
|
{
|
|
UIManager.Instance.RegisterBackAction(GetComponentInParent<SelfPage>().OnBack);
|
|
GetComponentInParent<SelfPage>().RefreshAsync();
|
|
Destroy(gameObject);
|
|
}
|
|
public WindowTipCtrl signoutTip;
|
|
public void ClickSignOut()
|
|
{
|
|
signoutTip.gameObject.SetActive(true);
|
|
signoutTip.Init(OnSignOut,()=>{signoutTip.gameObject.SetActive(false);});
|
|
}
|
|
public void OnSignOut()
|
|
{
|
|
// 清除用户数据
|
|
DataManager.Instance.ClearInfo();
|
|
// 返回登录页面
|
|
UIManager.Instance.OpenPage(UIManager.PageName.loginPage);
|
|
}
|
|
|
|
|
|
}
|
|
|
|
} |