< Summary

Class:DCL.NavmapView
Assembly:Navmap
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/NavMap/NavmapView.cs
Covered lines:20
Uncovered lines:12
Coverable lines:32
Total lines:105
Line coverage:62.5% (20 of 32)
Covered branches:0
Total branches:0
Covered methods:7
Total methods:9
Method coverage:77.7% (7 of 9)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
NavmapView()0%110100%
Start()0%110100%
OnEnable()0%110100%
OnFeatureFlagsChanged(...)0%2100%
OnDisable()0%110100%
OnDestroy()0%110100%
ConfigureMapInFullscreenMenuChanged(...)0%7.933018.18%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/NavMap/NavmapView.cs

#LineLine coverage
 1using Cysharp.Threading.Tasks;
 2using DCL.Browser;
 3using DCL.Map;
 4using DCL.Tasks;
 5using DCLServices.PlacesAPIService;
 6using System.Threading;
 7using UnityEngine;
 8
 9namespace DCL
 10{
 11    public class NavmapView : MonoBehaviour
 12    {
 13        [SerializeField] internal NavmapSearchComponentView searchView;
 14        [SerializeField] internal NavmapFilterComponentView filterView;
 15        [SerializeField] internal GameObject placeCardModalParent;
 16
 17        [Space]
 18        [SerializeField] internal NavmapToastView toastView;
 19        [SerializeField] private NavMapLocationControlsView locationControlsView;
 20        [SerializeField] private NavmapZoomView zoomView;
 21        [SerializeField] private NavMapChunksLayersView chunksLayersView;
 22
 23        [Space]
 24        [SerializeField] private NavmapRendererConfiguration navmapRendererConfiguration;
 25
 26        private IPlaceCardComponentView placeCardModal;
 27
 28        internal NavmapVisibilityBehaviour navmapVisibilityBehaviour;
 29
 30        private RectTransform rectTransform;
 231        private CancellationTokenSource updateSceneNameCancellationToken = new ();
 32
 033        private RectTransform RectTransform => rectTransform ??= transform as RectTransform;
 334        private BaseVariable<Transform> configureMapInFullscreenMenu => DataStore.i.exploreV2.configureMapInFullscreenMe
 35        private NavmapFilterComponentController navmapFilterComponentController;
 36
 37        private void Start()
 38        {
 139            placeCardModal = placeCardModalParent.GetComponent<IPlaceCardComponentView>();
 40
 141            var exploreV2Analytics = new ExploreV2Analytics.ExploreV2Analytics();
 42
 143            navmapVisibilityBehaviour = new NavmapVisibilityBehaviour(
 44                DataStore.i.featureFlags.flags,
 45                DataStore.i.HUDs.navmapVisible,
 46                zoomView,
 47                toastView,
 48                searchView,
 49                locationControlsView,
 50                chunksLayersView,
 51                navmapRendererConfiguration,
 52                Environment.i.platform.serviceLocator.Get<IPlacesAPIService>(),
 53                new PlacesAnalytics(),
 54                placeCardModal,
 55                exploreV2Analytics,
 56                new WebInterfaceBrowserBridge());
 157            navmapFilterComponentController = new NavmapFilterComponentController(filterView, new WebInterfaceBrowserBri
 58
 159            ConfigureMapInFullscreenMenuChanged(configureMapInFullscreenMenu.Get(), null);
 160            DataStore.i.HUDs.isNavMapInitialized.Set(true);
 161        }
 62
 63        private void OnEnable()
 64        {
 165            configureMapInFullscreenMenu.OnChange += ConfigureMapInFullscreenMenuChanged;
 166            updateSceneNameCancellationToken = updateSceneNameCancellationToken.SafeRestart();
 67
 68            //Needed due to script execution order
 169            DataStore.i.featureFlags.flags.OnChange += OnFeatureFlagsChanged;
 170        }
 71
 72        private void OnFeatureFlagsChanged(FeatureFlag current, FeatureFlag previous)
 73        {
 74            //TODO Remove: Temporary to allow PR merging
 075            searchView.gameObject.SetActive(DataStore.i.featureFlags.flags.Get().IsFeatureEnabled("navmap_header"));
 076        }
 77
 78        private void OnDisable()
 79        {
 180            configureMapInFullscreenMenu.OnChange -= ConfigureMapInFullscreenMenuChanged;
 181            DataStore.i.featureFlags.flags.OnChange -= OnFeatureFlagsChanged;
 182        }
 83
 84        private void OnDestroy()
 85        {
 186            navmapVisibilityBehaviour.Dispose();
 187        }
 88
 89        private void ConfigureMapInFullscreenMenuChanged(Transform currentParentTransform, Transform _)
 90        {
 191            if (currentParentTransform == null || transform.parent == currentParentTransform)
 192                return;
 93
 094            transform.SetParent(currentParentTransform);
 095            transform.localScale = Vector3.one;
 96
 097            RectTransform.anchorMin = Vector2.zero;
 098            RectTransform.anchorMax = Vector2.one;
 099            RectTransform.pivot = new Vector2(0.5f, 0.5f);
 0100            RectTransform.localPosition = Vector2.zero;
 0101            RectTransform.offsetMax = Vector2.zero;
 0102            RectTransform.offsetMin = Vector2.zero;
 0103        }
 104    }
 105}