Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6b178e47 authored by Wink Saville's avatar Wink Saville Committed by Android (Google) Code Review
Browse files

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

parents 2be56ccb 7d97ff10
Loading
Loading
Loading
Loading
+10 −19
Original line number Original line Diff line number Diff line
@@ -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) {