diff options
author | 2024-12-16 05:54:11 -0800 | |
---|---|---|
committer | 2024-12-16 07:10:54 -0800 | |
commit | 03f5295a677fee8cb237634ca3d5cd82c96f6c10 (patch) | |
tree | 125a47ab74d120117965bf7b3c000dca1ed741c9 /location | |
parent | 6868c432df9478d7c78b3a492120cfad4c305127 (diff) |
Update GnssAssistance classes
- Add missing fields for Glonass ephemeris & almanac.
- Define health type for Galileo & Glonass.
Bug: 358381377
Test: atest CtsLocationNoneTestCases
Flag: android.location.flags.gnss_assistance_interface
Change-Id: I3ba66a25a4e6ccb641852e6e31fb9318b4047a04
Diffstat (limited to 'location')
8 files changed, 495 insertions, 180 deletions
diff --git a/location/api/system-current.txt b/location/api/system-current.txt index ba4224137cd4..0c2f3adc2838 100644 --- a/location/api/system-current.txt +++ b/location/api/system-current.txt @@ -35,11 +35,11 @@ package android.location { @FlaggedApi("android.location.flags.gnss_assistance_interface") public final class BeidouSatelliteEphemeris implements android.os.Parcelable { method public int describeContents(); - method @IntRange(from=1, to=63) public int getPrn(); method @NonNull public android.location.BeidouSatelliteEphemeris.BeidouSatelliteClockModel getSatelliteClockModel(); method @NonNull public android.location.BeidouSatelliteEphemeris.BeidouSatelliteEphemerisTime getSatelliteEphemerisTime(); method @NonNull public android.location.BeidouSatelliteEphemeris.BeidouSatelliteHealth getSatelliteHealth(); method @NonNull public android.location.KeplerianOrbitModel getSatelliteOrbitModel(); + method @IntRange(from=1, to=63) public int getSvid(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.location.BeidouSatelliteEphemeris> CREATOR; } @@ -104,11 +104,11 @@ package android.location { public static final class BeidouSatelliteEphemeris.Builder { ctor public BeidouSatelliteEphemeris.Builder(); method @NonNull public android.location.BeidouSatelliteEphemeris build(); - method @NonNull public android.location.BeidouSatelliteEphemeris.Builder setPrn(int); method @NonNull public android.location.BeidouSatelliteEphemeris.Builder setSatelliteClockModel(@NonNull android.location.BeidouSatelliteEphemeris.BeidouSatelliteClockModel); method @NonNull public android.location.BeidouSatelliteEphemeris.Builder setSatelliteEphemerisTime(@NonNull android.location.BeidouSatelliteEphemeris.BeidouSatelliteEphemerisTime); method @NonNull public android.location.BeidouSatelliteEphemeris.Builder setSatelliteHealth(@NonNull android.location.BeidouSatelliteEphemeris.BeidouSatelliteHealth); method @NonNull public android.location.BeidouSatelliteEphemeris.Builder setSatelliteOrbitModel(@NonNull android.location.KeplerianOrbitModel); + method @NonNull public android.location.BeidouSatelliteEphemeris.Builder setSvid(int); } public final class CorrelationVector implements android.os.Parcelable { @@ -195,10 +195,10 @@ package android.location { @FlaggedApi("android.location.flags.gnss_assistance_interface") public final class GalileoSatelliteEphemeris implements android.os.Parcelable { method public int describeContents(); method @NonNull public java.util.List<android.location.GalileoSatelliteEphemeris.GalileoSatelliteClockModel> getSatelliteClockModels(); - method @IntRange(from=1, to=36) public int getSatelliteCodeNumber(); method @NonNull public android.location.SatelliteEphemerisTime getSatelliteEphemerisTime(); method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSvHealth getSatelliteHealth(); method @NonNull public android.location.KeplerianOrbitModel getSatelliteOrbitModel(); + method @IntRange(from=1, to=36) public int getSvid(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.location.GalileoSatelliteEphemeris> CREATOR; } @@ -207,10 +207,10 @@ package android.location { ctor public GalileoSatelliteEphemeris.Builder(); method @NonNull public android.location.GalileoSatelliteEphemeris build(); method @NonNull public android.location.GalileoSatelliteEphemeris.Builder setSatelliteClockModels(@NonNull java.util.List<android.location.GalileoSatelliteEphemeris.GalileoSatelliteClockModel>); - method @NonNull public android.location.GalileoSatelliteEphemeris.Builder setSatelliteCodeNumber(@IntRange(from=1, to=36) int); method @NonNull public android.location.GalileoSatelliteEphemeris.Builder setSatelliteEphemerisTime(@NonNull android.location.SatelliteEphemerisTime); method @NonNull public android.location.GalileoSatelliteEphemeris.Builder setSatelliteHealth(@NonNull android.location.GalileoSatelliteEphemeris.GalileoSvHealth); method @NonNull public android.location.GalileoSatelliteEphemeris.Builder setSatelliteOrbitModel(@NonNull android.location.KeplerianOrbitModel); + method @NonNull public android.location.GalileoSatelliteEphemeris.Builder setSvid(@IntRange(from=1, to=36) int); } public static final class GalileoSatelliteEphemeris.GalileoSatelliteClockModel implements android.os.Parcelable { @@ -243,25 +243,31 @@ package android.location { public static final class GalileoSatelliteEphemeris.GalileoSvHealth implements android.os.Parcelable { method public int describeContents(); - method @IntRange(from=0, to=1) public int getDataValidityStatusE1b(); - method @IntRange(from=0, to=1) public int getDataValidityStatusE5a(); - method @IntRange(from=0, to=1) public int getDataValidityStatusE5b(); - method @IntRange(from=0, to=3) public int getSignalHealthStatusE1b(); - method @IntRange(from=0, to=3) public int getSignalHealthStatusE5a(); - method @IntRange(from=0, to=3) public int getSignalHealthStatusE5b(); + method public int getDataValidityStatusE1b(); + method public int getDataValidityStatusE5a(); + method public int getDataValidityStatusE5b(); + method public int getSignalHealthStatusE1b(); + method public int getSignalHealthStatusE5a(); + method public int getSignalHealthStatusE5b(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.location.GalileoSatelliteEphemeris.GalileoSvHealth> CREATOR; + field public static final int DATA_STATUS_DATA_VALID = 0; // 0x0 + field public static final int DATA_STATUS_WORKING_WITHOUT_GUARANTEE = 1; // 0x1 + field public static final int HEALTH_STATUS_EXTENDED_OPERATION_MODE = 2; // 0x2 + field public static final int HEALTH_STATUS_IN_TEST = 3; // 0x3 + field public static final int HEALTH_STATUS_OK = 0; // 0x0 + field public static final int HEALTH_STATUS_OUT_OF_SERVICE = 1; // 0x1 } public static final class GalileoSatelliteEphemeris.GalileoSvHealth.Builder { ctor public GalileoSatelliteEphemeris.GalileoSvHealth.Builder(); method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSvHealth build(); - method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSvHealth.Builder setDataValidityStatusE1b(@IntRange(from=0, to=1) int); - method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSvHealth.Builder setDataValidityStatusE5a(@IntRange(from=0, to=1) int); - method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSvHealth.Builder setDataValidityStatusE5b(@IntRange(from=0, to=1) int); - method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSvHealth.Builder setSignalHealthStatusE1b(@IntRange(from=0, to=3) int); - method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSvHealth.Builder setSignalHealthStatusE5a(@IntRange(from=0, to=3) int); - method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSvHealth.Builder setSignalHealthStatusE5b(@IntRange(from=0, to=3) int); + method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSvHealth.Builder setDataValidityStatusE1b(int); + method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSvHealth.Builder setDataValidityStatusE5a(int); + method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSvHealth.Builder setDataValidityStatusE5b(int); + method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSvHealth.Builder setSignalHealthStatusE1b(int); + method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSvHealth.Builder setSignalHealthStatusE5a(int); + method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSvHealth.Builder setSignalHealthStatusE5b(int); } @FlaggedApi("android.location.flags.gnss_assistance_interface") public final class GlonassAlmanac implements android.os.Parcelable { @@ -275,17 +281,19 @@ package android.location { public static final class GlonassAlmanac.GlonassSatelliteAlmanac implements android.os.Parcelable { method public int describeContents(); + method @IntRange(from=1, to=1461) public int getCalendarDayNumber(); method @FloatRange(from=-0.067F, to=0.067f) public double getDeltaI(); method @FloatRange(from=-3600.0F, to=3600.0f) public double getDeltaT(); method @FloatRange(from=-0.004F, to=0.004f) public double getDeltaTDot(); method @FloatRange(from=0.0f, to=0.03f) public double getEccentricity(); - method @IntRange(from=0, to=31) public int getFreqChannel(); + method @IntRange(from=0, to=31) public int getFrequencyChannelNumber(); + method public int getHealthState(); method @FloatRange(from=-1.0F, to=1.0f) public double getLambda(); method @FloatRange(from=-1.0F, to=1.0f) public double getOmega(); method @IntRange(from=1, to=25) public int getSlotNumber(); - method @IntRange(from=0, to=1) public int getSvHealth(); method @FloatRange(from=0.0f, to=44100.0f) public double getTLambda(); method @FloatRange(from=-0.0019F, to=0.0019f) public double getTau(); + method public boolean isGlonassM(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.location.GlonassAlmanac.GlonassSatelliteAlmanac> CREATOR; } @@ -293,15 +301,17 @@ package android.location { public static final class GlonassAlmanac.GlonassSatelliteAlmanac.Builder { ctor public GlonassAlmanac.GlonassSatelliteAlmanac.Builder(); method @NonNull public android.location.GlonassAlmanac.GlonassSatelliteAlmanac build(); + method @NonNull public android.location.GlonassAlmanac.GlonassSatelliteAlmanac.Builder setCalendarDayNumber(@IntRange(from=1, to=1461) int); method @NonNull public android.location.GlonassAlmanac.GlonassSatelliteAlmanac.Builder setDeltaI(@FloatRange(from=-0.067F, to=0.067f) double); method @NonNull public android.location.GlonassAlmanac.GlonassSatelliteAlmanac.Builder setDeltaT(@FloatRange(from=-3600.0F, to=3600.0f) double); method @NonNull public android.location.GlonassAlmanac.GlonassSatelliteAlmanac.Builder setDeltaTDot(@FloatRange(from=-0.004F, to=0.004f) double); method @NonNull public android.location.GlonassAlmanac.GlonassSatelliteAlmanac.Builder setEccentricity(@FloatRange(from=0.0f, to=0.03f) double); - method @NonNull public android.location.GlonassAlmanac.GlonassSatelliteAlmanac.Builder setFreqChannel(@IntRange(from=0, to=31) int); + method @NonNull public android.location.GlonassAlmanac.GlonassSatelliteAlmanac.Builder setFrequencyChannelNumber(@IntRange(from=0, to=31) int); + method @NonNull public android.location.GlonassAlmanac.GlonassSatelliteAlmanac.Builder setGlonassM(boolean); + method @NonNull public android.location.GlonassAlmanac.GlonassSatelliteAlmanac.Builder setHealthState(int); method @NonNull public android.location.GlonassAlmanac.GlonassSatelliteAlmanac.Builder setLambda(@FloatRange(from=-1.0F, to=1.0f) double); method @NonNull public android.location.GlonassAlmanac.GlonassSatelliteAlmanac.Builder setOmega(@FloatRange(from=-1.0F, to=1.0f) double); method @NonNull public android.location.GlonassAlmanac.GlonassSatelliteAlmanac.Builder setSlotNumber(@IntRange(from=1, to=25) int); - method @NonNull public android.location.GlonassAlmanac.GlonassSatelliteAlmanac.Builder setSvHealth(@IntRange(from=0, to=1) int); method @NonNull public android.location.GlonassAlmanac.GlonassSatelliteAlmanac.Builder setTLambda(@FloatRange(from=0.0f, to=44100.0f) double); method @NonNull public android.location.GlonassAlmanac.GlonassSatelliteAlmanac.Builder setTau(@FloatRange(from=-0.0019F, to=0.0019f) double); } @@ -331,12 +341,17 @@ package android.location { method public int describeContents(); method @IntRange(from=0, to=31) public int getAgeInDays(); method @FloatRange(from=0.0f) public double getFrameTimeSeconds(); - method @IntRange(from=0, to=1) public int getHealthState(); + method public int getHealthState(); method @NonNull public android.location.GlonassSatelliteEphemeris.GlonassSatelliteClockModel getSatelliteClockModel(); method @NonNull public android.location.GlonassSatelliteEphemeris.GlonassSatelliteOrbitModel getSatelliteOrbitModel(); method @IntRange(from=1, to=25) public int getSlotNumber(); + method @IntRange(from=0, to=60) public int getUpdateIntervalMinutes(); + method public boolean isGlonassM(); + method public boolean isUpdateIntervalOdd(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.location.GlonassSatelliteEphemeris> CREATOR; + field public static final int HEALTH_STATUS_HEALTHY = 0; // 0x0 + field public static final int HEALTH_STATUS_UNHEALTHY = 1; // 0x1 } public static final class GlonassSatelliteEphemeris.Builder { @@ -344,18 +359,23 @@ package android.location { method @NonNull public android.location.GlonassSatelliteEphemeris build(); method @NonNull public android.location.GlonassSatelliteEphemeris.Builder setAgeInDays(@IntRange(from=0, to=31) int); method @NonNull public android.location.GlonassSatelliteEphemeris.Builder setFrameTimeSeconds(@FloatRange(from=0.0f) double); - method @NonNull public android.location.GlonassSatelliteEphemeris.Builder setHealthState(@IntRange(from=0, to=1) int); + method @NonNull public android.location.GlonassSatelliteEphemeris.Builder setGlonassM(boolean); + method @NonNull public android.location.GlonassSatelliteEphemeris.Builder setHealthState(int); method @NonNull public android.location.GlonassSatelliteEphemeris.Builder setSatelliteClockModel(@NonNull android.location.GlonassSatelliteEphemeris.GlonassSatelliteClockModel); method @NonNull public android.location.GlonassSatelliteEphemeris.Builder setSatelliteOrbitModel(@NonNull android.location.GlonassSatelliteEphemeris.GlonassSatelliteOrbitModel); method @NonNull public android.location.GlonassSatelliteEphemeris.Builder setSlotNumber(@IntRange(from=1, to=25) int); + method @NonNull public android.location.GlonassSatelliteEphemeris.Builder setUpdateIntervalMinutes(@IntRange(from=0, to=60) int); + method @NonNull public android.location.GlonassSatelliteEphemeris.Builder setUpdateIntervalOdd(boolean); } public static final class GlonassSatelliteEphemeris.GlonassSatelliteClockModel implements android.os.Parcelable { method public int describeContents(); method @FloatRange(from=-0.002F, to=0.002f) public double getClockBias(); method @FloatRange(from=-9.32E-10F, to=9.32E-10f) public double getFrequencyBias(); - method @IntRange(from=0xfffffff9, to=6) public int getFrequencyNumber(); + method @IntRange(from=0xfffffff9, to=6) public int getFrequencyChannelNumber(); + method @FloatRange(from=-1.4E-8F, to=1.4E-8f) public double getGroupDelayDiffSeconds(); method @IntRange(from=0) public long getTimeOfClockSeconds(); + method public boolean isGroupDelayDiffSecondsAvailable(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.location.GlonassSatelliteEphemeris.GlonassSatelliteClockModel> CREATOR; } @@ -365,7 +385,9 @@ package android.location { method @NonNull public android.location.GlonassSatelliteEphemeris.GlonassSatelliteClockModel build(); method @NonNull public android.location.GlonassSatelliteEphemeris.GlonassSatelliteClockModel.Builder setClockBias(@FloatRange(from=-0.002F, to=0.002f) double); method @NonNull public android.location.GlonassSatelliteEphemeris.GlonassSatelliteClockModel.Builder setFrequencyBias(@FloatRange(from=-9.32E-10F, to=9.32E-10f) double); - method @NonNull public android.location.GlonassSatelliteEphemeris.GlonassSatelliteClockModel.Builder setFrequencyNumber(@IntRange(from=0xfffffff9, to=6) int); + method @NonNull public android.location.GlonassSatelliteEphemeris.GlonassSatelliteClockModel.Builder setFrequencyChannelNumber(@IntRange(from=0xfffffff9, to=6) int); + method @NonNull public android.location.GlonassSatelliteEphemeris.GlonassSatelliteClockModel.Builder setGroupDelayDiffSeconds(@FloatRange(from=-1.4E-8F, to=1.4E-8f) double); + method @NonNull public android.location.GlonassSatelliteEphemeris.GlonassSatelliteClockModel.Builder setGroupDelayDiffSecondsAvailable(boolean); method @NonNull public android.location.GlonassSatelliteEphemeris.GlonassSatelliteClockModel.Builder setTimeOfClockSeconds(@IntRange(from=0) long); } @@ -401,10 +423,11 @@ package android.location { @FlaggedApi("android.location.flags.gnss_assistance_interface") public final class GnssAlmanac implements android.os.Parcelable { method public int describeContents(); method @NonNull public java.util.List<android.location.GnssAlmanac.GnssSatelliteAlmanac> getGnssSatelliteAlmanacs(); - method @IntRange(from=0) public int getIod(); + method @IntRange(from=0) public int getIoda(); method @IntRange(from=0) public long getIssueDateMillis(); method @IntRange(from=0, to=604800) public int getToaSeconds(); method @IntRange(from=0) public int getWeekNumber(); + method public boolean isCompleteAlmanacProvided(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.location.GnssAlmanac> CREATOR; } @@ -412,8 +435,9 @@ package android.location { public static final class GnssAlmanac.Builder { ctor public GnssAlmanac.Builder(); method @NonNull public android.location.GnssAlmanac build(); + method @NonNull public android.location.GnssAlmanac.Builder setCompleteAlmanacProvided(boolean); method @NonNull public android.location.GnssAlmanac.Builder setGnssSatelliteAlmanacs(@NonNull java.util.List<android.location.GnssAlmanac.GnssSatelliteAlmanac>); - method @NonNull public android.location.GnssAlmanac.Builder setIod(@IntRange(from=0) int); + method @NonNull public android.location.GnssAlmanac.Builder setIoda(@IntRange(from=0) int); method @NonNull public android.location.GnssAlmanac.Builder setIssueDateMillis(@IntRange(from=0) long); method @NonNull public android.location.GnssAlmanac.Builder setToaSeconds(@IntRange(from=0, to=604800) int); method @NonNull public android.location.GnssAlmanac.Builder setWeekNumber(@IntRange(from=0) int); @@ -916,11 +940,11 @@ package android.location { @FlaggedApi("android.location.flags.gnss_assistance_interface") public final class GpsSatelliteEphemeris implements android.os.Parcelable { method public int describeContents(); method @NonNull public android.location.GpsSatelliteEphemeris.GpsL2Params getGpsL2Params(); - method @IntRange(from=1, to=32) public int getPrn(); method @NonNull public android.location.GpsSatelliteEphemeris.GpsSatelliteClockModel getSatelliteClockModel(); method @NonNull public android.location.SatelliteEphemerisTime getSatelliteEphemerisTime(); method @NonNull public android.location.GpsSatelliteEphemeris.GpsSatelliteHealth getSatelliteHealth(); method @NonNull public android.location.KeplerianOrbitModel getSatelliteOrbitModel(); + method @IntRange(from=1, to=32) public int getSvid(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.location.GpsSatelliteEphemeris> CREATOR; } @@ -929,11 +953,11 @@ package android.location { ctor public GpsSatelliteEphemeris.Builder(); method @NonNull public android.location.GpsSatelliteEphemeris build(); method @NonNull public android.location.GpsSatelliteEphemeris.Builder setGpsL2Params(@NonNull android.location.GpsSatelliteEphemeris.GpsL2Params); - method @NonNull public android.location.GpsSatelliteEphemeris.Builder setPrn(@IntRange(from=1, to=32) int); method @NonNull public android.location.GpsSatelliteEphemeris.Builder setSatelliteClockModel(@NonNull android.location.GpsSatelliteEphemeris.GpsSatelliteClockModel); method @NonNull public android.location.GpsSatelliteEphemeris.Builder setSatelliteEphemerisTime(@NonNull android.location.SatelliteEphemerisTime); method @NonNull public android.location.GpsSatelliteEphemeris.Builder setSatelliteHealth(@NonNull android.location.GpsSatelliteEphemeris.GpsSatelliteHealth); method @NonNull public android.location.GpsSatelliteEphemeris.Builder setSatelliteOrbitModel(@NonNull android.location.KeplerianOrbitModel); + method @NonNull public android.location.GpsSatelliteEphemeris.Builder setSvid(@IntRange(from=1, to=32) int); } public static final class GpsSatelliteEphemeris.GpsL2Params implements android.os.Parcelable { @@ -1225,11 +1249,11 @@ package android.location { @FlaggedApi("android.location.flags.gnss_assistance_interface") public final class QzssSatelliteEphemeris implements android.os.Parcelable { method public int describeContents(); method @NonNull public android.location.GpsSatelliteEphemeris.GpsL2Params getGpsL2Params(); - method @IntRange(from=183, to=206) public int getPrn(); method @NonNull public android.location.GpsSatelliteEphemeris.GpsSatelliteClockModel getSatelliteClockModel(); method @NonNull public android.location.SatelliteEphemerisTime getSatelliteEphemerisTime(); method @NonNull public android.location.GpsSatelliteEphemeris.GpsSatelliteHealth getSatelliteHealth(); method @NonNull public android.location.KeplerianOrbitModel getSatelliteOrbitModel(); + method @IntRange(from=183, to=206) public int getSvid(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.location.QzssSatelliteEphemeris> CREATOR; } @@ -1238,11 +1262,11 @@ package android.location { ctor public QzssSatelliteEphemeris.Builder(); method @NonNull public android.location.QzssSatelliteEphemeris build(); method @NonNull public android.location.QzssSatelliteEphemeris.Builder setGpsL2Params(@NonNull android.location.GpsSatelliteEphemeris.GpsL2Params); - method @NonNull public android.location.QzssSatelliteEphemeris.Builder setPrn(@IntRange(from=183, to=206) int); method @NonNull public android.location.QzssSatelliteEphemeris.Builder setSatelliteClockModel(@NonNull android.location.GpsSatelliteEphemeris.GpsSatelliteClockModel); method @NonNull public android.location.QzssSatelliteEphemeris.Builder setSatelliteEphemerisTime(@NonNull android.location.SatelliteEphemerisTime); method @NonNull public android.location.QzssSatelliteEphemeris.Builder setSatelliteHealth(@NonNull android.location.GpsSatelliteEphemeris.GpsSatelliteHealth); method @NonNull public android.location.QzssSatelliteEphemeris.Builder setSatelliteOrbitModel(@NonNull android.location.KeplerianOrbitModel); + method @NonNull public android.location.QzssSatelliteEphemeris.Builder setSvid(@IntRange(from=183, to=206) int); } @FlaggedApi("android.location.flags.gnss_assistance_interface") public final class RealTimeIntegrityModel implements android.os.Parcelable { diff --git a/location/java/android/location/BeidouSatelliteEphemeris.java b/location/java/android/location/BeidouSatelliteEphemeris.java index 6bd91e3318c3..3382c20964d9 100644 --- a/location/java/android/location/BeidouSatelliteEphemeris.java +++ b/location/java/android/location/BeidouSatelliteEphemeris.java @@ -35,8 +35,8 @@ import com.android.internal.util.Preconditions; @FlaggedApi(Flags.FLAG_GNSS_ASSISTANCE_INTERFACE) @SystemApi public final class BeidouSatelliteEphemeris implements Parcelable { - /** The PRN number of the Beidou satellite. */ - private final int mPrn; + /** The PRN or satellite ID number for the Beidou satellite. */ + private final int mSvid; /** Satellite clock model. */ private final BeidouSatelliteClockModel mSatelliteClockModel; @@ -51,8 +51,8 @@ public final class BeidouSatelliteEphemeris implements Parcelable { private final BeidouSatelliteEphemerisTime mSatelliteEphemerisTime; private BeidouSatelliteEphemeris(Builder builder) { - // Allow PRN beyond the range to support potential future extensibility. - Preconditions.checkArgument(builder.mPrn >= 1); + // Allow Svid beyond the range to support potential future extensibility. + Preconditions.checkArgument(builder.mSvid >= 1); Preconditions.checkNotNull(builder.mSatelliteClockModel, "SatelliteClockModel cannot be null"); Preconditions.checkNotNull(builder.mSatelliteOrbitModel, @@ -61,17 +61,17 @@ public final class BeidouSatelliteEphemeris implements Parcelable { "SatelliteHealth cannot be null"); Preconditions.checkNotNull(builder.mSatelliteEphemerisTime, "SatelliteEphemerisTime cannot be null"); - mPrn = builder.mPrn; + mSvid = builder.mSvid; mSatelliteClockModel = builder.mSatelliteClockModel; mSatelliteOrbitModel = builder.mSatelliteOrbitModel; mSatelliteHealth = builder.mSatelliteHealth; mSatelliteEphemerisTime = builder.mSatelliteEphemerisTime; } - /** Returns the PRN of the satellite. */ + /** Returns the PRN or satellite ID number for the Beidou satellite. */ @IntRange(from = 1, to = 63) - public int getPrn() { - return mPrn; + public int getSvid() { + return mSvid; } /** Returns the satellite clock model. */ @@ -105,7 +105,7 @@ public final class BeidouSatelliteEphemeris implements Parcelable { public BeidouSatelliteEphemeris createFromParcel(Parcel in) { final BeidouSatelliteEphemeris.Builder beidouSatelliteEphemeris = new Builder() - .setPrn(in.readInt()) + .setSvid(in.readInt()) .setSatelliteClockModel( in.readTypedObject(BeidouSatelliteClockModel.CREATOR)) .setSatelliteOrbitModel( @@ -131,7 +131,7 @@ public final class BeidouSatelliteEphemeris implements Parcelable { @Override public void writeToParcel(@NonNull Parcel parcel, int flags) { - parcel.writeInt(mPrn); + parcel.writeInt(mSvid); parcel.writeTypedObject(mSatelliteClockModel, flags); parcel.writeTypedObject(mSatelliteOrbitModel, flags); parcel.writeTypedObject(mSatelliteHealth, flags); @@ -142,7 +142,7 @@ public final class BeidouSatelliteEphemeris implements Parcelable { @NonNull public String toString() { StringBuilder builder = new StringBuilder("BeidouSatelliteEphemeris["); - builder.append("prn = ").append(mPrn); + builder.append("svid = ").append(mSvid); builder.append(", satelliteClockModel = ").append(mSatelliteClockModel); builder.append(", satelliteOrbitModel = ").append(mSatelliteOrbitModel); builder.append(", satelliteHealth = ").append(mSatelliteHealth); @@ -153,16 +153,16 @@ public final class BeidouSatelliteEphemeris implements Parcelable { /** Builder for {@link BeidouSatelliteEphemeris} */ public static final class Builder { - private int mPrn; + private int mSvid; private BeidouSatelliteClockModel mSatelliteClockModel; private KeplerianOrbitModel mSatelliteOrbitModel; private BeidouSatelliteHealth mSatelliteHealth; private BeidouSatelliteEphemerisTime mSatelliteEphemerisTime; - /** Sets the PRN of the satellite. */ + /** Sets the PRN or satellite ID number for the Beidou satellite. */ @NonNull - public Builder setPrn(int prn) { - mPrn = prn; + public Builder setSvid(int svid) { + mSvid = svid; return this; } diff --git a/location/java/android/location/GalileoSatelliteEphemeris.java b/location/java/android/location/GalileoSatelliteEphemeris.java index 7dd371176267..08218f4bf83e 100644 --- a/location/java/android/location/GalileoSatelliteEphemeris.java +++ b/location/java/android/location/GalileoSatelliteEphemeris.java @@ -43,8 +43,8 @@ import java.util.List; @SystemApi public final class GalileoSatelliteEphemeris implements Parcelable { - /** Satellite code number. */ - private int mSatelliteCodeNumber; + /** PRN or satellite ID number for the Galileo satellite. */ + private int mSvid; /** Array of satellite clock model. */ @NonNull private final List<GalileoSatelliteClockModel> mSatelliteClockModels; @@ -59,8 +59,8 @@ public final class GalileoSatelliteEphemeris implements Parcelable { @NonNull private final SatelliteEphemerisTime mSatelliteEphemerisTime; private GalileoSatelliteEphemeris(Builder builder) { - // Allow satelliteCodeNumber beyond the range to support potential future extensibility. - Preconditions.checkArgument(builder.mSatelliteCodeNumber >= 1); + // Allow svid beyond the range to support potential future extensibility. + Preconditions.checkArgument(builder.mSvid >= 1); Preconditions.checkNotNull( builder.mSatelliteClockModels, "SatelliteClockModels cannot be null"); Preconditions.checkNotNull( @@ -68,7 +68,7 @@ public final class GalileoSatelliteEphemeris implements Parcelable { Preconditions.checkNotNull(builder.mSatelliteHealth, "SatelliteHealth cannot be null"); Preconditions.checkNotNull( builder.mSatelliteEphemerisTime, "SatelliteEphemerisTime cannot be null"); - mSatelliteCodeNumber = builder.mSatelliteCodeNumber; + mSvid = builder.mSvid; final List<GalileoSatelliteClockModel> satelliteClockModels = builder.mSatelliteClockModels; mSatelliteClockModels = Collections.unmodifiableList(new ArrayList<>(satelliteClockModels)); mSatelliteOrbitModel = builder.mSatelliteOrbitModel; @@ -76,10 +76,10 @@ public final class GalileoSatelliteEphemeris implements Parcelable { mSatelliteEphemerisTime = builder.mSatelliteEphemerisTime; } - /** Returns the satellite code number. */ + /** Returns the PRN or satellite ID number for the Galileo satellite. */ @IntRange(from = 1, to = 36) - public int getSatelliteCodeNumber() { - return mSatelliteCodeNumber; + public int getSvid() { + return mSvid; } /** Returns the list of satellite clock models. */ @@ -113,7 +113,7 @@ public final class GalileoSatelliteEphemeris implements Parcelable { public GalileoSatelliteEphemeris createFromParcel(Parcel in) { final GalileoSatelliteEphemeris.Builder galileoSatelliteEphemeris = new Builder(); - galileoSatelliteEphemeris.setSatelliteCodeNumber(in.readInt()); + galileoSatelliteEphemeris.setSvid(in.readInt()); List<GalileoSatelliteClockModel> satelliteClockModels = new ArrayList<>(); in.readTypedList(satelliteClockModels, GalileoSatelliteClockModel.CREATOR); galileoSatelliteEphemeris.setSatelliteClockModels(satelliteClockModels); @@ -139,7 +139,7 @@ public final class GalileoSatelliteEphemeris implements Parcelable { @Override public void writeToParcel(@NonNull Parcel parcel, int flags) { - parcel.writeInt(mSatelliteCodeNumber); + parcel.writeInt(mSvid); parcel.writeTypedList(mSatelliteClockModels, flags); parcel.writeTypedObject(mSatelliteOrbitModel, flags); parcel.writeTypedObject(mSatelliteHealth, flags); @@ -150,7 +150,7 @@ public final class GalileoSatelliteEphemeris implements Parcelable { @NonNull public String toString() { StringBuilder builder = new StringBuilder("GalileoSatelliteEphemeris["); - builder.append("satelliteCodeNumber = ").append(mSatelliteCodeNumber); + builder.append("svid = ").append(mSvid); builder.append(", satelliteClockModels = ").append(mSatelliteClockModels); builder.append(", satelliteOrbitModel = ").append(mSatelliteOrbitModel); builder.append(", satelliteHealth = ").append(mSatelliteHealth); @@ -161,17 +161,16 @@ public final class GalileoSatelliteEphemeris implements Parcelable { /** Builder for {@link GalileoSatelliteEphemeris}. */ public static final class Builder { - private int mSatelliteCodeNumber; + private int mSvid; private List<GalileoSatelliteClockModel> mSatelliteClockModels; private KeplerianOrbitModel mSatelliteOrbitModel; private GalileoSvHealth mSatelliteHealth; private SatelliteEphemerisTime mSatelliteEphemerisTime; - /** Sets the satellite code number. */ + /** Sets the PRN or satellite ID number for the Galileo satellite. */ @NonNull - public Builder setSatelliteCodeNumber( - @IntRange(from = 1, to = 36) int satelliteCodeNumber) { - mSatelliteCodeNumber = satelliteCodeNumber; + public Builder setSvid(@IntRange(from = 1, to = 36) int svid) { + mSvid = svid; return this; } @@ -218,37 +217,107 @@ public final class GalileoSatelliteEphemeris implements Parcelable { * <p>This is defined in Galileo-OS-SIS-ICD 5.1.9.3. */ public static final class GalileoSvHealth implements Parcelable { + + /** + * Galileo data validity status. + * + * @hide + */ + @Retention(RetentionPolicy.SOURCE) + @IntDef({DATA_STATUS_DATA_VALID, DATA_STATUS_WORKING_WITHOUT_GUARANTEE}) + public @interface GalileoDataValidityStatus {} + + /** + * The following enumerations must be in sync with the values declared in + * GalileoHealthDataVaidityType in GalileoSatelliteEphemeris.aidl. + */ + + /** Data validity status is data valid. */ + public static final int DATA_STATUS_DATA_VALID = 0; + + /** Data validity status is working without guarantee. */ + public static final int DATA_STATUS_WORKING_WITHOUT_GUARANTEE = 1; + + /** + * Galileo signal health status. + * + * @hide + */ + @Retention(RetentionPolicy.SOURCE) + @IntDef({ + HEALTH_STATUS_OK, + HEALTH_STATUS_OUT_OF_SERVICE, + HEALTH_STATUS_EXTENDED_OPERATION_MODE, + HEALTH_STATUS_IN_TEST + }) + public @interface GalileoHealthStatus {} + + /** + * The following enumerations must be in sync with the values declared in + * GalileoHealthStatusType in GalileoSatelliteEphemeris.aidl. + */ + + /** Health status is ok. */ + public static final int HEALTH_STATUS_OK = 0; + + /** Health status is out of service. */ + public static final int HEALTH_STATUS_OUT_OF_SERVICE = 1; + + /** Health status is in extended operation mode. */ + public static final int HEALTH_STATUS_EXTENDED_OPERATION_MODE = 2; + + /** Health status is in test mode. */ + public static final int HEALTH_STATUS_IN_TEST = 3; + /** E1-B data validity status. */ - private int mDataValidityStatusE1b; + private @GalileoDataValidityStatus int mDataValidityStatusE1b; /** E1-B/C signal health status. */ - private int mSignalHealthStatusE1b; + private @GalileoHealthStatus int mSignalHealthStatusE1b; /** E5a data validity status. */ - private int mDataValidityStatusE5a; + private @GalileoDataValidityStatus int mDataValidityStatusE5a; /** E5a signal health status. */ - private int mSignalHealthStatusE5a; + private @GalileoHealthStatus int mSignalHealthStatusE5a; /** E5b data validity status. */ - private int mDataValidityStatusE5b; + private @GalileoDataValidityStatus int mDataValidityStatusE5b; /** E5b signal health status. */ - private int mSignalHealthStatusE5b; + private @GalileoHealthStatus int mSignalHealthStatusE5b; private GalileoSvHealth(Builder builder) { Preconditions.checkArgumentInRange( - builder.mDataValidityStatusE1b, 0, 1, "DataValidityStatusE1b"); + builder.mDataValidityStatusE1b, + DATA_STATUS_DATA_VALID, + DATA_STATUS_WORKING_WITHOUT_GUARANTEE, + "DataValidityStatusE1b"); Preconditions.checkArgumentInRange( - builder.mSignalHealthStatusE1b, 0, 3, "SignalHealthStatusE1b"); + builder.mSignalHealthStatusE1b, + HEALTH_STATUS_OK, + HEALTH_STATUS_IN_TEST, + "SignalHealthStatusE1b"); Preconditions.checkArgumentInRange( - builder.mDataValidityStatusE5a, 0, 1, "DataValidityStatusE5a"); + builder.mDataValidityStatusE5a, + DATA_STATUS_DATA_VALID, + DATA_STATUS_WORKING_WITHOUT_GUARANTEE, + "DataValidityStatusE5a"); Preconditions.checkArgumentInRange( - builder.mSignalHealthStatusE5a, 0, 3, "SignalHealthStatusE5a"); + builder.mSignalHealthStatusE5a, + HEALTH_STATUS_OK, + HEALTH_STATUS_IN_TEST, + "SignalHealthStatusE5a"); Preconditions.checkArgumentInRange( - builder.mDataValidityStatusE5b, 0, 1, "DataValidityStatusE5b"); + builder.mDataValidityStatusE5b, + DATA_STATUS_DATA_VALID, + DATA_STATUS_WORKING_WITHOUT_GUARANTEE, + "DataValidityStatusE5b"); Preconditions.checkArgumentInRange( - builder.mSignalHealthStatusE5b, 0, 3, "SignalHealthStatusE5b"); + builder.mSignalHealthStatusE5b, + HEALTH_STATUS_OK, + HEALTH_STATUS_IN_TEST, + "SignalHealthStatusE5b"); mDataValidityStatusE1b = builder.mDataValidityStatusE1b; mSignalHealthStatusE1b = builder.mSignalHealthStatusE1b; mDataValidityStatusE5a = builder.mDataValidityStatusE5a; @@ -258,37 +327,37 @@ public final class GalileoSatelliteEphemeris implements Parcelable { } /** Returns the E1-B data validity status. */ - @IntRange(from = 0, to = 1) + @GalileoDataValidityStatus public int getDataValidityStatusE1b() { return mDataValidityStatusE1b; } /** Returns the E1-B/C signal health status. */ - @IntRange(from = 0, to = 3) + @GalileoHealthStatus public int getSignalHealthStatusE1b() { return mSignalHealthStatusE1b; } /** Returns the E5a data validity status. */ - @IntRange(from = 0, to = 1) + @GalileoDataValidityStatus public int getDataValidityStatusE5a() { return mDataValidityStatusE5a; } /** Returns the E5a signal health status. */ - @IntRange(from = 0, to = 3) + @GalileoHealthStatus public int getSignalHealthStatusE5a() { return mSignalHealthStatusE5a; } /** Returns the E5b data validity status. */ - @IntRange(from = 0, to = 1) + @GalileoDataValidityStatus public int getDataValidityStatusE5b() { return mDataValidityStatusE5b; } /** Returns the E5b signal health status. */ - @IntRange(from = 0, to = 3) + @GalileoHealthStatus public int getSignalHealthStatusE5b() { return mSignalHealthStatusE5b; } @@ -355,7 +424,7 @@ public final class GalileoSatelliteEphemeris implements Parcelable { /** Sets the E1-B data validity status. */ @NonNull public Builder setDataValidityStatusE1b( - @IntRange(from = 0, to = 1) int dataValidityStatusE1b) { + @GalileoDataValidityStatus int dataValidityStatusE1b) { mDataValidityStatusE1b = dataValidityStatusE1b; return this; } @@ -363,7 +432,7 @@ public final class GalileoSatelliteEphemeris implements Parcelable { /** Sets the E1-B/C signal health status. */ @NonNull public Builder setSignalHealthStatusE1b( - @IntRange(from = 0, to = 3) int signalHealthStatusE1b) { + @GalileoHealthStatus int signalHealthStatusE1b) { mSignalHealthStatusE1b = signalHealthStatusE1b; return this; } @@ -371,7 +440,7 @@ public final class GalileoSatelliteEphemeris implements Parcelable { /** Sets the E5a data validity status. */ @NonNull public Builder setDataValidityStatusE5a( - @IntRange(from = 0, to = 1) int dataValidityStatusE5a) { + @GalileoDataValidityStatus int dataValidityStatusE5a) { mDataValidityStatusE5a = dataValidityStatusE5a; return this; } @@ -379,7 +448,7 @@ public final class GalileoSatelliteEphemeris implements Parcelable { /** Sets the E5a signal health status. */ @NonNull public Builder setSignalHealthStatusE5a( - @IntRange(from = 0, to = 3) int signalHealthStatusE5a) { + @GalileoHealthStatus int signalHealthStatusE5a) { mSignalHealthStatusE5a = signalHealthStatusE5a; return this; } @@ -387,7 +456,7 @@ public final class GalileoSatelliteEphemeris implements Parcelable { /** Sets the E5b data validity status. */ @NonNull public Builder setDataValidityStatusE5b( - @IntRange(from = 0, to = 1) int dataValidityStatusE5b) { + @GalileoDataValidityStatus int dataValidityStatusE5b) { mDataValidityStatusE5b = dataValidityStatusE5b; return this; } @@ -395,7 +464,7 @@ public final class GalileoSatelliteEphemeris implements Parcelable { /** Sets the E5b signal health status. */ @NonNull public Builder setSignalHealthStatusE5b( - @IntRange(from = 0, to = 3) int signalHealthStatusE5b) { + @GalileoHealthStatus int signalHealthStatusE5b) { mSignalHealthStatusE5b = signalHealthStatusE5b; return this; } diff --git a/location/java/android/location/GlonassAlmanac.java b/location/java/android/location/GlonassAlmanac.java index 861dc5d257c4..37657435b98a 100644 --- a/location/java/android/location/GlonassAlmanac.java +++ b/location/java/android/location/GlonassAlmanac.java @@ -21,6 +21,7 @@ import android.annotation.FloatRange; import android.annotation.IntRange; import android.annotation.NonNull; import android.annotation.SystemApi; +import android.location.GlonassSatelliteEphemeris.GlonassHealthStatus; import android.location.flags.Flags; import android.os.Parcel; import android.os.Parcelable; @@ -121,11 +122,17 @@ public final class GlonassAlmanac implements Parcelable { /** Slot number. */ private final int mSlotNumber; - /** Satellite health information (0=healthy, 1=unhealthy). */ - private final int mSvHealth; + /** Satellite health status. */ + private final @GlonassHealthStatus int mHealthState; /** Frequency channel number. */ - private final int mFreqChannel; + private final int mFrequencyChannelNumber; + + /** Calendar day number within the four-year period beginning since the leap year. */ + private final int mCalendarDayNumber; + + /** Flag to indicates if the satellite is a GLONASS-M satellitee. */ + private final boolean mGlonassM; /** Coarse value of satellite time correction to GLONASS time in seconds. */ private final double mTau; @@ -148,15 +155,18 @@ public final class GlonassAlmanac implements Parcelable { /** Eccentricity. */ private final double mEccentricity; - /** Argument of perigee in radians. */ + /** Argument of perigee in semi-circles. */ private final double mOmega; private GlonassSatelliteAlmanac(Builder builder) { // Allow slotNumber beyond the range to support potential future extensibility. Preconditions.checkArgument(builder.mSlotNumber >= 1); - // Allow svHealth beyond the range to support potential future extensibility. - Preconditions.checkArgument(builder.mSvHealth >= 0); - Preconditions.checkArgumentInRange(builder.mFreqChannel, 0, 31, "FreqChannel"); + // Allow healthState beyond the range to support potential future extensibility. + Preconditions.checkArgument(builder.mHealthState >= 0); + Preconditions.checkArgumentInRange( + builder.mFrequencyChannelNumber, 0, 31, "FrequencyChannelNumber"); + Preconditions.checkArgumentInRange( + builder.mCalendarDayNumber, 1, 1461, "CalendarDayNumber"); Preconditions.checkArgumentInRange(builder.mTau, -1.9e-3f, 1.9e-3f, "Tau"); Preconditions.checkArgumentInRange(builder.mTLambda, 0.0f, 44100.0f, "TLambda"); Preconditions.checkArgumentInRange(builder.mLambda, -1.0f, 1.0f, "Lambda"); @@ -166,8 +176,10 @@ public final class GlonassAlmanac implements Parcelable { Preconditions.checkArgumentInRange(builder.mEccentricity, 0.0f, 0.03f, "Eccentricity"); Preconditions.checkArgumentInRange(builder.mOmega, -1.0f, 1.0f, "Omega"); mSlotNumber = builder.mSlotNumber; - mSvHealth = builder.mSvHealth; - mFreqChannel = builder.mFreqChannel; + mHealthState = builder.mHealthState; + mFrequencyChannelNumber = builder.mFrequencyChannelNumber; + mCalendarDayNumber = builder.mCalendarDayNumber; + mGlonassM = builder.mGlonassM; mTau = builder.mTau; mTLambda = builder.mTLambda; mLambda = builder.mLambda; @@ -184,16 +196,29 @@ public final class GlonassAlmanac implements Parcelable { return mSlotNumber; } - /** Returns the Satellite health information (0=healthy, 1=unhealthy). */ - @IntRange(from = 0, to = 1) - public int getSvHealth() { - return mSvHealth; + /** Returns the satellite health status. */ + public @GlonassHealthStatus int getHealthState() { + return mHealthState; } /** Returns the frequency channel number. */ @IntRange(from = 0, to = 31) - public int getFreqChannel() { - return mFreqChannel; + public int getFrequencyChannelNumber() { + return mFrequencyChannelNumber; + } + + /** + * Returns the calendar day number within the four-year period beginning since the leap + * year. + */ + @IntRange(from = 1, to = 1461) + public int getCalendarDayNumber() { + return mCalendarDayNumber; + } + + /** Returns true if the satellite is a GLONASS-M satellitee, false otherwise. */ + public boolean isGlonassM() { + return mGlonassM; } /** Returns the coarse value of satellite time correction to GLONASS time in seconds. */ @@ -241,7 +266,7 @@ public final class GlonassAlmanac implements Parcelable { return mEccentricity; } - /** Returns the argument of perigee in radians. */ + /** Returns the Argument of perigee in semi-circles. */ @FloatRange(from = -1.0f, to = 1.0f) public double getOmega() { return mOmega; @@ -255,8 +280,10 @@ public final class GlonassAlmanac implements Parcelable { @Override public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeInt(mSlotNumber); - dest.writeInt(mSvHealth); - dest.writeInt(mFreqChannel); + dest.writeInt(mHealthState); + dest.writeInt(mFrequencyChannelNumber); + dest.writeInt(mCalendarDayNumber); + dest.writeBoolean(mGlonassM); dest.writeDouble(mTau); dest.writeDouble(mTLambda); dest.writeDouble(mLambda); @@ -273,8 +300,10 @@ public final class GlonassAlmanac implements Parcelable { public GlonassSatelliteAlmanac createFromParcel(@NonNull Parcel source) { return new GlonassSatelliteAlmanac.Builder() .setSlotNumber(source.readInt()) - .setSvHealth(source.readInt()) - .setFreqChannel(source.readInt()) + .setHealthState(source.readInt()) + .setFrequencyChannelNumber(source.readInt()) + .setCalendarDayNumber(source.readInt()) + .setGlonassM(source.readBoolean()) .setTau(source.readDouble()) .setTLambda(source.readDouble()) .setLambda(source.readDouble()) @@ -297,8 +326,10 @@ public final class GlonassAlmanac implements Parcelable { public String toString() { StringBuilder builder = new StringBuilder("GlonassSatelliteAlmanac["); builder.append("slotNumber = ").append(mSlotNumber); - builder.append(", svHealth = ").append(mSvHealth); - builder.append(", freqChannel = ").append(mFreqChannel); + builder.append(", healthState = ").append(mHealthState); + builder.append(", frequencyChannelNumber = ").append(mFrequencyChannelNumber); + builder.append(", calendarDayNumber = ").append(mCalendarDayNumber); + builder.append(", glonassM = ").append(mGlonassM); builder.append(", tau = ").append(mTau); builder.append(", tLambda = ").append(mTLambda); builder.append(", lambda = ").append(mLambda); @@ -314,8 +345,10 @@ public final class GlonassAlmanac implements Parcelable { /** Builder for {@link GlonassSatelliteAlmanac}. */ public static final class Builder { private int mSlotNumber; - private int mSvHealth; - private int mFreqChannel; + private int mHealthState; + private int mFrequencyChannelNumber; + private int mCalendarDayNumber; + private boolean mGlonassM; private double mTau; private double mTLambda; private double mLambda; @@ -332,17 +365,36 @@ public final class GlonassAlmanac implements Parcelable { return this; } - /** Sets the Satellite health information (0=healthy, 1=unhealthy). */ + /** Sets the satellite health status. */ @NonNull - public Builder setSvHealth(@IntRange(from = 0, to = 1) int svHealth) { - mSvHealth = svHealth; + public Builder setHealthState(@GlonassHealthStatus int healthState) { + mHealthState = healthState; return this; } /** Sets the frequency channel number. */ @NonNull - public Builder setFreqChannel(@IntRange(from = 0, to = 31) int freqChannel) { - mFreqChannel = freqChannel; + public Builder setFrequencyChannelNumber( + @IntRange(from = 0, to = 31) int frequencyChannelNumber) { + mFrequencyChannelNumber = frequencyChannelNumber; + return this; + } + + /** + * Sets the calendar day number within the four-year period beginning since the leap + * year. + */ + @NonNull + public Builder setCalendarDayNumber( + @IntRange(from = 1, to = 1461) int calendarDayNumber) { + mCalendarDayNumber = calendarDayNumber; + return this; + } + + /** Sets to true if the satellite is a GLONASS-M satellitee, false otherwise. */ + @NonNull + public Builder setGlonassM(boolean isGlonassM) { + this.mGlonassM = isGlonassM; return this; } @@ -401,7 +453,7 @@ public final class GlonassAlmanac implements Parcelable { return this; } - /** Sets the argument of perigee in radians. */ + /** Sets the Argument of perigee in semi-circles. */ @NonNull public Builder setOmega(@FloatRange(from = -1.0f, to = 1.0f) double omega) { mOmega = omega; diff --git a/location/java/android/location/GlonassSatelliteEphemeris.java b/location/java/android/location/GlonassSatelliteEphemeris.java index 77a6ebb50cfb..bee6047f71c8 100644 --- a/location/java/android/location/GlonassSatelliteEphemeris.java +++ b/location/java/android/location/GlonassSatelliteEphemeris.java @@ -18,6 +18,7 @@ package android.location; import android.annotation.FlaggedApi; import android.annotation.FloatRange; +import android.annotation.IntDef; import android.annotation.IntRange; import android.annotation.NonNull; import android.annotation.SystemApi; @@ -27,6 +28,9 @@ import android.os.Parcelable; import com.android.internal.util.Preconditions; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + /** * A class contains ephemeris parameters specific to Glonass satellites. * @@ -38,11 +42,31 @@ import com.android.internal.util.Preconditions; @SystemApi public final class GlonassSatelliteEphemeris implements Parcelable { + /** + * Glonass signal health status. + * + * @hide + */ + @Retention(RetentionPolicy.SOURCE) + @IntDef({HEALTH_STATUS_HEALTHY, HEALTH_STATUS_UNHEALTHY}) + public @interface GlonassHealthStatus {} + + /** + * The following enumerations must be in sync with the values declared in + * GlonassSatelliteEphemeris.aidl + */ + + /** Health status is healthy. */ + public static final int HEALTH_STATUS_HEALTHY = 0; + + /** Health status is unhealthy. */ + public static final int HEALTH_STATUS_UNHEALTHY = 1; + /** L1/Satellite system (R), satellite number (slot number in sat. constellation). */ private final int mSlotNumber; - /** Health state (0=healthy, 1=unhealthy). */ - private final int mHealthState; + /** Health state. */ + private final @GlonassHealthStatus int mHealthState; /** Message frame time in seconds of the UTC week (tk+nd*86400). */ private final double mFrameTimeSeconds; @@ -50,6 +74,15 @@ public final class GlonassSatelliteEphemeris implements Parcelable { /** Age of current information in days (E). */ private final int mAgeInDays; + /** Update and validity interval in minutes (P1) */ + private final int mUpdateIntervalMinutes; + + /** Flag to indicate if the update interval is odd or even (P2). */ + private final boolean mUpdateIntervalOdd; + + /** Flag to indicates if the satellite is a Glonass-M satellitee (M). */ + private final boolean mGlonassM; + /** Satellite clock model. */ @NonNull private final GlonassSatelliteClockModel mSatelliteClockModel; @@ -63,6 +96,8 @@ public final class GlonassSatelliteEphemeris implements Parcelable { Preconditions.checkArgument(builder.mHealthState >= 0); Preconditions.checkArgument(builder.mFrameTimeSeconds >= 0.0f); Preconditions.checkArgumentInRange(builder.mAgeInDays, 0, 31, "AgeInDays"); + Preconditions.checkArgumentInRange( + builder.mUpdateIntervalMinutes, 0, 60, "UpdateIntervalMinutes"); Preconditions.checkNotNull( builder.mSatelliteClockModel, "SatelliteClockModel cannot be null"); Preconditions.checkNotNull( @@ -71,6 +106,9 @@ public final class GlonassSatelliteEphemeris implements Parcelable { mHealthState = builder.mHealthState; mFrameTimeSeconds = builder.mFrameTimeSeconds; mAgeInDays = builder.mAgeInDays; + mUpdateIntervalMinutes = builder.mUpdateIntervalMinutes; + mUpdateIntervalOdd = builder.mUpdateIntervalOdd; + mGlonassM = builder.mGlonassM; mSatelliteClockModel = builder.mSatelliteClockModel; mSatelliteOrbitModel = builder.mSatelliteOrbitModel; } @@ -83,9 +121,8 @@ public final class GlonassSatelliteEphemeris implements Parcelable { return mSlotNumber; } - /** Returns the health state (0=healthy, 1=unhealthy). */ - @IntRange(from = 0, to = 1) - public int getHealthState() { + /** Returns the health state. */ + public @GlonassHealthStatus int getHealthState() { return mHealthState; } @@ -101,6 +138,22 @@ public final class GlonassSatelliteEphemeris implements Parcelable { return mAgeInDays; } + /** Returns the update interval in minutes (P1). */ + @IntRange(from = 0, to = 60) + public int getUpdateIntervalMinutes() { + return mUpdateIntervalMinutes; + } + + /** Returns true if the update interval (P2) is odd, false otherwise (P2). */ + public boolean isUpdateIntervalOdd() { + return mUpdateIntervalOdd; + } + + /** Returns true if the satellite is a Glonass-M satellitee (M), false otherwise. */ + public boolean isGlonassM() { + return mGlonassM; + } + /** Returns the satellite clock model. */ @NonNull public GlonassSatelliteClockModel getSatelliteClockModel() { @@ -124,6 +177,9 @@ public final class GlonassSatelliteEphemeris implements Parcelable { dest.writeInt(mHealthState); dest.writeDouble(mFrameTimeSeconds); dest.writeInt(mAgeInDays); + dest.writeInt(mUpdateIntervalMinutes); + dest.writeBoolean(mUpdateIntervalOdd); + dest.writeBoolean(mGlonassM); dest.writeTypedObject(mSatelliteClockModel, flags); dest.writeTypedObject(mSatelliteOrbitModel, flags); } @@ -137,6 +193,9 @@ public final class GlonassSatelliteEphemeris implements Parcelable { .setHealthState(source.readInt()) .setFrameTimeSeconds(source.readDouble()) .setAgeInDays(source.readInt()) + .setUpdateIntervalMinutes(source.readInt()) + .setUpdateIntervalOdd(source.readBoolean()) + .setGlonassM(source.readBoolean()) .setSatelliteClockModel( source.readTypedObject(GlonassSatelliteClockModel.CREATOR)) .setSatelliteOrbitModel( @@ -158,6 +217,9 @@ public final class GlonassSatelliteEphemeris implements Parcelable { builder.append(", healthState = ").append(mHealthState); builder.append(", frameTimeSeconds = ").append(mFrameTimeSeconds); builder.append(", ageInDays = ").append(mAgeInDays); + builder.append(", updateIntervalMinutes = ").append(mUpdateIntervalMinutes); + builder.append(", isUpdateIntervalOdd = ").append(mUpdateIntervalOdd); + builder.append(", isGlonassM = ").append(mGlonassM); builder.append(", satelliteClockModel = ").append(mSatelliteClockModel); builder.append(", satelliteOrbitModel = ").append(mSatelliteOrbitModel); builder.append("]"); @@ -170,6 +232,9 @@ public final class GlonassSatelliteEphemeris implements Parcelable { private int mHealthState; private double mFrameTimeSeconds; private int mAgeInDays; + private int mUpdateIntervalMinutes; + private boolean mUpdateIntervalOdd; + private boolean mGlonassM; private GlonassSatelliteClockModel mSatelliteClockModel; private GlonassSatelliteOrbitModel mSatelliteOrbitModel; @@ -182,9 +247,9 @@ public final class GlonassSatelliteEphemeris implements Parcelable { return this; } - /** Sets the health state (0=healthy, 1=unhealthy). */ + /** Sets the health state. */ @NonNull - public Builder setHealthState(@IntRange(from = 0, to = 1) int healthState) { + public Builder setHealthState(@GlonassHealthStatus int healthState) { mHealthState = healthState; return this; } @@ -219,6 +284,28 @@ public final class GlonassSatelliteEphemeris implements Parcelable { return this; } + /** Sets the update interval in minutes (P1). */ + @NonNull + public Builder setUpdateIntervalMinutes( + @IntRange(from = 0, to = 60) int updateIntervalMinutes) { + mUpdateIntervalMinutes = updateIntervalMinutes; + return this; + } + + /** Sets to true if the update interval (P2) is odd, false otherwise. */ + @NonNull + public Builder setUpdateIntervalOdd(boolean isUpdateIntervalOdd) { + mUpdateIntervalOdd = isUpdateIntervalOdd; + return this; + } + + /** Sets to true if the satellite is a Glonass-M satellitee (M), false otherwise. */ + @NonNull + public Builder setGlonassM(boolean isGlonassM) { + mGlonassM = isGlonassM; + return this; + } + /** Builds a {@link GlonassSatelliteEphemeris}. */ @NonNull public GlonassSatelliteEphemeris build() { @@ -246,19 +333,36 @@ public final class GlonassSatelliteEphemeris implements Parcelable { /** Frequency bias (+GammaN). */ private final double mFrequencyBias; - /** Frequency number. */ - private final int mFrequencyNumber; + /** Frequency channel number. */ + private final int mFrequencyChannelNumber; + + /* L1/L2 group delay difference in seconds (DeltaTau). */ + private final double mGroupDelayDiffSeconds; + + /** + * Whether the L1/L2 group delay difference in seconds (DeltaTau) is available. + * + * <p>It is set to true if available, otherwise false. + */ + private final boolean mGroupDelayDiffSecondsAvailable; private GlonassSatelliteClockModel(Builder builder) { Preconditions.checkArgument(builder.mTimeOfClockSeconds >= 0); Preconditions.checkArgumentInRange(builder.mClockBias, -0.002f, 0.002f, "ClockBias"); Preconditions.checkArgumentInRange( builder.mFrequencyBias, -9.32e-10f, 9.32e-10f, "FrequencyBias"); - Preconditions.checkArgumentInRange(builder.mFrequencyNumber, -7, 6, "FrequencyNumber"); + Preconditions.checkArgumentInRange( + builder.mFrequencyChannelNumber, -7, 6, "FrequencyChannelNumber"); + if (builder.mGroupDelayDiffSecondsAvailable) { + Preconditions.checkArgumentInRange( + builder.mGroupDelayDiffSeconds, -1.4e-8f, 1.4e-8f, "GroupDelayDiffSeconds"); + } mTimeOfClockSeconds = builder.mTimeOfClockSeconds; mClockBias = builder.mClockBias; mFrequencyBias = builder.mFrequencyBias; - mFrequencyNumber = builder.mFrequencyNumber; + mFrequencyChannelNumber = builder.mFrequencyChannelNumber; + mGroupDelayDiffSeconds = builder.mGroupDelayDiffSeconds; + mGroupDelayDiffSecondsAvailable = builder.mGroupDelayDiffSecondsAvailable; } /** Returns the time of clock in seconds (UTC). */ @@ -279,10 +383,21 @@ public final class GlonassSatelliteEphemeris implements Parcelable { return mFrequencyBias; } - /** Returns the frequency number. */ + /** Returns the Frequency channel number. */ @IntRange(from = -7, to = 6) - public int getFrequencyNumber() { - return mFrequencyNumber; + public int getFrequencyChannelNumber() { + return mFrequencyChannelNumber; + } + + /** Returns the L1/L2 group delay difference in seconds (DeltaTau). */ + @FloatRange(from = -1.4e-8f, to = 1.4e-8f) + public double getGroupDelayDiffSeconds() { + return mGroupDelayDiffSeconds; + } + + /** Returns whether the L1/L2 group delay difference in seconds (DeltaTau) is available. */ + public boolean isGroupDelayDiffSecondsAvailable() { + return mGroupDelayDiffSecondsAvailable; } @Override @@ -295,7 +410,9 @@ public final class GlonassSatelliteEphemeris implements Parcelable { dest.writeLong(mTimeOfClockSeconds); dest.writeDouble(mClockBias); dest.writeDouble(mFrequencyBias); - dest.writeInt(mFrequencyNumber); + dest.writeInt(mFrequencyChannelNumber); + dest.writeDouble(mGroupDelayDiffSeconds); + dest.writeBoolean(mGroupDelayDiffSecondsAvailable); } public static final @NonNull Parcelable.Creator<GlonassSatelliteClockModel> CREATOR = @@ -306,7 +423,9 @@ public final class GlonassSatelliteEphemeris implements Parcelable { .setTimeOfClockSeconds(source.readLong()) .setClockBias(source.readDouble()) .setFrequencyBias(source.readDouble()) - .setFrequencyNumber(source.readInt()) + .setFrequencyChannelNumber(source.readInt()) + .setGroupDelayDiffSeconds(source.readDouble()) + .setGroupDelayDiffSecondsAvailable(source.readBoolean()) .build(); } @@ -323,7 +442,10 @@ public final class GlonassSatelliteEphemeris implements Parcelable { builder.append("timeOfClockSeconds = ").append(mTimeOfClockSeconds); builder.append(", clockBias = ").append(mClockBias); builder.append(", frequencyBias = ").append(mFrequencyBias); - builder.append(", frequencyNumber = ").append(mFrequencyNumber); + builder.append(", frequencyChannelNumber = ").append(mFrequencyChannelNumber); + if (mGroupDelayDiffSecondsAvailable) { + builder.append(", groupDelayDiffSeconds = ").append(mGroupDelayDiffSeconds); + } builder.append("]"); return builder.toString(); } @@ -333,7 +455,9 @@ public final class GlonassSatelliteEphemeris implements Parcelable { private long mTimeOfClockSeconds; private double mClockBias; private double mFrequencyBias; - private int mFrequencyNumber; + private double mGroupDelayDiffSeconds; + private int mFrequencyChannelNumber; + private boolean mGroupDelayDiffSecondsAvailable; /** Sets the time of clock in seconds (UTC). */ @NonNull @@ -357,10 +481,27 @@ public final class GlonassSatelliteEphemeris implements Parcelable { return this; } - /** Sets the frequency number. */ + /** Sets the Frequency channel number. */ + @NonNull + public Builder setFrequencyChannelNumber( + @IntRange(from = -7, to = 6) int frequencyChannelNumber) { + mFrequencyChannelNumber = frequencyChannelNumber; + return this; + } + + /** Sets the L1/L2 group delay difference in seconds (DeltaTau). */ + @NonNull + public Builder setGroupDelayDiffSeconds( + @FloatRange(from = -1.4e-8f, to = 1.4e-8f) double groupDelayDiffSeconds) { + mGroupDelayDiffSeconds = groupDelayDiffSeconds; + return this; + } + + /** Sets whether the L1/L2 group delay difference in seconds (DeltaTau) is available. */ @NonNull - public Builder setFrequencyNumber(@IntRange(from = -7, to = 6) int frequencyNumber) { - mFrequencyNumber = frequencyNumber; + public Builder setGroupDelayDiffSecondsAvailable( + boolean isGroupDelayDiffSecondsAvailable) { + mGroupDelayDiffSecondsAvailable = isGroupDelayDiffSecondsAvailable; return this; } diff --git a/location/java/android/location/GnssAlmanac.java b/location/java/android/location/GnssAlmanac.java index 6466e45a965e..c16ad91f130a 100644 --- a/location/java/android/location/GnssAlmanac.java +++ b/location/java/android/location/GnssAlmanac.java @@ -59,7 +59,7 @@ public final class GnssAlmanac implements Parcelable { * * <p>This is unused for GPS/QZSS/Baidou. */ - private final int mIod; + private final int mIoda; /** * Almanac reference week number. @@ -75,20 +75,27 @@ public final class GnssAlmanac implements Parcelable { /** Almanac reference time in seconds. */ private final int mToaSeconds; + /** + * Flag to indicate if the satelliteAlmanacs contains complete GNSS + * constellation indicated by svid. + */ + private final boolean mCompleteAlmanacProvided; + /** The list of GnssSatelliteAlmanacs. */ @NonNull private final List<GnssSatelliteAlmanac> mGnssSatelliteAlmanacs; private GnssAlmanac(Builder builder) { Preconditions.checkArgument(builder.mIssueDateMillis >= 0); - Preconditions.checkArgument(builder.mIod >= 0); + Preconditions.checkArgument(builder.mIoda >= 0); Preconditions.checkArgument(builder.mWeekNumber >= 0); Preconditions.checkArgumentInRange(builder.mToaSeconds, 0, 604800, "ToaSeconds"); Preconditions.checkNotNull( builder.mGnssSatelliteAlmanacs, "GnssSatelliteAlmanacs cannot be null"); mIssueDateMillis = builder.mIssueDateMillis; - mIod = builder.mIod; + mIoda = builder.mIoda; mWeekNumber = builder.mWeekNumber; mToaSeconds = builder.mToaSeconds; + mCompleteAlmanacProvided = builder.mCompleteAlmanacProvided; mGnssSatelliteAlmanacs = Collections.unmodifiableList(new ArrayList<>(builder.mGnssSatelliteAlmanacs)); } @@ -101,8 +108,8 @@ public final class GnssAlmanac implements Parcelable { /** Returns the almanac issue of data. */ @IntRange(from = 0) - public int getIod() { - return mIod; + public int getIoda() { + return mIoda; } /** @@ -125,6 +132,14 @@ public final class GnssAlmanac implements Parcelable { return mToaSeconds; } + /** + * Returns the flag to indicate if the satelliteAlmanacs contains complete GNSS + * constellation indicated by svid. + */ + public boolean isCompleteAlmanacProvided() { + return mCompleteAlmanacProvided; + } + /** Returns the list of GnssSatelliteAlmanacs. */ @NonNull public List<GnssSatelliteAlmanac> getGnssSatelliteAlmanacs() { @@ -139,9 +154,10 @@ public final class GnssAlmanac implements Parcelable { @Override public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeLong(mIssueDateMillis); - dest.writeInt(mIod); + dest.writeInt(mIoda); dest.writeInt(mWeekNumber); dest.writeInt(mToaSeconds); + dest.writeBoolean(mCompleteAlmanacProvided); dest.writeTypedList(mGnssSatelliteAlmanacs); } @@ -151,9 +167,10 @@ public final class GnssAlmanac implements Parcelable { public GnssAlmanac createFromParcel(Parcel in) { GnssAlmanac.Builder gnssAlmanac = new GnssAlmanac.Builder(); gnssAlmanac.setIssueDateMillis(in.readLong()); - gnssAlmanac.setIod(in.readInt()); + gnssAlmanac.setIoda(in.readInt()); gnssAlmanac.setWeekNumber(in.readInt()); gnssAlmanac.setToaSeconds(in.readInt()); + gnssAlmanac.setCompleteAlmanacProvided(in.readBoolean()); List<GnssSatelliteAlmanac> satelliteAlmanacs = new ArrayList<>(); in.readTypedList(satelliteAlmanacs, GnssSatelliteAlmanac.CREATOR); gnssAlmanac.setGnssSatelliteAlmanacs(satelliteAlmanacs); @@ -170,9 +187,10 @@ public final class GnssAlmanac implements Parcelable { public String toString() { StringBuilder builder = new StringBuilder("GnssAlmanac["); builder.append("issueDateMillis=").append(mIssueDateMillis); - builder.append(", iod=").append(mIod); + builder.append(", ioda=").append(mIoda); builder.append(", weekNumber=").append(mWeekNumber); builder.append(", toaSeconds=").append(mToaSeconds); + builder.append(", completeAlmanacProvided=").append(mCompleteAlmanacProvided); builder.append(", satelliteAlmanacs=").append(mGnssSatelliteAlmanacs); builder.append("]"); return builder.toString(); @@ -181,9 +199,10 @@ public final class GnssAlmanac implements Parcelable { /** Builder for {@link GnssAlmanac}. */ public static final class Builder { private long mIssueDateMillis; - private int mIod; + private int mIoda; private int mWeekNumber; private int mToaSeconds; + private boolean mCompleteAlmanacProvided; private List<GnssSatelliteAlmanac> mGnssSatelliteAlmanacs; /** Sets the almanac issue date in milliseconds (UTC). */ @@ -195,8 +214,8 @@ public final class GnssAlmanac implements Parcelable { /** Sets the almanac issue of data. */ @NonNull - public Builder setIod(@IntRange(from = 0) int iod) { - mIod = iod; + public Builder setIoda(@IntRange(from = 0) int ioda) { + mIoda = ioda; return this; } @@ -222,6 +241,16 @@ public final class GnssAlmanac implements Parcelable { return this; } + /** + * Sets to true if the satelliteAlmanacs contains complete GNSS + * constellation indicated by svid, false otherwise. + */ + @NonNull + public Builder setCompleteAlmanacProvided(boolean isCompleteAlmanacProvided) { + this.mCompleteAlmanacProvided = isCompleteAlmanacProvided; + return this; + } + /** Sets the list of GnssSatelliteAlmanacs. */ @NonNull public Builder setGnssSatelliteAlmanacs( @@ -249,7 +278,7 @@ public final class GnssAlmanac implements Parcelable { * <p>For Galileo, this is defined in Galileo-OS-SIS-ICD-v2.1 section 5.1.10. */ public static final class GnssSatelliteAlmanac implements Parcelable { - /** The PRN number of the GNSS satellite. */ + /** The PRN or satellite ID number for the GNSS satellite. */ private final int mSvid; /** @@ -332,7 +361,7 @@ public final class GnssAlmanac implements Parcelable { mAf1 = builder.mAf1; } - /** Returns the PRN number of the GNSS satellite. */ + /** Returns the PRN or satellite ID number of the GNSS satellite. */ @IntRange(from = 1) public int getSvid() { return mSvid; @@ -503,7 +532,7 @@ public final class GnssAlmanac implements Parcelable { private double mAf0; private double mAf1; - /** Sets the PRN number of the GNSS satellite. */ + /** Sets the PRN or satellite ID number of the GNSS satellite. */ @NonNull public Builder setSvid(@IntRange(from = 1) int svid) { mSvid = svid; diff --git a/location/java/android/location/GpsSatelliteEphemeris.java b/location/java/android/location/GpsSatelliteEphemeris.java index ec6bc59dc69c..0abdc30d2f19 100644 --- a/location/java/android/location/GpsSatelliteEphemeris.java +++ b/location/java/android/location/GpsSatelliteEphemeris.java @@ -37,8 +37,8 @@ import com.android.internal.util.Preconditions; @FlaggedApi(Flags.FLAG_GNSS_ASSISTANCE_INTERFACE) @SystemApi public final class GpsSatelliteEphemeris implements Parcelable { - /** Satellite PRN */ - private final int mPrn; + /** PRN or satellite ID number for the GPS satellite. */ + private final int mSvid; /** L2 parameters. */ @NonNull private final GpsL2Params mGpsL2Params; @@ -56,8 +56,8 @@ public final class GpsSatelliteEphemeris implements Parcelable { @NonNull private final SatelliteEphemerisTime mSatelliteEphemerisTime; private GpsSatelliteEphemeris(Builder builder) { - // Allow PRN beyond the range to support potential future extensibility. - Preconditions.checkArgument(builder.mPrn >= 1); + // Allow svid beyond the range to support potential future extensibility. + Preconditions.checkArgument(builder.mSvid >= 1); Preconditions.checkNotNull(builder.mGpsL2Params, "GPSL2Params cannot be null"); Preconditions.checkNotNull(builder.mSatelliteClockModel, "SatelliteClockModel cannot be null"); @@ -67,7 +67,7 @@ public final class GpsSatelliteEphemeris implements Parcelable { "SatelliteHealth cannot be null"); Preconditions.checkNotNull(builder.mSatelliteEphemerisTime, "SatelliteEphemerisTime cannot be null"); - mPrn = builder.mPrn; + mSvid = builder.mSvid; mGpsL2Params = builder.mGpsL2Params; mSatelliteClockModel = builder.mSatelliteClockModel; mSatelliteOrbitModel = builder.mSatelliteOrbitModel; @@ -75,10 +75,10 @@ public final class GpsSatelliteEphemeris implements Parcelable { mSatelliteEphemerisTime = builder.mSatelliteEphemerisTime; } - /** Returns the PRN of the satellite. */ + /** Returns the svid of the satellite. */ @IntRange(from = 1, to = 32) - public int getPrn() { - return mPrn; + public int getSvid() { + return mSvid; } /** Returns the L2 parameters of the satellite. */ @@ -118,7 +118,7 @@ public final class GpsSatelliteEphemeris implements Parcelable { public GpsSatelliteEphemeris createFromParcel(Parcel in) { final GpsSatelliteEphemeris.Builder gpsSatelliteEphemeris = new Builder() - .setPrn(in.readInt()) + .setSvid(in.readInt()) .setGpsL2Params(in.readTypedObject(GpsL2Params.CREATOR)) .setSatelliteClockModel( in.readTypedObject(GpsSatelliteClockModel.CREATOR)) @@ -144,7 +144,7 @@ public final class GpsSatelliteEphemeris implements Parcelable { @Override public void writeToParcel(@NonNull Parcel parcel, int flags) { - parcel.writeInt(mPrn); + parcel.writeInt(mSvid); parcel.writeTypedObject(mGpsL2Params, flags); parcel.writeTypedObject(mSatelliteClockModel, flags); parcel.writeTypedObject(mSatelliteOrbitModel, flags); @@ -156,7 +156,7 @@ public final class GpsSatelliteEphemeris implements Parcelable { @NonNull public String toString() { StringBuilder builder = new StringBuilder("GpsSatelliteEphemeris["); - builder.append("prn = ").append(mPrn); + builder.append("Svid = ").append(mSvid); builder.append(", gpsL2Params = ").append(mGpsL2Params); builder.append(", satelliteClockModel = ").append(mSatelliteClockModel); builder.append(", satelliteOrbitModel = ").append(mSatelliteOrbitModel); @@ -168,17 +168,17 @@ public final class GpsSatelliteEphemeris implements Parcelable { /** Builder for {@link GpsSatelliteEphemeris} */ public static final class Builder { - private int mPrn = 0; + private int mSvid = 0; private GpsL2Params mGpsL2Params; private GpsSatelliteClockModel mSatelliteClockModel; private KeplerianOrbitModel mSatelliteOrbitModel; private GpsSatelliteHealth mSatelliteHealth; private SatelliteEphemerisTime mSatelliteEphemerisTime; - /** Sets the PRN of the satellite. */ + /** Sets the PRN or satellite ID number for the GPS satellite.. */ @NonNull - public Builder setPrn(@IntRange(from = 1, to = 32) int prn) { - mPrn = prn; + public Builder setSvid(@IntRange(from = 1, to = 32) int svid) { + mSvid = svid; return this; } diff --git a/location/java/android/location/QzssSatelliteEphemeris.java b/location/java/android/location/QzssSatelliteEphemeris.java index 96203d9588c8..dd9f408f53be 100644 --- a/location/java/android/location/QzssSatelliteEphemeris.java +++ b/location/java/android/location/QzssSatelliteEphemeris.java @@ -39,8 +39,8 @@ import com.android.internal.util.Preconditions; @FlaggedApi(Flags.FLAG_GNSS_ASSISTANCE_INTERFACE) @SystemApi public final class QzssSatelliteEphemeris implements Parcelable { - /** Satellite PRN. */ - private final int mPrn; + /** PRN or satellite ID number for the Qzss satellite. */ + private final int mSvid; /** L2 parameters. */ @NonNull private final GpsL2Params mGpsL2Params; @@ -57,10 +57,10 @@ public final class QzssSatelliteEphemeris implements Parcelable { /** Ephemeris time. */ @NonNull private final SatelliteEphemerisTime mSatelliteEphemerisTime; - /** Returns the PRN of the satellite. */ + /** Returns the PRN or satellite ID number for the Qzss satellite. */ @IntRange(from = 183, to = 206) - public int getPrn() { - return mPrn; + public int getSvid() { + return mSvid; } /** Returns the L2 parameters of the satellite. */ @@ -95,7 +95,7 @@ public final class QzssSatelliteEphemeris implements Parcelable { @Override public void writeToParcel(@NonNull Parcel parcel, int flags) { - parcel.writeInt(mPrn); + parcel.writeInt(mSvid); parcel.writeTypedObject(mGpsL2Params, flags); parcel.writeTypedObject(mSatelliteClockModel, flags); parcel.writeTypedObject(mSatelliteOrbitModel, flags); @@ -104,8 +104,8 @@ public final class QzssSatelliteEphemeris implements Parcelable { } private QzssSatelliteEphemeris(Builder builder) { - // Allow PRN beyond the range to support potential future extensibility. - Preconditions.checkArgument(builder.mPrn >= 1); + // Allow Svid beyond the range to support potential future extensibility. + Preconditions.checkArgument(builder.mSvid >= 1); Preconditions.checkNotNull(builder.mGpsL2Params, "GpsL2Params cannot be null"); Preconditions.checkNotNull(builder.mSatelliteClockModel, "SatelliteClockModel cannot be null"); @@ -115,7 +115,7 @@ public final class QzssSatelliteEphemeris implements Parcelable { "SatelliteHealth cannot be null"); Preconditions.checkNotNull(builder.mSatelliteEphemerisTime, "SatelliteEphemerisTime cannot be null"); - mPrn = builder.mPrn; + mSvid = builder.mSvid; mGpsL2Params = builder.mGpsL2Params; mSatelliteClockModel = builder.mSatelliteClockModel; mSatelliteOrbitModel = builder.mSatelliteOrbitModel; @@ -130,7 +130,7 @@ public final class QzssSatelliteEphemeris implements Parcelable { public QzssSatelliteEphemeris createFromParcel(Parcel in) { final QzssSatelliteEphemeris.Builder qzssSatelliteEphemeris = new Builder() - .setPrn(in.readInt()) + .setSvid(in.readInt()) .setGpsL2Params(in.readTypedObject(GpsL2Params.CREATOR)) .setSatelliteClockModel( in.readTypedObject(GpsSatelliteClockModel.CREATOR)) @@ -158,7 +158,7 @@ public final class QzssSatelliteEphemeris implements Parcelable { @NonNull public String toString() { StringBuilder builder = new StringBuilder("QzssSatelliteEphemeris["); - builder.append("prn=").append(mPrn); + builder.append("Svid=").append(mSvid); builder.append(", gpsL2Params=").append(mGpsL2Params); builder.append(", satelliteClockModel=").append(mSatelliteClockModel); builder.append(", satelliteOrbitModel=").append(mSatelliteOrbitModel); @@ -170,17 +170,17 @@ public final class QzssSatelliteEphemeris implements Parcelable { /** Builder for {@link QzssSatelliteEphemeris}. */ public static final class Builder { - private int mPrn; + private int mSvid; private GpsL2Params mGpsL2Params; private GpsSatelliteClockModel mSatelliteClockModel; private KeplerianOrbitModel mSatelliteOrbitModel; private GpsSatelliteHealth mSatelliteHealth; private SatelliteEphemerisTime mSatelliteEphemerisTime; - /** Sets the PRN of the satellite. */ + /** Sets the PRN or satellite ID number for the Qzss satellite. */ @NonNull - public Builder setPrn(@IntRange(from = 183, to = 206) int prn) { - mPrn = prn; + public Builder setSvid(@IntRange(from = 183, to = 206) int svid) { + mSvid = svid; return this; } |