bool BbGuiHelper::nativeEventFilter(const QByteArray &eventType, void *message, long *result) { Q_UNUSED(result); Q_UNUSED(eventType); bps_event_t * const event = static_cast<bps_event_t *>(message); if (event && bps_event_get_domain(event) == navigator_get_domain()) { const int code = bps_event_get_code(event); if (code == NAVIGATOR_ORIENTATION) { const int newOrientation = navigator_event_get_orientation_angle(event); if (newOrientation != m_currentOrientation) { m_currentOrientation = newOrientation; emit orientationChanged(); } } else if (code == NAVIGATOR_WINDOW_STATE) { const bool appActive = (navigator_event_get_window_state(event) == NAVIGATOR_WINDOW_FULLSCREEN); if (m_applicationActive != appActive) { m_applicationActive = appActive; emit applicationActiveChanged(); } } } return false; }
void TrackRecorder::setApplicationActive(bool active) { if(m_applicationActive == active) { return; // No change } m_applicationActive = active; if(m_posSrc) { // If we have positioning if(m_applicationActive && !m_tracking) { // Application became active without tracking m_posSrc->startUpdates(); } if(!m_applicationActive && !m_tracking) { // Application went to background without tracking m_posSrc->stopUpdates(); } } emit applicationActiveChanged(); }
void BbGuiHelper::handleBpsEvent(bps_event_t *event) { if (event && bps_event_get_domain(event) == navigator_get_domain()) { const int code = bps_event_get_code(event); if (code == NAVIGATOR_ORIENTATION) { const int newOrientation = navigator_event_get_orientation_angle(event); if (newOrientation != m_currentOrientation) { m_currentOrientation = newOrientation; emit orientationChanged(); } } else if (code == NAVIGATOR_WINDOW_STATE) { const bool appActive = (navigator_event_get_window_state(event) == NAVIGATOR_WINDOW_FULLSCREEN); if (m_applicationActive != appActive) { m_applicationActive = appActive; emit applicationActiveChanged(); } } } }