Loading services/core/jni/com_android_server_location_GnssLocationProvider.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -675,7 +675,8 @@ static jboolean android_location_gnss_hal_GnssNative_start_measurement_collectio options.enableCorrVecOutputs = enableCorrVecOutputs; options.intervalMs = intervalMs; return gnssMeasurementIface->setCallback(std::make_unique<gnss::GnssMeasurementCallback>(), return gnssMeasurementIface->setCallback(std::make_unique<gnss::GnssMeasurementCallback>( gnssMeasurementIface->getInterfaceVersion()), options); } Loading services/core/jni/gnss/Gnss.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -196,7 +196,8 @@ void GnssHal::linkToDeath() { jboolean GnssHal::setCallback() { if (gnssHalAidl != nullptr) { sp<IGnssCallbackAidl> gnssCbIfaceAidl = new GnssCallbackAidl(); sp<IGnssCallbackAidl> gnssCbIfaceAidl = new GnssCallbackAidl(gnssHalAidl->getInterfaceVersion()); auto status = gnssHalAidl->setCallback(gnssCbIfaceAidl); if (!checkAidlStatus(status, "IGnssAidl setCallback() failed.")) { return JNI_FALSE; Loading services/core/jni/gnss/GnssCallback.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -120,7 +120,7 @@ void Gnss_class_init_once(JNIEnv* env, jclass& clazz) { Status GnssCallbackAidl::gnssSetCapabilitiesCb(const int capabilities) { ALOGD("%s: %du\n", __func__, capabilities); bool isAdrCapabilityKnown = (getInterfaceVersion() >= 3) ? true : false; bool isAdrCapabilityKnown = (interfaceVersion >= 3) ? true : false; JNIEnv* env = getJniEnv(); env->CallVoidMethod(mCallbacksObj, method_setTopHalCapabilities, capabilities, isAdrCapabilityKnown); Loading Loading @@ -178,7 +178,7 @@ Status GnssCallbackAidl::gnssLocationCb(const hardware::gnss::GnssLocation& loca Status GnssCallbackAidl::gnssNmeaCb(const int64_t timestamp, const std::string& nmea) { // In AIDL v1, if no listener is registered, do not report nmea to the framework. if (getInterfaceVersion() <= 1) { if (interfaceVersion <= 1) { if (!isNmeaRegistered) { return Status::ok(); } Loading services/core/jni/gnss/GnssCallback.h +4 −0 Original line number Diff line number Diff line Loading @@ -60,6 +60,7 @@ void Gnss_class_init_once(JNIEnv* env, jclass& clazz); */ class GnssCallbackAidl : public hardware::gnss::BnGnssCallback { public: GnssCallbackAidl(int version) : interfaceVersion(version){}; binder::Status gnssSetCapabilitiesCb(const int capabilities) override; binder::Status gnssSetSignalTypeCapabilitiesCb( const std::vector<android::hardware::gnss::GnssSignalType>& signalTypes) override; Loading @@ -73,6 +74,9 @@ public: binder::Status gnssRequestTimeCb() override; binder::Status gnssRequestLocationCb(const bool independentFromGnss, const bool isUserEmergency) override; private: const int interfaceVersion; }; /* Loading services/core/jni/gnss/GnssMeasurement.h +7 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ public: const std::unique_ptr<GnssMeasurementCallback>& callback, const android::hardware::gnss::IGnssMeasurementInterface::Options& options) = 0; virtual jboolean close() = 0; virtual int getInterfaceVersion() = 0; }; class GnssMeasurement : public GnssMeasurementInterface { Loading @@ -50,6 +51,9 @@ public: const std::unique_ptr<GnssMeasurementCallback>& callback, const android::hardware::gnss::IGnssMeasurementInterface::Options& options) override; jboolean close() override; int getInterfaceVersion() override { return mIGnssMeasurement->getInterfaceVersion(); } private: const sp<android::hardware::gnss::IGnssMeasurementInterface> mIGnssMeasurement; Loading @@ -63,6 +67,9 @@ public: const std::unique_ptr<GnssMeasurementCallback>& callback, const android::hardware::gnss::IGnssMeasurementInterface::Options& options) override; jboolean close() override; int getInterfaceVersion() override { return 0; } private: const sp<android::hardware::gnss::V1_0::IGnssMeasurement> mIGnssMeasurement_V1_0; Loading Loading
services/core/jni/com_android_server_location_GnssLocationProvider.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -675,7 +675,8 @@ static jboolean android_location_gnss_hal_GnssNative_start_measurement_collectio options.enableCorrVecOutputs = enableCorrVecOutputs; options.intervalMs = intervalMs; return gnssMeasurementIface->setCallback(std::make_unique<gnss::GnssMeasurementCallback>(), return gnssMeasurementIface->setCallback(std::make_unique<gnss::GnssMeasurementCallback>( gnssMeasurementIface->getInterfaceVersion()), options); } Loading
services/core/jni/gnss/Gnss.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -196,7 +196,8 @@ void GnssHal::linkToDeath() { jboolean GnssHal::setCallback() { if (gnssHalAidl != nullptr) { sp<IGnssCallbackAidl> gnssCbIfaceAidl = new GnssCallbackAidl(); sp<IGnssCallbackAidl> gnssCbIfaceAidl = new GnssCallbackAidl(gnssHalAidl->getInterfaceVersion()); auto status = gnssHalAidl->setCallback(gnssCbIfaceAidl); if (!checkAidlStatus(status, "IGnssAidl setCallback() failed.")) { return JNI_FALSE; Loading
services/core/jni/gnss/GnssCallback.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -120,7 +120,7 @@ void Gnss_class_init_once(JNIEnv* env, jclass& clazz) { Status GnssCallbackAidl::gnssSetCapabilitiesCb(const int capabilities) { ALOGD("%s: %du\n", __func__, capabilities); bool isAdrCapabilityKnown = (getInterfaceVersion() >= 3) ? true : false; bool isAdrCapabilityKnown = (interfaceVersion >= 3) ? true : false; JNIEnv* env = getJniEnv(); env->CallVoidMethod(mCallbacksObj, method_setTopHalCapabilities, capabilities, isAdrCapabilityKnown); Loading Loading @@ -178,7 +178,7 @@ Status GnssCallbackAidl::gnssLocationCb(const hardware::gnss::GnssLocation& loca Status GnssCallbackAidl::gnssNmeaCb(const int64_t timestamp, const std::string& nmea) { // In AIDL v1, if no listener is registered, do not report nmea to the framework. if (getInterfaceVersion() <= 1) { if (interfaceVersion <= 1) { if (!isNmeaRegistered) { return Status::ok(); } Loading
services/core/jni/gnss/GnssCallback.h +4 −0 Original line number Diff line number Diff line Loading @@ -60,6 +60,7 @@ void Gnss_class_init_once(JNIEnv* env, jclass& clazz); */ class GnssCallbackAidl : public hardware::gnss::BnGnssCallback { public: GnssCallbackAidl(int version) : interfaceVersion(version){}; binder::Status gnssSetCapabilitiesCb(const int capabilities) override; binder::Status gnssSetSignalTypeCapabilitiesCb( const std::vector<android::hardware::gnss::GnssSignalType>& signalTypes) override; Loading @@ -73,6 +74,9 @@ public: binder::Status gnssRequestTimeCb() override; binder::Status gnssRequestLocationCb(const bool independentFromGnss, const bool isUserEmergency) override; private: const int interfaceVersion; }; /* Loading
services/core/jni/gnss/GnssMeasurement.h +7 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ public: const std::unique_ptr<GnssMeasurementCallback>& callback, const android::hardware::gnss::IGnssMeasurementInterface::Options& options) = 0; virtual jboolean close() = 0; virtual int getInterfaceVersion() = 0; }; class GnssMeasurement : public GnssMeasurementInterface { Loading @@ -50,6 +51,9 @@ public: const std::unique_ptr<GnssMeasurementCallback>& callback, const android::hardware::gnss::IGnssMeasurementInterface::Options& options) override; jboolean close() override; int getInterfaceVersion() override { return mIGnssMeasurement->getInterfaceVersion(); } private: const sp<android::hardware::gnss::IGnssMeasurementInterface> mIGnssMeasurement; Loading @@ -63,6 +67,9 @@ public: const std::unique_ptr<GnssMeasurementCallback>& callback, const android::hardware::gnss::IGnssMeasurementInterface::Options& options) override; jboolean close() override; int getInterfaceVersion() override { return 0; } private: const sp<android::hardware::gnss::V1_0::IGnssMeasurement> mIGnssMeasurement_V1_0; Loading