Merge "Pipe SatellitePvt fields in JNI" into tm-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
01508633c3
@@ -730,8 +730,7 @@ static jboolean android_location_gnss_hal_GnssNative_start_measurement_collectio
|
|||||||
options.enableCorrVecOutputs = enableCorrVecOutputs;
|
options.enableCorrVecOutputs = enableCorrVecOutputs;
|
||||||
options.intervalMs = intervalMs;
|
options.intervalMs = intervalMs;
|
||||||
|
|
||||||
return gnssMeasurementIface->setCallback(std::make_unique<gnss::GnssMeasurementCallback>(
|
return gnssMeasurementIface->setCallback(std::make_unique<gnss::GnssMeasurementCallback>(),
|
||||||
mCallbacksObj),
|
|
||||||
options);
|
options);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -73,6 +73,11 @@ jmethodID method_satellitePvtBuilderSetVelocityEcef;
|
|||||||
jmethodID method_satellitePvtBuilderSetClockInfo;
|
jmethodID method_satellitePvtBuilderSetClockInfo;
|
||||||
jmethodID method_satellitePvtBuilderSetIonoDelayMeters;
|
jmethodID method_satellitePvtBuilderSetIonoDelayMeters;
|
||||||
jmethodID method_satellitePvtBuilderSetTropoDelayMeters;
|
jmethodID method_satellitePvtBuilderSetTropoDelayMeters;
|
||||||
|
jmethodID method_satellitePvtBuilderSetTimeOfClock;
|
||||||
|
jmethodID method_satellitePvtBuilderSetTimeOfEphemeris;
|
||||||
|
jmethodID method_satellitePvtBuilderSetIssueOfDataClock;
|
||||||
|
jmethodID method_satellitePvtBuilderSetIssueOfDataEphemeris;
|
||||||
|
jmethodID method_satellitePvtBuilderSetEphemerisSource;
|
||||||
jmethodID method_positionEcef;
|
jmethodID method_positionEcef;
|
||||||
jmethodID method_velocityEcef;
|
jmethodID method_velocityEcef;
|
||||||
jmethodID method_clockInfo;
|
jmethodID method_clockInfo;
|
||||||
@@ -166,6 +171,21 @@ void GnssMeasurement_class_init_once(JNIEnv* env, jclass& clazz) {
|
|||||||
method_satellitePvtBuilderSetTropoDelayMeters =
|
method_satellitePvtBuilderSetTropoDelayMeters =
|
||||||
env->GetMethodID(class_satellitePvtBuilder, "setTropoDelayMeters",
|
env->GetMethodID(class_satellitePvtBuilder, "setTropoDelayMeters",
|
||||||
"(D)Landroid/location/SatellitePvt$Builder;");
|
"(D)Landroid/location/SatellitePvt$Builder;");
|
||||||
|
method_satellitePvtBuilderSetTimeOfClock =
|
||||||
|
env->GetMethodID(class_satellitePvtBuilder, "setTimeOfClockSeconds",
|
||||||
|
"(J)Landroid/location/SatellitePvt$Builder;");
|
||||||
|
method_satellitePvtBuilderSetTimeOfEphemeris =
|
||||||
|
env->GetMethodID(class_satellitePvtBuilder, "setTimeOfEphemerisSeconds",
|
||||||
|
"(J)Landroid/location/SatellitePvt$Builder;");
|
||||||
|
method_satellitePvtBuilderSetIssueOfDataClock =
|
||||||
|
env->GetMethodID(class_satellitePvtBuilder, "setIssueOfDataClock",
|
||||||
|
"(I)Landroid/location/SatellitePvt$Builder;");
|
||||||
|
method_satellitePvtBuilderSetIssueOfDataEphemeris =
|
||||||
|
env->GetMethodID(class_satellitePvtBuilder, "setIssueOfDataEphemeris",
|
||||||
|
"(I)Landroid/location/SatellitePvt$Builder;");
|
||||||
|
method_satellitePvtBuilderSetEphemerisSource =
|
||||||
|
env->GetMethodID(class_satellitePvtBuilder, "setEphemerisSource",
|
||||||
|
"(I)Landroid/location/SatellitePvt$Builder;");
|
||||||
method_satellitePvtBuilderBuild = env->GetMethodID(class_satellitePvtBuilder, "build",
|
method_satellitePvtBuilderBuild = env->GetMethodID(class_satellitePvtBuilder, "build",
|
||||||
"()Landroid/location/SatellitePvt;");
|
"()Landroid/location/SatellitePvt;");
|
||||||
|
|
||||||
@@ -429,6 +449,24 @@ void GnssMeasurementCallbackAidl::translateSingleGnssMeasurement(JNIEnv* env,
|
|||||||
satellitePvt.tropoDelayMeters);
|
satellitePvt.tropoDelayMeters);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this->getInterfaceVersion() >= 2) {
|
||||||
|
callObjectMethodIgnoringResult(env, satellitePvtBuilderObject,
|
||||||
|
method_satellitePvtBuilderSetTimeOfClock,
|
||||||
|
satellitePvt.timeOfClockSeconds);
|
||||||
|
callObjectMethodIgnoringResult(env, satellitePvtBuilderObject,
|
||||||
|
method_satellitePvtBuilderSetTimeOfEphemeris,
|
||||||
|
satellitePvt.timeOfEphemerisSeconds);
|
||||||
|
callObjectMethodIgnoringResult(env, satellitePvtBuilderObject,
|
||||||
|
method_satellitePvtBuilderSetIssueOfDataClock,
|
||||||
|
satellitePvt.issueOfDataClock);
|
||||||
|
callObjectMethodIgnoringResult(env, satellitePvtBuilderObject,
|
||||||
|
method_satellitePvtBuilderSetIssueOfDataEphemeris,
|
||||||
|
satellitePvt.issueOfDataEphemeris);
|
||||||
|
callObjectMethodIgnoringResult(env, satellitePvtBuilderObject,
|
||||||
|
method_satellitePvtBuilderSetEphemerisSource,
|
||||||
|
static_cast<int>(satellitePvt.ephemerisSource));
|
||||||
|
}
|
||||||
|
|
||||||
jobject satellitePvtObject =
|
jobject satellitePvtObject =
|
||||||
env->CallObjectMethod(satellitePvtBuilderObject, method_satellitePvtBuilderBuild);
|
env->CallObjectMethod(satellitePvtBuilderObject, method_satellitePvtBuilderBuild);
|
||||||
env->CallVoidMethod(object.get(), method_gnssMeasurementsSetSatellitePvt,
|
env->CallVoidMethod(object.get(), method_gnssMeasurementsSetSatellitePvt,
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ void setMeasurementData(JNIEnv* env, jobject& callbacksObj, jobject clock,
|
|||||||
|
|
||||||
class GnssMeasurementCallbackAidl : public hardware::gnss::BnGnssMeasurementCallback {
|
class GnssMeasurementCallbackAidl : public hardware::gnss::BnGnssMeasurementCallback {
|
||||||
public:
|
public:
|
||||||
GnssMeasurementCallbackAidl(jobject& callbacksObj) : mCallbacksObj(callbacksObj) {}
|
GnssMeasurementCallbackAidl() : mCallbacksObj(getCallbacksObj()) {}
|
||||||
android::binder::Status gnssMeasurementCb(const hardware::gnss::GnssData& data) override;
|
android::binder::Status gnssMeasurementCb(const hardware::gnss::GnssData& data) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@@ -78,7 +78,7 @@ private:
|
|||||||
*/
|
*/
|
||||||
class GnssMeasurementCallbackHidl : public hardware::gnss::V2_1::IGnssMeasurementCallback {
|
class GnssMeasurementCallbackHidl : public hardware::gnss::V2_1::IGnssMeasurementCallback {
|
||||||
public:
|
public:
|
||||||
GnssMeasurementCallbackHidl(jobject& callbacksObj) : mCallbacksObj(callbacksObj) {}
|
GnssMeasurementCallbackHidl() : mCallbacksObj(getCallbacksObj()) {}
|
||||||
hardware::Return<void> gnssMeasurementCb_2_1(
|
hardware::Return<void> gnssMeasurementCb_2_1(
|
||||||
const hardware::gnss::V2_1::IGnssMeasurementCallback::GnssData& data) override;
|
const hardware::gnss::V2_1::IGnssMeasurementCallback::GnssData& data) override;
|
||||||
hardware::Return<void> gnssMeasurementCb_2_0(
|
hardware::Return<void> gnssMeasurementCb_2_0(
|
||||||
@@ -109,23 +109,22 @@ private:
|
|||||||
|
|
||||||
class GnssMeasurementCallback {
|
class GnssMeasurementCallback {
|
||||||
public:
|
public:
|
||||||
GnssMeasurementCallback(jobject& callbacksObj) : mCallbacksObj(callbacksObj) {}
|
GnssMeasurementCallback() {}
|
||||||
sp<GnssMeasurementCallbackAidl> getAidl() {
|
sp<GnssMeasurementCallbackAidl> getAidl() {
|
||||||
if (callbackAidl == nullptr) {
|
if (callbackAidl == nullptr) {
|
||||||
callbackAidl = sp<GnssMeasurementCallbackAidl>::make(mCallbacksObj);
|
callbackAidl = sp<GnssMeasurementCallbackAidl>::make();
|
||||||
}
|
}
|
||||||
return callbackAidl;
|
return callbackAidl;
|
||||||
}
|
}
|
||||||
|
|
||||||
sp<GnssMeasurementCallbackHidl> getHidl() {
|
sp<GnssMeasurementCallbackHidl> getHidl() {
|
||||||
if (callbackHidl == nullptr) {
|
if (callbackHidl == nullptr) {
|
||||||
callbackHidl = sp<GnssMeasurementCallbackHidl>::make(mCallbacksObj);
|
callbackHidl = sp<GnssMeasurementCallbackHidl>::make();
|
||||||
}
|
}
|
||||||
return callbackHidl;
|
return callbackHidl;
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
jobject& mCallbacksObj;
|
|
||||||
sp<GnssMeasurementCallbackAidl> callbackAidl;
|
sp<GnssMeasurementCallbackAidl> callbackAidl;
|
||||||
sp<GnssMeasurementCallbackHidl> callbackHidl;
|
sp<GnssMeasurementCallbackHidl> callbackHidl;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user