SatellitePvt API council review
Remove getFlags/setFlags, determining the flag in Java side Bug: 188798284 Test: atest CtsLocationPrivilegedTestCases, also try setting different flags in HAL to see if CTS can be passed. Change-Id: I231148b62404ee4873da60546eebb75d83fae9a7
This commit is contained in:
@@ -5003,7 +5003,6 @@ package android.location {
|
||||
public final class SatellitePvt implements android.os.Parcelable {
|
||||
method public int describeContents();
|
||||
method @Nullable public android.location.SatellitePvt.ClockInfo getClockInfo();
|
||||
method public int getFlags();
|
||||
method @FloatRange public double getIonoDelayMeters();
|
||||
method @Nullable public android.location.SatellitePvt.PositionEcef getPositionEcef();
|
||||
method @FloatRange public double getTropoDelayMeters();
|
||||
@@ -5019,10 +5018,9 @@ package android.location {
|
||||
ctor public SatellitePvt.Builder();
|
||||
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 setFlags(int);
|
||||
method @NonNull public android.location.SatellitePvt.Builder setIonoDelayMeters(@FloatRange double);
|
||||
method @NonNull public android.location.SatellitePvt.Builder setIonoDelayMeters(@FloatRange(from=0.0f, to=100.0f) double);
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
@@ -398,13 +398,6 @@ public final class SatellitePvt implements Parcelable {
|
||||
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
|
||||
* position fields in ECEF coordinate frame.
|
||||
@@ -535,18 +528,6 @@ public final class SatellitePvt implements Parcelable {
|
||||
private double mIonoDelayMeters;
|
||||
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.
|
||||
*
|
||||
@@ -557,6 +538,7 @@ public final class SatellitePvt implements Parcelable {
|
||||
public Builder setPositionEcef(
|
||||
@NonNull PositionEcef positionEcef) {
|
||||
mPositionEcef = positionEcef;
|
||||
updateFlags();
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -570,6 +552,7 @@ public final class SatellitePvt implements Parcelable {
|
||||
public Builder setVelocityEcef(
|
||||
@NonNull VelocityEcef velocityEcef) {
|
||||
mVelocityEcef = velocityEcef;
|
||||
updateFlags();
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -583,9 +566,16 @@ public final class SatellitePvt implements Parcelable {
|
||||
public Builder setClockInfo(
|
||||
@NonNull ClockInfo clockInfo) {
|
||||
mClockInfo = clockInfo;
|
||||
updateFlags();
|
||||
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.
|
||||
*
|
||||
@@ -593,8 +583,10 @@ public final class SatellitePvt implements Parcelable {
|
||||
* @return Builder builder object
|
||||
*/
|
||||
@NonNull
|
||||
public Builder setIonoDelayMeters(@FloatRange() double ionoDelayMeters) {
|
||||
public Builder setIonoDelayMeters(
|
||||
@FloatRange(from = 0.0f, to = 100.0f) double ionoDelayMeters) {
|
||||
mIonoDelayMeters = ionoDelayMeters;
|
||||
mFlags = (byte) (mFlags | HAS_IONO);
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -605,8 +597,10 @@ public final class SatellitePvt implements Parcelable {
|
||||
* @return Builder builder object
|
||||
*/
|
||||
@NonNull
|
||||
public Builder setTropoDelayMeters(@FloatRange() double tropoDelayMeters) {
|
||||
public Builder setTropoDelayMeters(
|
||||
@FloatRange(from = 0.0f, to = 100.0f) double tropoDelayMeters) {
|
||||
mTropoDelayMeters = tropoDelayMeters;
|
||||
mFlags = (byte) (mFlags | HAS_TROPO);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
@@ -54,7 +54,6 @@ jmethodID method_gnssMeasurementCtor;
|
||||
jmethodID method_reportMeasurementData;
|
||||
jmethodID method_satellitePvtBuilderBuild;
|
||||
jmethodID method_satellitePvtBuilderCtor;
|
||||
jmethodID method_satellitePvtBuilderSetFlags;
|
||||
jmethodID method_satellitePvtBuilderSetPositionEcef;
|
||||
jmethodID method_satellitePvtBuilderSetVelocityEcef;
|
||||
jmethodID method_satellitePvtBuilderSetClockInfo;
|
||||
@@ -90,9 +89,6 @@ void GnssMeasurement_class_init_once(JNIEnv* env, jclass& clazz) {
|
||||
jclass satellitePvtBuilder = env->FindClass("android/location/SatellitePvt$Builder");
|
||||
class_satellitePvtBuilder = (jclass)env->NewGlobalRef(satellitePvtBuilder);
|
||||
method_satellitePvtBuilderCtor = env->GetMethodID(class_satellitePvtBuilder, "<init>", "()V");
|
||||
method_satellitePvtBuilderSetFlags =
|
||||
env->GetMethodID(class_satellitePvtBuilder, "setFlags",
|
||||
"(I)Landroid/location/SatellitePvt$Builder;");
|
||||
method_satellitePvtBuilderSetPositionEcef =
|
||||
env->GetMethodID(class_satellitePvtBuilder, "setPositionEcef",
|
||||
"(Landroid/location/SatellitePvt$PositionEcef;)"
|
||||
@@ -321,6 +317,8 @@ void GnssMeasurementCallbackAidl::translateSingleGnssMeasurement(JNIEnv* env,
|
||||
jobject positionEcef = nullptr;
|
||||
jobject velocityEcef = nullptr;
|
||||
jobject clockInfo = nullptr;
|
||||
jobject satellitePvtBuilderObject =
|
||||
env->NewObject(class_satellitePvtBuilder, method_satellitePvtBuilderCtor);
|
||||
|
||||
if (satFlags & SatellitePvt::HAS_POSITION_VELOCITY_CLOCK_INFO) {
|
||||
positionEcef = env->NewObject(class_positionEcef, method_positionEcef,
|
||||
@@ -337,31 +335,30 @@ void GnssMeasurementCallbackAidl::translateSingleGnssMeasurement(JNIEnv* env,
|
||||
satellitePvt.satClockInfo.satHardwareCodeBiasMeters,
|
||||
satellitePvt.satClockInfo.satTimeCorrectionMeters,
|
||||
satellitePvt.satClockInfo.satClkDriftMps);
|
||||
env->CallObjectMethod(satellitePvtBuilderObject,
|
||||
method_satellitePvtBuilderSetPositionEcef, positionEcef);
|
||||
env->CallObjectMethod(satellitePvtBuilderObject,
|
||||
method_satellitePvtBuilderSetVelocityEcef, velocityEcef);
|
||||
env->CallObjectMethod(satellitePvtBuilderObject, method_satellitePvtBuilderSetClockInfo,
|
||||
clockInfo);
|
||||
}
|
||||
|
||||
jobject satellitePvtBuilderObject =
|
||||
env->NewObject(class_satellitePvtBuilder, method_satellitePvtBuilderCtor);
|
||||
if (satFlags & SatellitePvt::HAS_IONO) {
|
||||
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 =
|
||||
env->CallObjectMethod(satellitePvtBuilderObject, method_satellitePvtBuilderBuild);
|
||||
|
||||
env->CallVoidMethod(object.get(), method_gnssMeasurementsSetSatellitePvt,
|
||||
satellitePvtObject);
|
||||
|
||||
env->DeleteLocalRef(positionEcef);
|
||||
env->DeleteLocalRef(velocityEcef);
|
||||
env->DeleteLocalRef(clockInfo);
|
||||
|
||||
Reference in New Issue
Block a user