discord-jadx/app/src/main/java/androidx/core/location/GpsStatusWrapper.java

178 lines
5.8 KiB
Java

package androidx.core.location;
import android.location.GpsSatellite;
import android.location.GpsStatus;
import android.os.Build;
import androidx.annotation.GuardedBy;
import androidx.annotation.RestrictTo;
import androidx.core.util.Preconditions;
import java.util.Iterator;
@RestrictTo({RestrictTo.Scope.LIBRARY})
public class GpsStatusWrapper extends GnssStatusCompat {
private static final int BEIDOU_PRN_COUNT = 35;
private static final int BEIDOU_PRN_OFFSET = 200;
private static final int GLONASS_PRN_COUNT = 24;
private static final int GLONASS_PRN_OFFSET = 64;
private static final int GPS_PRN_COUNT = 32;
private static final int GPS_PRN_OFFSET = 0;
private static final int QZSS_SVID_MAX = 200;
private static final int QZSS_SVID_MIN = 193;
private static final int SBAS_PRN_MAX = 64;
private static final int SBAS_PRN_MIN = 33;
private static final int SBAS_PRN_OFFSET = -87;
@GuardedBy("mWrapped")
private Iterator<GpsSatellite> mCachedIterator;
@GuardedBy("mWrapped")
private int mCachedIteratorPosition;
@GuardedBy("mWrapped")
private GpsSatellite mCachedSatellite;
@GuardedBy("mWrapped")
private int mCachedSatelliteCount = -1;
private final GpsStatus mWrapped;
public GpsStatusWrapper(GpsStatus gpsStatus) {
GpsStatus gpsStatus2 = (GpsStatus) Preconditions.checkNotNull(gpsStatus);
this.mWrapped = gpsStatus2;
this.mCachedIterator = gpsStatus2.getSatellites().iterator();
this.mCachedIteratorPosition = -1;
this.mCachedSatellite = null;
}
private static int getConstellationFromPrn(int i) {
if (i > 0 && i <= 32) {
return 1;
}
if (i >= 33 && i <= 64) {
return 2;
}
if (i > 64 && i <= 88) {
return 3;
}
if (i <= 200 || i > 235) {
return (i < QZSS_SVID_MIN || i > 200) ? 0 : 4;
}
return 5;
}
private GpsSatellite getSatellite(int i) {
GpsSatellite gpsSatellite;
synchronized (this.mWrapped) {
if (i < this.mCachedIteratorPosition) {
this.mCachedIterator = this.mWrapped.getSatellites().iterator();
this.mCachedIteratorPosition = -1;
}
while (true) {
int i2 = this.mCachedIteratorPosition;
if (i2 >= i) {
break;
}
this.mCachedIteratorPosition = i2 + 1;
if (!this.mCachedIterator.hasNext()) {
this.mCachedSatellite = null;
break;
}
this.mCachedSatellite = this.mCachedIterator.next();
}
gpsSatellite = this.mCachedSatellite;
}
return (GpsSatellite) Preconditions.checkNotNull(gpsSatellite);
}
private static int getSvidFromPrn(int i) {
int constellationFromPrn = getConstellationFromPrn(i);
return constellationFromPrn != 2 ? constellationFromPrn != 3 ? constellationFromPrn != 5 ? i : i - 200 : i - 64 : i + 87;
}
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof GpsStatusWrapper)) {
return false;
}
return this.mWrapped.equals(((GpsStatusWrapper) obj).mWrapped);
}
@Override // androidx.core.location.GnssStatusCompat
public float getAzimuthDegrees(int i) {
return getSatellite(i).getAzimuth();
}
@Override // androidx.core.location.GnssStatusCompat
public float getBasebandCn0DbHz(int i) {
throw new UnsupportedOperationException();
}
@Override // androidx.core.location.GnssStatusCompat
public float getCarrierFrequencyHz(int i) {
throw new UnsupportedOperationException();
}
@Override // androidx.core.location.GnssStatusCompat
public float getCn0DbHz(int i) {
return getSatellite(i).getSnr();
}
@Override // androidx.core.location.GnssStatusCompat
public int getConstellationType(int i) {
if (Build.VERSION.SDK_INT < 24) {
return 1;
}
return getConstellationFromPrn(getSatellite(i).getPrn());
}
@Override // androidx.core.location.GnssStatusCompat
public float getElevationDegrees(int i) {
return getSatellite(i).getElevation();
}
@Override // androidx.core.location.GnssStatusCompat
public int getSatelliteCount() {
int i;
synchronized (this.mWrapped) {
if (this.mCachedSatelliteCount == -1) {
for (GpsSatellite gpsSatellite : this.mWrapped.getSatellites()) {
this.mCachedSatelliteCount++;
}
this.mCachedSatelliteCount++;
}
i = this.mCachedSatelliteCount;
}
return i;
}
@Override // androidx.core.location.GnssStatusCompat
public int getSvid(int i) {
return Build.VERSION.SDK_INT < 24 ? getSatellite(i).getPrn() : getSvidFromPrn(getSatellite(i).getPrn());
}
@Override // androidx.core.location.GnssStatusCompat
public boolean hasAlmanacData(int i) {
return getSatellite(i).hasAlmanac();
}
@Override // androidx.core.location.GnssStatusCompat
public boolean hasBasebandCn0DbHz(int i) {
return false;
}
@Override // androidx.core.location.GnssStatusCompat
public boolean hasCarrierFrequencyHz(int i) {
return false;
}
@Override // androidx.core.location.GnssStatusCompat
public boolean hasEphemerisData(int i) {
return getSatellite(i).hasEphemeris();
}
public int hashCode() {
return this.mWrapped.hashCode();
}
@Override // androidx.core.location.GnssStatusCompat
public boolean usedInFix(int i) {
return getSatellite(i).usedInFix();
}
}