< Summary

Class:FriendsNotificationPlugin
Assembly:SocialBarHUD
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarHUD/FriendsNotificationPlugin.cs
Covered lines:25
Uncovered lines:1
Coverable lines:26
Total lines:61
Line coverage:96.1% (25 of 26)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
FriendsNotificationPlugin(...)0%110100%
Dispose()0%110100%
MarkFriendsAsSeen(...)0%110100%
MarkRequestsAsSeen(...)0%110100%
UpdateNewApprovedFriends()0%2.012085.71%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarHUD/FriendsNotificationPlugin.cs

#LineLine coverage
 1using DCL;
 2using DCL.Helpers;
 3
 4public class FriendsNotificationPlugin : IPlugin
 5{
 6    private const string PLAYER_PREFS_SEEN_FRIEND_COUNT = "SeenFriendsCount";
 7
 8    private readonly IPlayerPrefs playerPrefs;
 9    private readonly IFriendsController friendsController;
 10    private readonly FloatVariable memoryPendingFriendRequestsRepository;
 11    private readonly FloatVariable memoryNewApprovedFriendsRepository;
 12    private readonly DataStore dataStore;
 13
 214    public FriendsNotificationPlugin(IPlayerPrefs playerPrefs,
 15        IFriendsController friendsController,
 16        FloatVariable memoryPendingFriendRequestsRepository,
 17        FloatVariable memoryNewApprovedFriendsRepository,
 18        DataStore dataStore)
 19    {
 220        this.playerPrefs = playerPrefs;
 221        this.friendsController = friendsController;
 222        this.memoryPendingFriendRequestsRepository = memoryPendingFriendRequestsRepository;
 223        this.memoryNewApprovedFriendsRepository = memoryNewApprovedFriendsRepository;
 224        this.dataStore = dataStore;
 25
 226        dataStore.friendNotifications.seenFriends.OnChange += MarkFriendsAsSeen;
 227        dataStore.friendNotifications.seenRequests.OnChange += MarkRequestsAsSeen;
 228    }
 29
 30    public void Dispose()
 31    {
 232        dataStore.friendNotifications.seenFriends.OnChange -= MarkFriendsAsSeen;
 233        dataStore.friendNotifications.seenRequests.OnChange -= MarkRequestsAsSeen;
 234    }
 35
 36    private void MarkFriendsAsSeen(int current, int previous)
 37    {
 138        playerPrefs.Set(PLAYER_PREFS_SEEN_FRIEND_COUNT, current);
 139        playerPrefs.Save();
 140        UpdateNewApprovedFriends();
 141    }
 42
 43    private void MarkRequestsAsSeen(int current, int previous)
 44    {
 145        memoryPendingFriendRequestsRepository.Set(current);
 146        UpdateNewApprovedFriends();
 147    }
 48
 49    private void UpdateNewApprovedFriends()
 50    {
 251        var seenFriendsCount = playerPrefs.GetInt(PLAYER_PREFS_SEEN_FRIEND_COUNT);
 252        var friendsCount = friendsController.friendCount;
 253        var newFriends = friendsCount - seenFriendsCount;
 54
 55        //NOTE(Brian): If someone deletes you, don't show badge notification
 256        if (newFriends < 0)
 057            newFriends = 0;
 58
 259        memoryNewApprovedFriendsRepository.Set(newFriends);
 260    }
 61}