diff options
author | Vyacheslav Koscheev <vok1980@gmail.com> | 2016-07-19 18:01:42 +0600 |
---|---|---|
committer | Vyacheslav Koscheev <vok1980@gmail.com> | 2016-09-30 09:07:49 +0000 |
commit | 26b2f917861e63091cf97a5acba04d7b813c2fed (patch) | |
tree | 6fee9e6d8a300bf410e3e4f9515e818c205e0e4d /src | |
parent | 8cb45ab8aabaf0246c49e3314e4a84456ff7b061 (diff) | |
download | qtlocation-26b2f917861e63091cf97a5acba04d7b813c2fed.tar.gz |
Fix error status for QGeoPositionInfoSourceAndroid
Task-number: QTBUG-54844
Change-Id: I8abdbb47c883099e7749c57e5010be1aa999e373
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/position/android/src/qgeopositioninfosource_android.cpp | 33 | ||||
-rw-r--r-- | src/plugins/position/android/src/qgeopositioninfosource_android_p.h | 1 |
2 files changed, 19 insertions, 15 deletions
diff --git a/src/plugins/position/android/src/qgeopositioninfosource_android.cpp b/src/plugins/position/android/src/qgeopositioninfosource_android.cpp index e3ef94cd..1035a7db 100644 --- a/src/plugins/position/android/src/qgeopositioninfosource_android.cpp +++ b/src/plugins/position/android/src/qgeopositioninfosource_android.cpp @@ -113,26 +113,32 @@ QGeoPositionInfoSource::Error QGeoPositionInfoSourceAndroid::error() const return m_error; } +void QGeoPositionInfoSourceAndroid::setError(Error error) +{ + // qDebug() << "setError: " << error; + if (error != QGeoPositionInfoSource::NoError) + { + m_error = error; + emit QGeoPositionInfoSource::error(m_error); + } +} + void QGeoPositionInfoSourceAndroid::startUpdates() { if (updatesRunning) return; if (preferredPositioningMethods() == 0) { - m_error = UnknownSourceError; - emit QGeoPositionInfoSource::error(m_error); - + setError(UnknownSourceError); return; } updatesRunning = true; QGeoPositionInfoSource::Error error = AndroidPositioning::startUpdates(androidClassKeyForUpdate); - //if (error != QGeoPositionInfoSource::NoError) { //TODO - if (error != 3) { + if (error != QGeoPositionInfoSource::NoError) updatesRunning = false; - m_error = error; - emit QGeoPositionInfoSource::error(m_error); - } + + setError(error); } void QGeoPositionInfoSourceAndroid::stopUpdates() @@ -166,12 +172,10 @@ void QGeoPositionInfoSourceAndroid::requestUpdate(int timeout) return; QGeoPositionInfoSource::Error error = AndroidPositioning::requestUpdate(androidClassKeyForSingleRequest); - //if (error != QGeoPositionInfoSource::NoError) { //TODO - if (error != 3) { + if (error != QGeoPositionInfoSource::NoError) m_requestTimer.stop(); - m_error = error; - emit QGeoPositionInfoSource::error(m_error); - } + + setError(error); } void QGeoPositionInfoSourceAndroid::processPositionUpdate(const QGeoPositionInfo &pInfo) @@ -195,8 +199,7 @@ void QGeoPositionInfoSourceAndroid::processSinglePositionUpdate(const QGeoPositi void QGeoPositionInfoSourceAndroid::locationProviderDisabled() { - m_error = QGeoPositionInfoSource::ClosedError; - emit QGeoPositionInfoSource::error(m_error); + setError(QGeoPositionInfoSource::ClosedError); } void QGeoPositionInfoSourceAndroid::requestTimeout() diff --git a/src/plugins/position/android/src/qgeopositioninfosource_android_p.h b/src/plugins/position/android/src/qgeopositioninfosource_android_p.h index cdff1e13..f56c7054 100644 --- a/src/plugins/position/android/src/qgeopositioninfosource_android_p.h +++ b/src/plugins/position/android/src/qgeopositioninfosource_android_p.h @@ -78,6 +78,7 @@ private Q_SLOTS: private: void reconfigureRunningSystem(); + void setError(Error error); bool updatesRunning; int androidClassKeyForUpdate; |