Loading telephony/java/android/telephony/SignalStrength.java +27 −7 Original line number Diff line number Diff line Loading @@ -47,6 +47,9 @@ public class SignalStrength implements Parcelable { "none", "poor", "moderate", "good", "great" }; /** @hide */ public static final int INVALID_SNR = 0x7FFFFFFF; private int mGsmSignalStrength; // Valid values are (0-31, 99) as defined in TS 27.007 8.5 private int mGsmBitErrorRate; // bit error rate (0-7, 99) as defined in TS 27.007 8.5 private int mCdmaDbm; // This value is the RSSI value Loading Loading @@ -96,7 +99,7 @@ public class SignalStrength implements Parcelable { mLteSignalStrength = -1; mLteRsrp = -1; mLteRsrq = -1; mLteRssnr = -1; mLteRssnr = INVALID_SNR; mLteCqi = -1; isGsm = true; } Loading Loading @@ -136,7 +139,8 @@ public class SignalStrength implements Parcelable { int evdoDbm, int evdoEcio, int evdoSnr, boolean gsm) { this(gsmSignalStrength, gsmBitErrorRate, cdmaDbm, cdmaEcio, evdoDbm, evdoEcio, evdoSnr, -1, -1, -1, -1, -1, gsm); evdoDbm, evdoEcio, evdoSnr, -1, -1, -1, INVALID_SNR, -1, gsm); } /** Loading Loading @@ -292,7 +296,7 @@ public class SignalStrength implements Parcelable { if ((mLteSignalStrength == -1) && (mLteRsrp == -1) && (mLteRsrq == -1) && (mLteRssnr == -1) && (mLteRssnr == INVALID_SNR) && (mLteCqi == -1)) { level = getGsmLevel(); } else { Loading Loading @@ -327,7 +331,7 @@ public class SignalStrength implements Parcelable { if ((mLteSignalStrength == -1) && (mLteRsrp == -1) && (mLteRsrq == -1) && (mLteRssnr == -1) && (mLteRssnr == INVALID_SNR) && (mLteCqi == -1)) { asuLevel = getGsmAsuLevel(); } else { Loading Loading @@ -363,7 +367,7 @@ public class SignalStrength implements Parcelable { if ((mLteSignalStrength == -1) && (mLteRsrp == -1) && (mLteRsrq == -1) && (mLteRssnr == -1) && (mLteRssnr == INVALID_SNR) && (mLteCqi == -1)) { dBm = getGsmDbm(); } else { Loading Loading @@ -566,6 +570,7 @@ public class SignalStrength implements Parcelable { */ public int getLteLevel() { int levelLteRsrp = 0; int levelLteRssnr = 0; if (mLteRsrp == -1) levelLteRsrp = 0; else if (mLteRsrp >= -95) levelLteRsrp = SIGNAL_STRENGTH_GREAT; Loading @@ -573,8 +578,23 @@ public class SignalStrength implements Parcelable { else if (mLteRsrp >= -115) levelLteRsrp = SIGNAL_STRENGTH_MODERATE; else levelLteRsrp = SIGNAL_STRENGTH_POOR; if (DBG) log("Lte level: "+levelLteRsrp); return levelLteRsrp; if (mLteRssnr == INVALID_SNR) levelLteRssnr = 0; else if (mLteRssnr >= 45) levelLteRssnr = SIGNAL_STRENGTH_GREAT; else if (mLteRssnr >= 10) levelLteRssnr = SIGNAL_STRENGTH_GOOD; else if (mLteRssnr >= -30) levelLteRssnr = SIGNAL_STRENGTH_MODERATE; else levelLteRssnr = SIGNAL_STRENGTH_POOR; int level; if (mLteRsrp == -1) level = levelLteRssnr; else if (mLteRssnr == INVALID_SNR) level = levelLteRsrp; else level = (levelLteRssnr < levelLteRsrp) ? levelLteRssnr : levelLteRsrp; if (DBG) log("Lte rsrp level: "+levelLteRsrp + " snr level: " + levelLteRssnr + " level: " + level); return level; } /** Loading telephony/java/com/android/internal/telephony/cdma/CdmaLteServiceStateTracker.java +17 −7 Original line number Diff line number Diff line Loading @@ -147,7 +147,9 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker { @Override protected void setSignalStrengthDefaultValues() { mSignalStrength = new SignalStrength(99, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, false); // TODO Make a constructor only has boolean gsm as parameter mSignalStrength = new SignalStrength(99, -1, -1, -1, -1, -1, -1, -1, -1, -1, SignalStrength.INVALID_SNR, -1, false); } @Override Loading Loading @@ -452,8 +454,13 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker { setSignalStrengthDefaultValues(); } else { int[] ints = (int[])ar.result; int lteCqi = 99, lteRsrp = -1; int lteRssi = 99; int lteRssi = -1; int lteRsrp = -1; int lteRsrq = -1; int lteRssnr = SignalStrength.INVALID_SNR; int lteCqi = -1; int offset = 2; int cdmaDbm = (ints[offset] > 0) ? -ints[offset] : -120; int cdmaEcio = (ints[offset + 1] > 0) ? -ints[offset + 1] : -160; Loading @@ -461,10 +468,13 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker { int evdoEcio = (ints[offset + 3] > 0) ? -ints[offset + 3] : -1; int evdoSnr = ((ints[offset + 4] > 0) && (ints[offset + 4] <= 8)) ? ints[offset + 4] : -1; if (networkType == ServiceState.RADIO_TECHNOLOGY_LTE) { lteRssi = (ints[offset + 5] >= 0) ? ints[offset + 5] : 99; lteRsrp = (ints[offset + 6] < 0) ? ints[offset + 6] : -1; lteCqi = (ints[offset + 7] >= 0) ? ints[offset + 7] : 99; lteRssi = ints[offset+5]; lteRsrp = ints[offset+6]; lteRsrq = ints[offset+7]; lteRssnr = ints[offset+8]; lteCqi = ints[offset+9]; } if (networkType != ServiceState.RADIO_TECHNOLOGY_LTE) { Loading @@ -472,7 +482,7 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker { evdoSnr, false); } else { mSignalStrength = new SignalStrength(99, -1, cdmaDbm, cdmaEcio, evdoRssi, evdoEcio, evdoSnr, lteRssi, lteRsrp, -1, -1, lteCqi, true); evdoSnr, lteRssi, lteRsrp, lteRsrq, lteRssnr, lteCqi, true); } } Loading telephony/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java +4 −2 Original line number Diff line number Diff line Loading @@ -671,7 +671,9 @@ final class GsmServiceStateTracker extends ServiceStateTracker { } private void setSignalStrengthDefaultValues() { mSignalStrength = new SignalStrength(99, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, true); // TODO Make a constructor only has boolean gsm as parameter mSignalStrength = new SignalStrength(99, -1, -1, -1, -1, -1, -1, -1, -1, -1, SignalStrength.INVALID_SNR, -1, true); } /** Loading Loading @@ -1023,7 +1025,7 @@ final class GsmServiceStateTracker extends ServiceStateTracker { int lteSignalStrength = -1; int lteRsrp = -1; int lteRsrq = -1; int lteRssnr = -1; int lteRssnr = SignalStrength.INVALID_SNR; int lteCqi = -1; if (ar.exception != null) { Loading Loading
telephony/java/android/telephony/SignalStrength.java +27 −7 Original line number Diff line number Diff line Loading @@ -47,6 +47,9 @@ public class SignalStrength implements Parcelable { "none", "poor", "moderate", "good", "great" }; /** @hide */ public static final int INVALID_SNR = 0x7FFFFFFF; private int mGsmSignalStrength; // Valid values are (0-31, 99) as defined in TS 27.007 8.5 private int mGsmBitErrorRate; // bit error rate (0-7, 99) as defined in TS 27.007 8.5 private int mCdmaDbm; // This value is the RSSI value Loading Loading @@ -96,7 +99,7 @@ public class SignalStrength implements Parcelable { mLteSignalStrength = -1; mLteRsrp = -1; mLteRsrq = -1; mLteRssnr = -1; mLteRssnr = INVALID_SNR; mLteCqi = -1; isGsm = true; } Loading Loading @@ -136,7 +139,8 @@ public class SignalStrength implements Parcelable { int evdoDbm, int evdoEcio, int evdoSnr, boolean gsm) { this(gsmSignalStrength, gsmBitErrorRate, cdmaDbm, cdmaEcio, evdoDbm, evdoEcio, evdoSnr, -1, -1, -1, -1, -1, gsm); evdoDbm, evdoEcio, evdoSnr, -1, -1, -1, INVALID_SNR, -1, gsm); } /** Loading Loading @@ -292,7 +296,7 @@ public class SignalStrength implements Parcelable { if ((mLteSignalStrength == -1) && (mLteRsrp == -1) && (mLteRsrq == -1) && (mLteRssnr == -1) && (mLteRssnr == INVALID_SNR) && (mLteCqi == -1)) { level = getGsmLevel(); } else { Loading Loading @@ -327,7 +331,7 @@ public class SignalStrength implements Parcelable { if ((mLteSignalStrength == -1) && (mLteRsrp == -1) && (mLteRsrq == -1) && (mLteRssnr == -1) && (mLteRssnr == INVALID_SNR) && (mLteCqi == -1)) { asuLevel = getGsmAsuLevel(); } else { Loading Loading @@ -363,7 +367,7 @@ public class SignalStrength implements Parcelable { if ((mLteSignalStrength == -1) && (mLteRsrp == -1) && (mLteRsrq == -1) && (mLteRssnr == -1) && (mLteRssnr == INVALID_SNR) && (mLteCqi == -1)) { dBm = getGsmDbm(); } else { Loading Loading @@ -566,6 +570,7 @@ public class SignalStrength implements Parcelable { */ public int getLteLevel() { int levelLteRsrp = 0; int levelLteRssnr = 0; if (mLteRsrp == -1) levelLteRsrp = 0; else if (mLteRsrp >= -95) levelLteRsrp = SIGNAL_STRENGTH_GREAT; Loading @@ -573,8 +578,23 @@ public class SignalStrength implements Parcelable { else if (mLteRsrp >= -115) levelLteRsrp = SIGNAL_STRENGTH_MODERATE; else levelLteRsrp = SIGNAL_STRENGTH_POOR; if (DBG) log("Lte level: "+levelLteRsrp); return levelLteRsrp; if (mLteRssnr == INVALID_SNR) levelLteRssnr = 0; else if (mLteRssnr >= 45) levelLteRssnr = SIGNAL_STRENGTH_GREAT; else if (mLteRssnr >= 10) levelLteRssnr = SIGNAL_STRENGTH_GOOD; else if (mLteRssnr >= -30) levelLteRssnr = SIGNAL_STRENGTH_MODERATE; else levelLteRssnr = SIGNAL_STRENGTH_POOR; int level; if (mLteRsrp == -1) level = levelLteRssnr; else if (mLteRssnr == INVALID_SNR) level = levelLteRsrp; else level = (levelLteRssnr < levelLteRsrp) ? levelLteRssnr : levelLteRsrp; if (DBG) log("Lte rsrp level: "+levelLteRsrp + " snr level: " + levelLteRssnr + " level: " + level); return level; } /** Loading
telephony/java/com/android/internal/telephony/cdma/CdmaLteServiceStateTracker.java +17 −7 Original line number Diff line number Diff line Loading @@ -147,7 +147,9 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker { @Override protected void setSignalStrengthDefaultValues() { mSignalStrength = new SignalStrength(99, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, false); // TODO Make a constructor only has boolean gsm as parameter mSignalStrength = new SignalStrength(99, -1, -1, -1, -1, -1, -1, -1, -1, -1, SignalStrength.INVALID_SNR, -1, false); } @Override Loading Loading @@ -452,8 +454,13 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker { setSignalStrengthDefaultValues(); } else { int[] ints = (int[])ar.result; int lteCqi = 99, lteRsrp = -1; int lteRssi = 99; int lteRssi = -1; int lteRsrp = -1; int lteRsrq = -1; int lteRssnr = SignalStrength.INVALID_SNR; int lteCqi = -1; int offset = 2; int cdmaDbm = (ints[offset] > 0) ? -ints[offset] : -120; int cdmaEcio = (ints[offset + 1] > 0) ? -ints[offset + 1] : -160; Loading @@ -461,10 +468,13 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker { int evdoEcio = (ints[offset + 3] > 0) ? -ints[offset + 3] : -1; int evdoSnr = ((ints[offset + 4] > 0) && (ints[offset + 4] <= 8)) ? ints[offset + 4] : -1; if (networkType == ServiceState.RADIO_TECHNOLOGY_LTE) { lteRssi = (ints[offset + 5] >= 0) ? ints[offset + 5] : 99; lteRsrp = (ints[offset + 6] < 0) ? ints[offset + 6] : -1; lteCqi = (ints[offset + 7] >= 0) ? ints[offset + 7] : 99; lteRssi = ints[offset+5]; lteRsrp = ints[offset+6]; lteRsrq = ints[offset+7]; lteRssnr = ints[offset+8]; lteCqi = ints[offset+9]; } if (networkType != ServiceState.RADIO_TECHNOLOGY_LTE) { Loading @@ -472,7 +482,7 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker { evdoSnr, false); } else { mSignalStrength = new SignalStrength(99, -1, cdmaDbm, cdmaEcio, evdoRssi, evdoEcio, evdoSnr, lteRssi, lteRsrp, -1, -1, lteCqi, true); evdoSnr, lteRssi, lteRsrp, lteRsrq, lteRssnr, lteCqi, true); } } Loading
telephony/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java +4 −2 Original line number Diff line number Diff line Loading @@ -671,7 +671,9 @@ final class GsmServiceStateTracker extends ServiceStateTracker { } private void setSignalStrengthDefaultValues() { mSignalStrength = new SignalStrength(99, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, true); // TODO Make a constructor only has boolean gsm as parameter mSignalStrength = new SignalStrength(99, -1, -1, -1, -1, -1, -1, -1, -1, -1, SignalStrength.INVALID_SNR, -1, true); } /** Loading Loading @@ -1023,7 +1025,7 @@ final class GsmServiceStateTracker extends ServiceStateTracker { int lteSignalStrength = -1; int lteRsrp = -1; int lteRsrq = -1; int lteRssnr = -1; int lteRssnr = SignalStrength.INVALID_SNR; int lteCqi = -1; if (ar.exception != null) { Loading