< Summary

Class:SocialFeaturesAnalytics.SocialAnalytics
Assembly:SocialAnalytics
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Analytics/SocialAnalytics/SocialAnalytics.cs
Covered lines:4
Uncovered lines:125
Coverable lines:129
Total lines:256
Line coverage:3.1% (4 of 129)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
SocialAnalytics(...)0%110100%
SendPlayerMuted(...)0%6200%
SendPlayerUnmuted(...)0%6200%
SendVoiceMessageStartedByFirstTime()0%2100%
SendVoiceMessage(...)0%6200%
SendVoiceChannelConnection(...)0%2100%
SendVoiceChannelDisconnection()0%2100%
SendVoiceChatPreferencesChanged(...)0%2100%
SendFriendRequestSent(...)0%12300%
SendFriendRequestApproved(...)0%12300%
SendFriendRequestRejected(...)0%12300%
SendFriendRequestCancelled(...)0%12300%
SendFriendDeleted(...)0%12300%
SendPassportOpen()0%2100%
SendPassportClose(...)0%2100%
SendPlayerBlocked(...)0%2100%
SendPlayerUnblocked(...)0%2100%
SendPlayerReport(...)0%2100%
SendPlayerJoin(...)0%2100%
SendPlayEmote(...)0%2100%
GetPlayerTypeByUserId(...)0%30500%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Analytics/SocialAnalytics/SocialAnalytics.cs

