< Summary

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

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
ConfigureItem(...)0%2.062075%
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        icon.color = Color.clear;
 42
 243        if (!string.IsNullOrEmpty(portableExperienceIconUrl))
 44        {
 045            loading.SetActive(true);
 046            ThumbnailsManager.GetThumbnail(portableExperienceIconUrl, OnIconReady);
 47        }
 248    }
 49
 50    private void OnIconReady(Asset_Texture iconAsset)
 51    {
 052        if (iconAsset != null)
 53        {
 054            icon.sprite = ThumbnailsManager.CreateSpriteFromTexture(iconAsset.texture);
 055            icon.color = Color.white;
 056            loading.SetActive(false);
 57        }
 058    }
 59
 60    internal void ShowContextMenu(bool visible)
 61    {
 062        tooltipTextContainerCanasGroup.alpha = visible ? 0f : 1f;
 063        contextMenu.ShowMenu(visible);
 064    }
 65}