< Summary

Class:UIComponents.CollapsableSortedList.CollapsableListToggleButton
Assembly:UIComponents
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/UIComponents/Scripts/Components/CollapsableSortedList/CollapsableListToggleButton.cs
Covered lines:15
Uncovered lines:5
Coverable lines:20
Total lines:56
Line coverage:75% (15 of 20)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Awake()0%3.043083.33%
RefreshControl()0%2100%
Toggle(...)0%220100%
SetInteractability(...)0%330100%
Toggle()0%2100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/UIComponents/Scripts/Components/CollapsableSortedList/CollapsableListToggleButton.cs

#LineLine coverage
 1using DCL.Helpers;
 2using UnityEngine;
 3using UnityEngine.UI;
 4
 5namespace UIComponents.CollapsableSortedList
 6{
 7    public class CollapsableListToggleButton : BaseComponentView
 8    {
 9        [SerializeField] private bool toggleOnAwake;
 10        [SerializeField] private Button toggleButton;
 11        [SerializeField] private Transform toggleButtonIcon;
 12        [SerializeField] private Image toggleImage;
 13        [SerializeField] private RectTransform containerRectTransform;
 14        [SerializeField] private CollapsableListToggleButtonModel model;
 15        [SerializeField] private Color disabledColor;
 16
 17        private Color originalColor;
 18
 19        public override void Awake()
 20        {
 9721            base.Awake();
 22
 9723            originalColor = toggleImage?.color ?? Color.black;
 9724            toggleButton.onClick.AddListener(Toggle);
 25
 9726            if (toggleOnAwake)
 027                Toggle();
 9728        }
 29
 30        public override void RefreshControl()
 31        {
 032            Toggle(model.isToggled);
 033        }
 34
 35        public void Toggle(bool toggled)
 36        {
 4837            containerRectTransform.gameObject.SetActive(toggled);
 4838            var absScale = Mathf.Abs(toggleButtonIcon.localScale.y);
 4839            var scale = toggled ? absScale : -absScale;
 4840            toggleButtonIcon.localScale = new Vector3(toggleButtonIcon.localScale.x, scale, 1f);
 4841            Utils.ForceRebuildLayoutImmediate(containerRectTransform);
 4842            model.isToggled = toggled;
 4843        }
 44
 45        public void SetInteractability(bool interactable)
 46        {
 647            toggleButton.interactable = interactable;
 648            toggleImage.color = interactable ? originalColor : disabledColor;
 649        }
 50
 51        private void Toggle()
 52        {
 053            Toggle(!containerRectTransform.gameObject.activeSelf);
 054        }
 55    }
 56}