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

Commit 75d2663a authored by Ankit Vani's avatar Ankit Vani Committed by codeworkx
Browse files

SamsungExynos4RIL: Allow signal strength to be handled for GB modems

For devices that have no modems that support the ICS signal strength handling, allow handling it the old way with the ro.ril.gbmodem system property.

Change-Id: I68270c5a4026b2c8f448125607ee47dd04249176
parent ba6e3121
Loading
Loading
Loading
Loading
+18 −5
Original line number Diff line number Diff line
@@ -155,6 +155,7 @@ public class SamsungExynos4RIL extends RIL implements CommandsInterface {
    protected HandlerThread mSamsungExynos4RILThread;
    protected ConnectivityHandler mSamsungExynos4RILHandler;
    private AudioManager audioManager;
    private boolean mIsGBModem = SystemProperties.getBoolean("ro.ril.gbmodem", false);

    public SamsungExynos4RIL(Context context, int networkMode, int cdmaSubscription) {
        super(context, networkMode, cdmaSubscription);
@@ -855,12 +856,24 @@ 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

        if (mIsGBModem) {
	        int mCdmaDbm = response[2];
	        Log.d(LOG_TAG, "responseSignalStrength (unmodified): gsmSignalStrength=" + mGsmSignalStrength);

        mGsmSignalStrength = mGsmSignalStrength & 0xff; // Get the first 8 bits
	        if (mCdmaDbm < 0) {
	            mGsmSignalStrength = 99;
	        } else if (mCdmaDbm > 31) {
	            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);
        }
        SignalStrength signalStrength = new SignalStrength(mGsmSignalStrength, response[1], response[2],
                    response[3], response[4], response[5], response[6], isGsm);