< Summary

Class:DCLPlugins.SignupHUDPlugin.SignupHUDPlugin
Assembly:SignupHUDPlugin
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/SignupHUDPlugin/SignupHUDPlugin.cs
Covered lines:0
Uncovered lines:29
Coverable lines:29
Total lines:77
Line coverage:0% (0 of 29)
Covered branches:0
Total branches:0
Covered methods:0
Total methods:6
Method coverage:0% (0 of 6)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
SignupHUDPlugin()0%2100%
Initialize()0%6200%
>c__DisplayClass8_0/<<OnFeatureFlagsChanged()0%56700%
OnFeatureFlagsChanged(...)0%2100%
Dispose()0%6200%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/SignupHUDPlugin/SignupHUDPlugin.cs

#LineLine coverage
 1using Cysharp.Threading.Tasks;
 2using DCL;
 3using DCL.Browser;
 4using DCL.Providers;
 5using DCLServices.SubscriptionsAPIService;
 6using SignupHUD;
 7
 8namespace DCLPlugins.SignupHUDPlugin
 9{
 10    public class SignupHUDPlugin : IPlugin
 11    {
 12        private const string NEW_TOS_AND_EMAIL_SUBSCRIPTION_FF = "new_terms_of_service_and_email_subscription";
 13        private const string SIGNUP_HUD = "SignupHUD";
 14        private const string SIGNUP_HUD_V2 = "SignupHUDV2";
 15
 016        private BaseVariable<FeatureFlag> featureFlags => DataStore.i.featureFlags.flags;
 17
 18        private SignupHUDController controller;
 19
 020        public SignupHUDPlugin()
 21        {
 022            Initialize().Forget();
 023        }
 24
 25        private async UniTaskVoid Initialize()
 26        {
 027            if (!featureFlags.Get().IsInitialized)
 028                featureFlags.OnChange += OnFeatureFlagsChanged;
 29            else
 030                OnFeatureFlagsChanged(featureFlags.Get());
 031        }
 32
 33        private void OnFeatureFlagsChanged(FeatureFlag current, FeatureFlag _ = null)
 34        {
 35            async UniTaskVoid InitializeController()
 36            {
 037                var assetsProvider = DCL.Environment.i.platform.serviceLocator.Get<IAddressableResourceProvider>();
 038                var analytics = DCL.Environment.i.platform.serviceProviders.analytics;
 039                var loadingScreenDataStore = DataStore.i.Get<DataStore_LoadingScreen>();
 040                var hudsDataStore = DataStore.i.HUDs;
 041                var featureFlagDataStore = DataStore.i.Get<DataStore_FeatureFlag>();
 042                var backpackDataStore = DataStore.i.Get<DataStore_BackpackV2>();
 043                var commonDataStore = DataStore.i.Get<DataStore_Common>();
 044                var browserBridge = new WebInterfaceBrowserBridge();
 045                var subscriptionsAPIService = Environment.i.serviceLocator.Get<ISubscriptionsAPIService>();
 046                var userProfileWebInterfaceBridge = new UserProfileWebInterfaceBridge();
 47
 048                bool isNewTermsOfServiceAndEmailSubscriptionEnabled = current.IsFeatureEnabled(NEW_TOS_AND_EMAIL_SUBSCRI
 049                var view = await assetsProvider.Instantiate<ISignupHUDView>(
 50                    isNewTermsOfServiceAndEmailSubscriptionEnabled ? SIGNUP_HUD_V2 : SIGNUP_HUD,
 51                    $"_{(isNewTermsOfServiceAndEmailSubscriptionEnabled ? SIGNUP_HUD_V2 : SIGNUP_HUD)}");
 52
 053                controller = new SignupHUDController(
 54                    analytics,
 55                    view,
 56                    loadingScreenDataStore,
 57                    hudsDataStore,
 58                    featureFlagDataStore,
 59                    backpackDataStore,
 60                    commonDataStore,
 61                    browserBridge,
 62                    subscriptionsAPIService);
 63
 064                controller.Initialize();
 065            }
 66
 067            featureFlags.OnChange -= OnFeatureFlagsChanged;
 068            InitializeController().Forget();
 069        }
 70
 71        public void Dispose()
 72        {
 073            featureFlags.OnChange -= OnFeatureFlagsChanged;
 074            controller?.Dispose();
 075        }
 76    }
 77}