Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d0c1d9cc authored by Joe Huang's avatar Joe Huang Committed by Automerger Merge Worker
Browse files

Merge "SatellitePvt API council review" into sc-dev am: 9d78bec9

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14672887

Change-Id: I707aa5bdb3846158fcaf6ca811a08e3710a4c2f0
parents 54d0f311 9d78bec9
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -5007,7 +5007,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();
@@ -5023,10 +5022,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);
  }
+15 −21
Original line number Diff line number Diff line
@@ -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;
        }

+19 −22
Original line number Diff line number Diff line
@@ -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);
        }

        jobject satellitePvtBuilderObject =
                env->NewObject(class_satellitePvtBuilder, method_satellitePvtBuilderCtor);

        env->CallObjectMethod(satellitePvtBuilderObject, method_satellitePvtBuilderSetFlags,
                              satellitePvt.flags);
        env->CallObjectMethod(satellitePvtBuilderObject, method_satellitePvtBuilderSetPositionEcef,
                              positionEcef);
        env->CallObjectMethod(satellitePvtBuilderObject, method_satellitePvtBuilderSetVelocityEcef,
                              velocityEcef);
            env->CallObjectMethod(satellitePvtBuilderObject,
                                  method_satellitePvtBuilderSetPositionEcef, positionEcef);
            env->CallObjectMethod(satellitePvtBuilderObject,
                                  method_satellitePvtBuilderSetVelocityEcef, velocityEcef);
            env->CallObjectMethod(satellitePvtBuilderObject, method_satellitePvtBuilderSetClockInfo,
                                  clockInfo);
        }

        if (satFlags & SatellitePvt::HAS_IONO) {
            env->CallObjectMethod(satellitePvtBuilderObject,
                                  method_satellitePvtBuilderSetIonoDelayMeters,
                                  satellitePvt.ionoDelayMeters);
        }

        if (satFlags & SatellitePvt::HAS_TROPO) {
            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);