summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author yifan.bai <yifan.bai@spreadtrum.com> 2017-10-20 10:25:11 +0800
committer nharold <nharold@google.com> 2018-01-23 18:32:22 +0000
commit5c40d8914d85708779e8df1c49a7bea2750205cb (patch)
treef611d23a3b068f8ac240ea68196e08dbaa76db3f
parent9becf4b3346ba2501f3af62d74cef1f4a5797ce8 (diff)
Fix getAsuLevel returns "99" in Lte and TdScdma.
GetAsuLevel method judges valid signal by getLteLevel/getTdScdmaLevel. However, level is SIGNAL_STRENGTH_NONE_OR_UNKNOWN does not mean not in Lte/TdScdma. For example, if mLteRsrp is in (threshRsrp[1], threshRsrp[0]], getLteLevel would return SIGNAL_STRENGTH_NONE_OR_UNKNOWN. But this only means Lte signal is very weak, and ASU should be (mLteRsrp + 140) not "99" (3GPP 27.007 Sec 8.69). Bug: 72116430 Test: Build Change-Id: If930c3e3d23a9af7b2e51e3560cc28607a6328c0
-rw-r--r--telephony/java/android/telephony/SignalStrength.java12
1 files changed, 5 insertions, 7 deletions
diff --git a/telephony/java/android/telephony/SignalStrength.java b/telephony/java/android/telephony/SignalStrength.java
index f1f965196322..fc2ef2782b78 100644
--- a/telephony/java/android/telephony/SignalStrength.java
+++ b/telephony/java/android/telephony/SignalStrength.java
@@ -492,14 +492,12 @@ public class SignalStrength implements Parcelable {
public int getAsuLevel() {
int asuLevel = 0;
if (mIsGsm) {
- if (getLteLevel() == SIGNAL_STRENGTH_NONE_OR_UNKNOWN) {
- if (getTdScdmaLevel() == SIGNAL_STRENGTH_NONE_OR_UNKNOWN) {
- asuLevel = getGsmAsuLevel();
- } else {
- asuLevel = getTdScdmaAsuLevel();
- }
- } else {
+ if (mLteRsrp != SignalStrength.INVALID) {
asuLevel = getLteAsuLevel();
+ } else if (mTdScdmaRscp != SignalStrength.INVALID) {
+ asuLevel = getTdScdmaAsuLevel();
+ } else {
+ asuLevel = getGsmAsuLevel();
}
} else {
int cdmaAsuLevel = getCdmaAsuLevel();