From bf3d36c771eb254f082d1f1bf953b44e75b060c5 Mon Sep 17 00:00:00 2001 From: Bhavna Sharma Date: Fri, 21 Jun 2019 14:32:15 -0700 Subject: [PATCH] Selectively send deleteAll command to engines Modify GNSS interface API's to accept positioning engine mask to perform deleteAll command on CRs-Fixed: 2477966 Change-Id: I54a32d76de98ba6bfa88d7fd1925c44b3079af08 --- android/1.0/location_api/GnssAPIClient.cpp | 1 + android/1.1/location_api/GnssAPIClient.cpp | 1 + gnss/GnssAdapter.cpp | 11 +++++++---- location/LocationDataTypes.h | 1 + 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/android/1.0/location_api/GnssAPIClient.cpp b/android/1.0/location_api/GnssAPIClient.cpp index a36d2b48..b9fe2b25 100644 --- a/android/1.0/location_api/GnssAPIClient.cpp +++ b/android/1.0/location_api/GnssAPIClient.cpp @@ -231,6 +231,7 @@ void GnssAPIClient::gnssDeleteAidingData(IGnss::GnssAidingData aidingDataFlags) GNSS_AIDING_DATA_SV_TYPE_QZSS_BIT | GNSS_AIDING_DATA_SV_TYPE_BEIDOU_BIT | GNSS_AIDING_DATA_SV_TYPE_GALILEO_BIT; + data.posEngineMask = STANDARD_POSITIONING_ENGINE; if (aidingDataFlags == IGnss::GnssAidingData::DELETE_ALL) data.deleteAll = true; diff --git a/android/1.1/location_api/GnssAPIClient.cpp b/android/1.1/location_api/GnssAPIClient.cpp index 89877e5e..9a95fdfe 100644 --- a/android/1.1/location_api/GnssAPIClient.cpp +++ b/android/1.1/location_api/GnssAPIClient.cpp @@ -231,6 +231,7 @@ void GnssAPIClient::gnssDeleteAidingData(IGnss::GnssAidingData aidingDataFlags) GNSS_AIDING_DATA_SV_TYPE_QZSS_BIT | GNSS_AIDING_DATA_SV_TYPE_BEIDOU_BIT | GNSS_AIDING_DATA_SV_TYPE_GALILEO_BIT; + data.posEngineMask = STANDARD_POSITIONING_ENGINE; if (aidingDataFlags == IGnss::GnssAidingData::DELETE_ALL) data.deleteAll = true; diff --git a/gnss/GnssAdapter.cpp b/gnss/GnssAdapter.cpp index 578953d7..c2e4a091 100644 --- a/gnss/GnssAdapter.cpp +++ b/gnss/GnssAdapter.cpp @@ -1816,12 +1816,15 @@ GnssAdapter::gnssDeleteAidingDataCommand(GnssAidingData& data) mSessionId(sessionId), mData(data) {} inline virtual void proc() const { - mAdapter.deleteAidingData(mData, mSessionId); + if ((mData.posEngineMask & STANDARD_POSITIONING_ENGINE) != 0) { + mAdapter.deleteAidingData(mData, mSessionId); - SystemStatus* s = mAdapter.getSystemStatus(); - if ((nullptr != s) && (mData.deleteAll)) { - s->setDefaultGnssEngineStates(); + SystemStatus* s = mAdapter.getSystemStatus(); + if ((nullptr != s) && (mData.deleteAll)) { + s->setDefaultGnssEngineStates(); + } } + mAdapter.mEngHubProxy->gnssDeleteAidingData(mData); } }; diff --git a/location/LocationDataTypes.h b/location/LocationDataTypes.h index 27c5157b..40b1c73f 100644 --- a/location/LocationDataTypes.h +++ b/location/LocationDataTypes.h @@ -707,6 +707,7 @@ typedef struct { bool deleteAll; // if true, delete all aiding data and ignore other params GnssAidingDataSv sv; // SV specific aiding data GnssAidingDataCommon common; // common aiding data + PositioningEngineMask posEngineMask; // engines to perform the delete operation on. } GnssAidingData; typedef uint16_t DrCalibrationStatusMask;