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.intervalMs = intervalMs;
|
||||
|
||||
return gnssMeasurementIface->setCallback(std::make_unique<gnss::GnssMeasurementCallback>(
|
||||
mCallbacksObj),
|
||||
return gnssMeasurementIface->setCallback(std::make_unique<gnss::GnssMeasurementCallback>(),
|
||||
options);
|
||||
}
|
||||
|
||||
|
||||
@@ -73,6 +73,11 @@ jmethodID method_satellitePvtBuilderSetVelocityEcef;
|
||||
jmethodID method_satellitePvtBuilderSetClockInfo;
|
||||
jmethodID method_satellitePvtBuilderSetIonoDelayMeters;
|
||||
jmethodID method_satellitePvtBuilderSetTropoDelayMeters;
|
||||
jmethodID method_satellitePvtBuilderSetTimeOfClock;
|
||||
jmethodID method_satellitePvtBuilderSetTimeOfEphemeris;
|
||||
jmethodID method_satellitePvtBuilderSetIssueOfDataClock;
|
||||
jmethodID method_satellitePvtBuilderSetIssueOfDataEphemeris;
|
||||
jmethodID method_satellitePvtBuilderSetEphemerisSource;
|
||||
jmethodID method_positionEcef;
|
||||
jmethodID method_velocityEcef;
|
||||
jmethodID method_clockInfo;
|
||||
@@ -166,6 +171,21 @@ void GnssMeasurement_class_init_once(JNIEnv* env, jclass& clazz) {
|
||||
method_satellitePvtBuilderSetTropoDelayMeters =
|
||||
env->GetMethodID(class_satellitePvtBuilder, "setTropoDelayMeters",
|
||||
"(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",
|
||||
"()Landroid/location/SatellitePvt;");
|
||||
|
||||
@@ -429,6 +449,24 @@ void GnssMeasurementCallbackAidl::translateSingleGnssMeasurement(JNIEnv* env,
|
||||
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 =
|
||||
env->CallObjectMethod(satellitePvtBuilderObject, method_satellitePvtBuilderBuild);
|
||||
env->CallVoidMethod(object.get(), method_gnssMeasurementsSetSatellitePvt,
|
||||
|
||||
@@ -52,7 +52,7 @@ void setMeasurementData(JNIEnv* env, jobject& callbacksObj, jobject clock,
|
||||
|
||||
class GnssMeasurementCallbackAidl : public hardware::gnss::BnGnssMeasurementCallback {
|
||||
public:
|
||||
GnssMeasurementCallbackAidl(jobject& callbacksObj) : mCallbacksObj(callbacksObj) {}
|
||||
GnssMeasurementCallbackAidl() : mCallbacksObj(getCallbacksObj()) {}
|
||||
android::binder::Status gnssMeasurementCb(const hardware::gnss::GnssData& data) override;
|
||||
|
||||
private:
|
||||
@@ -78,7 +78,7 @@ private:
|
||||
*/
|
||||
class GnssMeasurementCallbackHidl : public hardware::gnss::V2_1::IGnssMeasurementCallback {
|
||||
public:
|
||||
GnssMeasurementCallbackHidl(jobject& callbacksObj) : mCallbacksObj(callbacksObj) {}
|
||||
GnssMeasurementCallbackHidl() : mCallbacksObj(getCallbacksObj()) {}
|
||||
hardware::Return<void> gnssMeasurementCb_2_1(
|
||||
const hardware::gnss::V2_1::IGnssMeasurementCallback::GnssData& data) override;
|
||||
hardware::Return<void> gnssMeasurementCb_2_0(
|
||||
@@ -109,23 +109,22 @@ private:
|
||||
|
||||
class GnssMeasurementCallback {
|
||||
public:
|
||||
GnssMeasurementCallback(jobject& callbacksObj) : mCallbacksObj(callbacksObj) {}
|
||||
GnssMeasurementCallback() {}
|
||||
sp<GnssMeasurementCallbackAidl> getAidl() {
|
||||
if (callbackAidl == nullptr) {
|
||||
callbackAidl = sp<GnssMeasurementCallbackAidl>::make(mCallbacksObj);
|
||||
callbackAidl = sp<GnssMeasurementCallbackAidl>::make();
|
||||
}
|
||||
return callbackAidl;
|
||||
}
|
||||
|
||||
sp<GnssMeasurementCallbackHidl> getHidl() {
|
||||
if (callbackHidl == nullptr) {
|
||||
callbackHidl = sp<GnssMeasurementCallbackHidl>::make(mCallbacksObj);
|
||||
callbackHidl = sp<GnssMeasurementCallbackHidl>::make();
|
||||
}
|
||||
return callbackHidl;
|
||||
}
|
||||
|
||||
private:
|
||||
jobject& mCallbacksObj;
|
||||
sp<GnssMeasurementCallbackAidl> callbackAidl;
|
||||
sp<GnssMeasurementCallbackHidl> callbackHidl;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user