< Summary

Class:DCL.Builder.PublishProjectController
Assembly:BuilderPublisher
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/BuilderInWorld/Publisher/ProjectPublishHUD/Scripts/Projects/PublishProjectController.cs
Covered lines:0
Uncovered lines:26
Coverable lines:26
Total lines:99
Line coverage:0% (0 of 26)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
PublishProjectController()0%2100%
Initialize()0%2100%
Dispose()0%2100%
RotationChange(...)0%2100%
StartPublishFlow(...)0%2100%
SetActive(...)0%6200%
ViewClosed()0%6200%
PublishButtonPressedButtonPressed(...)0%6200%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/BuilderInWorld/Publisher/ProjectPublishHUD/Scripts/Projects/PublishProjectController.cs

#LineLine coverage
 1using System;
 2using System.Collections;
 3using System.Collections.Generic;
 4using DCL.Helpers;
 5using UnityEngine;
 6
 7namespace DCL.Builder
 8{
 9    public interface IPublishProjectController
 10    {
 11        /// <summary>
 12        /// The publish has been confirmed
 13        /// </summary>
 14        event Action<IBuilderScene, PublishInfo> OnPublishPressed;
 15
 16        /// <summary>
 17        /// When the publish action is canceled
 18        /// </summary>
 19        event Action OnPublishCancel;
 20
 21        /// <summary>
 22        /// Start the publish flow for a project
 23        /// </summary>
 24        /// <param name="builderScene"></param>
 25        void StartPublishFlow(IBuilderScene builderScene);
 26
 27        /// <summary>
 28        /// Set the view active
 29        /// </summary>
 30        /// <param name="isActive"></param>
 31        void SetActive(bool isActive);
 32
 33        void Initialize();
 34        void Dispose();
 35    }
 36
 37    public class PublishProjectController : IPublishProjectController
 38    {
 39        public event Action<IBuilderScene, PublishInfo> OnPublishPressed;
 40        public event Action OnPublishCancel;
 41
 42        private const string DETAIL_PREFAB_PATH = "Project/PublishPopupView";
 43
 44        internal IPublishProjectDetailView detailView;
 45
 46        internal IBuilderScene sceneToPublish;
 47
 48        private PublishInfo.ProjectRotation projectRotation = PublishInfo.ProjectRotation.NORTH;
 49
 050        public PublishProjectController() { detailView = GameObject.Instantiate(Resources.Load<PublishProjectDetailView>
 51
 52        public void Initialize()
 53        {
 054            detailView.OnCancel += ViewClosed;
 055            detailView.OnPublishButtonPressed += PublishButtonPressedButtonPressed;
 056            detailView.OnProjectRotateChange += RotationChange;
 057        }
 58
 59        public void Dispose()
 60        {
 061            detailView.OnCancel -= ViewClosed;
 062            detailView.OnPublishButtonPressed -= PublishButtonPressedButtonPressed;
 063            detailView.OnProjectRotateChange -= RotationChange;
 64
 065            detailView.Dispose();
 066        }
 67
 068        internal void RotationChange(PublishInfo.ProjectRotation newRotation) { projectRotation = newRotation; }
 69
 70        public void StartPublishFlow(IBuilderScene builderScene)
 71        {
 072            sceneToPublish = builderScene;
 73
 074            detailView.SetProjectToPublish(sceneToPublish);
 075            detailView.Show();
 076            detailView.ResetView();
 077        }
 78
 79        public void SetActive(bool isActive)
 80        {
 081            if (isActive)
 082                detailView.Show();
 83            else
 084                ViewClosed();
 085        }
 86
 87        private void ViewClosed()
 88        {
 089            detailView.Hide();
 090            OnPublishCancel?.Invoke();
 091        }
 92
 93        private void PublishButtonPressedButtonPressed(PublishInfo info)
 94        {
 095            info.rotation = projectRotation;
 096            OnPublishPressed?.Invoke(sceneToPublish, info);
 097        }
 98    }
 99}