< Summary

Class:DCL.Chat.HUD.PromoteChannelsToastComponentController
Assembly:WorldChatWindowHUD
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PromoteChannelsToastComponentController.cs
Covered lines:35
Uncovered lines:7
Coverable lines:42
Total lines:95
Line coverage:83.3% (35 of 42)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
PromoteChannelsToastComponentController(...)0%110100%
RendererState_OnChange(...)0%4.134080%
IsTutorialRunning_OnChange(...)0%6200%
Dismiss()0%110100%
OnToastVisbile(...)0%220100%
Dispose()0%220100%

File(s)

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

#LineLine coverage
 1using DCL.Helpers;
 2using System;
 3
 4namespace DCL.Chat.HUD
 5{
 6    public class PromoteChannelsToastComponentController : IDisposable
 7    {
 8        internal const string PLAYER_PREFS_PROMOTE_CHANNELS_TOAS_DISMISSED_KEY = "PromoteChannelsToastDismissed";
 9
 10        private readonly IPromoteChannelsToastComponentView view;
 11        private readonly IPlayerPrefs playerPrefs;
 12        private readonly DataStore dataStore;
 13        private readonly RendererState rendererState;
 14
 915        private BaseVariable<bool> isPromoteToastVisible => dataStore.channels.isPromoteToastVisible;
 316        private BaseVariable<bool> isTutorialRunning => dataStore.common.isTutorialRunning;
 17
 318        public PromoteChannelsToastComponentController(
 19            IPromoteChannelsToastComponentView view,
 20            IPlayerPrefs playerPrefs,
 21            DataStore dataStore,
 22            RendererState rendererState)
 23        {
 324            this.view = view;
 325            this.view.OnClose += Dismiss;
 326            this.view.Hide();
 27
 328            this.playerPrefs = playerPrefs;
 29
 330            this.dataStore = dataStore;
 31
 332            this.rendererState = rendererState;
 333            this.rendererState.OnChange += RendererState_OnChange;
 334        }
 35
 36        private void RendererState_OnChange(bool current, bool previous)
 37        {
 238            if (!current)
 039                return;
 40
 241            rendererState.OnChange -= RendererState_OnChange;
 242            isPromoteToastVisible.OnChange += OnToastVisbile;
 43
 244            if (!playerPrefs.GetBool(PLAYER_PREFS_PROMOTE_CHANNELS_TOAS_DISMISSED_KEY, false))
 45            {
 146                if (!dataStore.common.isSignUpFlow.Get())
 147                    isPromoteToastVisible.Set(true, notifyEvent: true);
 48                else
 049                    isTutorialRunning.OnChange += IsTutorialRunning_OnChange;
 50            }
 51            else
 152                isPromoteToastVisible.Set(false, notifyEvent: true);
 153        }
 54
 55        private void IsTutorialRunning_OnChange(bool current, bool previous)
 56        {
 057            if (current)
 058                return;
 59
 060            isTutorialRunning.OnChange -= IsTutorialRunning_OnChange;
 061            isPromoteToastVisible.Set(true, notifyEvent: true);
 062        }
 63
 64        private void Dismiss()
 65        {
 166            isPromoteToastVisible.Set(false);
 167            playerPrefs.Set(PLAYER_PREFS_PROMOTE_CHANNELS_TOAS_DISMISSED_KEY, true);
 168            playerPrefs.Save();
 169        }
 70
 71        private void OnToastVisbile(bool isVisible, bool _)
 72        {
 273            if (isVisible)
 174                view.Show();
 75            else
 76            {
 177                isPromoteToastVisible.OnChange -= OnToastVisbile;
 178                view.Hide();
 79            }
 180        }
 81
 82        public void Dispose()
 83        {
 384            if (view != null)
 85            {
 386                view.OnClose -= Dismiss;
 387                view.Dispose();
 88            }
 89
 390            rendererState.OnChange -= RendererState_OnChange;
 391            isPromoteToastVisible.OnChange -= OnToastVisbile;
 392            isTutorialRunning.OnChange -= IsTutorialRunning_OnChange;
 393        }
 94    }
 95}