Merge "Always assume evdoXxxx signal strength values are correct." into eclair

This commit is contained in:
Wink Saville
2010-02-13 09:36:17 -08:00
committed by Android (Google) Code Review

View File

@@ -1170,34 +1170,25 @@ final class CdmaServiceStateTracker extends ServiceStateTracker {
} else { } else {
int[] ints = (int[])ar.result; int[] ints = (int[])ar.result;
int offset = 2; int offset = 2;
int cdmaDbm = (ints[offset] > 0) ? -ints[offset] : -120; int cdmaDbm = (ints[offset] > 0) ? -ints[offset] : -120;
int cdmaEcio = (ints[offset+1] > 0) ? -ints[offset+1] : -160; int cdmaEcio = (ints[offset+1] > 0) ? -ints[offset+1] : -160;
int evdoRssi = (ints[offset+2] > 0) ? -ints[offset+2] : -120;
int evdoEcio = (ints[offset+3] > 0) ? -ints[offset+3] : -1;
int evdoSnr = ((ints[offset+4] > 0) && (ints[offset+4] <= 8)) ? ints[offset+4] : -1;
int evdoRssi = -1; //log(String.format("onSignalStrengthResult cdmaDbm=%d cdmaEcio=%d evdoRssi=%d evdoEcio=%d evdoSnr=%d",
int evdoEcio = -1; // cdmaDbm, cdmaEcio, evdoRssi, evdoEcio, evdoSnr));
int evdoSnr = -1;
if ((networkType == ServiceState.RADIO_TECHNOLOGY_EVDO_0)
|| (networkType == ServiceState.RADIO_TECHNOLOGY_EVDO_A)) {
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;
}
mSignalStrength = new SignalStrength(99, -1, cdmaDbm, cdmaEcio, mSignalStrength = new SignalStrength(99, -1, cdmaDbm, cdmaEcio,
evdoRssi, evdoEcio, evdoSnr, false); evdoRssi, evdoEcio, evdoSnr, false);
} }
if (!mSignalStrength.equals(oldSignalStrength)) { try {
try { // This takes care of delayed EVENT_POLL_SIGNAL_STRENGTH (scheduled after
// POLL_PERIOD_MILLIS) during Radio Technology Change)
phone.notifySignalStrength(); phone.notifySignalStrength();
} catch (NullPointerException ex) { } catch (NullPointerException ex) {
log("onSignalStrengthResult() Phone already destroyed: " + ex log("onSignalStrengthResult() Phone already destroyed: " + ex
+ "SignalStrength not notified"); + "SignalStrength not notified");
} }
} }
}
private int radioTechnologyToDataServiceState(int code) { private int radioTechnologyToDataServiceState(int code) {