< Summary

Class:DCLFeatures.ScreencaptureCamera.UI.ScreencaptureCameraHUDController
Assembly:ScreencaptureCamera
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLServices/ScreencaptureCamera/UI/Scripts/ScreencaptureCameraHUDController.cs
Covered lines:0
Uncovered lines:55
Coverable lines:55
Total lines:125
Line coverage:0% (0 of 55)
Covered branches:0
Total branches:0
Covered methods:0
Total methods:13
Method coverage:0% (0 of 13)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
ScreencaptureCameraHUDController(...)0%2100%
Initialize()0%2100%
Dispose()0%2100%
ToggleViewVisibility(...)0%12300%
SetVisibility(...)0%6200%
HideShortcutsInfoPanel(...)0%2100%
PlayScreenshotFX(...)0%2100%
CaptureScreenshot(...)0%2100%
CaptureScreenshot()0%2100%
DisableScreenshotCameraMode()0%2100%
DisableScreenshotCameraMode(...)0%2100%
OpenCameraReelGallery()0%2100%
OpenCameraReelGallery(...)0%6200%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLServices/ScreencaptureCamera/UI/Scripts/ScreencaptureCameraHUDController.cs

#LineLine coverage
 1using DCL;
 2using DCLFeatures.ScreencaptureCamera.CameraObject;
 3using System;
 4using UnityEngine;
 5using Object = UnityEngine.Object;
 6
 7namespace DCLFeatures.ScreencaptureCamera.UI
 8{
 9    public class ScreencaptureCameraHUDController : IDisposable
 10    {
 11        private readonly ScreencaptureCameraHUDView view;
 12        private readonly ScreencaptureCameraBehaviour screencaptureCameraBehaviour;
 13        private readonly DataStore dataStore;
 14        private readonly HUDController hudController;
 15
 16        private InputAction_Trigger takeScreenshotAction;
 17        private InputAction_Trigger closeWindowAction;
 18        private InputAction_Hold mouseFirstClick;
 19        private InputAction_Trigger toggleScreenshotCameraHUDAction;
 20
 021        public ScreencaptureCameraHUDController(ScreencaptureCameraHUDView view, ScreencaptureCameraBehaviour screencapt
 22            DataStore dataStore, HUDController hudController)
 23        {
 024            this.view = view;
 025            this.screencaptureCameraBehaviour = screencaptureCameraBehaviour;
 026            this.dataStore = dataStore;
 027            this.hudController = hudController;
 028        }
 29
 30        public void Initialize()
 31        {
 032            takeScreenshotAction = Resources.Load<InputAction_Trigger>("TakeScreenshot");
 033            closeWindowAction = Resources.Load<InputAction_Trigger>("CloseWindow");
 034            mouseFirstClick = Resources.Load<InputAction_Hold>("MouseFirstClickDown");
 035            toggleScreenshotCameraHUDAction = Resources.Load<InputAction_Trigger>("ToggleScreenshotCameraHUD");
 36
 037            view.CloseButtonClicked += DisableScreenshotCameraMode;
 038            closeWindowAction.OnTriggered += DisableScreenshotCameraMode;
 39
 040            view.TakeScreenshotButtonClicked += CaptureScreenshot;
 041            takeScreenshotAction.OnTriggered += CaptureScreenshot;
 42
 043            view.CameraReelButtonClicked += OpenCameraReelGallery;
 044            view.ShortcutsInfoButtonClicked += view.ToggleShortcutsInfosHelpPanel;
 45
 046            mouseFirstClick.OnStarted += HideShortcutsInfoPanel;
 47
 048            toggleScreenshotCameraHUDAction.OnTriggered += ToggleViewVisibility;
 049        }
 50
 51        public void Dispose()
 52        {
 053            view.CloseButtonClicked -= DisableScreenshotCameraMode;
 054            closeWindowAction.OnTriggered -= DisableScreenshotCameraMode;
 55
 056            view.TakeScreenshotButtonClicked -= CaptureScreenshot;
 057            takeScreenshotAction.OnTriggered -= CaptureScreenshot;
 58
 059            view.CameraReelButtonClicked -= OpenCameraReelGallery;
 60
 061            view.ShortcutsInfoButtonClicked -= view.ToggleShortcutsInfosHelpPanel;
 062            toggleScreenshotCameraHUDAction.OnTriggered -= ToggleViewVisibility;
 63
 064            Object.Destroy(view.gameObject);
 065        }
 66
 67        private void ToggleViewVisibility(DCLAction_Trigger _)
 68        {
 069            if (!screencaptureCameraBehaviour.isScreencaptureCameraActive.Get()) return;
 70
 071            SetVisibility(!view.IsVisible, screencaptureCameraBehaviour.HasStorageSpace);
 72
 073            if (view.IsVisible)
 074                AudioScriptableObjects.UIShow.Play();
 75            else
 076                AudioScriptableObjects.UIHide.Play();
 77
 078            hudController.ToggleAllUIHiddenNotification(isHidden: !view.IsVisible, false);
 079        }
 80
 81        public void SetVisibility(bool isVisible, bool hasStorageSpace)
 82        {
 83            // Hide AllUIHidden notification when entering camera mode
 084            if (isVisible)
 085                hudController.ToggleAllUIHiddenNotification(isHidden: false, false);
 86
 087            view.SetVisibility(isVisible, hasStorageSpace);
 088        }
 89
 90        private void HideShortcutsInfoPanel(DCLAction_Hold _)
 91        {
 092            view.ToggleShortcutsInfosHelpPanel();
 093            mouseFirstClick.OnStarted -= HideShortcutsInfoPanel;
 094        }
 95
 96        public void PlayScreenshotFX(Texture2D image, float splashDuration, float middlePauseDuration, float transitionD
 97        {
 098            AudioScriptableObjects.takeScreenshot.Play();
 099            view.ScreenshotCaptureAnimation(image, splashDuration, middlePauseDuration, transitionDuration);
 0100        }
 101
 102        private void CaptureScreenshot(DCLAction_Trigger _) =>
 0103            screencaptureCameraBehaviour.CaptureScreenshot("Shortcut");
 104
 105        private void CaptureScreenshot() =>
 0106            screencaptureCameraBehaviour.CaptureScreenshot("Button");
 107
 108        private void DisableScreenshotCameraMode() =>
 0109            screencaptureCameraBehaviour.ToggleScreenshotCamera(isEnabled: false);
 110
 111        private void DisableScreenshotCameraMode(DCLAction_Trigger _) =>
 0112            DisableScreenshotCameraMode();
 113
 114        private void OpenCameraReelGallery() =>
 0115            OpenCameraReelGallery("Camera");
 116
 117        private void OpenCameraReelGallery(string source)
 118        {
 0119            if (!view.IsVisible) return;
 0120            DisableScreenshotCameraMode();
 0121            dataStore.HUDs.cameraReelOpenSource.Set(source);
 0122            dataStore.HUDs.cameraReelSectionVisible.Set(true);
 0123        }
 124    }
 125}