< Summary

Class:DCL.Chat.Notifications.FriendRequestNotificationComponentView
Assembly:NotificationMessagesHUD
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/NotificationMessagesHUD/NotificationComponent/FriendRequestNotificationComponentView.cs
Covered lines:47
Uncovered lines:14
Coverable lines:61
Total lines:143
Line coverage:77% (47 of 61)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
FriendRequestNotificationComponentView()0%110100%
Configure(...)0%110100%
Awake()0%220100%
Show(...)0%6200%
Hide(...)0%6200%
OnFocus()0%6200%
OnLoseFocus()0%220100%
RefreshControl()0%2.012088.89%
SetFriendRequestId(...)0%110100%
SetUser(...)0%110100%
SetMessage(...)0%110100%
SetTimestamp(...)0%110100%
SetHeader(...)0%110100%
SetIsAccepted(...)0%330100%
ForceUIRefresh()0%110100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/NotificationMessagesHUD/NotificationComponent/FriendRequestNotificationComponentView.cs

#LineLine coverage
 1using DCL.Helpers;
 2using System;
 3using TMPro;
 4using UnityEngine;
 5using UnityEngine.UI;
 6
 7namespace DCL.Chat.Notifications
 8{
 9    public class FriendRequestNotificationComponentView :
 10        BaseComponentView,
 11        IComponentModelConfig<FriendRequestNotificationComponentModel>,
 12        IShowableNotificationView
 13    {
 14        [Header("Prefab References")]
 15        [SerializeField] internal Button button;
 16        [SerializeField] internal TMP_Text notificationMessage;
 17        [SerializeField] internal TMP_Text notificationHeader;
 18        [SerializeField] internal TMP_Text notificationSender;
 19        [SerializeField] internal TMP_Text notificationTimestamp;
 20        [SerializeField] internal RectTransform backgroundTransform;
 21        [SerializeField] internal RectTransform messageContainerTransform;
 22        [SerializeField] internal GameObject receivedRequestMark;
 23        [SerializeField] internal GameObject acceptedRequestMark;
 1024        [SerializeField] internal bool shouldAnimateFocus = true;
 25        [SerializeField] internal RectTransform header;
 26        [SerializeField] internal RectTransform content;
 27
 28        [Header("Configuration")]
 29        [SerializeField] internal FriendRequestNotificationComponentModel model;
 30
 31        public delegate void ClickedNotificationDelegate(string friendRequestId, string userId, bool isAccepted);
 32        public event ClickedNotificationDelegate OnClickedNotification;
 33        private float startingXPosition;
 34
 35        public void Configure(FriendRequestNotificationComponentModel newModel)
 36        {
 137            model = newModel;
 138            RefreshControl();
 139        }
 40
 41        public override void Awake()
 42        {
 843            base.Awake();
 944            button?.onClick.AddListener(() => OnClickedNotification?.Invoke(model.FriendRequestId, model.UserId, model.I
 45
 846            startingXPosition = messageContainerTransform.anchoredPosition.x;
 847            RefreshControl();
 848        }
 49
 50        public override void Show(bool instant = false)
 51        {
 052            if (showHideAnimator != null)
 053                showHideAnimator.animSpeedFactor = 0.7f;
 54
 055            base.Show(instant);
 056            ForceUIRefresh();
 057        }
 58
 59        public override void Hide(bool instant = false)
 60        {
 061            if (showHideAnimator != null)
 062                showHideAnimator.animSpeedFactor = 0.05f;
 63
 064            base.Hide(instant);
 065        }
 66
 67        public override void OnFocus()
 68        {
 069            base.OnFocus();
 070            if (shouldAnimateFocus)
 071                messageContainerTransform.anchoredPosition = new Vector2(startingXPosition + 5, messageContainerTransfor
 072        }
 73
 74        public override void OnLoseFocus()
 75        {
 876            base.OnLoseFocus();
 877            if (shouldAnimateFocus)
 878                messageContainerTransform.anchoredPosition = new Vector2(startingXPosition, messageContainerTransform.an
 879        }
 80
 81        public override void RefreshControl()
 82        {
 983            if (model == null)
 084                return;
 85
 986            SetFriendRequestId(model.FriendRequestId);
 987            SetUser(model.UserId, model.UserName);
 988            SetMessage(model.Message);
 989            SetTimestamp(model.Time);
 990            SetHeader(model.Header);
 991            SetIsAccepted(model.IsAccepted);
 992        }
 93
 94        public void SetFriendRequestId(string friendRequestId) =>
 995            model.FriendRequestId = friendRequestId;
 96
 97        public void SetUser(string userId, string userName)
 98        {
 1099            model.UserId = userId;
 10100            model.UserName = userName;
 101
 10102            notificationSender.text = userName;
 10103            ForceUIRefresh();
 10104        }
 105
 106        public void SetMessage(string message)
 107        {
 10108            model.Message = message;
 10109            notificationMessage.text = message;
 10110            ForceUIRefresh();
 10111        }
 112
 113        public void SetTimestamp(string timestamp)
 114        {
 10115            model.Time = timestamp;
 10116            notificationTimestamp.text = timestamp;
 10117            ForceUIRefresh();
 10118        }
 119
 120        public void SetHeader(string header)
 121        {
 10122            model.Header = header;
 10123            notificationHeader.text = header;
 10124            ForceUIRefresh();
 10125        }
 126
 127        public void SetIsAccepted(bool isAccepted)
 128        {
 11129            model.IsAccepted = isAccepted;
 130
 11131            if (receivedRequestMark != null)
 11132                receivedRequestMark.SetActive(!isAccepted);
 133
 11134            if (acceptedRequestMark != null)
 11135                acceptedRequestMark.SetActive(isAccepted);
 11136        }
 137
 138        private void ForceUIRefresh()
 139        {
 40140            Utils.ForceRebuildLayoutImmediate(backgroundTransform);
 40141        }
 142    }
 143}