ApplicantItem.cs 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using LitJson;
  5. using UnityEngine;
  6. using UnityEngine.UI;
  7. public class ApplicantItemLabel
  8. {
  9. public static string ApplicantItem = "ApplicantItem";
  10. public static string Nickname = "Nickname";
  11. public static string Content = "Content";
  12. public static string Frame = "Frame";
  13. public static string VisitButton = "VisitButton";
  14. public static string VisitButtonTitle = "VisitButtonTitle";
  15. public static string VisitImagePlus = "VisitImagePlus";
  16. public static string VerticalGroup = "VerticalGroup";
  17. public static string AcceptButtonParent = "AcceptButtonParent";
  18. public static string AcceptButton = "AcceptButton";
  19. public static string AcceptButtonText = "AcceptButtonText";
  20. public static string RefuseButtonParent = "RefuseButtonParent";
  21. public static string RefuseButton = "RefuseButton";
  22. public static string RefuseButtonText = "RefuseButtonText";
  23. }
  24. public class ApplicantItem : VirtualScrollRectItem
  25. {
  26. #region Config
  27. public Text NicknameTitle;
  28. public Text ContentTitle;
  29. public Text VisitButtonTitle;
  30. public Text AcceptButtonText;
  31. public Text RefuseButtonText;
  32. public Button VisitButton;
  33. public Button AcceptButton;
  34. public Button RefuseButton;
  35. public AccountData AccountData;
  36. #endregion
  37. public override bool Init()
  38. {
  39. if (base.Init())
  40. {
  41. return true;
  42. }
  43. Dictionary<string, Transform> childDictionary = new Dictionary<string, Transform>();
  44. Auxiliary.CompileDic(transform, childDictionary);
  45. NicknameTitle = childDictionary[ApplicantItemLabel.Nickname].GetComponent<Text>();
  46. ContentTitle = childDictionary[ApplicantItemLabel.Content].GetComponent<Text>();
  47. VisitButtonTitle = childDictionary[ApplicantItemLabel.VisitButtonTitle].GetComponent<Text>();
  48. AcceptButtonText = childDictionary[ApplicantItemLabel.AcceptButtonText].GetComponent<Text>();
  49. RefuseButtonText = childDictionary[ApplicantItemLabel.RefuseButtonText].GetComponent<Text>();
  50. VisitButton = childDictionary[ApplicantItemLabel.VisitButton].GetComponent<Button>();
  51. AcceptButton = childDictionary[ApplicantItemLabel.AcceptButton].GetComponent<Button>();
  52. RefuseButton = childDictionary[ApplicantItemLabel.RefuseButton].GetComponent<Button>();
  53. LanguageManager.Add(AcceptButtonText, new MulLanStr(LanguageLabel.ApplicantItem__Accept));
  54. LanguageManager.Add(RefuseButtonText, new MulLanStr(LanguageLabel.ApplicantItem__Deny));
  55. VisitButton.onClick.AddListener(OnVisitButtonClick);
  56. AcceptButton.onClick.AddListener(OnAcceptButtonClick);
  57. RefuseButton.onClick.AddListener(OnRefuseButtonClick);
  58. VisitButtonTitle.text = ResourceManager.Get<Text>(CanvasLabel.C_CostLab).text;
  59. Manager.OnLevelChange += level =>
  60. {
  61. VisitButtonTitle.text = ResourceManager.Get<Text>(CanvasLabel.C_CostLab).text;
  62. };
  63. return false;
  64. }
  65. public void Reset(AccountData accountData)
  66. {
  67. AccountData = accountData;
  68. NicknameTitle.text = accountData.Nickname;
  69. ContentTitle.text = HttpManager.GetTimespanAndTransfer(accountData.LastLoginDate);
  70. }
  71. public void OnVisitButtonClick()
  72. {
  73. FriendPanel.CloseRootFriendPanel();
  74. CounterAction counterAction = new CounterAction(FriendPanel.OpenRootFriendPanel);
  75. counterAction.Bind(ref VisitManager.OnExitVisteeGarden);
  76. VisitManager.Visit(ConfigSource.SerialNumber, AccountData.SerialNumber);
  77. }
  78. public void OnAcceptButtonClick()
  79. {
  80. if (!FriendPanel.IsFriendFull(true))
  81. {
  82. AudioManager.PlayClip(ResourceLabel.BtnClip);
  83. AcceptButton.interactable = false;
  84. HttpManager.AcceptApplicant(AccountData.SerialNumber, AcceptApplicantSucceed, AcceptApplicantFailed);
  85. }
  86. }
  87. public void AcceptApplicantFailed()
  88. {
  89. AcceptButton.interactable = true;
  90. Bubble.Show(null, Language.GetStr(LanguageLabel.ApplicantItem__ConnectError));
  91. }
  92. public void AcceptApplicantSucceed(JsonData jsonData)
  93. {
  94. AcceptButton.interactable = true;
  95. if ((int) jsonData[ResultCode.Error] == ResultCode.FriendFullSelf)
  96. {
  97. Bubble.Show(null, Language.GetStr(LanguageLabel.ApplicantItem__FriendFullSelf));
  98. }
  99. else if ((int) jsonData[ResultCode.Error] == ResultCode.FriendFullOther)
  100. {
  101. Bubble.Show(null, Language.GetStr(LanguageLabel.ApplicantItem__FriendFullOther));
  102. }
  103. else
  104. {
  105. Bubble.Show(null, Language.GetStr(LanguageLabel.ApplicantItem__AcceptFriendSucceed));
  106. FriendPanel.SaveApplicantItem(this);
  107. FriendPanel.AddFriendItem(AccountData);
  108. }
  109. }
  110. public void OnRefuseButtonClick()
  111. {
  112. AudioManager.PlayClip(ResourceLabel.BtnClip);
  113. RefuseButton.interactable = false;
  114. HttpManager.DeleteBuddy(AccountData.SerialNumber, RefuseApplicantSucceed, RefuseApplicantFailed);
  115. }
  116. public void RefuseApplicantFailed()
  117. {
  118. RefuseButton.interactable = true;
  119. Bubble.Show(null, Language.GetStr(LanguageLabel.ApplicantItem__ConnectError));
  120. }
  121. public void RefuseApplicantSucceed()
  122. {
  123. RefuseButton.interactable = true;
  124. FriendPanel.SaveApplicantItem(this);
  125. }
  126. }