< Summary

Class:SignupHUD.SignupHUDController
Assembly:SignupHUD
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SignupHUD/SignupHUDController.cs
Covered lines:51
Uncovered lines:4
Coverable lines:55
Total lines:107
Line coverage:92.7% (51 of 55)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
CreateView()0%110100%
SignupHUDController()0%110100%
SignupHUDController(...)0%110100%
Initialize(...)0%22091.67%
OnLoadingScreenAppear(...)0%2.152066.67%
OnSignupVisibleChanged(...)0%110100%
StartSignupProcess()0%220100%
OnNameScreenNext(...)0%220100%
OnEditAvatar()0%220100%
OnTermsOfServiceAgreed()0%2.062075%
OnTermsOfServiceBack()0%110100%
SetVisibility(...)0%330100%
Dispose()0%22090.91%

File(s)

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

#LineLine coverage
 1using DCL;
 2using DCL.Interface;
 3using JetBrains.Annotations;
 4
 5namespace SignupHUD
 6{
 7    public class SignupHUDController : IHUD
 8    {
 9        internal ISignupHUDView view;
 10
 11        internal string name;
 12        internal string email;
 2113        internal BaseVariable<bool> signupVisible => DataStore.i.HUDs.signupVisible;
 14        internal IHUD avatarEditorHUD;
 15        private readonly NewUserExperienceAnalytics newUserExperienceAnalytics;
 16        private readonly DataStore_LoadingScreen loadingScreenDataStore;
 17
 118        internal virtual ISignupHUDView CreateView() => SignupHUDView.CreateView();
 19
 20        [UsedImplicitly]
 1621        public SignupHUDController() { }
 22
 123        public SignupHUDController(IAnalytics analytics, DataStore_LoadingScreen loadingScreenDataStore)
 24        {
 125            newUserExperienceAnalytics = new NewUserExperienceAnalytics(analytics);
 126            this.loadingScreenDataStore = loadingScreenDataStore;
 127            loadingScreenDataStore.decoupledLoadingHUD.visible.OnChange += OnLoadingScreenAppear;
 128        }
 29
 30        public void Initialize(IHUD avatarEditorHUD)
 31        {
 932            view = CreateView();
 33
 934            if (view == null)
 035                return;
 36
 937            this.avatarEditorHUD = avatarEditorHUD;
 38
 939            signupVisible.OnChange += OnSignupVisibleChanged;
 940            signupVisible.Set(false);
 41
 942            view.OnNameScreenNext += OnNameScreenNext;
 943            view.OnEditAvatar += OnEditAvatar;
 944            view.OnTermsOfServiceAgreed += OnTermsOfServiceAgreed;
 945            view.OnTermsOfServiceBack += OnTermsOfServiceBack;
 46
 947            CommonScriptableObjects.isLoadingHUDOpen.OnChange += OnLoadingScreenAppear;
 948        }
 49        private void OnLoadingScreenAppear(bool current, bool previous)
 50        {
 151            if(signupVisible.Get() && current)
 052                signupVisible.Set(false);
 153        }
 54
 455        private void OnSignupVisibleChanged(bool current, bool previous) { SetVisibility(current); }
 56
 57        internal void StartSignupProcess()
 58        {
 459            name = null;
 460            email = null;
 461            view?.ShowNameScreen();
 462        }
 63
 64        internal void OnNameScreenNext(string newName, string newEmail)
 65        {
 166            name = newName;
 167            email = newEmail;
 168            view?.ShowTermsOfServiceScreen();
 169        }
 70
 71        internal void OnEditAvatar()
 72        {
 173            signupVisible.Set(false);
 174            avatarEditorHUD?.SetVisibility(true);
 175        }
 76
 77        internal void OnTermsOfServiceAgreed()
 78        {
 179            WebInterface.SendPassport(name, email);
 180            DataStore.i.common.isSignUpFlow.Set(false);
 181            newUserExperienceAnalytics?.SendTermsOfServiceAcceptedNux();
 082        }
 83
 284        internal void OnTermsOfServiceBack() { StartSignupProcess(); }
 85
 86        public void SetVisibility(bool visible)
 87        {
 388            view?.SetVisibility(visible);
 389            if (visible)
 290                StartSignupProcess();
 391        }
 92
 93        public void Dispose()
 94        {
 195            signupVisible.OnChange -= OnSignupVisibleChanged;
 196            if (view == null)
 097                return;
 198            view.OnNameScreenNext -= OnNameScreenNext;
 199            view.OnEditAvatar -= OnEditAvatar;
 1100            view.OnTermsOfServiceAgreed -= OnTermsOfServiceAgreed;
 1101            view.OnTermsOfServiceBack -= OnTermsOfServiceBack;
 1102            CommonScriptableObjects.isFullscreenHUDOpen.OnChange -= OnLoadingScreenAppear;
 1103            loadingScreenDataStore.decoupledLoadingHUD.visible.OnChange -= OnLoadingScreenAppear;
 1104            view.Dispose();
 1105        }
 106    }
 107}