diff options
Diffstat (limited to 'telephony/java/android/telephony/SignalStrength.java')
-rw-r--r-- | telephony/java/android/telephony/SignalStrength.java | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/telephony/java/android/telephony/SignalStrength.java b/telephony/java/android/telephony/SignalStrength.java index f801010..098a3a5 100644 --- a/telephony/java/android/telephony/SignalStrength.java +++ b/telephony/java/android/telephony/SignalStrength.java @@ -455,9 +455,10 @@ public class SignalStrength implements Parcelable { int level; if (isGsm) { + boolean lteChecks = (getLteRsrp() == INVALID && getLteRsrq() == INVALID && getLteRssnr() == INVALID && getLteSignalStrenght() == 99); boolean oldRil = needsOldRilFeature("signalstrength"); level = getLteLevel(); - if (level == SIGNAL_STRENGTH_NONE_OR_UNKNOWN || oldRil) { + if ((level == SIGNAL_STRENGTH_NONE_OR_UNKNOWN && getGsmAsuLevel() != 99 && lteChecks) || oldRil) { level = getGsmLevel(); } } else { @@ -487,7 +488,8 @@ public class SignalStrength implements Parcelable { int asuLevel; if (isGsm) { boolean oldRil = needsOldRilFeature("signalstrength"); - if (getLteLevel() == SIGNAL_STRENGTH_NONE_OR_UNKNOWN || oldRil) { + boolean lteChecks = (getLteRsrp() == INVALID && getLteRsrq() == INVALID && getLteRssnr() == INVALID && getLteSignalStrenght() == 99); + if ((getLteLevel() == SIGNAL_STRENGTH_NONE_OR_UNKNOWN && getGsmAsuLevel() != 99 && lteChecks) || oldRil) { asuLevel = getGsmAsuLevel(); } else { asuLevel = getLteAsuLevel(); @@ -520,7 +522,8 @@ public class SignalStrength implements Parcelable { if(isGsm()) { boolean oldRil = needsOldRilFeature("signalstrength"); - if (getLteLevel() == SIGNAL_STRENGTH_NONE_OR_UNKNOWN || oldRil) { + boolean lteChecks = (getLteRsrp() == INVALID && getLteRsrq() == INVALID && getLteRssnr() == INVALID && getLteSignalStrenght() == 99); + if ((getLteLevel() == SIGNAL_STRENGTH_NONE_OR_UNKNOWN && getGsmAsuLevel() != 99 && lteChecks) || oldRil) { dBm = getGsmDbm(); } else { dBm = getLteDbm(); |