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

Commit fa2c24a1 authored by codeworkx's avatar codeworkx
Browse files

SamsungExynos4RIL: provide a fallback solution if signalstrength is invalid

Change-Id: Ib533b15feb4f56c00f1ce3c7baff5e0e73255e6c
parent 75d2663a
Loading
Loading
Loading
Loading
+10 −10
Original line number Diff line number Diff line
@@ -855,25 +855,25 @@ public class SamsungExynos4RIL extends RIL implements CommandsInterface {
        */

        int mGsmSignalStrength = response[0]; // Valid values are (0-31, 99) as defined in TS 27.007 8.5
        Log.d(LOG_TAG, "responseSignalStrength (raw): gsmSignalStrength=" + mGsmSignalStrength);
        mGsmSignalStrength = mGsmSignalStrength & 0xff; // Get the first 8 bits
        Log.d(LOG_TAG, "responseSignalStrength (corrected): gsmSignalStrength=" + mGsmSignalStrength);

        if (mIsGBModem) {
        /* if mGsmSignalStrength isn't a valid value, use mCdmaDbm as fallback */
        if (mGsmSignalStrength < 0 || (mGsmSignalStrength > 31 && response[0] != 99)) {
            int mCdmaDbm = response[2];
	        Log.d(LOG_TAG, "responseSignalStrength (unmodified): gsmSignalStrength=" + mGsmSignalStrength);
            Log.d(LOG_TAG, "responseSignalStrength-fallback (raw): gsmSignalStrength=" + mCdmaDbm);

	        if (mCdmaDbm < 0) {
	            mGsmSignalStrength = 99;
	        } else if (mCdmaDbm > 31) {
	        } else if (mCdmaDbm > 31 && mCdmaDbm != 99) {
	            mGsmSignalStrength = 31;
	        } else {
	            mGsmSignalStrength = mCdmaDbm;
	        }

	        Log.d(LOG_TAG, "responseSignalStrength (corrected): gsmSignalStrength=" + mGsmSignalStrength);
        } else {
	        Log.d(LOG_TAG, "responseSignalStrength (unmodified): gsmSignalStrength=" + mGsmSignalStrength);
	        mGsmSignalStrength = mGsmSignalStrength & 0xff; // Get the first 8 bits
	        Log.d(LOG_TAG, "responseSignalStrength (corrected): gsmSignalStrength=" + mGsmSignalStrength);
            Log.d(LOG_TAG, "responseSignalStrength-fallback (corrected): gsmSignalStrength=" + mGsmSignalStrength);
        }

        SignalStrength signalStrength = new SignalStrength(mGsmSignalStrength, response[1], response[2],
                    response[3], response[4], response[5], response[6], isGsm);