using System.Collections.Generic; using System.Linq; using MoleMole.Config; using UnityEngine; using UnityEngine.UI; using proto; using Retcode = proto.StageEndRsp.Retcode; namespace MoleMole { public class FriendOverviewPageContext : BasePageContext { public enum FriendTab { FriendListTab = 0, AddFriendTab = 1, RequestListTab = 2, InviteCodeTab = 3 } public static readonly string[] TAB_KEY = new string[4] { "FriendListTab", "AddFriendTab", "RequestListTab", "InviteCodeTab" }; private TabManager _tabManager; private string _defaultTabKey; private InviteTab _currentInviteTab; private Dictionary> _tabItemList; private int _playerUidToShow; private bool _shouldMarkAllFriendsAsOld; private GetInviteeFriendRsp _inviteeInfo; private GetInviteFriendRsp _inviterInfo; private Dictionary _scrollerDict; private Dictionary _fadeManagerDict; private Dictionary> _itemBeforeDict; public FriendOverviewPageContext(string tabKey = "FriendListTab", InviteTab inviteTab = InviteTab.InviteeTab) { config = new ContextPattern { contextName = "FriendOverviewPageContext", viewPrefabPath = "UI/Menus/Page/Friend/FriendOverviewPage" }; _tabManager = new TabManager(); _tabManager.onSetActive += OnTabSetActive; _defaultTabKey = tabKey; _currentInviteTab = inviteTab; _tabItemList = new Dictionary>(); _playerUidToShow = -1; _shouldMarkAllFriendsAsOld = false; _currentInviteTab = InviteTab.InviteeTab; } public override bool OnNotify(Notify ntf) { if (ntf.type == NotifyTypes.SetFriendSortType) { return OnSetSortType((FriendModule.FriendSortType)(int)ntf.body); } return false; } public override bool OnPacket(NetPacketV1 pkt) { switch (pkt.getCmdId()) { case 65: case 80: SetupFriendListTab(); break; case 77: OnGetRecommandListRsp(pkt.getData()); PlayCurrentTabAnim(); break; case 71: SetupRequestListTab(); PlayCurrentTabAnim(); break; case 73: OnPlayerDetailRsp(pkt.getData()); break; case 67: OnAddFriendRsp(pkt.getData()); break; case 69: OnDelFriendRsp(pkt.getData()); break; case 226: OnGetInviteeFriendRsp(pkt.getData()); break; case 224: OnGetInviteFriendRsp(pkt.getData()); break; case 228: OnGetAcceptFriendInviteRsp(pkt.getData()); break; } return false; } protected override void BindViewCallbacks() { BindViewCallback(base.view.transform.Find("TabBtns/TabBtn_1").GetComponent