Commit 625bf951 authored by DonLakeFlyer's avatar DonLakeFlyer

Fix position updates on Android

parent 48c896bb
......@@ -32,6 +32,7 @@ void QGCPositionManager::setToolbox(QGCToolbox *toolbox)
if(!_defaultSource) {
//-- Otherwise, create a default one
_defaultSource = QGeoPositionInfoSource::createDefaultSource(this);
qDebug() << _defaultSource;
}
_simulatedSource = new SimulatedPosition();
......@@ -43,7 +44,7 @@ void QGCPositionManager::setToolbox(QGCToolbox *toolbox)
setPositionSource(QGCPositionSource::GPS);
}
void QGCPositionManager::positionUpdated(const QGeoPositionInfo &update)
void QGCPositionManager::_positionUpdated(const QGeoPositionInfo &update)
{
emit lastPositionUpdated(update.isValid(), QVariant::fromValue(update.coordinate()));
emit positionInfoUpdated(update);
......@@ -58,7 +59,7 @@ void QGCPositionManager::setPositionSource(QGCPositionManager::QGCPositionSource
{
if (_currentSource != nullptr) {
_currentSource->stopUpdates();
disconnect(_currentSource, SIGNAL(positionUpdated(QGeoPositionInfo)), this, SLOT(positionUpdated(QGeoPositionInfo)));
disconnect(_currentSource);
}
switch(source) {
......@@ -77,8 +78,19 @@ void QGCPositionManager::setPositionSource(QGCPositionManager::QGCPositionSource
_updateInterval = _currentSource->minimumUpdateInterval();
_currentSource->setPreferredPositioningMethods(QGeoPositionInfoSource::SatellitePositioningMethods);
_currentSource->setUpdateInterval(_updateInterval);
connect(_currentSource, SIGNAL(positionUpdated(QGeoPositionInfo)), this, SLOT(positionUpdated(QGeoPositionInfo)));
connect(_currentSource, &QGeoPositionInfoSource::positionUpdated, this, &QGCPositionManager::_positionUpdated);
connect(_currentSource, &QGeoPositionInfoSource::updateTimeout, this, &QGCPositionManager::_updateTimeout);
connect(_currentSource, SIGNAL(error(QGeoPositionInfoSource::Error)), this, SLOT(_error(QGeoPositionInfoSource::Error)));
_currentSource->startUpdates();
}
}
void QGCPositionManager::_error(QGeoPositionInfoSource::Error positioningError)
{
qWarning() << "QGCPositionManager error" << positioningError;
}
void QGCPositionManager::_updateTimeout(void)
{
qWarning() << "QGCPositionManager updateTimeout";
}
......@@ -9,7 +9,7 @@
#pragma once
#include <QtPositioning/qgeopositioninfosource.h>
#include <QGeoPositionInfoSource>
#include <QVariant>
......@@ -37,7 +37,9 @@ public:
void setToolbox(QGCToolbox* toolbox);
private slots:
void positionUpdated(const QGeoPositionInfo &update);
void _positionUpdated(const QGeoPositionInfo &update);
void _error(QGeoPositionInfoSource::Error positioningError);
void _updateTimeout(void);
signals:
void lastPositionUpdated(bool valid, QVariant lastPosition);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment