Merge "SatellitePvt API council review" into sc-dev
This commit is contained in:
@@ -5007,7 +5007,6 @@ package android.location {
|
|||||||
public final class SatellitePvt implements android.os.Parcelable {
|
public final class SatellitePvt implements android.os.Parcelable {
|
||||||
method public int describeContents();
|
method public int describeContents();
|
||||||
method @Nullable public android.location.SatellitePvt.ClockInfo getClockInfo();
|
method @Nullable public android.location.SatellitePvt.ClockInfo getClockInfo();
|
||||||
method public int getFlags();
|
|
||||||
method @FloatRange public double getIonoDelayMeters();
|
method @FloatRange public double getIonoDelayMeters();
|
||||||
method @Nullable public android.location.SatellitePvt.PositionEcef getPositionEcef();
|
method @Nullable public android.location.SatellitePvt.PositionEcef getPositionEcef();
|
||||||
method @FloatRange public double getTropoDelayMeters();
|
method @FloatRange public double getTropoDelayMeters();
|
||||||
@@ -5023,10 +5022,9 @@ package android.location {
|
|||||||
ctor public SatellitePvt.Builder();
|
ctor public SatellitePvt.Builder();
|
||||||
method @NonNull public android.location.SatellitePvt build();
|
method @NonNull public android.location.SatellitePvt build();
|
||||||
method @NonNull public android.location.SatellitePvt.Builder setClockInfo(@NonNull android.location.SatellitePvt.ClockInfo);
|
method @NonNull public android.location.SatellitePvt.Builder setClockInfo(@NonNull android.location.SatellitePvt.ClockInfo);
|
||||||
method @NonNull public android.location.SatellitePvt.Builder setFlags(int);
|
method @NonNull public android.location.SatellitePvt.Builder setIonoDelayMeters(@FloatRange(from=0.0f, to=100.0f) double);
|
||||||
method @NonNull public android.location.SatellitePvt.Builder setIonoDelayMeters(@FloatRange double);
|
|
||||||
method @NonNull public android.location.SatellitePvt.Builder setPositionEcef(@NonNull android.location.SatellitePvt.PositionEcef);
|
method @NonNull public android.location.SatellitePvt.Builder setPositionEcef(@NonNull android.location.SatellitePvt.PositionEcef);
|
||||||
method @NonNull public android.location.SatellitePvt.Builder setTropoDelayMeters(@FloatRange double);
|
method @NonNull public android.location.SatellitePvt.Builder setTropoDelayMeters(@FloatRange(from=0.0f, to=100.0f) double);
|
||||||
method @NonNull public android.location.SatellitePvt.Builder setVelocityEcef(@NonNull android.location.SatellitePvt.VelocityEcef);
|
method @NonNull public android.location.SatellitePvt.Builder setVelocityEcef(@NonNull android.location.SatellitePvt.VelocityEcef);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -398,13 +398,6 @@ public final class SatellitePvt implements Parcelable {
|
|||||||
mTropoDelayMeters = tropoDelayMeters;
|
mTropoDelayMeters = tropoDelayMeters;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets a bitmask of fields present in this object
|
|
||||||
*/
|
|
||||||
public int getFlags() {
|
|
||||||
return mFlags;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a {@link PositionEcef} object that contains estimates of the satellite
|
* Returns a {@link PositionEcef} object that contains estimates of the satellite
|
||||||
* position fields in ECEF coordinate frame.
|
* position fields in ECEF coordinate frame.
|
||||||
@@ -535,18 +528,6 @@ public final class SatellitePvt implements Parcelable {
|
|||||||
private double mIonoDelayMeters;
|
private double mIonoDelayMeters;
|
||||||
private double mTropoDelayMeters;
|
private double mTropoDelayMeters;
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets a bitmask of fields present in this object
|
|
||||||
*
|
|
||||||
* @param flags int flags
|
|
||||||
* @return Builder builder object
|
|
||||||
*/
|
|
||||||
@NonNull
|
|
||||||
public Builder setFlags(int flags) {
|
|
||||||
mFlags = flags;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set position ECEF.
|
* Set position ECEF.
|
||||||
*
|
*
|
||||||
@@ -557,6 +538,7 @@ public final class SatellitePvt implements Parcelable {
|
|||||||
public Builder setPositionEcef(
|
public Builder setPositionEcef(
|
||||||
@NonNull PositionEcef positionEcef) {
|
@NonNull PositionEcef positionEcef) {
|
||||||
mPositionEcef = positionEcef;
|
mPositionEcef = positionEcef;
|
||||||
|
updateFlags();
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -570,6 +552,7 @@ public final class SatellitePvt implements Parcelable {
|
|||||||
public Builder setVelocityEcef(
|
public Builder setVelocityEcef(
|
||||||
@NonNull VelocityEcef velocityEcef) {
|
@NonNull VelocityEcef velocityEcef) {
|
||||||
mVelocityEcef = velocityEcef;
|
mVelocityEcef = velocityEcef;
|
||||||
|
updateFlags();
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -583,9 +566,16 @@ public final class SatellitePvt implements Parcelable {
|
|||||||
public Builder setClockInfo(
|
public Builder setClockInfo(
|
||||||
@NonNull ClockInfo clockInfo) {
|
@NonNull ClockInfo clockInfo) {
|
||||||
mClockInfo = clockInfo;
|
mClockInfo = clockInfo;
|
||||||
|
updateFlags();
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void updateFlags() {
|
||||||
|
if (mPositionEcef != null && mVelocityEcef != null && mClockInfo != null) {
|
||||||
|
mFlags = (byte) (mFlags | HAS_POSITION_VELOCITY_CLOCK_INFO);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set ionospheric delay in meters.
|
* Set ionospheric delay in meters.
|
||||||
*
|
*
|
||||||
@@ -593,8 +583,10 @@ public final class SatellitePvt implements Parcelable {
|
|||||||
* @return Builder builder object
|
* @return Builder builder object
|
||||||
*/
|
*/
|
||||||
@NonNull
|
@NonNull
|
||||||
public Builder setIonoDelayMeters(@FloatRange() double ionoDelayMeters) {
|
public Builder setIonoDelayMeters(
|
||||||
|
@FloatRange(from = 0.0f, to = 100.0f) double ionoDelayMeters) {
|
||||||
mIonoDelayMeters = ionoDelayMeters;
|
mIonoDelayMeters = ionoDelayMeters;
|
||||||
|
mFlags = (byte) (mFlags | HAS_IONO);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -605,8 +597,10 @@ public final class SatellitePvt implements Parcelable {
|
|||||||
* @return Builder builder object
|
* @return Builder builder object
|
||||||
*/
|
*/
|
||||||
@NonNull
|
@NonNull
|
||||||
public Builder setTropoDelayMeters(@FloatRange() double tropoDelayMeters) {
|
public Builder setTropoDelayMeters(
|
||||||
|
@FloatRange(from = 0.0f, to = 100.0f) double tropoDelayMeters) {
|
||||||
mTropoDelayMeters = tropoDelayMeters;
|
mTropoDelayMeters = tropoDelayMeters;
|
||||||
|
mFlags = (byte) (mFlags | HAS_TROPO);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -54,7 +54,6 @@ jmethodID method_gnssMeasurementCtor;
|
|||||||
jmethodID method_reportMeasurementData;
|
jmethodID method_reportMeasurementData;
|
||||||
jmethodID method_satellitePvtBuilderBuild;
|
jmethodID method_satellitePvtBuilderBuild;
|
||||||
jmethodID method_satellitePvtBuilderCtor;
|
jmethodID method_satellitePvtBuilderCtor;
|
||||||
jmethodID method_satellitePvtBuilderSetFlags;
|
|
||||||
jmethodID method_satellitePvtBuilderSetPositionEcef;
|
jmethodID method_satellitePvtBuilderSetPositionEcef;
|
||||||
jmethodID method_satellitePvtBuilderSetVelocityEcef;
|
jmethodID method_satellitePvtBuilderSetVelocityEcef;
|
||||||
jmethodID method_satellitePvtBuilderSetClockInfo;
|
jmethodID method_satellitePvtBuilderSetClockInfo;
|
||||||
@@ -90,9 +89,6 @@ void GnssMeasurement_class_init_once(JNIEnv* env, jclass& clazz) {
|
|||||||
jclass satellitePvtBuilder = env->FindClass("android/location/SatellitePvt$Builder");
|
jclass satellitePvtBuilder = env->FindClass("android/location/SatellitePvt$Builder");
|
||||||
class_satellitePvtBuilder = (jclass)env->NewGlobalRef(satellitePvtBuilder);
|
class_satellitePvtBuilder = (jclass)env->NewGlobalRef(satellitePvtBuilder);
|
||||||
method_satellitePvtBuilderCtor = env->GetMethodID(class_satellitePvtBuilder, "<init>", "()V");
|
method_satellitePvtBuilderCtor = env->GetMethodID(class_satellitePvtBuilder, "<init>", "()V");
|
||||||
method_satellitePvtBuilderSetFlags =
|
|
||||||
env->GetMethodID(class_satellitePvtBuilder, "setFlags",
|
|
||||||
"(I)Landroid/location/SatellitePvt$Builder;");
|
|
||||||
method_satellitePvtBuilderSetPositionEcef =
|
method_satellitePvtBuilderSetPositionEcef =
|
||||||
env->GetMethodID(class_satellitePvtBuilder, "setPositionEcef",
|
env->GetMethodID(class_satellitePvtBuilder, "setPositionEcef",
|
||||||
"(Landroid/location/SatellitePvt$PositionEcef;)"
|
"(Landroid/location/SatellitePvt$PositionEcef;)"
|
||||||
@@ -321,6 +317,8 @@ void GnssMeasurementCallbackAidl::translateSingleGnssMeasurement(JNIEnv* env,
|
|||||||
jobject positionEcef = nullptr;
|
jobject positionEcef = nullptr;
|
||||||
jobject velocityEcef = nullptr;
|
jobject velocityEcef = nullptr;
|
||||||
jobject clockInfo = nullptr;
|
jobject clockInfo = nullptr;
|
||||||
|
jobject satellitePvtBuilderObject =
|
||||||
|
env->NewObject(class_satellitePvtBuilder, method_satellitePvtBuilderCtor);
|
||||||
|
|
||||||
if (satFlags & SatellitePvt::HAS_POSITION_VELOCITY_CLOCK_INFO) {
|
if (satFlags & SatellitePvt::HAS_POSITION_VELOCITY_CLOCK_INFO) {
|
||||||
positionEcef = env->NewObject(class_positionEcef, method_positionEcef,
|
positionEcef = env->NewObject(class_positionEcef, method_positionEcef,
|
||||||
@@ -337,31 +335,30 @@ void GnssMeasurementCallbackAidl::translateSingleGnssMeasurement(JNIEnv* env,
|
|||||||
satellitePvt.satClockInfo.satHardwareCodeBiasMeters,
|
satellitePvt.satClockInfo.satHardwareCodeBiasMeters,
|
||||||
satellitePvt.satClockInfo.satTimeCorrectionMeters,
|
satellitePvt.satClockInfo.satTimeCorrectionMeters,
|
||||||
satellitePvt.satClockInfo.satClkDriftMps);
|
satellitePvt.satClockInfo.satClkDriftMps);
|
||||||
|
env->CallObjectMethod(satellitePvtBuilderObject,
|
||||||
|
method_satellitePvtBuilderSetPositionEcef, positionEcef);
|
||||||
|
env->CallObjectMethod(satellitePvtBuilderObject,
|
||||||
|
method_satellitePvtBuilderSetVelocityEcef, velocityEcef);
|
||||||
|
env->CallObjectMethod(satellitePvtBuilderObject, method_satellitePvtBuilderSetClockInfo,
|
||||||
|
clockInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
jobject satellitePvtBuilderObject =
|
if (satFlags & SatellitePvt::HAS_IONO) {
|
||||||
env->NewObject(class_satellitePvtBuilder, method_satellitePvtBuilderCtor);
|
env->CallObjectMethod(satellitePvtBuilderObject,
|
||||||
|
method_satellitePvtBuilderSetIonoDelayMeters,
|
||||||
|
satellitePvt.ionoDelayMeters);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (satFlags & SatellitePvt::HAS_TROPO) {
|
||||||
|
env->CallObjectMethod(satellitePvtBuilderObject,
|
||||||
|
method_satellitePvtBuilderSetTropoDelayMeters,
|
||||||
|
satellitePvt.tropoDelayMeters);
|
||||||
|
}
|
||||||
|
|
||||||
env->CallObjectMethod(satellitePvtBuilderObject, method_satellitePvtBuilderSetFlags,
|
|
||||||
satellitePvt.flags);
|
|
||||||
env->CallObjectMethod(satellitePvtBuilderObject, method_satellitePvtBuilderSetPositionEcef,
|
|
||||||
positionEcef);
|
|
||||||
env->CallObjectMethod(satellitePvtBuilderObject, method_satellitePvtBuilderSetVelocityEcef,
|
|
||||||
velocityEcef);
|
|
||||||
env->CallObjectMethod(satellitePvtBuilderObject, method_satellitePvtBuilderSetClockInfo,
|
|
||||||
clockInfo);
|
|
||||||
env->CallObjectMethod(satellitePvtBuilderObject,
|
|
||||||
method_satellitePvtBuilderSetIonoDelayMeters,
|
|
||||||
satellitePvt.ionoDelayMeters);
|
|
||||||
env->CallObjectMethod(satellitePvtBuilderObject,
|
|
||||||
method_satellitePvtBuilderSetTropoDelayMeters,
|
|
||||||
satellitePvt.tropoDelayMeters);
|
|
||||||
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,
|
||||||
satellitePvtObject);
|
satellitePvtObject);
|
||||||
|
|
||||||
env->DeleteLocalRef(positionEcef);
|
env->DeleteLocalRef(positionEcef);
|
||||||
env->DeleteLocalRef(velocityEcef);
|
env->DeleteLocalRef(velocityEcef);
|
||||||
env->DeleteLocalRef(clockInfo);
|
env->DeleteLocalRef(clockInfo);
|
||||||
|
|||||||
Reference in New Issue
Block a user