< Summary

Class:UnreadNotificationBadge
Assembly:NotificationBadge
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/NotificationBadge/UnreadNotificationBadge.cs
Covered lines:33
Uncovered lines:0
Coverable lines:33
Total lines:90
Line coverage:100% (33 of 33)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
UnreadNotificationBadge()0%110100%
Initialize(...)0%220100%
HandleUnseenMessagesUpdated(...)0%220100%
HandleChannelUnseenMessagesUpdated(...)0%220100%
OnEnable()0%220100%
OnDestroy()0%220100%
UpdateUnreadMessages()0%110100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/NotificationBadge/UnreadNotificationBadge.cs

#LineLine coverage
 1using TMPro;
 2using UnityEngine;
 3
 4/// <summary>
 5/// Shows the number of unread messages from a friend.
 6/// </summary>
 7public class UnreadNotificationBadge : MonoBehaviour
 8{
 9    public TextMeshProUGUI notificationText;
 10    public GameObject notificationContainer;
 9511    public int maxNumberToShow = 9;
 12
 13    private IChatController chatController;
 14    private string currentUserId;
 15    private int currentUnreadMessagesValue;
 16    private bool isInitialized;
 17
 18    public int CurrentUnreadMessages
 19    {
 2220        get => currentUnreadMessagesValue;
 21        set
 22        {
 13023            currentUnreadMessagesValue = value;
 24
 13025            if (currentUnreadMessagesValue > 0)
 26            {
 2727                notificationContainer.SetActive(true);
 2728                notificationText.text = currentUnreadMessagesValue <= maxNumberToShow ? currentUnreadMessagesValue.ToStr
 29            }
 30            else
 31            {
 10332                notificationContainer.SetActive(false);
 33            }
 10334        }
 35    }
 36
 37    /// <summary>
 38    /// Prepares the notification badge for listening to a specific user
 39    /// </summary>
 40    /// <param name="chatController">Chat Controlled to be listened</param>
 41    /// <param name="userId">User ID to listen to</param>
 42    public void Initialize(IChatController chatController, string userId)
 43    {
 9244        if (chatController == null)
 945            return;
 46
 8347        this.chatController = chatController;
 8348        currentUserId = userId;
 49
 8350        UpdateUnreadMessages();
 51
 8352        chatController.OnUserUnseenMessagesUpdated -= HandleUnseenMessagesUpdated;
 8353        chatController.OnUserUnseenMessagesUpdated += HandleUnseenMessagesUpdated;
 54
 8355        chatController.OnChannelUnseenMessagesUpdated -= HandleChannelUnseenMessagesUpdated;
 8356        chatController.OnChannelUnseenMessagesUpdated += HandleChannelUnseenMessagesUpdated;
 57
 8358        isInitialized = true;
 8359    }
 60
 61    private void HandleUnseenMessagesUpdated(string userId, int unseenMessages)
 62    {
 1863        if (userId != currentUserId) return;
 1464        CurrentUnreadMessages = unseenMessages;
 1465    }
 66
 67    private void HandleChannelUnseenMessagesUpdated(string channelId, int unseenMessages)
 68    {
 1869        if (channelId != currentUserId) return;
 1470        CurrentUnreadMessages = unseenMessages;
 1471    }
 72
 73    private void OnEnable()
 74    {
 24775        if (!isInitialized) return;
 1976        UpdateUnreadMessages();
 1977    }
 78
 79    private void OnDestroy()
 80    {
 6381        if (chatController != null)
 82        {
 5283            chatController.OnUserUnseenMessagesUpdated -= HandleUnseenMessagesUpdated;
 5284            chatController.OnChannelUnseenMessagesUpdated -= HandleChannelUnseenMessagesUpdated;
 85        }
 6386    }
 87
 88    private void UpdateUnreadMessages() =>
 10289        CurrentUnreadMessages = chatController.GetAllocatedUnseenMessages(currentUserId) + chatController.GetAllocatedUn
 90}