199 lines
5.6 KiB
Lua
199 lines
5.6 KiB
Lua
local uiCtrl = require_ex('UI/Panels/Base/UICtrl')
|
|
local PANEL_ID = PanelId.StrangerList
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
StrangerListCtrl = HL.Class('StrangerListCtrl', uiCtrl.UICtrl)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
StrangerListCtrl.s_messages = HL.StaticField(HL.Table) << {
|
|
[MessageConst.ON_STRANGER_LIST_INFO_SYNC] = 'OnSync',
|
|
[MessageConst.ON_FRIEND_CELL_INFO_CHANGE] = 'OnCellChange',
|
|
}
|
|
|
|
|
|
StrangerListCtrl.m_strangerList = HL.Field(HL.Table)
|
|
|
|
|
|
|
|
|
|
|
|
StrangerListCtrl.OnCreate = HL.Override(HL.Any) << function(self, arg)
|
|
|
|
local initArg = FriendUtils.FRIEND_CELL_INIT_CONFIG.Stranger;
|
|
initArg.onSearchChange = function(str)
|
|
self.view.pasteBtn.gameObject:SetActive(string.isEmpty(str))
|
|
end
|
|
self.view.friendList:InitFriendListCtrl(initArg)
|
|
self:_UpdateCache()
|
|
|
|
self.view.pasteBtn.onClick:RemoveAllListeners()
|
|
self.view.pasteBtn.onClick:AddListener(function()
|
|
if Unity.GUIUtility.systemCopyBuffer:match("^%d+$") ~= nil then
|
|
self.view.inputField.text = Unity.GUIUtility.systemCopyBuffer
|
|
else
|
|
Notify(MessageConst.SHOW_TOAST, Language.LUA_FRIEND_TOAST_NOT_UID)
|
|
end
|
|
end)
|
|
|
|
UIUtils.initSearchInput(self.view.inputField, {
|
|
clearBtn = self.view.clearBtn,
|
|
searchBtn = self.view.searchBtn,
|
|
onInputValueChanged = function(str)
|
|
self.view.friendList:OnChangeInputField(str)
|
|
end,
|
|
onInputSubmit = function()
|
|
UIManager:AutoOpen(PanelId.SearchNewFriendList, self.view.inputField.text)
|
|
end,
|
|
onInputFocused = function()
|
|
self:_StartInput()
|
|
end,
|
|
onInputEndEdit = function()
|
|
self:_EndInput()
|
|
end,
|
|
onClearClick = function()
|
|
self.view.inputField.text = ""
|
|
end,
|
|
onSearchClick = function()
|
|
UIManager:AutoOpen(PanelId.SearchNewFriendList, self.view.inputField.text)
|
|
end,
|
|
})
|
|
|
|
self.view.countDownText.gameObject:SetActive(false)
|
|
self.view.switchBtn.onClick:RemoveAllListeners()
|
|
self.view.switchBtn.onClick:AddListener(function()
|
|
GameInstance.player.friendSystem:SwitchNewStranger()
|
|
self.view.switchBtn.gameObject:SetActive(false)
|
|
self.view.switchTimeBtn.gameObject:SetActive(true)
|
|
self.view.countDownText.gameObject:SetActive(true)
|
|
self.view.rootUIState:SetState('ActiveState')
|
|
self.view.countDownText:InitCountDownText(DateTimeUtils.GetCurrentTimestampBySeconds() + 10, function()
|
|
self.view.switchBtn.gameObject:SetActive(true)
|
|
self.view.switchTimeBtn.gameObject:SetActive(false)
|
|
self.view.countDownText.gameObject:SetActive(false)
|
|
self.view.rootUIState:SetState('NormalState')
|
|
end, UIUtils.getSecondsLeftTime)
|
|
end)
|
|
GameInstance.player.friendSystem:SwitchNewStranger()
|
|
self.view.switchBtn.gameObject:SetActive(false)
|
|
self.view.switchTimeBtn.gameObject:SetActive(true)
|
|
self.view.countDownText.gameObject:SetActive(true)
|
|
self.view.rootUIState:SetState('ActiveState')
|
|
self.view.countDownText:InitCountDownText(DateTimeUtils.GetCurrentTimestampBySeconds() + 10, function()
|
|
self.view.switchBtn.gameObject:SetActive(true)
|
|
self.view.switchTimeBtn.gameObject:SetActive(false)
|
|
self.view.countDownText.gameObject:SetActive(false)
|
|
self.view.rootUIState:SetState('NormalState')
|
|
end, UIUtils.getSecondsLeftTime)
|
|
self:_Refresh(true)
|
|
end
|
|
|
|
|
|
|
|
StrangerListCtrl._StartInput = HL.Method() << function(self)
|
|
if DeviceInfo.inputType ~= DeviceInfo.InputType.Controller then
|
|
return
|
|
end
|
|
Notify(MessageConst.SHOW_AS_CONTROLLER_SMALL_MENU, {
|
|
panelId = PANEL_ID,
|
|
isGroup = true,
|
|
id = self.view.textInputBindingGroup.groupId,
|
|
hintPlaceholder = self.view.controllerHintPlaceholder,
|
|
rectTransform = self.view.whiteSelectNode,
|
|
})
|
|
self.m_phase:SetTabBlockState(true)
|
|
end
|
|
|
|
|
|
|
|
StrangerListCtrl._EndInput = HL.Method() << function(self)
|
|
if DeviceInfo.inputType ~= DeviceInfo.InputType.Controller then
|
|
return
|
|
end
|
|
Notify(MessageConst.CLOSE_CONTROLLER_SMALL_MENU, self.view.textInputBindingGroup.groupId)
|
|
self.view.inputField:DeactivateInputField(true)
|
|
self.view.friendList:NaviToFirstCell()
|
|
self.m_phase:SetTabBlockState(false)
|
|
end
|
|
|
|
|
|
|
|
StrangerListCtrl._UpdateCache = HL.Method() << function(self)
|
|
self.m_strangerList = {}
|
|
|
|
local friendSystem = GameInstance.player.friendSystem
|
|
local index = 1
|
|
for _, friendInfo in cs_pairs(friendSystem.strangerLisListInfoDic) do
|
|
self.m_strangerList[index] = FriendUtils.friendInfo2SortInfo(friendInfo, self.view.friendList.SearchSort)
|
|
index = index + 1
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
StrangerListCtrl._Refresh = HL.Method(HL.Opt(HL.Boolean, HL.Boolean)) << function(self, loading, stayPos)
|
|
loading = loading or false
|
|
|
|
if stayPos then
|
|
self.view.friendList:RefreshInfoStayPos(self.m_strangerList)
|
|
else
|
|
self.view.friendList:RefreshInfo(self.m_strangerList, false, Language.LUA_ADD_FRIEND_EMPTY_TIP, loading)
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
StrangerListCtrl.OnCellChange = HL.Method() << function(self)
|
|
self:_UpdateCache()
|
|
self:_Refresh(false, true)
|
|
end
|
|
|
|
|
|
|
|
StrangerListCtrl.OnSync = HL.Method() << function(self)
|
|
self:_UpdateCache()
|
|
self:_Refresh(false, false)
|
|
end
|
|
|
|
|
|
|
|
|
|
StrangerListCtrl.OnPhaseRefresh = HL.Override(HL.Opt(HL.Any)) << function(self, args)
|
|
self:_UpdateCache()
|
|
self:_Refresh()
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
StrangerListCtrl.OnShow = HL.Override() << function(self)
|
|
if DeviceInfo.inputType ~= DeviceInfo.InputType.Controller then
|
|
return
|
|
end
|
|
InputManagerInst:ToggleGroup(self.view.textInputBindingGroup.groupId, true)
|
|
end
|
|
|
|
|
|
|
|
|
|
HL.Commit(StrangerListCtrl)
|