| 49 | } |
| 50 | |
| 51 | void OverlaysTracker::FinishTracking() |
| 52 | { |
| 53 | ASSERT_GREATER_OR_EQUAL(m_zoomLevel, kMinZoomLevel, ()); |
| 54 | |
| 55 | for (auto & p : m_data) |
| 56 | { |
| 57 | if (p.second.m_status == OverlayStatus::Visible && !p.second.m_tracked) |
| 58 | { |
| 59 | p.second.m_status = OverlayStatus::InvisibleCandidate; |
| 60 | p.second.m_timestamp = EventClock::now(); |
| 61 | } |
| 62 | else if (p.second.m_status == OverlayStatus::InvisibleCandidate) |
| 63 | { |
| 64 | // Here we add some delay to avoid false events appearance. |
| 65 | static auto const kDelay = std::chrono::milliseconds(500); |
| 66 | if (p.second.m_tracked) |
| 67 | p.second.m_status = OverlayStatus::Visible; |
| 68 | else if (EventClock::now() - p.second.m_timestamp > kDelay) |
| 69 | p.second.m_status = OverlayStatus::Invisible; |
| 70 | } |
| 71 | } |
| 72 | m_zoomLevel = -1; |
| 73 | } |
| 74 | |
| 75 | std::list<OverlayShowEvent> OverlaysTracker::Collect() |
| 76 | { |
no outgoing calls
no test coverage detected