< Summary

Class:ThumbnailHandler
Assembly:ExploreHUD
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ExploreHUD/Scripts/Handlers/ThumbnailHandler.cs
Covered lines:14
Uncovered lines:9
Coverable lines:23
Total lines:46
Line coverage:60.8% (14 of 23)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
FetchThumbnail(...)0%6.176083.33%
Dispose()0%220100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ExploreHUD/Scripts/Handlers/ThumbnailHandler.cs

#LineLine coverage
 1using System;
 2using DCL;
 3using UnityEngine;
 4
 5internal class ThumbnailHandler : IDisposable
 6{
 07    public Texture2D texture { private set; get; }
 8
 9    AssetPromise_Texture texturePromise = null;
 10
 11    public void FetchThumbnail(string url, Action<Texture2D> onSuccess, Action onFail)
 12    {
 1213        if (!(texture is null))
 14        {
 015            onSuccess?.Invoke(texture);
 016        }
 1217        else if (string.IsNullOrEmpty(url))
 18        {
 619            onFail?.Invoke();
 620        }
 621        else if (texturePromise is null)
 22        {
 623            texturePromise = new AssetPromise_Texture(url, storeTexAsNonReadable: false);
 624            texturePromise.OnSuccessEvent += textureAsset =>
 25            {
 026                texture = textureAsset.texture;
 027                onSuccess?.Invoke(texture);
 028            };
 629            texturePromise.OnFailEvent += textureAsset =>
 30            {
 031                texturePromise = null;
 032                onFail?.Invoke();
 033            };
 634            AssetPromiseKeeper_Texture.i.Keep(texturePromise);
 35        }
 636    }
 37
 38    public void Dispose()
 39    {
 840        if (texturePromise != null)
 41        {
 642            AssetPromiseKeeper_Texture.i.Forget(texturePromise);
 643            texturePromise = null;
 44        }
 845    }
 46}