< Summary

Class:HUDFactory
Assembly:HUD
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/HUDFactory.cs
Covered lines:61
Uncovered lines:2
Coverable lines:63
Total lines:227
Line coverage:96.8% (61 of 63)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
CreateHUD(...)0%31.0331096.72%
Dispose()0%110100%
Initialize()0%110100%

File(s)

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

#LineLine coverage
 1using DCL;
 2using DCL.Browser;
 3using DCL.Chat;
 4using DCL.Chat.Channels;
 5using DCL.Chat.HUD;
 6using DCL.HelpAndSupportHUD;
 7using DCL.Huds.QuestsPanel;
 8using DCL.Huds.QuestsTracker;
 9using DCL.SettingsCommon;
 10using DCL.SettingsPanelHUD;
 11using DCL.Social.Chat;
 12using DCL.Social.Friends;
 13using DCL.Social.Passports;
 14using SignupHUD;
 15using SocialFeaturesAnalytics;
 16using UnityEngine;
 17
 18public class HUDFactory : IHUDFactory
 19{
 20    public virtual IHUD CreateHUD(HUDElementID hudElementId)
 21    {
 2822        IHUD hudElement = null;
 23        switch (hudElementId)
 24        {
 25            case HUDElementID.NONE:
 26                break;
 27            case HUDElementID.MINIMAP:
 128                hudElement = new MinimapHUDController(MinimapMetadataController.i, new WebInterfaceHomeLocationControlle
 129                break;
 30            case HUDElementID.PROFILE_HUD:
 131                hudElement = new ProfileHUDController(new UserProfileWebInterfaceBridge());
 132                break;
 33            case HUDElementID.NOTIFICATION:
 134                hudElement = new NotificationHUDController();
 135                break;
 36            case HUDElementID.AVATAR_EDITOR:
 137                hudElement = new AvatarEditorHUDController(DataStore.i.featureFlags,
 38                    Environment.i.platform.serviceProviders.analytics);
 139                break;
 40            case HUDElementID.SETTINGS_PANEL:
 141                hudElement = new SettingsPanelHUDController();
 142                break;
 43            case HUDElementID.PLAYER_INFO_CARD:
 144                if(DataStore.i.HUDs.enableNewPassport.Get())
 45                {
 46                    //TODO: this is temporary, once the old passport flow is removed
 47                    //this can be moved to the passport plugin
 048                    PlayerPassportHUDView view = PlayerPassportHUDView.CreateView();
 049                    hudElement = new PlayerPassportHUDController(
 50                        view,
 51                        new PassportPlayerInfoComponentController(
 52                            Resources.Load<StringVariable>("CurrentPlayerInfoCardId"),
 53                            view.PlayerInfoView,
 54                            DataStore.i,
 55                            ProfanityFilterSharedInstances.regexFilter,
 56                            FriendsController.i,
 57                            new UserProfileWebInterfaceBridge(),
 58                            new SocialAnalytics(
 59                                Environment.i.platform.serviceProviders.analytics,
 60                                new UserProfileWebInterfaceBridge())),
 61                        new PassportPlayerPreviewComponentController(view.PlayerPreviewView),
 62                        new PassportNavigationComponentController(
 63                            view.PassportNavigationView,
 64                            ProfanityFilterSharedInstances.regexFilter,
 65                            DataStore.i),
 66                        Resources.Load<StringVariable>("CurrentPlayerInfoCardId"),
 67                        new UserProfileWebInterfaceBridge(),
 68                        new SocialAnalytics(
 69                            Environment.i.platform.serviceProviders.analytics,
 70                            new UserProfileWebInterfaceBridge()));
 71                }
 72                else
 73                {
 174                    hudElement = new PlayerInfoCardHUDController(
 75                        FriendsController.i,
 76                        Resources.Load<StringVariable>("CurrentPlayerInfoCardId"),
 77                        new UserProfileWebInterfaceBridge(),
 78                        new WearablesCatalogControllerBridge(),
 79                        new SocialAnalytics(
 80                            Environment.i.platform.serviceProviders.analytics,
 81                            new UserProfileWebInterfaceBridge()),
 82                        ProfanityFilterSharedInstances.regexFilter,
 83                        DataStore.i,
 84                        CommonScriptableObjects.playerInfoCardVisibleState);
 85                }
 186                break;
 87            case HUDElementID.AIRDROPPING:
 188                hudElement = new AirdroppingHUDController();
 189                break;
 90            case HUDElementID.TERMS_OF_SERVICE:
 191                hudElement = new TermsOfServiceHUDController();
 192                break;
 93            case HUDElementID.FRIENDS:
 194                hudElement = new FriendsHUDController(DataStore.i,
 95                    FriendsController.i,
 96                    new UserProfileWebInterfaceBridge(),
 97                    new SocialAnalytics(
 98                        Environment.i.platform.serviceProviders.analytics,
 99                        new UserProfileWebInterfaceBridge()),
 100                    ChatController.i,
 101                    SceneReferences.i.mouseCatcher);
 1102                break;
 103            case HUDElementID.WORLD_CHAT_WINDOW:
 1104                hudElement = new WorldChatWindowController(
 105                    new UserProfileWebInterfaceBridge(),
 106                    FriendsController.i,
 107                    ChatController.i,
 108                    DataStore.i,
 109                    SceneReferences.i.mouseCatcher,
 110                    new SocialAnalytics(
 111                        Environment.i.platform.serviceProviders.analytics,
 112                        new UserProfileWebInterfaceBridge()),
 113                    Environment.i.serviceLocator.Get<IChannelsFeatureFlagService>(),
 114                    new WebInterfaceBrowserBridge(),
 115                    CommonScriptableObjects.rendererState);
 1116                break;
 117            case HUDElementID.PRIVATE_CHAT_WINDOW:
 1118                hudElement = new PrivateChatWindowController(
 119                    DataStore.i,
 120                    new UserProfileWebInterfaceBridge(),
 121                    ChatController.i,
 122                    FriendsController.i,
 123                    new SocialAnalytics(
 124                        Environment.i.platform.serviceProviders.analytics,
 125                        new UserProfileWebInterfaceBridge()),
 126                    SceneReferences.i.mouseCatcher,
 127                    Resources.Load<InputAction_Trigger>("ToggleWorldChat"));
 1128                break;
 129            case HUDElementID.PUBLIC_CHAT:
 1130                hudElement = new PublicChatWindowController(
 131                    ChatController.i,
 132                    new UserProfileWebInterfaceBridge(),
 133                    DataStore.i,
 134                    ProfanityFilterSharedInstances.regexFilter,
 135                    SceneReferences.i.mouseCatcher,
 136                    Resources.Load<InputAction_Trigger>("ToggleWorldChat"));
 1137                break;
 138            case HUDElementID.CHANNELS_CHAT:
 1139                hudElement = new ChatChannelHUDController(
 140                    DataStore.i,
 141                    new UserProfileWebInterfaceBridge(),
 142                    ChatController.i,
 143                    SceneReferences.i.mouseCatcher,
 144                    Resources.Load<InputAction_Trigger>("ToggleWorldChat"),
 145                    new SocialAnalytics(
 146                        Environment.i.platform.serviceProviders.analytics,
 147                        new UserProfileWebInterfaceBridge()),
 148                    ProfanityFilterSharedInstances.regexFilter);
 1149                break;
 150            case HUDElementID.CHANNELS_SEARCH:
 1151                hudElement = new SearchChannelsWindowController(
 152                    ChatController.i,
 153                    SceneReferences.i.mouseCatcher,
 154                    DataStore.i,
 155                    new SocialAnalytics(
 156                        Environment.i.platform.serviceProviders.analytics,
 157                        new UserProfileWebInterfaceBridge()),
 158                    Environment.i.serviceLocator.Get<IChannelsFeatureFlagService>());
 1159                break;
 160            case HUDElementID.CHANNELS_CREATE:
 1161                hudElement = new CreateChannelWindowController(ChatController.i, DataStore.i);
 1162                break;
 163            case HUDElementID.CHANNELS_LEAVE_CONFIRMATION:
 1164                hudElement = new LeaveChannelConfirmationWindowController(ChatController.i);
 1165                break;
 166            case HUDElementID.TASKBAR:
 1167                hudElement = new TaskbarHUDController(ChatController.i, FriendsController.i);
 1168                break;
 169            case HUDElementID.OPEN_EXTERNAL_URL_PROMPT:
 1170                hudElement = new ExternalUrlPromptHUDController();
 1171                break;
 172            case HUDElementID.NFT_INFO_DIALOG:
 1173                hudElement = new NFTPromptHUDController();
 1174                break;
 175            case HUDElementID.TELEPORT_DIALOG:
 1176                hudElement = new TeleportPromptHUDController();
 1177                break;
 178            case HUDElementID.CONTROLS_HUD:
 1179                hudElement = new ControlsHUDController();
 1180                break;
 181            case HUDElementID.HELP_AND_SUPPORT_HUD:
 1182                hudElement = new HelpAndSupportHUDController();
 1183                break;
 184            case HUDElementID.USERS_AROUND_LIST_HUD:
 1185                hudElement = new VoiceChatWindowController(
 186                    new UserProfileWebInterfaceBridge(),
 187                    FriendsController.i,
 188                    new SocialAnalytics(
 189                        Environment.i.platform.serviceProviders.analytics,
 190                        new UserProfileWebInterfaceBridge()),
 191                    DataStore.i,
 192                    Settings.i,
 193                    SceneReferences.i.mouseCatcher);
 1194                break;
 195            case HUDElementID.GRAPHIC_CARD_WARNING:
 1196                hudElement = new GraphicCardWarningHUDController();
 1197                break;
 198            case HUDElementID.BUILDER_IN_WORLD_MAIN:
 199                break;
 200            case HUDElementID.QUESTS_PANEL:
 1201                hudElement = new QuestsPanelHUDController();
 1202                break;
 203            case HUDElementID.QUESTS_TRACKER:
 1204                hudElement = new QuestsTrackerHUDController();
 1205                break;
 206            case HUDElementID.SIGNUP:
 1207                var analytics = Environment.i.platform.serviceProviders.analytics;
 1208                hudElement = new SignupHUDController(analytics);
 1209                break;
 210            case HUDElementID.BUILDER_PROJECTS_PANEL:
 211                break;
 212            case HUDElementID.LOADING:
 1213                hudElement = new LoadingHUDController();
 214                break;
 215        }
 216
 28217        return hudElement;
 218    }
 219
 220    public void Dispose()
 221    {
 558222    }
 223
 224    public void Initialize()
 225    {
 558226    }
 227}