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
diff --git a/gnss/1.0/default/Gnss.cpp b/gnss/1.0/default/Gnss.cpp
index afb659c..cfcee24 100644
--- a/gnss/1.0/default/Gnss.cpp
+++ b/gnss/1.0/default/Gnss.cpp
@@ -129,16 +129,19 @@
         auto svInfo = status->gnss_sv_list[i];
         IGnssCallback::GnssSvInfo gnssSvInfo = {
             .svid = svInfo.svid,
-            .constellation = static_cast<android::hardware::gnss::V1_0::GnssConstellationType>(
-                    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<uint8_t>(
+                svInfo.flags &= ~(static_cast<uint8_t>(
+                    IGnssCallback::GnssSvFlags::HAS_CARRIER_FREQUENCY))),
+            .carrierFrequencyHz = 0};
         svStatus.gnssSvList[i] = gnssSvInfo;
     }