fix ui for dlg FriendList
This commit is contained in:
@@ -721,8 +721,8 @@ namespace CSNetwork
|
||||
if (p.info?.name != null && p.info.name.Size > 0)
|
||||
friendName = System.Text.Encoding.Unicode.GetString(p.info.name.ToArray(), 0, p.info.name.Size);
|
||||
string msg = p.retcode == 0
|
||||
? $"Add friend success: {friendName}"
|
||||
: $"Add friend failed: {GetAddFriendRetcodeMessage(p.retcode)}";
|
||||
? $"Thêm bạn thành công: {friendName}"
|
||||
: $"Không thể thêm bạn do: {GetAddFriendRetcodeMessage(p.retcode)}";
|
||||
if (p.retcode == 0)
|
||||
{
|
||||
Friend_GetList();
|
||||
@@ -736,15 +736,24 @@ namespace CSNetwork
|
||||
{
|
||||
switch (retcode)
|
||||
{
|
||||
case 0: return "Success";
|
||||
case 1: return "Player is offline";
|
||||
case 2: return "Request was refused";
|
||||
case 3: return "Timeout";
|
||||
case 4: return "No remaining space";
|
||||
case 5: return "Not found";
|
||||
case 6: return "Invalid parameter";
|
||||
case 7: return "Duplicate entry";
|
||||
case 8: return "Friend list has not been retrieved yet";
|
||||
//case 0: return "Success";
|
||||
//case 1: return "Player is offline";
|
||||
//case 2: return "Request was refused";
|
||||
//case 3: return "Timeout";
|
||||
//case 4: return "No remaining space";
|
||||
//case 5: return "Not found";
|
||||
//case 6: return "Invalid parameter";
|
||||
//case 7: return "Duplicate entry";
|
||||
//case 8: return "Friend list has not been retrieved yet";
|
||||
case 0: return "thành công";
|
||||
case 1: return "người chơi đang offline";
|
||||
case 2: return "yêu cầu bị từ chối";
|
||||
case 3: return "hết thời gian yêu cầu";
|
||||
case 4: return "không còn chỗ trống";
|
||||
case 5: return "không tìm thấy";
|
||||
case 6: return "tham số không hợp lệ";
|
||||
case 7: return "mục nhập trùng lặp";
|
||||
case 8: return "danh sách bạn bè chưa được tải về";
|
||||
default: return $"retcode={retcode}";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -738,7 +738,7 @@ namespace BrewMonster.Network
|
||||
string name = string.IsNullOrEmpty(askerName) ? ("Player " + srcroleid) : askerName;
|
||||
CECUIManager.Instance?.ShowMessageBoxYesAndNo(
|
||||
title: "Friend Request",
|
||||
message: $"{name} wants to add you as a friend.",
|
||||
message: $"{name} muốn hảo hữu với bạn.",
|
||||
dlg: null,
|
||||
onClickedYes: () => Friend_AddResponse(xid, agree: true),
|
||||
onClickedNo: () => Friend_AddResponse(xid, agree: false));
|
||||
@@ -747,7 +747,7 @@ namespace BrewMonster.Network
|
||||
private void OnAddFriendResultReceived(byte retcode, string message)
|
||||
{
|
||||
CECUIManager.Instance?.ShowMessageBoxYes(
|
||||
title: retcode == 0 ? "Friend added" : "Add friend failed",
|
||||
title: retcode == 0 ? "Friend added" : "Đã có trong danh sách bạn bè, không thể hảo hữu",
|
||||
message: message,
|
||||
dlg: null,
|
||||
null);
|
||||
@@ -891,4 +891,4 @@ namespace BrewMonster.Network
|
||||
return v;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,10 +49,13 @@ namespace BrewMonster
|
||||
[Header("GameObject")]
|
||||
[SerializeField] private GameObject m_contextMenu;
|
||||
[SerializeField] private GameObject m_inputName;
|
||||
[SerializeField] private Sprite m_normalBtn;
|
||||
[SerializeField] private Sprite m_grayBtn;
|
||||
|
||||
private CSNetwork.GameSession _session;
|
||||
private FriendTab _currentTab = FriendTab.Friend;
|
||||
private int _selectedFriendId;
|
||||
private string _selectedFriendName;
|
||||
private Image _selectedRowImage;
|
||||
private Color _selectedRowOriginalColor;
|
||||
private TMP_InputField _addNameInput;
|
||||
@@ -75,6 +78,7 @@ namespace BrewMonster
|
||||
_session.Friend_GetList();
|
||||
}
|
||||
|
||||
UpdateButtonTabUI(_currentTab);
|
||||
RefreshListFromHost();
|
||||
|
||||
if (m_helpBtn != null)
|
||||
@@ -92,6 +96,7 @@ namespace BrewMonster
|
||||
m_friendBtn.onClick.AddListener(() =>
|
||||
{
|
||||
_currentTab = FriendTab.Friend;
|
||||
UpdateButtonTabUI(_currentTab);
|
||||
RefreshListFromHost();
|
||||
});
|
||||
}
|
||||
@@ -102,6 +107,7 @@ namespace BrewMonster
|
||||
m_blacklistBtn.onClick.AddListener(() =>
|
||||
{
|
||||
_currentTab = FriendTab.Blacklist;
|
||||
UpdateButtonTabUI(_currentTab);
|
||||
RefreshListFromHost();
|
||||
});
|
||||
}
|
||||
@@ -112,6 +118,7 @@ namespace BrewMonster
|
||||
m_archrivalBtn.onClick.AddListener(() =>
|
||||
{
|
||||
_currentTab = FriendTab.Archrival;
|
||||
UpdateButtonTabUI(_currentTab);
|
||||
RefreshListFromHost();
|
||||
});
|
||||
}
|
||||
@@ -130,7 +137,12 @@ namespace BrewMonster
|
||||
if (m_deleteBtn != null)
|
||||
{
|
||||
m_deleteBtn.onClick.RemoveAllListeners();
|
||||
m_deleteBtn.onClick.AddListener(OnDeleteFriendClicked);
|
||||
m_deleteBtn.onClick.AddListener(() => CECUIManager.Instance.ShowMessageBoxYesAndNo(
|
||||
title: "Del Friend Requets",
|
||||
message: $"Bạn có chắc muốn xóa {_selectedFriendName} ra khỏi danh sách hảo hữu",
|
||||
dlg: null,
|
||||
onClickedYes:() => OnDeleteFriendClicked(true),
|
||||
onClickedNo: () => OnDeleteFriendClicked(false)));
|
||||
}
|
||||
|
||||
if (m_fuctionBtn != null)
|
||||
@@ -164,6 +176,7 @@ namespace BrewMonster
|
||||
m_cancelBtn.onClick.RemoveAllListeners();
|
||||
m_cancelBtn.onClick.AddListener(() =>
|
||||
{
|
||||
_addNameInput.text = string.Empty;
|
||||
m_inputName.SetActive(false);
|
||||
});
|
||||
}
|
||||
@@ -173,6 +186,7 @@ namespace BrewMonster
|
||||
m_closeBtn.onClick.RemoveAllListeners();
|
||||
m_closeBtn.onClick.AddListener(() =>
|
||||
{
|
||||
m_contextMenu.SetActive(false);
|
||||
CloseDialogue();
|
||||
});
|
||||
}
|
||||
@@ -182,7 +196,8 @@ namespace BrewMonster
|
||||
m_associate.onClick.RemoveAllListeners();
|
||||
m_associate.onClick.AddListener(() =>
|
||||
{
|
||||
// TODO: Associate friend with group
|
||||
m_inputName.SetActive(true);
|
||||
m_contextMenu.SetActive(false);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -274,21 +289,24 @@ namespace BrewMonster
|
||||
foreach (var f in g.Friends)
|
||||
{
|
||||
var go = Instantiate(m_friendDetailPrefabs, m_friendContainer);
|
||||
WireRowSelection(go, f.Id);
|
||||
var nameTxt = go.transform.Find("text_name")?.GetComponent<TextMeshProUGUI>();
|
||||
var stateTxt = go.transform.Find("text_state")?.GetComponent<TextMeshProUGUI>();
|
||||
string displayName = string.IsNullOrEmpty(f.Name) ? f.Id.ToString() : f.Name;
|
||||
|
||||
if (nameTxt != null) nameTxt.text = string.IsNullOrEmpty(f.Name) ? f.Id.ToString() : f.Name;
|
||||
if (stateTxt != null)
|
||||
{
|
||||
bool online = f.IsGameOnline();
|
||||
Debug.Log($"[Friend] id={f.Id}, name={f.Name}, status={f.Status}, isGame={f.IsGameOnline()}, isGT={f.IsGTOnline()}");
|
||||
stateTxt.text = online ? "Online" : "Offline";
|
||||
}
|
||||
|
||||
WireRowSelection(go, f.Id, displayName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void WireRowSelection(GameObject rowGo, int friendId)
|
||||
private void WireRowSelection(GameObject rowGo, int friendId, string displayName)
|
||||
{
|
||||
if (rowGo == null) return;
|
||||
|
||||
@@ -297,15 +315,16 @@ namespace BrewMonster
|
||||
if (btn == null) return;
|
||||
|
||||
btn.onClick.RemoveAllListeners();
|
||||
btn.onClick.AddListener(() => SelectRow(friendId, img));
|
||||
btn.onClick.AddListener(() => SelectRow(friendId, displayName, img));
|
||||
}
|
||||
|
||||
private void SelectRow(int friendId, Image rowImage)
|
||||
private void SelectRow(int friendId, string displayName, Image rowImage)
|
||||
{
|
||||
if (_selectedRowImage != null)
|
||||
_selectedRowImage.color = _selectedRowOriginalColor;
|
||||
|
||||
_selectedFriendId = friendId;
|
||||
_selectedFriendName = displayName;
|
||||
_selectedRowImage = rowImage;
|
||||
if (_selectedRowImage != null)
|
||||
{
|
||||
@@ -325,10 +344,13 @@ namespace BrewMonster
|
||||
}
|
||||
|
||||
/// <summary>Delete friend: send PROTOCOL_DELFRIEND and wait for server to refresh list.</summary>
|
||||
private void OnDeleteFriendClicked()
|
||||
private void OnDeleteFriendClicked(bool isDel)
|
||||
{
|
||||
if (_session == null || _selectedFriendId <= 0) return;
|
||||
_session.Friend_Del(_selectedFriendId);
|
||||
if (isDel)
|
||||
{
|
||||
if (_session == null || _selectedFriendId <= 0) return;
|
||||
_session.Friend_Del(_selectedFriendId);
|
||||
}
|
||||
}
|
||||
|
||||
private void EnsureAddNameInput()
|
||||
@@ -337,5 +359,15 @@ namespace BrewMonster
|
||||
if (m_inputName == null) return;
|
||||
_addNameInput = m_inputName.GetComponentInChildren<TMP_InputField>(true);
|
||||
}
|
||||
|
||||
private void UpdateButtonTabUI(FriendTab friendTab)
|
||||
{
|
||||
if (m_friendBtn != null)
|
||||
m_friendBtn.image.sprite = friendTab == FriendTab.Friend ? m_normalBtn : m_grayBtn;
|
||||
if (m_blacklistBtn != null)
|
||||
m_blacklistBtn.image.sprite = friendTab == FriendTab.Blacklist ? m_normalBtn : m_grayBtn;
|
||||
if (m_archrivalBtn != null)
|
||||
m_archrivalBtn.image.sprite = friendTab == FriendTab.Archrival ? m_normalBtn : m_grayBtn;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4393,6 +4393,8 @@ MonoBehaviour:
|
||||
m_friendDetailPrefabs: {fileID: 5752057303472545993, guid: e684e5343545d9e40b917dd166aab2b1, type: 3}
|
||||
m_contextMenu: {fileID: 8872269839583632195}
|
||||
m_inputName: {fileID: 5862432234042242884}
|
||||
m_normalBtn: {fileID: 21300000, guid: a3a0e047e45566c4aa15080b346621b1, type: 3}
|
||||
m_grayBtn: {fileID: 21300000, guid: 3b5dda180f088234f97e05dd0bf05463, type: 3}
|
||||
--- !u!1 &8303299344314577934
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
Reference in New Issue
Block a user