OSDN Git Service

telephony: SignalStrengh: Don't calculate a LTE snr if the srq is invalid
authorRicardo Cerqueira <cyanogenmod@cerqueira.org>
Thu, 22 Nov 2012 06:02:18 +0000 (06:02 +0000)
committerSteve Kondik <steve@cyngn.com>
Sun, 4 Sep 2016 09:39:37 +0000 (02:39 -0700)
If the previous values are invalid and signal quality is -1, chances are there's
no LTE signal at all, so don't calculate the SNR and mark it invalid as well.

This fixes the strength indicator in GSM devices where it was being skewed
by the ghost LTE value

Change-Id: I070573401c141aa99941a332ee256246697abb90

telephony/java/android/telephony/SignalStrength.java

index 3501ab7..5f7a966 100644 (file)
@@ -398,7 +398,7 @@ public class SignalStrength implements Parcelable {
         mLteSignalStrength = (mLteSignalStrength >= 0) ? mLteSignalStrength : 99;
         mLteRsrp = ((mLteRsrp >= 44) && (mLteRsrp <= 140)) ? -mLteRsrp : SignalStrength.INVALID;
         mLteRsrq = ((mLteRsrq >= 3) && (mLteRsrq <= 20)) ? -mLteRsrq : SignalStrength.INVALID;
-        mLteRssnr = ((mLteRssnr >= -200) && (mLteRssnr <= 300)) ? mLteRssnr
+        mLteRssnr = ((mLteRssnr >= -200) && (mLteRssnr <= 300) && !(mLteRsrq == SignalStrength.INVALID && mLteRssnr == -1)) ? mLteRssnr
                 : SignalStrength.INVALID;
 
         mTdScdmaRscp = ((mTdScdmaRscp >= 25) && (mTdScdmaRscp <= 120))