< Summary

Class:DCL.ECSComponents.Utils.UIFontUpdater
Assembly:DCL.ECSComponents.UIComponentsUtils
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/ECS7/ECSComponents/UIComponentsUtils/UIFontUpdater.cs
Covered lines:17
Uncovered lines:1
Coverable lines:18
Total lines:44
Line coverage:94.4% (17 of 18)
Covered branches:0
Total branches:0
Covered methods:4
Total methods:4
Method coverage:100% (4 of 4)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
UIFontUpdater(...)0%110100%
Update(...)0%2.012088.89%
ChangeFont(...)0%110100%
Dispose()0%110100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/ECS7/ECSComponents/UIComponentsUtils/UIFontUpdater.cs

#LineLine coverage
 1using UnityEngine.UIElements;
 2
 3namespace DCL.ECSComponents.Utils
 4{
 5    public struct UIFontUpdater
 6    {
 7        private Font? lastFont;
 8        private AssetPromise_Font lastPromise;
 9        private readonly VisualElement targetElement;
 10        private readonly AssetPromiseKeeper_Font fontPromiseKeeper;
 11
 12        public UIFontUpdater(VisualElement targetElement, AssetPromiseKeeper_Font fontPromiseKeeper)
 13        {
 1314            this.targetElement = targetElement;
 1315            this.fontPromiseKeeper = fontPromiseKeeper;
 1316            lastFont = null;
 1317            lastPromise = null;
 1318        }
 19
 20        public void Update(Font newFont)
 21        {
 1022            if (lastFont == newFont)
 023                return;
 24
 1025            lastFont = newFont;
 1026            var prevPromise = lastPromise;
 27
 1028            lastPromise = new AssetPromise_Font(newFont.ToFontName());
 1029            lastPromise.OnSuccessEvent += ChangeFont;
 1030            fontPromiseKeeper.Keep(lastPromise);
 1031            fontPromiseKeeper.Forget(prevPromise);
 1032        }
 33
 34        private void ChangeFont(Asset_Font font)
 35        {
 936            targetElement.style.unityFont = font.font.sourceFontFile;
 937        }
 38
 39        public void Dispose()
 40        {
 641            fontPromiseKeeper.Forget(lastPromise);
 642        }
 43    }
 44}