< Summary

Class:FriendsSearchPromptController
Assembly:BuilderProjectsPanel
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/BuilderInWorld/HUD/ProjectsPanelHUD/Scripts/UsersSearchPrompt/FriendsSearchPromptController.cs
Covered lines:44
Uncovered lines:3
Coverable lines:47
Total lines:98
Line coverage:93.6% (44 of 47)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
FriendsSearchPromptController(...)0%110100%
Dispose()0%110100%
Show()0%220100%
Hide()0%2100%
SetUsersInRolList(...)0%110100%
OnSearchText(...)0%110100%
OnShouldHidePrompt()0%2100%
OnSearchResult(...)0%110100%
OnFriendRemoved(...)0%2100%
OnFriendList(...)0%440100%
OnAddUserPressed(...)0%2.52050%
OnRemoveUserPressed(...)0%2.52050%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/BuilderInWorld/HUD/ProjectsPanelHUD/Scripts/UsersSearchPrompt/FriendsSearchPromptController.cs

#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using DCl.Social.Friends;
 4using DCL.Social.Friends;
 5
 6internal class FriendsSearchPromptController : IDisposable
 7{
 8    private const float IDLE_TIME_TRIGGER_SEARCH = 0.5f;
 9
 10    public event Action<string> OnRemoveUser;
 11    public event Action<string> OnAddUser;
 12
 13    private readonly UsersSearchPromptView view;
 14
 1715    private readonly SearchHandler<UserElementView> searchHandler = new SearchHandler<UserElementView>();
 16    private readonly UsersSearchFriendsHandler friendsHandler;
 17    internal readonly UsersSearchUserViewsHandler userViewsHandler;
 18
 1719    public FriendsSearchPromptController(UsersSearchPromptView promptView, IFriendsController friendsController)
 20    {
 1721        view = promptView;
 1722        view.SetIdleSearchTime(IDLE_TIME_TRIGGER_SEARCH);
 23
 1724        friendsHandler = new UsersSearchFriendsHandler(friendsController);
 1725        userViewsHandler = new UsersSearchUserViewsHandler(view.GetUsersBaseElement(), view.GetUserElementsParent());
 26
 1727        friendsHandler.OnFriendRemoved += OnFriendRemoved;
 1728        searchHandler.OnSearchChanged += OnSearchResult;
 1729        view.OnSearchText += OnSearchText;
 1730        view.OnShouldHide += OnShouldHidePrompt;
 1731        userViewsHandler.OnAddUser += OnAddUserPressed;
 1732        userViewsHandler.OnRemoveUser += OnRemoveUserPressed;
 1733    }
 34
 35    public void Dispose()
 36    {
 1737        friendsHandler.OnFriendRemoved -= OnFriendRemoved;
 1738        searchHandler.OnSearchChanged -= OnSearchResult;
 1739        view.OnSearchText -= OnSearchText;
 1740        view.OnShouldHide -= OnShouldHidePrompt;
 1741        userViewsHandler.OnAddUser -= OnAddUserPressed;
 1742        userViewsHandler.OnRemoveUser -= OnRemoveUserPressed;
 43
 1744        friendsHandler.Dispose();
 1745        userViewsHandler.Dispose();
 1746        view.Dispose();
 1747    }
 48
 49    public void Show()
 50    {
 551        view.ClearSearch();
 552        view.SetFriendListEmpty(userViewsHandler.userElementViewCount == 0);
 53
 554        if (friendsHandler.isFriendlistDirty)
 55        {
 556            friendsHandler.GetFriendList().Then(OnFriendList);
 57        }
 58
 559        view.Show();
 560    }
 61
 062    public void Hide() { view.Hide(); }
 63
 2064    public void SetUsersInRolList(List<string> usersId) { userViewsHandler.SetUsersInRolList(usersId); }
 65
 1266    private void OnSearchText(string searchText) { searchHandler.NotifySearchChanged(searchText); }
 67
 068    private void OnShouldHidePrompt() { Hide(); }
 69
 2270    private void OnSearchResult(List<UserElementView> viewsList) { userViewsHandler.SetVisibleList(viewsList); }
 71
 072    private void OnFriendRemoved(string userId) { userViewsHandler.RemoveUserView(userId); }
 73
 74    private void OnFriendList(Dictionary<string, UserStatus> friendsDictionary)
 75    {
 576        List<UserProfile> profiles = new List<UserProfile>();
 77
 3278        foreach (KeyValuePair<string, UserStatus> keyValuePair in friendsDictionary)
 79        {
 1180            if (keyValuePair.Value.friendshipStatus != FriendshipStatus.FRIEND)
 81                continue;
 82
 1183            UserProfile profile = UserProfileController.userProfilesCatalog.Get(keyValuePair.Key);
 1184            if (profile)
 85            {
 1186                profiles.Add(profile);
 87            }
 88        }
 89
 590        userViewsHandler.SetUserViewsList(profiles);
 591        view.SetFriendListEmpty(userViewsHandler.userElementViewCount == 0);
 592        searchHandler.SetSearchableList(userViewsHandler.GetUserElementViews());
 593    }
 94
 195    private void OnAddUserPressed(string userId) { OnAddUser?.Invoke(userId); }
 96
 197    private void OnRemoveUserPressed(string userId) { OnRemoveUser?.Invoke(userId); }
 98}