123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 |
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- public class AccountData
- {
- public string Nickname;
- public string SerialNumber;
- public DateTime LastLoginDate;
- public AccountData(string nickname, string serialNumber, string dateString = null)
- {
- Nickname = nickname;
- SerialNumber = serialNumber;
- if (dateString != null)
- {
- LastLoginDate = DateTime.Parse(dateString);
- }
- }
- }
- public class AddFriendPanel : Regist
- {
- #region Config
- public static Text Title;
- public static Text SearchButtonTitle;
- public static Text TipText;
- public static Text NicknameText;
- public static Text ChangeButtonUnderline;
- public static Text ApplyButtonTitle;
- public static Text ChangeButtonTitle;
- public static Button ApplyButton;
- public static Button SearchButton;
- public static Button ChangeButton;
- public static Button CloseButton;
- public static Transform AddFriendPanelMask;
- public static InputField InputField;
- private static AccountData CurrentRecommendData;
- private static List<AccountData> RecommendDatas = new List<AccountData>();
- #endregion
- public override void ThirdInit()
- {
- RefreshRecommendBuddyList();
- }
- public override void RegistReference()
- {
- Title = ResourceManager.Get<Text>(CanvasLabel.AG_Title);
- SearchButtonTitle = ResourceManager.Get<Text>(CanvasLabel.AG_SearchButtonTitle);
- TipText = ResourceManager.Get<Text>(CanvasLabel.AG_TipText);
- NicknameText = ResourceManager.Get<Text>(CanvasLabel.AG_NicknameText);
- ChangeButtonUnderline = ResourceManager.Get<Text>(CanvasLabel.AG_ChangeButtonUnderline);
- ApplyButtonTitle = ResourceManager.Get<Text>(CanvasLabel.AG_ApplyButtonTitle);
- ApplyButton = ResourceManager.Get<Button>(CanvasLabel.AG_ApplyButton);
- SearchButton = ResourceManager.Get<Button>(CanvasLabel.AG_SearchButton);
- ChangeButton = ResourceManager.Get<Button>(CanvasLabel.AG_ChangeButton);
- CloseButton = ResourceManager.Get<Button>(CanvasLabel.AG_CloseButton);
- AddFriendPanelMask = ResourceManager.Get(CanvasLabel.AG_AddFriendPanelMask);
- InputField = ResourceManager.Get<InputField>(CanvasLabel.AG_InputField);
- ChangeButtonTitle = ChangeButton.GetComponent<Text>();
- AddFriendPanelMask.CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
- LanguageManager.Add(Title, new MulLanStr(LanguageLabel.UI__AG_Title));
- LanguageManager.Add(SearchButtonTitle, new MulLanStr(LanguageLabel.UI__AG_SearchButtonTitle));
- LanguageManager.Add(ApplyButtonTitle, new MulLanStr(LanguageLabel.UI__AG_ApplyButtonTitle));
- ApplyButton.onClick.AddListener(OnApplyButtonClick);
- SearchButton.onClick.AddListener(Search);
- ChangeButton.onClick.AddListener(OnChangeButtonClick);
- CloseButton.onClick.AddListener(ClosePanel);
- }
- private static void ResetRecommendStatus()
- {
- if (RecommendDatas.Count > 0)
- {
- NicknameText.text = RecommendDatas[0].Nickname;
- CurrentRecommendData = RecommendDatas[0];
- ChangeButton.interactable = true;
- }
- else
- {
- NicknameText.text = "";
- CurrentRecommendData = null;
- ChangeButton.interactable = false;
- }
- }
- private static void RefreshRecommendBuddyList()
- {
- HttpManager.GetRecommendBuddyList(RefreshRecommendSucceedCallback, () => { });
- }
- private static void RefreshRecommendSucceedCallback(List<AccountData> accountDatas)
- {
- RecommendDatas = accountDatas;
- TipText.text = Language.GetStr(LanguageLabel.UI__AG_TipTitle0);
- }
- public static void OpenPanel()
- {
- TipText.text = Language.GetStr(LanguageLabel.UI__AG_TipTitle0);
- ChangeButtonTitle.text = Language.GetStr(LanguageLabel.UI__AG_ChangeButtonTitle);
- ResetRecommendStatus();
- float preferredWidth = ChangeButtonTitle.preferredWidth;
- float underlineWidth = ChangeButtonUnderline.rectTransform.rect.width;
- float underlineScale = preferredWidth / underlineWidth;
- ChangeButtonUnderline.transform.SetLocalScaleX(underlineScale);
- AddFriendPanelMask.TweenForCG();
- }
- public static void ClosePanel()
- {
- AudioManager.PlayClip(ResourceLabel.CloseClip);
- AddFriendPanelMask.TweenBacCG();
- RefreshRecommendBuddyList();
- InputField.text = "";
- }
- private static void Search()
- {
- if (string.IsNullOrEmpty(InputField.text))
- {
- Bubble.Show(null, Language.GetStr(LanguageLabel.UI__AG_SearchNameEmpty));
- return;
- }
- AudioManager.PlayClip(ResourceLabel.BtnClip);
- ApplyButton.interactable = false;
- HttpManager.SearchBuddyByNickname(InputField.text, OnSearchSucceed, OnSearchFailed);
- //InputField.text = "";
- }
- private static void OnSearchFailed()
- {
- ApplyButton.interactable = true;
- TipText.text = Language.GetStr(LanguageLabel.UI__AG_TipTitle1);
- ResetRecommendStatus();
- }
- private static void OnSearchSucceed(List<AccountData> accountDatas)
- {
- if (accountDatas.Count > 0)
- {
- ApplyButton.interactable = true;
- TipText.text = Language.GetStr(LanguageLabel.UI__AG_TipTitle2);
- //Debug.Log(accountDatas.Count);
- //for (int i = 0; i < accountDatas.Count; i++)
- //{
- // Debug.Log(accountDatas[i].Nickname);
- // RecommendDatas.Insert(0, accountDatas[i]);
- //}
- RecommendDatas = accountDatas;
- CurrentRecommendData = RecommendDatas[0];
- NicknameText.text = CurrentRecommendData.Nickname;
- ChangeButton.interactable = true;
- }
- else
- {
- OnSearchFailed();
- }
- }
- private void OnApplyButtonClick()
- {
- if (CurrentRecommendData == null)
- {
- Bubble.Show(null, Language.GetStr(LanguageLabel.UI__AG_SearchNameEmpty));
- return;
- }
- if (!FriendPanel.IsFriendFull(true))
- {
- ApplyButton.interactable = false;
- AudioManager.PlayClip(ResourceLabel.BtnClip);
- HttpManager.ApplyBuddy(CurrentRecommendData.SerialNumber, ApplySucceed, ApplyFailed);
- }
- }
- private void ApplySucceed()
- {
- ApplyButton.interactable = true;
- Bubble.Show(null, Language.GetStr(LanguageLabel.UI__AG_SendApplySucceed));
- RecommendDatas.Remove(CurrentRecommendData);
- ResetRecommendStatus();
- }
- private void ApplyFailed()
- {
- ApplyButton.interactable = true;
- Bubble.Show(null, Language.GetStr(LanguageLabel.UI__AG_ConnectError));
- }
- private void OnChangeButtonClick()
- {
- AudioManager.PlayClip(ResourceLabel.BtnClip);
- //TipText.text = Language.GetStr(LanguageLabel.UI__AG_TipTitle0);
- CurrentRecommendData = RecommendDatas.Roll();
- NicknameText.text = CurrentRecommendData.Nickname;
- }
- }
|