From a36f51a1272cb6170484061ba6fec30149019f37 Mon Sep 17 00:00:00 2001 From: Yipeng Cao Date: Thu, 27 Apr 2017 18:29:25 -0700 Subject: [PATCH] Fixed the hasCarrierFrequency flag in GnssStatus(part 2) Bug: 37757180 Fixes: 37757180 Test: cts-tradefed run cts -m CtsLocationTestCases --test android.location.cts.GnssStatusTest Change-Id: I817931ee2c19d0a770c4d7cedfbd69bc85db6978 Chang-Id: Icf4240ccad7ff367d96001973c0be36308ffd9b3 --- gnss/1.0/default/Gnss.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/gnss/1.0/default/Gnss.cpp b/gnss/1.0/default/Gnss.cpp index afb659c668..cfcee243bb 100644 --- a/gnss/1.0/default/Gnss.cpp +++ b/gnss/1.0/default/Gnss.cpp @@ -129,16 +129,19 @@ void Gnss::gnssSvStatusCb(GnssSvStatus* status) { auto svInfo = status->gnss_sv_list[i]; IGnssCallback::GnssSvInfo gnssSvInfo = { .svid = svInfo.svid, - .constellation = static_cast( - svInfo.constellation), + .constellation = static_cast< + android::hardware::gnss::V1_0::GnssConstellationType>( + svInfo.constellation), .cN0Dbhz = svInfo.c_n0_dbhz, .elevationDegrees = svInfo.elevation, .azimuthDegrees = svInfo.azimuth, - .svFlag = svInfo.flags, - // Older chipsets do not provide carrier frequency, hence HAS_CARRIER_FREQUENCY flag - // is not set and the carrierFrequencyHz field is set to zero - .carrierFrequencyHz = 0 - }; + // Older chipsets do not provide carrier frequency, hence + // HAS_CARRIER_FREQUENCY flag and the carrierFrequencyHz fields + // are not set. So we are resetting both fields here. + .svFlag = static_cast( + svInfo.flags &= ~(static_cast( + IGnssCallback::GnssSvFlags::HAS_CARRIER_FREQUENCY))), + .carrierFrequencyHz = 0}; svStatus.gnssSvList[i] = gnssSvInfo; }