ingame/guild/gamepad/zo_guildranks_gamepad.lua:90 -- GUILD_RANKS_GAMEPAD_FRAGMENT:RegisterCallback("StateChange", function(oldState, newState)
if newState == SCENE_SHOWING then
self:ResetRankSelection()
self:PerformDeferredInitialization()
self:ReloadAndRefreshScreen()
self:OnTargetChanged(self.rankList, self.rankList:GetTargetData())
self.owningScreen:SetListsUseTriggerKeybinds(true)
KEYBIND_STRIP:AddKeybindButtonGroup(self.keybindStripDescriptor)
local OnRefresh = function()
self:ReloadAndRefreshScreen()
end
local OnRefreshMatchGuildId = function(_, guildId)
if self:MatchesGuild(guildId) then
self:RefreshScreen()
end
end
self.control:RegisterForEvent(EVENT_GUILD_DATA_LOADED, OnRefresh)
self.control:RegisterForEvent(EVENT_GUILD_RANKS_CHANGED, OnRefreshMatchGuildId)
self.control:RegisterForEvent(EVENT_GUILD_RANK_CHANGED, OnRefreshMatchGuildId)
self.control:RegisterForEvent(EVENT_SAVE_GUILD_RANKS_RESPONSE, OnRefreshMatchGuildId)
elseif newState == SCENE_HIDING then
self:RemoveUnusedFragments()
self:SetChangePermissionsEnabled(false)
self.rankIconPicker:Deactivate()
GAMEPAD_NAV_QUADRANT_1_BACKGROUND_FRAGMENT:TakeFocus()
if self.currentDropdown then
self.currentDropdown:Deactivate(true)
end
self.owningScreen:SetListsUseTriggerKeybinds(false)
KEYBIND_STRIP:RemoveKeybindButtonGroup(self.keybindStripDescriptor)
self.control:UnregisterForEvent(EVENT_GUILD_DATA_LOADED)
self.control:UnregisterForEvent(EVENT_GUILD_RANKS_CHANGED)
self.control:UnregisterForEvent(EVENT_GUILD_RANK_CHANGED)
self.control:UnregisterForEvent(EVENT_SAVE_GUILD_RANKS_RESPONSE)
if self:NeedsSave() then
PlaySound(SOUNDS.GUILD_RANK_SAVED)
self:Save()
end
end
end)