< Summary

Class:DCL.IdleChecker
Assembly:IdleChecker
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/IdleChecker/IdleChecker.cs
Covered lines:27
Uncovered lines:6
Coverable lines:33
Total lines:81
Line coverage:81.8% (27 of 33)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
IdleChecker(...)0%110100%
Subscribe(...)0%2100%
Unsubscribe(...)0%2100%
Initialize()0%330100%
SetMaxTime(...)0%110100%
GetMaxTime()0%2100%
Update()0%5.515072.73%
SetIdleState(...)0%220100%
IdleCheck()0%110100%
isIdle()0%110100%
Dispose()0%220100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/IdleChecker/IdleChecker.cs

#LineLine coverage
 1using System;
 2using UnityEngine;
 3
 4namespace DCL
 5{
 6    public class IdleChecker : IIdleChecker
 7    {
 4948        Vector3 lastMouseCoordinate = Vector3.zero;
 4949        private int maxTime = 60;
 10        private float lastActivityTime = 0.0f;
 11        private bool idle = false;
 12        private IUpdateEventHandler updateEventHandler;
 13        public event IIdleChecker.ChangeStatus OnChangeStatus;
 14
 015        public void Subscribe(IIdleChecker.ChangeStatus callback) { OnChangeStatus += callback; }
 16
 017        public void Unsubscribe(IIdleChecker.ChangeStatus callback) { OnChangeStatus -= callback; }
 18
 49419        public IdleChecker (IUpdateEventHandler eventHandler = null)
 20        {
 49421            this.updateEventHandler = eventHandler;
 49422        }
 23
 24        public void Initialize()
 25        {
 49426            lastActivityTime = Time.time;
 27
 49428            if (this.updateEventHandler == null)
 49429                this.updateEventHandler = DCL.Environment.i.platform.updateEventHandler;
 30
 49431            updateEventHandler?.AddListener(IUpdateEventHandler.EventType.Update, Update);
 49332        }
 33
 234        public void SetMaxTime(int time) { maxTime = time; }
 35
 036        public int GetMaxTime() { return maxTime; }
 37
 38        public void Update()
 39        {
 3074440            Vector3 mouseDelta = Input.mousePosition - lastMouseCoordinate;
 41
 3074442            bool mouseMoved = mouseDelta.sqrMagnitude > 0.0001f;
 43
 3074444            if (Input.anyKey || mouseMoved)
 45            {
 046                lastActivityTime = Time.time;
 47            }
 48
 3074449            lastMouseCoordinate = Input.mousePosition;
 50
 3074451            if (idle)
 52            {
 053                if (!IdleCheck())
 054                    SetIdleState(false);
 55            }
 56            else
 57            {
 3074458                if (IdleCheck())
 159                    SetIdleState(true);
 60            }
 3074461        }
 62
 63        private void SetIdleState(bool status)
 64        {
 165            idle = status;
 66
 167            OnChangeStatus?.Invoke(idle);
 68
 169            DCL.Interface.WebInterface.ReportIdleStateChanged(idle);
 170        }
 71
 3074472        private bool IdleCheck() { return Time.time - lastActivityTime > maxTime; }
 73
 429874        public bool isIdle() { return idle; }
 75
 76        public void Dispose()
 77        {
 49378            updateEventHandler?.RemoveListener(IUpdateEventHandler.EventType.Update, Update);
 49379        }
 80    }
 81}