Fix GnssMeasurement JNI for 1.1

Passing the GnssMeasurement JavaObject as reference
Harmonizing variable name styles for 1.0 vs. 1.1

Change-Id: Ia28c159cbda91f89e7387bcf3c404c41375e6be8
Fixes: 74021441
Test: Runs on device, and works with GnssLogger
(cherry picked from commit 7155f8a9f61a68c3a33a72893d01f64f0d890bd8)
diff --git a/services/core/jni/com_android_server_location_GnssLocationProvider.cpp b/services/core/jni/com_android_server_location_GnssLocationProvider.cpp
index 0a1da57..cf42c0c 100644
--- a/services/core/jni/com_android_server_location_GnssLocationProvider.cpp
+++ b/services/core/jni/com_android_server_location_GnssLocationProvider.cpp
@@ -81,13 +81,9 @@
 using android::hardware::Void;
 using android::hardware::hidl_vec;
 using android::hardware::hidl_death_recipient;
-using android::hidl::base::V1_0::IBase;
 using android::hardware::gnss::V1_0::GnssLocation;
 using android::hardware::gnss::V1_0::GnssLocationFlags;
-using IGnss_V1_1 = android::hardware::gnss::V1_1::IGnss;
-using IGnssMeasurement_V1_0 = android::hardware::gnss::V1_0::IGnssMeasurement;
-using IGnssMeasurement_V1_1 = android::hardware::gnss::V1_1::IGnssMeasurement;
-using android::hardware::gnss::V1_0::IGnss;
+
 using android::hardware::gnss::V1_0::IAGnss;
 using android::hardware::gnss::V1_0::IAGnssCallback;
 using android::hardware::gnss::V1_0::IAGnssCallback;
@@ -99,7 +95,6 @@
 using android::hardware::gnss::V1_0::IGnssDebug;
 using android::hardware::gnss::V1_0::IGnssGeofenceCallback;
 using android::hardware::gnss::V1_0::IGnssGeofencing;
-using IGnssMeasurementCallback_V1_0 = android::hardware::gnss::V1_0::IGnssMeasurementCallback;
 using android::hardware::gnss::V1_0::IGnssNavigationMessage;
 using android::hardware::gnss::V1_0::IGnssNavigationMessageCallback;
 using android::hardware::gnss::V1_0::IGnssNi;
@@ -108,7 +103,16 @@
 using android::hardware::gnss::V1_0::IGnssXtraCallback;
 
 using android::hardware::gnss::V1_1::IGnssCallback;
-using android::hardware::gnss::V1_1::IGnssMeasurementCallback;
+
+using android::hidl::base::V1_0::IBase;
+
+using IGnss_V1_0 = android::hardware::gnss::V1_0::IGnss;
+using IGnss_V1_1 = android::hardware::gnss::V1_1::IGnss;
+using IGnssMeasurement_V1_0 = android::hardware::gnss::V1_0::IGnssMeasurement;
+using IGnssMeasurement_V1_1 = android::hardware::gnss::V1_1::IGnssMeasurement;
+using IGnssMeasurementCallback_V1_0 = android::hardware::gnss::V1_0::IGnssMeasurementCallback;
+using IGnssMeasurementCallback_V1_1 = android::hardware::gnss::V1_1::IGnssMeasurementCallback;
+
 
 struct GnssDeathRecipient : virtual public hidl_death_recipient
 {
@@ -122,7 +126,7 @@
 };
 
 sp<GnssDeathRecipient> gnssHalDeathRecipient = nullptr;
-sp<IGnss> gnssHal = nullptr;
+sp<IGnss_V1_0> gnssHal = nullptr;
 sp<IGnss_V1_1> gnssHal_V1_1 = nullptr;
 sp<IGnssXtra> gnssXtraIface = nullptr;
 sp<IAGnssRil> agnssRilIface = nullptr;
@@ -732,32 +736,33 @@
  * GnssMeasurementCallback implements the callback methods required for the
  * GnssMeasurement interface.
  */
