< Summary

Class:EmotesHUDController
Assembly:EmotesHUD
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/EmotesHUD/EmotesHUDController.cs
Covered lines:31
Uncovered lines:3
Coverable lines:34
Total lines:67
Line coverage:91.1% (31 of 34)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
EmotesHUDController()0%110100%
SetVisibility(...)0%110100%
OnEmoteVisibleChanged(...)0%110100%
SetVisibility_Internal(...)0%220100%
Dispose()0%220100%
EmoteCalled(...)0%110100%
OnViewClosed()0%2100%
OnAvatarEmoteSet(...)0%110100%
OnCloseWindowPressed(...)0%2100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/EmotesHUD/EmotesHUDController.cs

#LineLine coverage
 1using System;
 2using DCL;
 3using UnityEngine;
 4
 5public class EmotesHUDController : IHUD
 6{
 7    internal EmotesHUDView view;
 08    private BaseVariable<bool> emotesVisible => DataStore.i.HUDs.emotesVisible;
 9
 2610    private UserProfile ownUserProfile => UserProfile.GetOwnUserProfile();
 11    private InputAction_Trigger closeWindow;
 12
 613    public EmotesHUDController()
 14    {
 615        closeWindow = Resources.Load<InputAction_Trigger>("CloseWindow");
 616        closeWindow.OnTriggered += OnCloseWindowPressed;
 617        view = EmotesHUDView.Create();
 618        view.Initialize(EmoteCalled);
 619        view.OnClose += OnViewClosed;
 20
 621        ownUserProfile.OnAvatarExpressionSet += OnAvatarEmoteSet;
 622        emotesVisible.OnChange += OnEmoteVisibleChanged;
 623        OnEmoteVisibleChanged(emotesVisible.Get(), false);
 624    }
 25
 26    public void SetVisibility(bool visible)
 27    {
 28        //TODO once kernel sends visible properly
 29        //expressionsVisible.Set(visible);
 230    }
 1631    private void OnEmoteVisibleChanged(bool current, bool previous) { SetVisibility_Internal(current); }
 32    public void SetVisibility_Internal(bool visible)
 33    {
 834        view.SetVisiblity(visible);
 35
 836        if ( visible )
 37        {
 138            DCL.Helpers.Utils.UnlockCursor();
 139            ownUserProfile.snapshotObserver.AddListener(view.UpdateAvatarSprite);
 140        }
 41        else
 42        {
 743            DCL.Helpers.Utils.LockCursor();
 744            ownUserProfile.snapshotObserver.RemoveListener(view.UpdateAvatarSprite);
 45        }
 746    }
 47
 48    public void Dispose()
 49    {
 650        ownUserProfile.snapshotObserver.RemoveListener(view.UpdateAvatarSprite);
 651        closeWindow.OnTriggered -= OnCloseWindowPressed;
 652        ownUserProfile.OnAvatarExpressionSet -= OnAvatarEmoteSet;
 653        emotesVisible.OnChange -= OnEmoteVisibleChanged;
 54
 655        if (view != null)
 56        {
 657            view.CleanUp();
 658            UnityEngine.Object.Destroy(view.gameObject);
 59        }
 660    }
 61
 462    public void EmoteCalled(string id) { UserProfile.GetOwnUserProfile().SetAvatarExpression(id); }
 63
 064    private void OnViewClosed() { emotesVisible.Set(false); }
 465    private void OnAvatarEmoteSet(string id, long timestamp) { emotesVisible.Set(false); }
 066    private void OnCloseWindowPressed(DCLAction_Trigger action) { emotesVisible.Set(false); }
 67}