< Summary

Class:PortableExperienceTaskbarItem
Assembly:TaskbarHUD
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/TaskbarHUD/PortableExperienceTaskbarItem.cs
Covered lines:5
Uncovered lines:12
Coverable lines:17
Total lines:64
Line coverage:29.4% (5 of 17)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
ConfigureItem(...)0%2.212062.5%
OnIconReady(...)0%6200%
ShowContextMenu(...)0%12300%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/TaskbarHUD/PortableExperienceTaskbarItem.cs

#LineLine coverage
 1using DCL;
 2using TMPro;
 3using UnityEngine;
 4using UnityEngine.UI;
 5
 6/// <summary>
 7/// It represents a Portable Experience item in the taskbar.
 8/// </summary>
 9public class PortableExperienceTaskbarItem : MonoBehaviour
 10{
 11    [SerializeField]
 12    private TaskbarButton button;
 13
 14    [SerializeField]
 15    private TextMeshProUGUI tooltipText;
 16
 17    [SerializeField]
 18    private CanvasGroup tooltipTextContainerCanasGroup;
 19
 20    [SerializeField]
 21    private Image icon;
 22
 23    [SerializeField]
 24    private GameObject loading;
 25
 26    [SerializeField]
 27    private PortableExperienceContextMenu contextMenu;
 28
 029    public TaskbarButton mainButton { get => button; }
 30
 31    internal void ConfigureItem(
 32        string portableExperienceId,
 33        string portableExperienceName,
 34        string portableExperienceIconUrl,
 35        TaskbarHUDController taskbarController)
 36    {
 237        tooltipText.text = portableExperienceName;
 238        button.Initialize();
 239        contextMenu.ConfigureMenu(portableExperienceId, portableExperienceName, taskbarController);
 40
 241        if (!string.IsNullOrEmpty(portableExperienceIconUrl))
 42        {
 043            icon.enabled = false;
 044            loading.SetActive(true);
 045            ThumbnailsManager.GetThumbnail(portableExperienceIconUrl, OnIconReady);
 46        }
 247    }
 48
 49    private void OnIconReady(Asset_Texture iconAsset)
 50    {
 051        if (iconAsset != null)
 52        {
 053            icon.sprite = ThumbnailsManager.CreateSpriteFromTexture(iconAsset.texture);
 054            icon.enabled = true;
 055            loading.SetActive(false);
 56        }
 057    }
 58
 59    internal void ShowContextMenu(bool visible)
 60    {
 061        tooltipTextContainerCanasGroup.alpha = visible ? 0f : 1f;
 062        contextMenu.ShowMenu(visible);
 063    }
 64}