1/*
2 * Copyright (C) 2008 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package android.location;
18
19/**
20 * This class represents the current state of a GPS satellite.
21 *
22 * This class is used in conjunction with the {@link GpsStatus} class.
23 *
24 * @deprecated use {@link GnssStatus} and {@link GnssStatus.Callback}.
25 */
26@Deprecated
27public final class GpsSatellite {
28    /* These package private values are modified by the GpsStatus class */
29    boolean mValid;
30    boolean mHasEphemeris;
31    boolean mHasAlmanac;
32    boolean mUsedInFix;
33    int mPrn;
34    float mSnr;
35    float mElevation;
36    float mAzimuth;
37
38    GpsSatellite(int prn) {
39        mPrn = prn;
40    }
41
42    /**
43     * Used by {@link LocationManager#getGpsStatus} to copy LocationManager's
44     * cached GpsStatus instance to the client's copy.
45     */
46    void setStatus(GpsSatellite satellite) {
47        if (satellite == null) {
48            mValid = false;
49        } else {
50            mValid = satellite.mValid;
51            mHasEphemeris = satellite.mHasEphemeris;
52            mHasAlmanac = satellite.mHasAlmanac;
53            mUsedInFix = satellite.mUsedInFix;
54            mSnr = satellite.mSnr;
55            mElevation = satellite.mElevation;
56            mAzimuth = satellite.mAzimuth;
57        }
58    }
59
60    /**
61     * Returns the PRN (pseudo-random number) for the satellite.
62     *
63     * @return PRN number
64     */
65    public int getPrn() {
66        return mPrn;
67    }
68
69    /**
70     * Returns the signal to noise ratio for the satellite.
71     *
72     * @return the signal to noise ratio
73     */
74    public float getSnr() {
75        return mSnr;
76    }
77
78    /**
79     * Returns the elevation of the satellite in degrees.
80     * The elevation can vary between 0 and 90.
81     *
82     * @return the elevation in degrees
83     */
84    public float getElevation() {
85        return mElevation;
86    }
87
88    /**
89     * Returns the azimuth of the satellite in degrees.
90     * The azimuth can vary between 0 and 360.
91     *
92     * @return the azimuth in degrees
93     */
94    public float getAzimuth() {
95        return mAzimuth;
96    }
97
98    /**
99     * Returns true if the GPS engine has ephemeris data for the satellite.
100     *
101     * @return true if the satellite has ephemeris data
102     */
103    public boolean hasEphemeris() {
104        return mHasEphemeris;
105    }
106
107    /**
108     * Returns true if the GPS engine has almanac data for the satellite.
109     *
110     * @return true if the satellite has almanac data
111     */
112    public boolean hasAlmanac() {
113        return mHasAlmanac;
114    }
115
116    /**
117     * Returns true if the satellite was used by the GPS engine when
118     * calculating the most recent GPS fix.
119     *
120     * @return true if the satellite was used to compute the most recent fix.
121     */
122    public boolean usedInFix() {
123        return mUsedInFix;
124    }
125}
126