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

Commit cf2c28ad authored by Shinru Han's avatar Shinru Han
Browse files

Support IONEX assistance

Bug: 434875844
Bug: 358381377
Test: atest CtsLocationNoneTestCases
Flag: android.location.flags.support_ionex_assistance
BYPASS_LARGE_CHANGE_WARNING

Change-Id: I6b5268d74736de5fcb63ad0716cb3a515a3fe48e
parent 016e6572
Loading
Loading
Loading
Loading
+75 −0
Original line number Diff line number Diff line
@@ -515,6 +515,7 @@ package android.location {
    method @Nullable public android.location.GalileoAssistance getGalileoAssistance();
    method @Nullable public android.location.GlonassAssistance getGlonassAssistance();
    method @Nullable public android.location.GpsAssistance getGpsAssistance();
    method @FlaggedApi("android.location.flags.support_ionex_assistance") @Nullable public android.location.IonexAssistance getIonexAssistance();
    method @Nullable public android.location.QzssAssistance getQzssAssistance();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.GnssAssistance> CREATOR;
@@ -527,6 +528,7 @@ package android.location {
    method @NonNull public android.location.GnssAssistance.Builder setGalileoAssistance(@Nullable android.location.GalileoAssistance);
    method @NonNull public android.location.GnssAssistance.Builder setGlonassAssistance(@Nullable android.location.GlonassAssistance);
    method @NonNull public android.location.GnssAssistance.Builder setGpsAssistance(@Nullable android.location.GpsAssistance);
    method @FlaggedApi("android.location.flags.support_ionex_assistance") @NonNull public android.location.GnssAssistance.Builder setIonexAssistance(@Nullable android.location.IonexAssistance);
    method @NonNull public android.location.GnssAssistance.Builder setQzssAssistance(@Nullable android.location.QzssAssistance);
  }

@@ -1050,6 +1052,79 @@ package android.location {
    method @NonNull public android.location.GpsSatelliteEphemeris.GpsSatelliteHealth.Builder setSvHealth(@IntRange(from=0, to=63) int);
  }

  @FlaggedApi("android.location.flags.support_ionex_assistance") public final class IonexAssistance implements android.os.Parcelable {
    method public int describeContents();
    method @NonNull public android.location.IonexAssistance.Header getHeader();
    method @NonNull public android.location.IonexAssistance.TecMapSnapshot getTecMapSnapshot();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.IonexAssistance> CREATOR;
  }

  public static final class IonexAssistance.Axes implements android.os.Parcelable {
    ctor public IonexAssistance.Axes(@NonNull android.location.IonexAssistance.Axis, @NonNull android.location.IonexAssistance.Axis);
    method public int describeContents();
    method @NonNull public android.location.IonexAssistance.Axis getLatitudeAxis();
    method @NonNull public android.location.IonexAssistance.Axis getLongitudeAxis();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.IonexAssistance.Axes> CREATOR;
  }

  public static final class IonexAssistance.Axis implements android.os.Parcelable {
    ctor public IonexAssistance.Axis(@FloatRange(from=-180.0F, to=180.0f) double, @FloatRange(from=-180.0F, to=180.0f) double, @IntRange(from=0) int);
    method public int describeContents();
    method @FloatRange(from=-180.0F, to=180.0f) public double getDeltaDeg();
    method @IntRange(from=1) public int getNumPoints();
    method @FloatRange(from=-180.0F, to=180.0f) public double getStartDeg();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.IonexAssistance.Axis> CREATOR;
  }

  public static final class IonexAssistance.Builder {
    ctor public IonexAssistance.Builder();
    method @NonNull public android.location.IonexAssistance build();
    method @NonNull public android.location.IonexAssistance.Builder setHeader(@NonNull android.location.IonexAssistance.Header);
    method @NonNull public android.location.IonexAssistance.Builder setTecMapSnapshot(@NonNull android.location.IonexAssistance.TecMapSnapshot);
  }

  public static final class IonexAssistance.Header implements android.os.Parcelable {
    method public int describeContents();
    method @NonNull public android.location.IonexAssistance.Axes getAxesInfo();
    method @FloatRange(from=0.0, fromInclusive=false) public float getBaseRadiusKm();
    method @FloatRange(from=0.0, fromInclusive=false) public float getHeightKm();
    method public int getMappingFunction();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.IonexAssistance.Header> CREATOR;
    field public static final int MAPPING_FUNCTION_COSZ = 1; // 0x1
    field public static final int MAPPING_FUNCTION_NONE = 0; // 0x0
    field public static final int MAPPING_FUNCTION_QFAC = 2; // 0x2
  }

  public static final class IonexAssistance.Header.Builder {
    ctor public IonexAssistance.Header.Builder();
    method @NonNull public android.location.IonexAssistance.Header build();
    method @NonNull public android.location.IonexAssistance.Header.Builder setAxesInfo(@NonNull android.location.IonexAssistance.Axes);
    method @NonNull public android.location.IonexAssistance.Header.Builder setBaseRadiusKm(@FloatRange(from=0.0, fromInclusive=false) float);
    method @NonNull public android.location.IonexAssistance.Header.Builder setHeightKm(@FloatRange(from=0.0, fromInclusive=false) float);
    method @NonNull public android.location.IonexAssistance.Header.Builder setMappingFunction(int);
  }

  public static final class IonexAssistance.TecMapSnapshot implements android.os.Parcelable {
    method public int describeContents();
    method @IntRange(from=0) public long getEpochTimeSeconds();
    method @NonNull public java.util.List<java.lang.Float> getRmsMap();
    method @NonNull public java.util.List<java.lang.Float> getTecMap();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.IonexAssistance.TecMapSnapshot> CREATOR;
  }

  public static final class IonexAssistance.TecMapSnapshot.Builder {
    ctor public IonexAssistance.TecMapSnapshot.Builder();
    method @NonNull public android.location.IonexAssistance.TecMapSnapshot build();
    method @IntRange(from=0) @NonNull public android.location.IonexAssistance.TecMapSnapshot.Builder setEpochTimeSeconds(@IntRange(from=0) long);
    method @NonNull public android.location.IonexAssistance.TecMapSnapshot.Builder setRmsMap(@NonNull java.util.List<java.lang.Float>);
    method @NonNull public android.location.IonexAssistance.TecMapSnapshot.Builder setTecMap(@NonNull java.util.List<java.lang.Float>);
  }

  @FlaggedApi("android.location.flags.gnss_assistance_interface") public final class IonosphericCorrection implements android.os.Parcelable {
    ctor public IonosphericCorrection(@IntRange(from=0) long, @NonNull android.location.GnssCorrectionComponent);
    method public int describeContents();
+24 −0
Original line number Diff line number Diff line
@@ -55,12 +55,16 @@ public final class GnssAssistance implements Parcelable {
    /** QZSS assistance. */
    @Nullable private final QzssAssistance mQzssAssistance;

    /** IONEX assistance. */
    @Nullable private final IonexAssistance mIonexAssistance;

    private GnssAssistance(Builder builder) {
        mGpsAssistance = builder.mGpsAssistance;
        mGlonassAssistance = builder.mGlonassAssistance;
        mGalileoAssistance = builder.mGalileoAssistance;
        mBeidouAssistance = builder.mBeidouAssistance;
        mQzssAssistance = builder.mQzssAssistance;
        mIonexAssistance = builder.mIonexAssistance;
    }

    /** Returns the GPS assistance. */
@@ -93,6 +97,13 @@ public final class GnssAssistance implements Parcelable {
        return mQzssAssistance;
    }

    /** Returns the Ionex assistance */
    @FlaggedApi(Flags.FLAG_SUPPORT_IONEX_ASSISTANCE)
    @Nullable
    public IonexAssistance getIonexAssistance() {
        return mIonexAssistance;
    }

    public static final @NonNull Creator<GnssAssistance> CREATOR =
            new Creator<GnssAssistance>() {
                @Override
@@ -104,6 +115,7 @@ public final class GnssAssistance implements Parcelable {
                            .setGalileoAssistance(in.readTypedObject(GalileoAssistance.CREATOR))
                            .setBeidouAssistance(in.readTypedObject(BeidouAssistance.CREATOR))
                            .setQzssAssistance(in.readTypedObject(QzssAssistance.CREATOR))
                            .setIonexAssistance(in.readTypedObject(IonexAssistance.CREATOR))
                            .build();
                }

@@ -125,6 +137,7 @@ public final class GnssAssistance implements Parcelable {
        parcel.writeTypedObject(mGalileoAssistance, flags);
        parcel.writeTypedObject(mBeidouAssistance, flags);
        parcel.writeTypedObject(mQzssAssistance, flags);
        parcel.writeTypedObject(mIonexAssistance, flags);
    }

    @Override
@@ -136,6 +149,7 @@ public final class GnssAssistance implements Parcelable {
        builder.append(", galileoAssistance = ").append(mGalileoAssistance);
        builder.append(", beidouAssistance = ").append(mBeidouAssistance);
        builder.append(", qzssAssistance = ").append(mQzssAssistance);
        builder.append(", ionexAssistance = ").append(mIonexAssistance);
        builder.append("]");
        return builder.toString();
    }
@@ -147,6 +161,8 @@ public final class GnssAssistance implements Parcelable {
        private GalileoAssistance mGalileoAssistance;
        private BeidouAssistance mBeidouAssistance;
        private QzssAssistance mQzssAssistance;
        private IonexAssistance mIonexAssistance;


        /** Sets the GPS assistance. */
        @NonNull
@@ -183,6 +199,14 @@ public final class GnssAssistance implements Parcelable {
            return this;
        }

        /** Sets the IONEX assistance */
        @FlaggedApi(Flags.FLAG_SUPPORT_IONEX_ASSISTANCE)
        @NonNull
        public Builder setIonexAssistance(@Nullable IonexAssistance ionexAssistance) {
            mIonexAssistance = ionexAssistance;
            return this;
        }

        /** Builds a {@link GnssAssistance} instance as specified by this builder. */
        @NonNull
        public GnssAssistance build() {
+789 −0

File added.

Preview size limit exceeded, changes collapsed.

+7 −0
Original line number Diff line number Diff line
@@ -182,3 +182,10 @@ flag {
    description: "Disables the legacy hardware AR code path which has been deprecated for a long time"
    bug: "441145460"
}

flag {
    name: "support_ionex_assistance"
    namespace: "location"
    description: "Support IONEX assistance"
    bug: "434875844"
}