#LineLine coverage
 1using System.Collections.Generic;
 2using static DCL.SettingsCommon.GeneralSettings;
 3
 4namespace SocialFeaturesAnalytics
 5{
 6    public class SocialAnalytics : ISocialAnalytics
 7    {
 8        private const string PLAYER_MUTED = "user_muted";
 9        private const string PLAYER_UNMUTED = "user_unmuted";
 10        private const string VOICE_MESSAGE_STARTED_BY_FIRST_TIME = "voice_chat_start_recording";
 11        private const string VOICE_MESSAGE_SENT = "voice_message_sent";
 12        private const string VOICE_CHANNEL_CONNECTION = "voice_channel_connection";
 13        private const string VOICE_CHANNEL_DISCONNECTION = "voice_channel_disconnection";
 14        private const string VOICE_CHAT_PREFERENCES_CHANGED = "voice_chat_preferences_changed";
 15        private const string CHANNEL_MESSAGE_SENT = "send_chat_message";
 16        private const string DIRECT_MESSAGE_SENT = "send_direct_message";
 17        private const string FRIEND_REQUEST_SENT = "friend_request_sent";
 18        private const string FRIEND_REQUEST_APPROVED = "friend_request_approved";
 19        private const string FRIEND_REQUEST_REJECTED = "friend_request_rejected";
 20        private const string FRIEND_REQUEST_CANCELLED = "friend_request_cancelled";
 21        private const string FRIEND_DELETED = "friend_deleted";
 22        private const string PASSPORT_OPENED = "passport_opened";
 23        private const string PASSPORT_CLOSED = "passport_closed";
 24        private const string PLAYER_BLOCKED = "user_blocked";
 25        private const string PLAYER_UNBLOCKED = "user_unblocked";
 26        private const string PLAYER_REPORT = "player_report";
 27        private const string PLAYER_JOIN = "player_join";
 28        private const string PLAY_EMOTE = "used_emote";
 29
 30        private IAnalytics analytics;
 31        private IUserProfileBridge userProfileBridge;
 32
 124333        public SocialAnalytics(IAnalytics analytics, IUserProfileBridge userProfileBridge)
 34        {
 124335            this.analytics = analytics;
 124336            this.userProfileBridge = userProfileBridge;
 124337        }
 38
 39        public void SendPlayerMuted(string toUserId)
 40        {
 041            PlayerType? toPlayerType = GetPlayerTypeByUserId(toUserId);
 42
 043            if (toPlayerType == null)
 044                return;
 45
 046            Dictionary<string, string> data = new Dictionary<string, string>();
 047            data.Add("to", toPlayerType.ToString());
 48
 049            analytics.SendAnalytic(PLAYER_MUTED, data);
 050        }
 51
 52        public void SendPlayerUnmuted(string toUserId)
 53        {
 054            PlayerType? toPlayerType = GetPlayerTypeByUserId(toUserId);
 55
 056            if (toPlayerType == null)
 057                return;
 58
 059            Dictionary<string, string> data = new Dictionary<string, string>();
 060            data.Add("to", toPlayerType.ToString());
 61
 062            analytics.SendAnalytic(PLAYER_UNMUTED, data);
 063        }
 64
 065        public void SendVoiceMessageStartedByFirstTime() { analytics.SendAnalytic(VOICE_MESSAGE_STARTED_BY_FIRST_TIME, n
 66
 67        public void SendVoiceMessage(double messageLength, VoiceMessageSource source, string fromUserId)
 68        {
 069            PlayerType? fromPlayerType = GetPlayerTypeByUserId(fromUserId);
 70
 071            if (fromPlayerType == null)
 072                return;
 73
 074            Dictionary<string, string> data = new Dictionary<string, string>();
 075            data.Add("from", fromPlayerType.ToString());
 076            data.Add("length", messageLength.ToString());
 077            data.Add("source", source.ToString());
 78
 079            analytics.SendAnalytic(VOICE_MESSAGE_SENT, data);
 080        }
 81
 82        public void SendVoiceChannelConnection(int numberOfPeers)
 83        {
 084            Dictionary<string, string> data = new Dictionary<string, string>();
 085            data.Add("numberOfPeers", numberOfPeers.ToString());
 86
 087            analytics.SendAnalytic(VOICE_CHANNEL_CONNECTION, data);
 088        }
 89
 090        public void SendVoiceChannelDisconnection() { analytics.SendAnalytic(VOICE_CHANNEL_DISCONNECTION, new Dictionary
 91
 92        public void SendVoiceChatPreferencesChanged(VoiceChatAllow preference)
 93        {
 094            Dictionary<string, string> data = new Dictionary<string, string>();
 095            data.Add("allow", preference.ToString());
 96
 097            analytics.SendAnalytic(VOICE_CHAT_PREFERENCES_CHANGED, data);
 098        }
 99
 100        public void SendFriendRequestSent(string fromUserId, string toUserId, double messageLength, PlayerActionSource s
 101        {
 0102            PlayerType? fromPlayerType = GetPlayerTypeByUserId(fromUserId);
 0103            PlayerType? toPlayerType = GetPlayerTypeByUserId(toUserId);
 104
 0105            if (fromPlayerType == null || toPlayerType == null)
 0106                return;
 107
 0108            Dictionary<string, string> data = new Dictionary<string, string>();
 0109            data.Add("from", fromPlayerType.ToString());
 0110            data.Add("to", toPlayerType.ToString());
 0111            data.Add("text_length", messageLength.ToString());
 0112            data.Add("source", source.ToString());
 113
 0114            analytics.SendAnalytic(FRIEND_REQUEST_SENT, data);
 0115        }
 116
 117        public void SendFriendRequestApproved(string fromUserId, string toUserId, PlayerActionSource source)
 118        {
 0119            PlayerType? fromPlayerType = GetPlayerTypeByUserId(fromUserId);
 0120            PlayerType? toPlayerType = GetPlayerTypeByUserId(toUserId);
 121
 0122            if (fromPlayerType == null || toPlayerType == null)
 0123                return;
 124
 0125            Dictionary<string, string> data = new Dictionary<string, string>();
 0126            data.Add("from", fromPlayerType.ToString());
 0127            data.Add("to", toPlayerType.ToString());
 0128            data.Add("source", source.ToString());
 129
 0130            analytics.SendAnalytic(FRIEND_REQUEST_APPROVED, data);
 0131        }
 132
 133        public void SendFriendRequestRejected(string fromUserId, string toUserId, PlayerActionSource source)
 134        {
 0135            PlayerType? fromPlayerType = GetPlayerTypeByUserId(fromUserId);
 0136            PlayerType? toPlayerType = GetPlayerTypeByUserId(toUserId);
 137
 0138            if (fromPlayerType == null || toPlayerType == null)
 0139                return;
 140
 0141            Dictionary<string, string> data = new Dictionary<string, string>();
 0142            data.Add("from", fromPlayerType.ToString());
 0143            data.Add("to", toPlayerType.ToString());
 0144            data.Add("source", source.ToString());
 145
 0146            analytics.SendAnalytic(FRIEND_REQUEST_REJECTED, data);
 0147        }
 148
 149        public void SendFriendRequestCancelled(string fromUserId, string toUserId, PlayerActionSource source)
 150        {
 0151            PlayerType? fromPlayerType = GetPlayerTypeByUserId(fromUserId);
 0152            PlayerType? toPlayerType = GetPlayerTypeByUserId(toUserId);
 153
 0154            if (fromPlayerType == null || toPlayerType == null)
 0155                return;
 156
 0157            Dictionary<string, string> data = new Dictionary<string, string>();
 0158            data.Add("from", fromPlayerType.ToString());
 0159            data.Add("to", toPlayerType.ToString());
 0160            data.Add("source", source.ToString());
 161
 0162            analytics.SendAnalytic(FRIEND_REQUEST_CANCELLED, data);
 0163        }
 164
 165        public void SendFriendDeleted(string fromUserId, string toUserId, PlayerActionSource source)
 166        {
 0167            PlayerType? fromPlayerType = GetPlayerTypeByUserId(fromUserId);
 0168            PlayerType? toPlayerType = GetPlayerTypeByUserId(toUserId);
 169
 0170            if (fromPlayerType == null || toPlayerType == null)
 0171                return;
 172
 0173            Dictionary<string, string> data = new Dictionary<string, string>();
 0174            data.Add("from", fromPlayerType.ToString());
 0175            data.Add("to", toPlayerType.ToString());
 0176            data.Add("source", source.ToString());
 177
 0178            analytics.SendAnalytic(FRIEND_DELETED, data);
 0179        }
 180
 181        public void SendPassportOpen()
 182        {
 0183            analytics.SendAnalytic(PASSPORT_OPENED, new Dictionary<string, string>());
 0184        }
 185
 186        public void SendPassportClose(double timeSpent)
 187        {
 0188            Dictionary<string, string> data = new Dictionary<string, string>();
 0189            data.Add("time_spent", timeSpent.ToString());
 190
 0191            analytics.SendAnalytic(PASSPORT_CLOSED, data);
 0192        }
 193
 194        public void SendPlayerBlocked(bool isFriend, PlayerActionSource source)
 195        {
 0196            Dictionary<string, string> data = new Dictionary<string, string>();
 0197            data.Add("friend", isFriend.ToString());
 0198            data.Add("source", source.ToString());
 199
 0200            analytics.SendAnalytic(PLAYER_BLOCKED, data);
 0201        }
 202
 203        public void SendPlayerUnblocked(bool isFriend, PlayerActionSource source)
 204        {
 0205            Dictionary<string, string> data = new Dictionary<string, string>();
 0206            data.Add("friend", isFriend.ToString());
 0207            data.Add("source", source.ToString());
 208
 0209            analytics.SendAnalytic(PLAYER_UNBLOCKED, data);
 0210        }
 211
 212        public void SendPlayerReport(PlayerReportIssueType issueType, double messageLength, PlayerActionSource source)
 213        {
 0214            Dictionary<string, string> data = new Dictionary<string, string>();
 0215            data.Add("issue_type", issueType.ToString());
 0216            data.Add("text_length", messageLength.ToString());
 0217            data.Add("source", source.ToString());
 218
 0219            analytics.SendAnalytic(PLAYER_REPORT, data);
 0220        }
 221
 222        public void SendPlayerJoin(PlayerActionSource source)
 223        {
 0224            Dictionary<string, string> data = new Dictionary<string, string>();
 0225            data.Add("source", source.ToString());
 226
 0227            analytics.SendAnalytic(PLAYER_JOIN, data);
 0228        }
 229
 230        public void SendPlayEmote(string emoteId, string emoteName, string rarity, bool isBaseEmote, UserProfile.EmoteSo
 231        {
 0232            Dictionary<string, string> data = new Dictionary<string, string>();
 0233            data.Add("id", emoteId);
 0234            data.Add("name", emoteName);
 0235            data.Add("rarity", rarity);
 0236            data.Add("isBase", isBaseEmote.ToString());
 0237            data.Add("source", source.ToString());
 0238            data.Add("parcel_location", parcelLocation);
 239
 0240            analytics.SendAnalytic(PLAY_EMOTE, data);
 0241        }
 242
 243        private PlayerType? GetPlayerTypeByUserId(string userId)
 244        {
 0245            if (string.IsNullOrEmpty(userId))
 0246                return null;
 247
 0248            UserProfile userProfile = userProfileBridge.Get(userId);
 249
 0250            if (userProfile == null)
 0251                return null;
 252            else
 0253                return userProfile.isGuest ? PlayerType.Guest : PlayerType.Wallet;
 254        }
 255    }
 256}