< Summary

Class:LandPublisherView
Assembly:BuilderPublisher
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/BuilderInWorld/Publisher/ProjectPublishHUD/Scripts/Lands/LandPublisherView.cs
Covered lines:27
Uncovered lines:10
Coverable lines:37
Total lines:110
Line coverage:72.9% (27 of 37)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Create()0%110100%
Awake()0%110100%
OnDestroy()0%110100%
EnableNextButton()0%12300%
DisableNextButton()0%2100%
SetActive(...)0%110100%
Cancel()0%220100%
Publish()0%220100%
SetPublishButtonActive(...)0%330100%
SetPublicationScreenshot(...)0%2100%
GetSceneName()0%2100%
GetSceneDescription()0%2100%
GetSceneScreenshotTexture()0%110100%
SetSceneName(...)0%2100%
SetSceneDescription(...)0%2100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/BuilderInWorld/Publisher/ProjectPublishHUD/Scripts/Lands/LandPublisherView.cs

#LineLine coverage
 1using System;
 2using TMPro;
 3using UnityEngine;
 4using UnityEngine.UI;
 5
 6public interface ILandPublisherView
 7{
 8    event Action OnCancel;
 9    event Action OnPublish;
 10    event Action<string> OnSceneNameChange;
 11
 12    string currentSceneName { get; }
 13
 14    void SetActive(bool isActive);
 15    void Cancel();
 16    void Publish();
 17    void SetPublishButtonActive(bool isActive);
 18    void SetPublicationScreenshot(Texture2D screenshotTexture);
 19    string GetSceneName();
 20    string GetSceneDescription();
 21    Texture2D GetSceneScreenshotTexture();
 22    void SetSceneName(string name);
 23    void SetSceneDescription(string desc);
 24}
 25
 26public class LandPublisherView : MonoBehaviour, ILandPublisherView
 27{
 28    public event Action OnCancel;
 29    public event Action OnPublish;
 30    public event Action<string> OnSceneNameChange;
 31
 32    [SerializeField] internal Button cancelButton;
 33    [SerializeField] internal Button publishButton;
 34    [SerializeField] internal TMP_Text publishButtonText;
 35    [SerializeField] internal LimitInputField nameInputField;
 36    [SerializeField] internal LimitInputField descriptionInputField;
 37    [SerializeField] internal Image sceneScreenshot;
 38
 39    private const string VIEW_PATH = "Land/LandPublisherView";
 40
 041    public string currentSceneName => nameInputField.GetValue();
 42
 43    internal static LandPublisherView Create()
 44    {
 945        var view = Instantiate(Resources.Load<GameObject>(VIEW_PATH)).GetComponent<LandPublisherView>();
 946        view.gameObject.name = "_PublicationDetailsView";
 47
 948        return view;
 49    }
 50
 51    private void Awake()
 52    {
 953        cancelButton.onClick.AddListener(Cancel);
 954        publishButton.onClick.AddListener(Publish);
 55
 956        nameInputField.OnEmptyValue += DisableNextButton;
 957        nameInputField.OnLimitReached += DisableNextButton;
 958        nameInputField.OnInputAvailable += EnableNextButton;
 59
 960        descriptionInputField.OnLimitReached += DisableNextButton;
 961        descriptionInputField.OnInputAvailable += EnableNextButton;
 62
 963        gameObject.SetActive(false);
 964    }
 65
 66    private void OnDestroy()
 67    {
 968        cancelButton.onClick.RemoveListener(Cancel);
 969        publishButton.onClick.RemoveListener(Publish);
 70
 971        nameInputField.OnLimitReached -= DisableNextButton;
 972        nameInputField.OnInputAvailable -= EnableNextButton;
 973        nameInputField.OnEmptyValue -= DisableNextButton;
 74
 975        descriptionInputField.OnLimitReached -= DisableNextButton;
 976        descriptionInputField.OnInputAvailable -= EnableNextButton;
 977    }
 78
 79    internal void EnableNextButton()
 80    {
 081        if(nameInputField.IsInputAvailable() && descriptionInputField.IsInputAvailable())
 082            publishButton.interactable = true;
 083    }
 84
 085    internal void DisableNextButton() { publishButton.interactable = false; }
 86
 487    public void SetActive(bool isActive) { gameObject.SetActive(isActive); }
 88
 289    public void Cancel() { OnCancel?.Invoke(); }
 90
 291    public void Publish() { OnPublish?.Invoke(); }
 92
 93    public void SetPublishButtonActive(bool isActive)
 94    {
 295        publishButton.interactable = isActive;
 296        publishButtonText.color = new Color(publishButtonText.color.r, publishButtonText.color.g, publishButtonText.colo
 297    }
 98
 099    public void SetPublicationScreenshot(Texture2D screenshotTexture) { sceneScreenshot.sprite = Sprite.Create(screensho
 100
 0101    public string GetSceneName() { return nameInputField.GetValue(); }
 102
 0103    public string GetSceneDescription() { return descriptionInputField.GetValue(); }
 104
 1105    public Texture2D GetSceneScreenshotTexture() { return sceneScreenshot.sprite.texture; }
 106
 0107    public void SetSceneName(string name) { nameInputField.SetText(name); }
 108
 0109    public void SetSceneDescription(string desc) { descriptionInputField.SetText(desc); }
 110}