ESO Lua File v100012

ingame/contacts/gamepad/friendslist_gamepad.lua

[◄ back to folders ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
-----------------
-- Friend List
-----------------
ZO_GamepadFriendsListPanel = ZO_GamepadSocialListPanel:Subclass()
function ZO_GamepadFriendsListPanel:New(control, movementContoller)
    local panel = ZO_GamepadSocialListPanel.New(self, control, movementContoller)
    return panel
end
function ZO_GamepadFriendsListPanel:Initialize(control)    
        ZO_GamepadSocialListPanel.Initialize(self, control)
        FRIENDS_LIST_MANAGER:AddList(self)
        self:SetupSort(FRIENDS_LIST_ENTRY_SORT_KEYS, "status", ZO_SORT_ORDER_DOWN)
        self:AddDataTemplate("ZO_GamepadFriendsListRow", ZO_GAMEPAD_SOCIAL_LIST_ROW_HEIGHT, function(control, data, selected) self:SetupRow(control, data, selected) end)
        self.sortHeaderGroup:SelectHeaderByKey("status")
        self:SetEmptyText(GetString(SI_GAMEPAD_CONTACTS_FRIENDS_LIST_NO_FRIENDS_MESSAGE), "ZO_GamepadFriendsListEmpty");
        
        self:InitializeKeybind()
        self:RefreshData()
        local ALWAYS_ANIMATE = true
        GAMEPAD_FRIENDS_LIST_FRIENDS_LIST_FRAGMENT = ZO_ConveyorSceneFragment:New(ZO_GamepadContactsMainFriendsContainer, ALWAYS_ANIMATE)
        GAMEPAD_FRIENDS_LIST_FRIENDS_LIST_FRAGMENT:RegisterCallback("StateChange", function(oldState, newState)
                                                            if newState == SCENE_FRAGMENT_SHOWN then  
                                                                self:ActivatePanel()
                                                            elseif newState == SCENE_FRAGMENT_HIDING then  
                                                                self:DeactivateAll()
                                                            end
                                                        end)
end
function ZO_GamepadFriendsListPanel:GetAddKeybind()
    local keybind  =  {
        name = GetString(SI_GAMEPAD_CONTACTS_ADD_FRIEND_BUTTON_LABEL),
        keybind = "UI_SHORTCUT_SECONDARY",
        callback = function()
            local platform = GetUIPlatform()
            if platform == UI_PLATFORM_PC then
                ZO_Dialogs_ShowGamepadDialog("GAMEPAD_SOCIAL_ADD_FRIEND_DIALOG", nil)
            else
                ZO_ShowConsoleAddFriendDialogFromUserListSelector()
            end
        end,
          visible = function() 
               local platform = GetUIPlatform()
            return platform == UI_PLATFORM_PC or platform == UI_PLATFORM_PS4
          end,
    }
    return keybind
end
function ZO_GamepadFriendsListPanel:SetupRow(control, data, selected)
    self:ColorRow(control, data, selected)
    FRIENDS_LIST_MANAGER:SetupFriendEntry(control, data, selected)
end
function ZO_GamepadFriendsListPanel:LayoutTooltip(tooltipManager, tooltip, data)
    tooltipManager:LayoutFriend(tooltip, ZO_FormatUserFacingDisplayName(data.displayName), data.characterName, data.class, data.gender, data.level, data.veteranRank, data.formattedAllianceName, data.formattedZone, not data.online)
end
-----------------
-- Overrides from ZO_PagedList
function ZO_GamepadFriendsListPanel:BuildMasterList()
    -- The master list lives in the FRIENDS_LIST_MANAGER and is built there
end
function ZO_GamepadFriendsListPanel:FilterList()
  
    self:Clear()
    local searchTerm = self:GetSearchTerm()
    local masterList = FRIENDS_LIST_MANAGER:GetMasterList()
    for i = 1, #masterList do
        local data = masterList[i]
        if(searchTerm == "" or FRIENDS_LIST_MANAGER:IsMatch(searchTerm, data)) then
            self:AddEntry("ZO_GamepadFriendsListRow", data)
        end
    end
end
function ZO_GamepadFriendsListPanel:OnNumOnlineChanged()
    if GAMEPAD_CONTACTS then
        GAMEPAD_CONTACTS:UpdateOnline()
    end
end
function ZO_GamepadFriendsListPanel:OnNumTotalFriendsChanged()
    if GAMEPAD_CONTACTS then
        GAMEPAD_CONTACTS:UpdateOnline()
    end
end
function ZO_GamepadFriendsListPanel:BuildOptionsList(list)
    if self.socialData then
        self:AddHeader(list, ZO_FormatUserFacingDisplayName(self.socialData.displayName))
        if self.socialData.hasCharacter and self.socialData.online  then
            if IsChatSystemAvailableForCurrentPlatform() then
                self:AddOption(list, self:BuildWhisperOption())
            end
            self:AddOption(list, self:BuildInviteToGroupOption())
        end
        self:AddOption(list, self:BuildIgnoreOption())
          if not IsConsoleUI() then
               self:AddOption(list, self:BuildRemoveFriendOption())
          end
    end
end