2025-06-04 05:12:01 +08:00

132 lines
3.3 KiB
Plaintext

autoImport("WrapCellHelper")
autoImport("FriendProxy")
autoImport("FriendApplyCell")
FriendApplyInfoView = class("FriendApplyInfoView",ContainerView)
FriendApplyInfoView.ViewType = UIViewType.PopUpLayer;
function FriendApplyInfoView:OnExit()
self.super.OnExit(self)
RedTipProxy.Instance:SeenNew(SceneTip_pb.EREDSYS_SOCIAL_FRIEND_APPLY)
end
function FriendApplyInfoView:Init()
self:FindObj()
self:InitShow()
self:AddButtonEvt()
self:AddViewEvt()
end
function FriendApplyInfoView:FindObj()
self.ApplyTip = self:FindGO("ApplyTip"):GetComponent(UILabel)
end
function FriendApplyInfoView:InitShow()
self.ApplyTip.text = ZhString.Friend_ApplyTip
self.funkey = {
"InviteMember",
"SendMessage",
"AddFriend",
"ShowDetail",
"AddBlacklist",
"InviteEnterGuild",
}
self.tipData = {}
local container = self:FindGO("ContentContainer")
local wrapConfig = {
wrapObj = container,
pfbNum = 5,
cellName = "FriendApplyCell",
control = FriendApplyCell,
dir = 1,
disableDragIfFit = true,
}
self.itemWrapHelper = WrapCellHelper.new(wrapConfig)
self.itemWrapHelper:AddEventListener(FriendEvent.SelectHead, self.HandleClickItem, self)
self:UpdateFriendApplyData()
end
function FriendApplyInfoView:AddButtonEvt()
local AddAllBtn = self:FindGO("AddAllBtn")
self:AddClickEvent(AddAllBtn,function (g)
self:AddAllInfo(g)
end)
local IgnoreBtn = self:FindGO("IgnoreBtn")
self:AddClickEvent(IgnoreBtn,function (g)
self:IgnoreInfo(g)
end)
end
local friend = {}
function FriendApplyInfoView:AddAllInfo()
local datas = FriendProxy.Instance:GetApplyData()
TableUtility.ArrayClear(friend)
for i=1,#datas do
table.insert(friend,datas[i].guid)
end
FriendProxy.Instance:CallAddFriend(friend)
end
function FriendApplyInfoView:IgnoreInfo()
ServiceSessionSocialityProxy.Instance:CallRemoveRelation(0, SocialManager.PbRelation.Apply)
end
function FriendApplyInfoView:AddViewEvt()
self:AddListenEvt(ServiceEvent.SessionSocialitySocialUpdate,self.UpdateFriendApplyData)
self:AddListenEvt(ServiceEvent.SessionSocialitySocialDataUpdate,self.UpdateFriendApplyData)
self:AddListenEvt(RedTipProxy.UpdateRedTipEvent,self.AddRedTip)
end
function FriendApplyInfoView:UpdateFriendApplyData()
local datas = FriendProxy.Instance:GetApplyData()
if #datas > 0 then
self.ApplyTip.gameObject:SetActive(false)
else
self.ApplyTip.gameObject:SetActive(true)
end
self.itemWrapHelper:UpdateInfo(datas)
end
function FriendApplyInfoView:HandleClickItem(cellctl)
local playerData = PlayerTipData.new();
playerData:SetByFriendData(cellctl.data);
FunctionPlayerTip.Me():CloseTip()
local playerTip = FunctionPlayerTip.Me():GetPlayerTip( cellctl.headIcon.clickObj , NGUIUtil.AnchorSide.Left, {-380,60})
TableUtility.TableClear(self.tipData)
self.tipData.playerData = playerData
self.tipData.funckeys = funkey
playerTip:SetData(self.tipData)
end
function FriendApplyInfoView:AddRedTip(note)
local data = note.body
local ERedSys = SceneTip_pb.EREDSYS_SOCIAL_FRIEND_APPLY
local itemList = self.itemWrapHelper:GetCellCtls()
if data and data.id == ERedSys then
for i=1,#itemList do
local cellctl = itemList[i]
if cellctl.data then
for j=1,#data.paramIds do
if cellctl.data.guid == data.paramIds[j] then
cellctl:RegisterRedTip(ERedSys)
end
end
end
end
end
end