-struct GnssMeasurementCallback : public IGnssMeasurementCallback {
-    Return<void> gnssMeasurementCb(const IGnssMeasurementCallback::GnssData& data) override;
+struct GnssMeasurementCallback : public IGnssMeasurementCallback_V1_1 {
+    Return<void> gnssMeasurementCb(const IGnssMeasurementCallback_V1_1::GnssData& data) override;
     Return<void> GnssMeasurementCb(const IGnssMeasurementCallback_V1_0::GnssData& data) override;
  private:
     void translateGnssMeasurement_V1_0(
             JNIEnv* env, const IGnssMeasurementCallback_V1_0::GnssMeasurement* measurement,
-            JavaObject object);
+            JavaObject& object);
     jobjectArray translateGnssMeasurements(
             JNIEnv* env,
-            const IGnssMeasurementCallback::GnssMeasurement* measurements,
+            const IGnssMeasurementCallback_V1_1::GnssMeasurement* measurements_v1_1,
             const IGnssMeasurementCallback_V1_0::GnssMeasurement* measurements_v1_0,
             size_t count);
     jobject translateGnssClock(
-            JNIEnv* env, const IGnssMeasurementCallback::GnssClock* clock);
+            JNIEnv* env, const IGnssMeasurementCallback_V1_0::GnssClock* clock);
     void setMeasurementData(JNIEnv* env, jobject clock, jobjectArray measurementArray);
 };
 
 
 Return<void> GnssMeasurementCallback::gnssMeasurementCb(
-        const IGnssMeasurementCallback::GnssData& data) {
+        const IGnssMeasurementCallback_V1_1::GnssData& data) {
     JNIEnv* env = getJniEnv();
 
     jobject clock;
     jobjectArray measurementArray;
 
     clock = translateGnssClock(env, &data.clock);
+
     measurementArray = translateGnssMeasurements(
         env, data.measurements.data(), NULL, data.measurements.size());
     setMeasurementData(env, clock, measurementArray);
@@ -787,7 +792,7 @@
 // preallocate object as: JavaObject object(env, "android/location/GnssMeasurement");
 void GnssMeasurementCallback::translateGnssMeasurement_V1_0(
         JNIEnv* env, const IGnssMeasurementCallback_V1_0::GnssMeasurement* measurement,
-        JavaObject object) {
+        JavaObject& object) {
     uint32_t flags = static_cast<uint32_t>(measurement->flags);
 
     SET(Svid, static_cast<int32_t>(measurement->svid));
@@ -826,7 +831,7 @@
 }
 
 jobject GnssMeasurementCallback::translateGnssClock(
-       JNIEnv* env, const IGnssMeasurementCallback::GnssClock* clock) {
+       JNIEnv* env, const IGnssMeasurementCallback_V1_0::GnssClock* clock) {
     JavaObject object(env, "android/location/GnssClock");
 
     uint32_t flags = static_cast<uint32_t>(clock->gnssClockFlags);
@@ -865,7 +870,7 @@
 }
 
 jobjectArray GnssMeasurementCallback::translateGnssMeasurements(JNIEnv* env,
-         const IGnssMeasurementCallback::GnssMeasurement* measurements,
+         const IGnssMeasurementCallback_V1_1::GnssMeasurement* measurements_v1_1,
          const IGnssMeasurementCallback_V1_0::GnssMeasurement* measurements_v1_0,
          size_t count) {
     if (count == 0) {
@@ -880,12 +885,12 @@
 
     for (uint16_t i = 0; i < count; ++i) {
         JavaObject object(env, "android/location/GnssMeasurement");
-        if (measurements != NULL) {
-            translateGnssMeasurement_V1_0(env, &(measurements[i].v1_0), object);
+        if (measurements_v1_1 != NULL) {
+            translateGnssMeasurement_V1_0(env, &(measurements_v1_1[i].v1_0), object);
 
             // Set the V1_1 flag
             SET(AccumulatedDeltaRangeState,
-                    static_cast<int32_t>(measurements[i].accumulatedDeltaRangeState));
+                    static_cast<int32_t>(measurements_v1_1[i].accumulatedDeltaRangeState));
         } else {
             translateGnssMeasurement_V1_0(env, &(measurements_v1_0[i]), object);
         }
@@ -1169,7 +1174,7 @@
     gnssHal_V1_1 = IGnss_V1_1::getService();
     if (gnssHal_V1_1 == nullptr) {
         ALOGD("gnssHal 1.1 was null, trying 1.0");
-        gnssHal = IGnss::getService();
+        gnssHal = IGnss_V1_0::getService();
     } else {
         gnssHal = gnssHal_V1_1;
     }
@@ -1367,18 +1372,18 @@
         jint preferred_time, jboolean low_power_mode) {
     Return<bool> result = false;
     if (gnssHal_V1_1 != nullptr) {
-         result = gnssHal_V1_1->setPositionMode_1_1(static_cast<IGnss::GnssPositionMode>(mode),
-                                                             static_cast<IGnss::GnssPositionRecurrence>(recurrence),
-                                                             min_interval,
-                                                             preferred_accuracy,
-                                                             preferred_time,
-                                                             low_power_mode);
+         result = gnssHal_V1_1->setPositionMode_1_1(static_cast<IGnss_V1_0::GnssPositionMode>(mode),
+                 static_cast<IGnss_V1_0::GnssPositionRecurrence>(recurrence),
+                 min_interval,
+                 preferred_accuracy,
+                 preferred_time,
+                 low_power_mode);
      } else if (gnssHal != nullptr) {
-         result = gnssHal->setPositionMode(static_cast<IGnss::GnssPositionMode>(mode),
-                                                                      static_cast<IGnss::GnssPositionRecurrence>(recurrence),
-                                                                      min_interval,
-                                                                      preferred_accuracy,
-                                                                      preferred_time);
+         result = gnssHal->setPositionMode(static_cast<IGnss_V1_0::GnssPositionMode>(mode),
+                 static_cast<IGnss_V1_0::GnssPositionRecurrence>(recurrence),
+                 min_interval,
+                 preferred_accuracy,
+                 preferred_time);
     }
     if (!result.isOk()) {
        ALOGE("%s: GNSS setPositionMode failed\n", __func__);
@@ -1417,7 +1422,7 @@
                                                                     jobject /* obj */,
                                                                     jint flags) {
     if (gnssHal != nullptr) {
-        auto result = gnssHal->deleteAidingData(static_cast<IGnss::GnssAidingData>(flags));
+        auto result = gnssHal->deleteAidingData(static_cast<IGnss_V1_0::GnssAidingData>(flags));
         if (!result.isOk()) {
             ALOGE("Error in deleting aiding data");
         }