Report Locations to AFW only when active tracking
We want to avoid reporting locations to AFW while measurements is active but tracking is not active. Change-Id: Icbb581199e6f5eba3cfe81cb6ab39337bb7ea51a CRs-fixed: 2441384
This commit is contained in:
parent
51426e477b
commit
4c9b600ed7
2 changed files with 20 additions and 1 deletions
|
@ -61,6 +61,7 @@ GnssAPIClient::GnssAPIClient(const sp<V1_0::IGnssCallback>& gpsCb,
|
||||||
mControlClient(new LocationAPIControlClient()),
|
mControlClient(new LocationAPIControlClient()),
|
||||||
mLocationCapabilitiesMask(0),
|
mLocationCapabilitiesMask(0),
|
||||||
mLocationCapabilitiesCached(false),
|
mLocationCapabilitiesCached(false),
|
||||||
|
mTracking(false),
|
||||||
mGnssCbIface_2_0(nullptr)
|
mGnssCbIface_2_0(nullptr)
|
||||||
{
|
{
|
||||||
LOC_LOGD("%s]: (%p %p)", __FUNCTION__, &gpsCb, &niCb);
|
LOC_LOGD("%s]: (%p %p)", __FUNCTION__, &gpsCb, &niCb);
|
||||||
|
@ -76,6 +77,7 @@ GnssAPIClient::GnssAPIClient(const sp<V2_0::IGnssCallback>& gpsCb) :
|
||||||
mControlClient(new LocationAPIControlClient()),
|
mControlClient(new LocationAPIControlClient()),
|
||||||
mLocationCapabilitiesMask(0),
|
mLocationCapabilitiesMask(0),
|
||||||
mLocationCapabilitiesCached(false),
|
mLocationCapabilitiesCached(false),
|
||||||
|
mTracking(false),
|
||||||
mGnssCbIface_2_0(nullptr)
|
mGnssCbIface_2_0(nullptr)
|
||||||
{
|
{
|
||||||
LOC_LOGD("%s]: (%p)", __FUNCTION__, &gpsCb);
|
LOC_LOGD("%s]: (%p)", __FUNCTION__, &gpsCb);
|
||||||
|
@ -179,6 +181,11 @@ void GnssAPIClient::gnssUpdateCallbacks_2_0(const sp<V2_0::IGnssCallback>& gpsCb
|
||||||
bool GnssAPIClient::gnssStart()
|
bool GnssAPIClient::gnssStart()
|
||||||
{
|
{
|
||||||
LOC_LOGD("%s]: ()", __FUNCTION__);
|
LOC_LOGD("%s]: ()", __FUNCTION__);
|
||||||
|
|
||||||
|
mMutex.lock();
|
||||||
|
mTracking = true;
|
||||||
|
mMutex.unlock();
|
||||||
|
|
||||||
bool retVal = true;
|
bool retVal = true;
|
||||||
locAPIStartTracking(mTrackingOptions);
|
locAPIStartTracking(mTrackingOptions);
|
||||||
return retVal;
|
return retVal;
|
||||||
|
@ -187,6 +194,11 @@ bool GnssAPIClient::gnssStart()
|
||||||
bool GnssAPIClient::gnssStop()
|
bool GnssAPIClient::gnssStop()
|
||||||
{
|
{
|
||||||
LOC_LOGD("%s]: ()", __FUNCTION__);
|
LOC_LOGD("%s]: ()", __FUNCTION__);
|
||||||
|
|
||||||
|
mMutex.lock();
|
||||||
|
mTracking = false;
|
||||||
|
mMutex.unlock();
|
||||||
|
|
||||||
bool retVal = true;
|
bool retVal = true;
|
||||||
locAPIStopTracking();
|
locAPIStopTracking();
|
||||||
return retVal;
|
return retVal;
|
||||||
|
@ -412,12 +424,18 @@ void GnssAPIClient::onCapabilitiesCb(LocationCapabilitiesMask capabilitiesMask)
|
||||||
|
|
||||||
void GnssAPIClient::onTrackingCb(Location location)
|
void GnssAPIClient::onTrackingCb(Location location)
|
||||||
{
|
{
|
||||||
LOC_LOGD("%s]: (flags: %02x)", __FUNCTION__, location.flags);
|
|
||||||
mMutex.lock();
|
mMutex.lock();
|
||||||
auto gnssCbIface(mGnssCbIface);
|
auto gnssCbIface(mGnssCbIface);
|
||||||
auto gnssCbIface_2_0(mGnssCbIface_2_0);
|
auto gnssCbIface_2_0(mGnssCbIface_2_0);
|
||||||
|
bool isTracking = mTracking;
|
||||||
mMutex.unlock();
|
mMutex.unlock();
|
||||||
|
|
||||||
|
LOC_LOGD("%s]: (flags: %02x isTracking: %d)", __FUNCTION__, location.flags, isTracking);
|
||||||
|
|
||||||
|
if (!isTracking) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (gnssCbIface_2_0 != nullptr) {
|
if (gnssCbIface_2_0 != nullptr) {
|
||||||
V2_0::GnssLocation gnssLocation;
|
V2_0::GnssLocation gnssLocation;
|
||||||
convertGnssLocation(location, gnssLocation);
|
convertGnssLocation(location, gnssLocation);
|
||||||
|
|
|
@ -102,6 +102,7 @@ private:
|
||||||
LocationCapabilitiesMask mLocationCapabilitiesMask;
|
LocationCapabilitiesMask mLocationCapabilitiesMask;
|
||||||
bool mLocationCapabilitiesCached;
|
bool mLocationCapabilitiesCached;
|
||||||
TrackingOptions mTrackingOptions;
|
TrackingOptions mTrackingOptions;
|
||||||
|
bool mTracking;
|
||||||
sp<V2_0::IGnssCallback> mGnssCbIface_2_0;
|
sp<V2_0::IGnssCallback> mGnssCbIface_2_0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue