summaryrefslogtreecommitdiffstats
path: root/telephony
diff options
context:
space:
mode:
authorYong Zhang <yzhang@motorola.com>2009-07-22 17:25:30 -0500
committerWink Saville <wink@google.com>2009-07-29 20:39:52 -0700
commit96f2747dd6fabd998619524bcff4a44502a64bbd (patch)
treea1a04df65bdf3f1c1218b12612630c85a85d6b63 /telephony
parent206b7b1709e98952576821cd2ee8867f2265b6aa (diff)
downloadframeworks_base-96f2747dd6fabd998619524bcff4a44502a64bbd.zip
frameworks_base-96f2747dd6fabd998619524bcff4a44502a64bbd.tar.gz
frameworks_base-96f2747dd6fabd998619524bcff4a44502a64bbd.tar.bz2
Fix wrong Singal Strength interpretation.
The issue this change fixes is that phone status bar shows full signal strength bar even when phone is in bad signal area. The root cause is that the signal strenth is incorrectly interpreted.
Diffstat (limited to 'telephony')
-rw-r--r--telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java8
1 files changed, 4 insertions, 4 deletions
diff --git a/telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java b/telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java
index b22c80a..6356473 100644
--- a/telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java
+++ b/telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java
@@ -1074,7 +1074,7 @@ final class CdmaServiceStateTracker extends ServiceStateTracker {
/**
* send signal-strength-changed notification if changed
- * Called both for solicited and unsolicited signal stength updates
+ * Called both for solicited and unsolicited signal strength updates
*/
private void
onSignalStrengthResult(AsyncResult ar) {
@@ -1087,15 +1087,15 @@ final class CdmaServiceStateTracker extends ServiceStateTracker {
int[] ints = (int[])ar.result;
int offset = 2;
- int cdmaDbm = (ints[offset] > 0) ? -ints[offset] : -1;
- int cdmaEcio = (ints[offset+1] > 0) ? -ints[offset+1] : -1;
+ int cdmaDbm = (ints[offset] > 0) ? -ints[offset] : -120;
+ int cdmaEcio = (ints[offset+1] > 0) ? -ints[offset+1] : -160;
int evdoRssi = -1;
int evdoEcio = -1;
int evdoSnr = -1;
if ((networkType == ServiceState.RADIO_TECHNOLOGY_EVDO_0)
|| (networkType == ServiceState.RADIO_TECHNOLOGY_EVDO_A)) {
- evdoRssi = (ints[offset+2] > 0) ? -ints[offset+2] : -1;
+ evdoRssi = (ints[offset+2] > 0) ? -ints[offset+2] : -120;
evdoEcio = (ints[offset+3] > 0) ? -ints[offset+3] : -1;
evdoSnr = ((ints[offset+4] > 0) && (ints[offset+4] <= 8)) ? ints[offset+4] : -1;
}