< 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:16
Coverable lines:63
Total lines:145
Line coverage:74.6% (47 of 63)
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%
SetUser(...)0%110100%
SetMessage(...)0%110100%
SetTimestamp(...)0%110100%
SetHeader(...)0%110100%
SetImage(...)0%110100%
SetIsAccepted(...)0%3.333066.67%
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 ImageComponentView image;
 21        [SerializeField] internal RectTransform backgroundTransform;
 22        [SerializeField] internal RectTransform messageContainerTransform;
 23        [SerializeField] internal GameObject receivedRequestMark;
 24        [SerializeField] internal GameObject acceptedRequestMark;
 925        [SerializeField] internal bool shouldAnimateFocus = true;
 26        [SerializeField] internal RectTransform header;
 27        [SerializeField] internal RectTransform content;
 28
 29        [Header("Configuration")]
 30        [SerializeField] internal FriendRequestNotificationComponentModel model;
 31
 32        public event Action<string> 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.UserId));
 845            startingXPosition = messageContainerTransform.anchoredPosition.x;
 846            RefreshControl();
 847        }
 48
 49        public override void Show(bool Instant = false)
 50        {
 051            if (showHideAnimator != null)
 052                showHideAnimator.animSpeedFactor = 0.7f;
 53
 054            base.Show(Instant);
 055            ForceUIRefresh();
 056        }
 57
 58        public override void Hide(bool Instant = false)
 59        {
 060            if (showHideAnimator != null)
 061                showHideAnimator.animSpeedFactor = 0.05f;
 62
 063            base.Hide(Instant);
 064        }
 65
 66        public override void OnFocus()
 67        {
 068            base.OnFocus();
 069            if (shouldAnimateFocus)
 070                messageContainerTransform.anchoredPosition = new Vector2(startingXPosition + 5, messageContainerTransfor
 071        }
 72
 73        public override void OnLoseFocus()
 74        {
 875            base.OnLoseFocus();
 876            if (shouldAnimateFocus)
 877                messageContainerTransform.anchoredPosition = new Vector2(startingXPosition, messageContainerTransform.an
 878        }
 79
 80        public override void RefreshControl()
 81        {
 982            if (model == null)
 083                return;
 84
 985            SetUser(model.UserId, model.UserName);
 986            SetMessage(model.Message);
 987            SetTimestamp(model.Time);
 988            SetHeader(model.Header);
 989            SetImage(model.ImageUri);
 990            SetIsAccepted(model.IsAccepted);
 991        }
 92
 93        public void SetUser(string UserId, string UserName)
 94        {
 1095            model.UserId = UserId;
 1096            model.UserName = UserName;
 97
 1098            notificationSender.text = UserName;
 1099            ForceUIRefresh();
 10100        }
 101
 102        public void SetMessage(string Message)
 103        {
 10104            model.Message = Message;
 10105            notificationMessage.text = Message;
 10106            ForceUIRefresh();
 10107        }
 108
 109        public void SetTimestamp(string Timestamp)
 110        {
 10111            model.Time = Timestamp;
 10112            notificationTimestamp.text = Timestamp;
 10113            ForceUIRefresh();
 10114        }
 115
 116        public void SetHeader(string Header)
 117        {
 10118            model.Header = Header;
 10119            notificationHeader.text = Header;
 10120            ForceUIRefresh();
 10121        }
 122
 123        public void SetImage(string ImageUri)
 124        {
 9125            model.ImageUri = ImageUri;
 9126            image.SetImage(ImageUri);
 9127        }
 128
 129        public void SetIsAccepted(bool IsAccepted)
 130        {
 11131            model.IsAccepted = IsAccepted;
 132
 11133            if (receivedRequestMark != null)
 0134                receivedRequestMark.SetActive(!IsAccepted);
 135
 11136            if (acceptedRequestMark != null)
 0137                acceptedRequestMark.SetActive(IsAccepted);
 11138        }
 139
 140        private void ForceUIRefresh()
 141        {
 40142            Utils.ForceRebuildLayoutImmediate(backgroundTransform);
 40143        }
 144    }
 145}