备份CatanBuilding瘦身独立工程
This commit is contained in:
507
Assets/Scripts/UI/PartnerFishBowl/EventPartnerInvitationPanel.cs
Normal file
507
Assets/Scripts/UI/PartnerFishBowl/EventPartnerInvitationPanel.cs
Normal file
@@ -0,0 +1,507 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using asap.core;
|
||||
using cfg;
|
||||
using EnhancedUI.EnhancedScroller;
|
||||
using game;
|
||||
using GameCore;
|
||||
using UniRx;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using ScrollViewItemInfo = EventPartnerScrollViewItem.ScrollViewItemInfo;
|
||||
using EScrollViewType = EventPartnerScrollViewItem.EScrollViewType;
|
||||
using Random = UnityEngine.Random;
|
||||
using RecommendResponse = EventPartnerData.EventBuildRecommendPlayerResp;
|
||||
using RecommendRequest = EventPartnerData.EventBuildRecommendPlayerRequest;
|
||||
|
||||
public class EventPartnerInvitationPanel : MonoBehaviour, IEnhancedScrollerDelegate
|
||||
{
|
||||
[SerializeField] private EnhancedScroller scrollView;
|
||||
[SerializeField] private Button btnClose, btnAddFriends;
|
||||
[SerializeField] private EventPartnerScrollViewItem scrollViewItemPrefab;
|
||||
[SerializeField] private EventPartnerScrollViewTitle scrollViewTitlePrefab;
|
||||
[SerializeField] private GameObject emptyGo, loadingGo;
|
||||
|
||||
private const string RecommendTitleKey = "UI_EventPartnerFishbowlPanel_30",
|
||||
FriendTitleKey = "UI_EventPartnerFishbowlPanel_31",
|
||||
InvitationTitleKey = "UI_EventPartnerFishbowlPanel_36";
|
||||
private List<ScrollViewItemInfo> _scrollViewInfoList, _recommendList, _friendList, _invitationList;
|
||||
private ICustomServerMgr _customServerMgr;
|
||||
private FriendService _friendService;
|
||||
// private EventPartnerData _eventPartnerData;
|
||||
private IUserService _userService;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
btnClose.onClick.AddListener(OnClickClose);
|
||||
btnAddFriends.onClick.AddListener(OnClickAddFriends);
|
||||
_customServerMgr = GContext.container.Resolve<ICustomServerMgr>();
|
||||
_friendService = GContext.container.Resolve<FriendService>();
|
||||
// _eventPartnerData = GContext.container.Resolve<EventPartnerData>();
|
||||
_scrollViewInfoList = new List<ScrollViewItemInfo>();
|
||||
_recommendList = new List<ScrollViewItemInfo>();
|
||||
_friendList = new List<ScrollViewItemInfo>();
|
||||
_invitationList = new List<ScrollViewItemInfo>();
|
||||
_userService = GContext.container.Resolve<IUserService>();
|
||||
emptyGo.SetActive(false);
|
||||
loadingGo.SetActive(false);
|
||||
EventPartnerAct.Ctx.EventAggregator.GetEvent<EventPartnerClickInvite>().Subscribe(e => _ = OnInvite(e.Info)).AddTo(this);
|
||||
EventPartnerAct.Ctx.EventAggregator.GetEvent<EventPartnerClickIgnore>().Subscribe(e => OnIgnore(e.Info.PlayfabId)).AddTo(this);
|
||||
InitScrollViewAsync();
|
||||
GContext.container.Resolve<GuideDataCenter>().InspectTriggerGuide("EventPartnerInvitePopupPanel", curPanelName: gameObject.name);
|
||||
}
|
||||
|
||||
private async void InitScrollViewAsync()
|
||||
{
|
||||
|
||||
await InitScrollView();
|
||||
}
|
||||
private void OnClickClose()
|
||||
{
|
||||
UIManager.Instance.DestroyUI(UITypes.EventPartnerInvitationPanel);
|
||||
}
|
||||
|
||||
private void OnClickAddFriends()
|
||||
{
|
||||
//添加好友
|
||||
GContext.container.Resolve<ClubService>().OpenFishingSocialPanel(1);
|
||||
}
|
||||
|
||||
private async System.Threading.Tasks.Task OnInvite(ScrollViewItemInfo invitationInfo)
|
||||
{
|
||||
var _eventPartnerData = GContext.container.Resolve<EventPartnerData>();
|
||||
if (_eventPartnerData.IsFullyMatched)
|
||||
{
|
||||
Debug.Log("<color=#c191ff>[EventPartner]Cannot invite. Player fully matched.</color>");
|
||||
ToastPanel.Show(LocalizationMgr.GetText("UI_ToastPanel_80"));
|
||||
RemoveItem(invitationInfo.PlayfabId);
|
||||
return;
|
||||
}
|
||||
|
||||
var partnerId = invitationInfo.PlayfabId;
|
||||
int slotId = -1;
|
||||
if (partnerId.EndsWith(EventPartnerBot.RobotIdentifier))
|
||||
{
|
||||
var request = new EventPartnerData.EventBuildPartnerRequest { partnerId = partnerId, eventId = _eventPartnerData.EventId };
|
||||
var response = await _customServerMgr.EventPartnerRequest<EventPartnerData.EventBuildOperationResp>(EventPartnerData.AcceptUrl, request);
|
||||
if (response.State != EventPartnerData.EEventBuildState.Success)
|
||||
{
|
||||
Debug.Log($"<color=#c191ff>[EventPartner] Fail to add {partnerId}, {response.State}: {response.ErrorMessage}</color>");
|
||||
return;
|
||||
}
|
||||
if (response.SlotId == null || response.SlotId.Value == -1)
|
||||
{
|
||||
Debug.Log($"<color=#c191ff>[EventPartner]Fail to add bot {invitationInfo.PlayfabId}</color>");
|
||||
return;
|
||||
}
|
||||
slotId = response.SlotId.Value;
|
||||
EventPartnerBot.AddBot(invitationInfo, slotId);
|
||||
_eventPartnerData.ToPlayfabData().Save();
|
||||
GContext.container.Resolve<IUserService>().SetPlayInfo(partnerId, invitationInfo.DisplayName, invitationInfo.AvatarUrl);
|
||||
_eventPartnerData.Components[slotId].ScheduleBotScoreAction();
|
||||
EventPartnerAct.Ctx.EventAggregator.Publish(new EventPartnerMatchSuccess
|
||||
{
|
||||
NamePartner = invitationInfo.DisplayName,
|
||||
IconPartner = invitationInfo.AvatarUrl,
|
||||
NameComponent = EventPartnerAct.Ctx.Data.Components[slotId].GetComponentName(),
|
||||
SlotId = slotId,
|
||||
PartnerId = invitationInfo.PlayfabId
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
var request = new EventPartnerData.EventBuildPartnerRequest { partnerId = partnerId, eventId = _eventPartnerData.EventId };
|
||||
var response = await _customServerMgr.EventPartnerRequest<EventPartnerData.EventBuildOperationResp>(EventPartnerData.InviteUrl, request);
|
||||
if (response.State != EventPartnerData.EEventBuildState.Success)
|
||||
{
|
||||
Debug.Log($"<color=#c191ff>[EventPartner]{response.State}: {response.ErrorMessage}</color>");
|
||||
// ToastPanel.Show(LocalizationMgr.GetText("UI_ToastPanel_80"));
|
||||
RemoveItem(partnerId);
|
||||
invitationInfo.IsFull = response.State == EventPartnerData.EEventBuildState.Full;
|
||||
}
|
||||
}
|
||||
switch (invitationInfo.Type)
|
||||
{
|
||||
case EScrollViewType.Friend:
|
||||
{
|
||||
int i = 0;
|
||||
while (i < _friendList.Count)
|
||||
{
|
||||
if (_friendList[i].PlayfabId == partnerId)
|
||||
_friendList.RemoveAt(i);
|
||||
i++;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case EScrollViewType.Recommendation:
|
||||
{
|
||||
int i = 0;
|
||||
while (i < _recommendList.Count)
|
||||
{
|
||||
if (_recommendList[i].PlayfabId == partnerId)
|
||||
_recommendList.RemoveAt(i);
|
||||
i++;
|
||||
}
|
||||
|
||||
i = 0;
|
||||
while (i < _eventPartnerData.Cache.Recommend.Count)
|
||||
{
|
||||
if (_eventPartnerData.Cache.Recommend[i].PlayfabId == partnerId)
|
||||
_eventPartnerData.Cache.Recommend.RemoveAt(i);
|
||||
i++;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (_eventPartnerData.InvitePartners.Contains(partnerId))
|
||||
return;
|
||||
_eventPartnerData.InvitePartners.Add(partnerId);
|
||||
invitationInfo.Type = EScrollViewType.MyInvitation;
|
||||
_invitationList.Add(invitationInfo);
|
||||
_eventPartnerData.Cache.ListInvitation ??= new List<ScrollViewItemInfo>();
|
||||
_eventPartnerData.Cache.ListInvitation.Add(invitationInfo);
|
||||
BuildScrollViewInfoList();
|
||||
_eventPartnerData.SavePlayerPreferenceData();
|
||||
ReloadScrollViewData();
|
||||
_eventPartnerData.AddInvitationCount();
|
||||
}
|
||||
|
||||
private void OnIgnore(string partnerId)
|
||||
{
|
||||
var _eventPartnerData = GContext.container.Resolve<EventPartnerData>();
|
||||
_eventPartnerData.RefusePartners.Add(partnerId);
|
||||
for (int i = 0; i < _recommendList.Count; i++)
|
||||
{
|
||||
if (_recommendList[i].PlayfabId != partnerId) continue;
|
||||
_recommendList.RemoveAt(i);
|
||||
break;
|
||||
}
|
||||
for (int i = 0; i < _friendList.Count; i++)
|
||||
{
|
||||
if (_friendList[i].PlayfabId != partnerId) continue;
|
||||
_friendList.RemoveAt(i);
|
||||
break;
|
||||
}
|
||||
|
||||
for (int i = 0; i < _eventPartnerData.Cache.Recommend.Count; i++)
|
||||
{
|
||||
if (_eventPartnerData.Cache.Recommend[i].PlayfabId != partnerId) continue;
|
||||
_eventPartnerData.Cache.Recommend.RemoveAt(i);
|
||||
break;
|
||||
}
|
||||
BuildScrollViewInfoList();
|
||||
_eventPartnerData.SavePlayerPreferenceData();
|
||||
ReloadScrollViewData();
|
||||
}
|
||||
|
||||
#region ScrollView
|
||||
|
||||
[SerializeField] private float jiandaTitleHeight = 72f, jiandaItemHeight = 150f;
|
||||
|
||||
private async System.Threading.Tasks.Task InitScrollView()
|
||||
{
|
||||
try
|
||||
{
|
||||
loadingGo.SetActive(true);
|
||||
// Debug.Log($"<color=red>[EventPartner]Try get recommend list.</color>");
|
||||
_recommendList = await GetRecommendList();
|
||||
// Debug.Log($"<color=red>[EventPartner]Try get friend list.</color>");
|
||||
_friendList = GetFriendList();
|
||||
// Debug.Log($"<color=red>[EventPartner]Try get invitation list.</color>");
|
||||
_invitationList = GetInvitationList();
|
||||
// Debug.Log($"<color=red>[EventPartner]Build data.</color>");
|
||||
BuildScrollViewInfoList();
|
||||
// Debug.Log($"<color=red>[EventPartner]Set delegate.</color>");
|
||||
scrollView.Delegate = this;
|
||||
// Debug.Log($"<color=red>[EventPartner]Reset.</color>");
|
||||
loadingGo.SetActive(false);
|
||||
ReloadScrollViewData();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Debug.LogError($"[EventPartner]{e.Message}");
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
private async System.Threading.Tasks.Task<List<ScrollViewItemInfo>> GetRecommendList()
|
||||
{
|
||||
var recommendList = new List<ScrollViewItemInfo>();
|
||||
var _eventPartnerData = GContext.container.Resolve<EventPartnerData>();
|
||||
var c = _eventPartnerData.Cache;
|
||||
if (c.RecommendListExpireTime > ZZTimeHelper.UtcNow() && c.Recommend is not null)
|
||||
{
|
||||
recommendList.AddRange(c.Recommend.OrderByDescending(info => info.LastLoginTime));
|
||||
return recommendList;
|
||||
}
|
||||
|
||||
if (_eventPartnerData.DoRecommendBot)
|
||||
{
|
||||
recommendList.AddRange((await GetPlayerRecommendList(_eventPartnerData.RecommendCount / 2)).OrderByDescending(info => info.LastLoginTime));
|
||||
var botCount = _eventPartnerData.RecommendCount - recommendList.Count;
|
||||
recommendList.AddRange(GetBotRecommendList(botCount));
|
||||
}
|
||||
else
|
||||
recommendList.AddRange((await GetPlayerRecommendList(_eventPartnerData.RecommendCount)).OrderByDescending(info => info.LastLoginTime));
|
||||
// Update cache
|
||||
c.RecommendListExpireTime = ZZTimeHelper.UtcNow() + TimeSpan.FromSeconds(GContext.container.Resolve<Tables>().TbEventPartnerConfig.FriendRecommendListRefreshTime);
|
||||
c.RecommendListExpireTime = c.RecommendListExpireTime < _eventPartnerData.EndTime
|
||||
? c.RecommendListExpireTime
|
||||
: _eventPartnerData.EndTime;
|
||||
c.Recommend = recommendList;
|
||||
return recommendList;
|
||||
}
|
||||
|
||||
private async System.Threading.Tasks.Task<List<ScrollViewItemInfo>> GetPlayerRecommendList(int count)
|
||||
{
|
||||
var recommendList = new List<ScrollViewItemInfo>();
|
||||
// Either cache is expired or no previous recommend found.
|
||||
var request = new RecommendRequest();
|
||||
// Exclude players that do not reach level limit.
|
||||
// if (EventPartnerData.DebugFlag)
|
||||
// request.MinLevel = 0;
|
||||
// else
|
||||
var _eventPartnerData = GContext.container.Resolve<EventPartnerData>();
|
||||
request.MinLevel = int.Parse(GContext.container.Resolve<Tables>().TbFishingEvent[_eventPartnerData.EventId].ConditionList[0].Param[0]);
|
||||
var excludeSet = new HashSet<string>();
|
||||
// Exclude players that invites me.
|
||||
// recommendList = oldList.Where(info => info.IsInvitationPending).ToList();
|
||||
if (_eventPartnerData.RequestPartners != null)
|
||||
foreach (var playfabId in _eventPartnerData.RequestPartners)
|
||||
excludeSet.Add(playfabId);
|
||||
// Exclude players that is matched to me.
|
||||
foreach (var component in _eventPartnerData.Components.Where(component => component.PartnerId != ""))
|
||||
excludeSet.Add(component.PartnerId);
|
||||
// Exclude friends
|
||||
foreach (var friend in _friendService.FriendList)
|
||||
excludeSet.Add(friend.playFabId);
|
||||
// Exclude refused ones
|
||||
if (_eventPartnerData.RefusePartners is not null)
|
||||
foreach (var id in _eventPartnerData.RefusePartners)
|
||||
excludeSet.Add(id);
|
||||
// Exclude ones that player already invited
|
||||
if (_eventPartnerData.InvitePartners is not null)
|
||||
foreach (var id in _eventPartnerData.InvitePartners)
|
||||
excludeSet.Add(id);
|
||||
request.Exclude = new List<string>(excludeSet);
|
||||
RecommendResponse recommendResponse;
|
||||
recommendResponse = await _customServerMgr.EventPartnerRequest<RecommendResponse>(EventPartnerData.RecommendUrl, request);
|
||||
if (recommendResponse.State != (int)EventPartnerData.EEventBuildState.Success)
|
||||
{
|
||||
Debug.Log($"<color=red>Recommend Request failed: {recommendResponse.State}</color>");
|
||||
return recommendList;
|
||||
}
|
||||
foreach (var info in recommendResponse.Players)
|
||||
GContext.container.Resolve<IUserService>().SetPlayInfo(info.PlayFabId, info.DisplayName, info.AvatarUrl);
|
||||
|
||||
recommendList.AddRange(recommendResponse.Players.Select(info => new ScrollViewItemInfo
|
||||
{
|
||||
Type = EScrollViewType.Recommendation,
|
||||
AvatarUrl = info.AvatarUrl,
|
||||
DisplayName = info.DisplayName,
|
||||
PlayfabId = info.PlayFabId,
|
||||
Level = info.Level,
|
||||
LastLoginTime = info.lastLoginTime.Value
|
||||
}).Take(count));
|
||||
_eventPartnerData.SavePlayerPreferenceData();
|
||||
return recommendList;
|
||||
}
|
||||
|
||||
private HashSet<ScrollViewItemInfo> GetBotRecommendList(int count)
|
||||
{
|
||||
var botTable = GContext.container.Resolve<Tables>().TbRobot;
|
||||
var recommendList = new HashSet<ScrollViewItemInfo>();
|
||||
var _eventPartnerData = GContext.container.Resolve<EventPartnerData>();
|
||||
var partnerIdSet = _eventPartnerData.Components.Where(c => c.IsMatched)
|
||||
.Select(c => c.PartnerId).ToHashSet();
|
||||
while (recommendList.Count < count)
|
||||
{
|
||||
var randomBot = botTable.DataList[Random.Range(0, botTable.DataList.Count)];
|
||||
if (partnerIdSet.Contains(EventPartnerBot.Idx2Id(randomBot.ID)))
|
||||
continue;
|
||||
recommendList.Add(new ScrollViewItemInfo
|
||||
{
|
||||
Type = EScrollViewType.Recommendation,
|
||||
AvatarUrl = randomBot.Avatar,
|
||||
DisplayName = randomBot.Name,
|
||||
PlayfabId = EventPartnerBot.Idx2Id(randomBot.ID),
|
||||
Level = Random.Range(60, 120),
|
||||
});
|
||||
// Debug.Log($"<color=#ffc700>Robot: No.{randomBot.ID} {randomBot.Name}</color>");
|
||||
}
|
||||
|
||||
return recommendList;
|
||||
}
|
||||
|
||||
private List<ScrollViewItemInfo> GetFriendList()
|
||||
{
|
||||
var friendList = _friendService.FriendList;
|
||||
var _eventPartnerData = GContext.container.Resolve<EventPartnerData>();
|
||||
var pendingSet = _eventPartnerData.InvitePartners;
|
||||
var newList = new List<ScrollViewItemInfo>();
|
||||
// Debug.Log($"<color=#ffc700>[EventPartner] DataHash from null stuff: {_eventPartnerData.GetHashCode()}</color>");
|
||||
foreach (var info in (from friend in friendList
|
||||
where friend.playFabId != _userService.UserId &&
|
||||
!_eventPartnerData.RequestPartners.Contains(friend.playFabId) &&
|
||||
!_eventPartnerData.RefusePartners.Contains(friend.playFabId) &&
|
||||
!pendingSet.Contains(friend.playFabId) &&
|
||||
_eventPartnerData.Components.All(c => c.PartnerId != friend.playFabId)
|
||||
select new ScrollViewItemInfo
|
||||
{
|
||||
Type = EScrollViewType.Friend,
|
||||
AvatarUrl = friend.avatarUrl,
|
||||
DisplayName = friend.displayName,
|
||||
PlayfabId = friend.playFabId,
|
||||
Level = friend.value / LeadboardData.LV_MODELING,
|
||||
LastLoginTime = friend.LastLogin.Value
|
||||
}).OrderByDescending(info => info.LastLoginTime))
|
||||
{
|
||||
// if (info.IsInvitationPending)
|
||||
newList.Add(info);
|
||||
// else
|
||||
// newList.Insert(0, info);
|
||||
}
|
||||
return newList;
|
||||
}
|
||||
|
||||
private List<ScrollViewItemInfo> GetInvitationList()
|
||||
{
|
||||
var res = new List<ScrollViewItemInfo>();
|
||||
var _eventPartnerData = GContext.container.Resolve<EventPartnerData>();
|
||||
if (_eventPartnerData.Cache.ListInvitation is null)
|
||||
return res;
|
||||
_eventPartnerData.Cache.ListInvitation = _eventPartnerData.Cache.ListInvitation
|
||||
.Where(info => _eventPartnerData.InvitePartners.Contains(info.PlayfabId))
|
||||
.ToList();
|
||||
foreach (var info in _eventPartnerData.Cache.ListInvitation)
|
||||
{
|
||||
res.Add(info);
|
||||
}
|
||||
// foreach (var info in _eventPartnerData.Cache.ListInvitation)
|
||||
// {
|
||||
// if (_eventPartnerData.InvitePartners.Contains(info.PlayfabId))
|
||||
// res.Add(info);
|
||||
// else
|
||||
// _eventPartnerData.Cache.ListInvitation.Remove(info);
|
||||
// }
|
||||
return res;
|
||||
}
|
||||
|
||||
public int GetNumberOfCells(EnhancedScroller scroller)
|
||||
{
|
||||
return _scrollViewInfoList.Count;
|
||||
}
|
||||
|
||||
public float GetCellViewSize(EnhancedScroller scroller, int dataIndex)
|
||||
{
|
||||
switch (_scrollViewInfoList[dataIndex].Type)
|
||||
{
|
||||
case EScrollViewType.Title:
|
||||
return jiandaTitleHeight;
|
||||
default:
|
||||
return jiandaItemHeight;
|
||||
}
|
||||
}
|
||||
|
||||
public EnhancedScrollerCellView GetCellView(EnhancedScroller scroller, int dataIndex,
|
||||
int cellIndex)
|
||||
{
|
||||
var info = _scrollViewInfoList[dataIndex];
|
||||
switch (info.Type)
|
||||
{
|
||||
case EScrollViewType.Title:
|
||||
if (scroller.GetCellView(scrollViewTitlePrefab) is not EventPartnerScrollViewTitle cellViewTitle)
|
||||
{
|
||||
Debug.Log("<color=red>[EventPartner] Cell view as title is null.</color>");
|
||||
return null;
|
||||
}
|
||||
cellViewTitle.textTitle.text = info.Title;
|
||||
return cellViewTitle;
|
||||
case EScrollViewType.Recommendation:
|
||||
case EScrollViewType.Friend:
|
||||
case EScrollViewType.MyInvitation:
|
||||
if (scroller.GetCellView(scrollViewItemPrefab) is not EventPartnerScrollViewItem cellViewItem)
|
||||
{
|
||||
Debug.Log("<color=red>[EventPartner] Cell view as item is null.</color>");
|
||||
return null;
|
||||
}
|
||||
cellViewItem.Init(info);
|
||||
return cellViewItem;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
}
|
||||
|
||||
private void RemoveItem(string id)
|
||||
{
|
||||
if (_recommendList is not null)
|
||||
for (int i = 0; i < _recommendList.Count; i++)
|
||||
{
|
||||
if (_recommendList[i].PlayfabId == id)
|
||||
_recommendList.RemoveAt(i);
|
||||
}
|
||||
if (_friendList is not null)
|
||||
for (int i = 0; i < _friendList.Count; i++)
|
||||
{
|
||||
if (_friendList[i].PlayfabId == id)
|
||||
_friendList.RemoveAt(i);
|
||||
}
|
||||
BuildScrollViewInfoList();
|
||||
ReloadScrollViewData();
|
||||
}
|
||||
|
||||
private void BuildScrollViewInfoList()
|
||||
{
|
||||
_scrollViewInfoList.Clear();
|
||||
if (_recommendList is not null && _recommendList.Count > 0)
|
||||
{
|
||||
_scrollViewInfoList.Add(new ScrollViewItemInfo
|
||||
{
|
||||
Type = EScrollViewType.Title,
|
||||
Title = LocalizationMgr.GetText(RecommendTitleKey)
|
||||
});
|
||||
// Debug.Log("<color=#c191ff>[EventPartner]Build Title.</color>");
|
||||
foreach (var info in _recommendList)
|
||||
{
|
||||
_scrollViewInfoList.Add(info);
|
||||
// Debug.Log($"<color=#c191ff>[EventPartner]Build {info.DisplayName}: {info.LastLoginTime}</color>");
|
||||
}
|
||||
}
|
||||
|
||||
if (_friendList is not null && _friendList.Count > 0)
|
||||
{
|
||||
_scrollViewInfoList.Add(new ScrollViewItemInfo
|
||||
{ Type = EScrollViewType.Title, Title = LocalizationMgr.GetText(FriendTitleKey) });
|
||||
// Debug.Log("<color=#c191ff>[EventPartner]Build Title.</color>");
|
||||
foreach (var info in _friendList)
|
||||
{
|
||||
_scrollViewInfoList.Add(info);
|
||||
// Debug.Log($"<color=#c191ff>[EventPartner]Build {info.DisplayName}: {info.LastLoginTime}</color>");
|
||||
}
|
||||
}
|
||||
|
||||
if (_invitationList is not null && _invitationList.Count > 0)
|
||||
{
|
||||
_scrollViewInfoList.Add(new ScrollViewItemInfo
|
||||
{ Type = EScrollViewType.Title, Title = LocalizationMgr.GetText(InvitationTitleKey) });
|
||||
// Debug.Log("<color=#c191ff>[EventPartner]Build Title.</color>");
|
||||
foreach (var info in _invitationList)
|
||||
{
|
||||
_scrollViewInfoList.Add(info);
|
||||
// Debug.Log($"<color=#c191ff>[EventPartner]Build {info.DisplayName}: {info.LastLoginTime}</color>");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void ReloadScrollViewData()
|
||||
{
|
||||
scrollView.ReloadData();
|
||||
if (_scrollViewInfoList.Count <= 1)
|
||||
{
|
||||
emptyGo.SetActive(true);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
Reference in New Issue
Block a user