Loading telephony/java/android/telephony/CellIdentityCdma.java +18 −2 Original line number Diff line number Diff line Loading @@ -103,8 +103,12 @@ public final class CellIdentityCdma extends CellIdentity { mNetworkId = nid; mSystemId = sid; mBasestationId = bid; if (!isNullIsland(lat, lon)) { mLongitude = lon; mLatitude = lat; } else { mLongitude = mLatitude = Integer.MAX_VALUE; } mAlphaLong = alphal; mAlphaShort = alphas; } Loading @@ -118,6 +122,18 @@ public final class CellIdentityCdma extends CellIdentity { return new CellIdentityCdma(this); } /** * Take the latitude and longitude in 1/4 seconds and see if * the reported location is on Null Island. * * @return whether the reported Lat/Long are for Null Island * * @hide */ private boolean isNullIsland(int lat, int lon) { return Math.abs(lat) <= 1 && Math.abs(lon) <= 1; } /** * @return Network Id 0..65535, Integer.MAX_VALUE if unknown */ Loading telephony/java/android/telephony/CellSignalStrengthCdma.java +32 −17 Original line number Diff line number Diff line Loading @@ -41,14 +41,36 @@ public final class CellSignalStrengthCdma extends CellSignalStrength implements setDefaultValues(); } /** @hide */ /** * SignalStrength constructor for input from the HAL. * * Note that values received from the HAL require coersion to be compatible here. All values * reported through IRadio are the negative of the actual values (which results in a positive * input to this method. * * <p>Note that this HAL is inconsistent with UMTS-based radio techs as the value indicating * that a field is unreported is negative, rather than a large(r) positive number. * <p>Also note that to keep the public-facing methods of this class consistent with others, * unreported values are coerced to Integer.MAX_VALUE rather than left as -1, which is * a departure from SignalStrength, which is stuck with the values it currently reports. * * @param cdmaDbm negative of the CDMA signal strength value or -1 if invalid. * @param cdmaEcio negative of the CDMA pilot/noise ratio or -1 if invalid. * @param evdoDbm negative of the EvDO signal strength value or -1 if invalid. * @param evdoEcio negative of the EvDO pilot/noise ratio or -1 if invalid. * @param evdoSnr an SNR value 0..8 or -1 if invalid. * @hide */ public CellSignalStrengthCdma(int cdmaDbm, int cdmaEcio, int evdoDbm, int evdoEcio, int evdoSnr) { mCdmaDbm = cdmaDbm; mCdmaEcio = cdmaEcio; mEvdoDbm = evdoDbm; mEvdoEcio = evdoEcio; mEvdoSnr = evdoSnr; // The values here were lifted from SignalStrength.validateInput() // FIXME: Combine all checking and setting logic between this and SignalStrength. mCdmaDbm = ((cdmaDbm > 0) && (cdmaDbm < 120)) ? -cdmaDbm : Integer.MAX_VALUE; mCdmaEcio = ((cdmaEcio > 0) && (cdmaEcio < 160)) ? -cdmaEcio : Integer.MAX_VALUE; mEvdoDbm = ((evdoDbm > 0) && (evdoDbm < 120)) ? -evdoDbm : Integer.MAX_VALUE; mEvdoEcio = ((evdoEcio > 0) && (evdoEcio < 160)) ? -evdoEcio : Integer.MAX_VALUE; mEvdoSnr = ((evdoSnr > 0) && (evdoSnr <= 8)) ? evdoSnr : Integer.MAX_VALUE; } /** @hide */ Loading Loading @@ -303,13 +325,10 @@ public final class CellSignalStrengthCdma extends CellSignalStrength implements @Override public void writeToParcel(Parcel dest, int flags) { if (DBG) log("writeToParcel(Parcel, int): " + toString()); // Need to multiply CdmaDbm, CdmaEcio, EvdoDbm and EvdoEcio by -1 // to ensure consistency when reading values written here // unless the value is invalid dest.writeInt(mCdmaDbm * (mCdmaDbm != Integer.MAX_VALUE ? -1 : 1)); dest.writeInt(mCdmaEcio * (mCdmaEcio != Integer.MAX_VALUE ? -1 : 1)); dest.writeInt(mEvdoDbm * (mEvdoDbm != Integer.MAX_VALUE ? -1 : 1)); dest.writeInt(mEvdoEcio * (mEvdoEcio != Integer.MAX_VALUE ? -1 : 1)); dest.writeInt(mCdmaDbm); dest.writeInt(mCdmaEcio); dest.writeInt(mEvdoDbm); dest.writeInt(mEvdoEcio); dest.writeInt(mEvdoSnr); } Loading @@ -322,13 +341,9 @@ public final class CellSignalStrengthCdma extends CellSignalStrength implements // the parcel as positive values. // Need to convert into negative values unless the value is invalid mCdmaDbm = in.readInt(); if (mCdmaDbm != Integer.MAX_VALUE) mCdmaDbm *= -1; mCdmaEcio = in.readInt(); if (mCdmaEcio != Integer.MAX_VALUE) mCdmaEcio *= -1; mEvdoDbm = in.readInt(); if (mEvdoDbm != Integer.MAX_VALUE) mEvdoDbm *= -1; mEvdoEcio = in.readInt(); if (mEvdoEcio != Integer.MAX_VALUE) mEvdoEcio *= -1; mEvdoSnr = in.readInt(); if (DBG) log("CellSignalStrengthCdma(Parcel): " + toString()); } Loading telephony/java/android/telephony/SignalStrength.java +3 −3 Original line number Diff line number Diff line Loading @@ -319,11 +319,11 @@ public class SignalStrength implements Parcelable { // BER no change; mCdmaDbm = mCdmaDbm > 0 ? -mCdmaDbm : -120; mCdmaEcio = (mCdmaEcio > 0) ? -mCdmaEcio : -160; mCdmaEcio = (mCdmaEcio >= 0) ? -mCdmaEcio : -160; mEvdoDbm = (mEvdoDbm > 0) ? -mEvdoDbm : -120; mEvdoEcio = (mEvdoEcio >= 0) ? -mEvdoEcio : -1; mEvdoSnr = ((mEvdoSnr > 0) && (mEvdoSnr <= 8)) ? mEvdoSnr : -1; mEvdoEcio = (mEvdoEcio >= 0) ? -mEvdoEcio : -160; mEvdoSnr = ((mEvdoSnr >= 0) && (mEvdoSnr <= 8)) ? mEvdoSnr : -1; // TS 36.214 Physical Layer Section 5.1.3, TS 36.331 RRC mLteSignalStrength = (mLteSignalStrength >= 0) ? mLteSignalStrength : 99; Loading Loading
telephony/java/android/telephony/CellIdentityCdma.java +18 −2 Original line number Diff line number Diff line Loading @@ -103,8 +103,12 @@ public final class CellIdentityCdma extends CellIdentity { mNetworkId = nid; mSystemId = sid; mBasestationId = bid; if (!isNullIsland(lat, lon)) { mLongitude = lon; mLatitude = lat; } else { mLongitude = mLatitude = Integer.MAX_VALUE; } mAlphaLong = alphal; mAlphaShort = alphas; } Loading @@ -118,6 +122,18 @@ public final class CellIdentityCdma extends CellIdentity { return new CellIdentityCdma(this); } /** * Take the latitude and longitude in 1/4 seconds and see if * the reported location is on Null Island. * * @return whether the reported Lat/Long are for Null Island * * @hide */ private boolean isNullIsland(int lat, int lon) { return Math.abs(lat) <= 1 && Math.abs(lon) <= 1; } /** * @return Network Id 0..65535, Integer.MAX_VALUE if unknown */ Loading
telephony/java/android/telephony/CellSignalStrengthCdma.java +32 −17 Original line number Diff line number Diff line Loading @@ -41,14 +41,36 @@ public final class CellSignalStrengthCdma extends CellSignalStrength implements setDefaultValues(); } /** @hide */ /** * SignalStrength constructor for input from the HAL. * * Note that values received from the HAL require coersion to be compatible here. All values * reported through IRadio are the negative of the actual values (which results in a positive * input to this method. * * <p>Note that this HAL is inconsistent with UMTS-based radio techs as the value indicating * that a field is unreported is negative, rather than a large(r) positive number. * <p>Also note that to keep the public-facing methods of this class consistent with others, * unreported values are coerced to Integer.MAX_VALUE rather than left as -1, which is * a departure from SignalStrength, which is stuck with the values it currently reports. * * @param cdmaDbm negative of the CDMA signal strength value or -1 if invalid. * @param cdmaEcio negative of the CDMA pilot/noise ratio or -1 if invalid. * @param evdoDbm negative of the EvDO signal strength value or -1 if invalid. * @param evdoEcio negative of the EvDO pilot/noise ratio or -1 if invalid. * @param evdoSnr an SNR value 0..8 or -1 if invalid. * @hide */ public CellSignalStrengthCdma(int cdmaDbm, int cdmaEcio, int evdoDbm, int evdoEcio, int evdoSnr) { mCdmaDbm = cdmaDbm; mCdmaEcio = cdmaEcio; mEvdoDbm = evdoDbm; mEvdoEcio = evdoEcio; mEvdoSnr = evdoSnr; // The values here were lifted from SignalStrength.validateInput() // FIXME: Combine all checking and setting logic between this and SignalStrength. mCdmaDbm = ((cdmaDbm > 0) && (cdmaDbm < 120)) ? -cdmaDbm : Integer.MAX_VALUE; mCdmaEcio = ((cdmaEcio > 0) && (cdmaEcio < 160)) ? -cdmaEcio : Integer.MAX_VALUE; mEvdoDbm = ((evdoDbm > 0) && (evdoDbm < 120)) ? -evdoDbm : Integer.MAX_VALUE; mEvdoEcio = ((evdoEcio > 0) && (evdoEcio < 160)) ? -evdoEcio : Integer.MAX_VALUE; mEvdoSnr = ((evdoSnr > 0) && (evdoSnr <= 8)) ? evdoSnr : Integer.MAX_VALUE; } /** @hide */ Loading Loading @@ -303,13 +325,10 @@ public final class CellSignalStrengthCdma extends CellSignalStrength implements @Override public void writeToParcel(Parcel dest, int flags) { if (DBG) log("writeToParcel(Parcel, int): " + toString()); // Need to multiply CdmaDbm, CdmaEcio, EvdoDbm and EvdoEcio by -1 // to ensure consistency when reading values written here // unless the value is invalid dest.writeInt(mCdmaDbm * (mCdmaDbm != Integer.MAX_VALUE ? -1 : 1)); dest.writeInt(mCdmaEcio * (mCdmaEcio != Integer.MAX_VALUE ? -1 : 1)); dest.writeInt(mEvdoDbm * (mEvdoDbm != Integer.MAX_VALUE ? -1 : 1)); dest.writeInt(mEvdoEcio * (mEvdoEcio != Integer.MAX_VALUE ? -1 : 1)); dest.writeInt(mCdmaDbm); dest.writeInt(mCdmaEcio); dest.writeInt(mEvdoDbm); dest.writeInt(mEvdoEcio); dest.writeInt(mEvdoSnr); } Loading @@ -322,13 +341,9 @@ public final class CellSignalStrengthCdma extends CellSignalStrength implements // the parcel as positive values. // Need to convert into negative values unless the value is invalid mCdmaDbm = in.readInt(); if (mCdmaDbm != Integer.MAX_VALUE) mCdmaDbm *= -1; mCdmaEcio = in.readInt(); if (mCdmaEcio != Integer.MAX_VALUE) mCdmaEcio *= -1; mEvdoDbm = in.readInt(); if (mEvdoDbm != Integer.MAX_VALUE) mEvdoDbm *= -1; mEvdoEcio = in.readInt(); if (mEvdoEcio != Integer.MAX_VALUE) mEvdoEcio *= -1; mEvdoSnr = in.readInt(); if (DBG) log("CellSignalStrengthCdma(Parcel): " + toString()); } Loading
telephony/java/android/telephony/SignalStrength.java +3 −3 Original line number Diff line number Diff line Loading @@ -319,11 +319,11 @@ public class SignalStrength implements Parcelable { // BER no change; mCdmaDbm = mCdmaDbm > 0 ? -mCdmaDbm : -120; mCdmaEcio = (mCdmaEcio > 0) ? -mCdmaEcio : -160; mCdmaEcio = (mCdmaEcio >= 0) ? -mCdmaEcio : -160; mEvdoDbm = (mEvdoDbm > 0) ? -mEvdoDbm : -120; mEvdoEcio = (mEvdoEcio >= 0) ? -mEvdoEcio : -1; mEvdoSnr = ((mEvdoSnr > 0) && (mEvdoSnr <= 8)) ? mEvdoSnr : -1; mEvdoEcio = (mEvdoEcio >= 0) ? -mEvdoEcio : -160; mEvdoSnr = ((mEvdoSnr >= 0) && (mEvdoSnr <= 8)) ? mEvdoSnr : -1; // TS 36.214 Physical Layer Section 5.1.3, TS 36.331 RRC mLteSignalStrength = (mLteSignalStrength >= 0) ? mLteSignalStrength : 99; Loading