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

Commit 5fdecd63 authored by Amit Mahajan's avatar Amit Mahajan Committed by android-build-merger
Browse files

Merge "Set isGsm flag in SignalStrength correctly." into nyc-dev

am: fe51ed10

* commit 'fe51ed10':
  Set isGsm flag in SignalStrength correctly.

Change-Id: I6120f4b68f39b76e00b8fcb61dd41e4e2dc8860e
parents 8f5ff897 fe51ed10
Loading
Loading
Loading
Loading
+7 −5
Original line number Original line Diff line number Diff line
@@ -962,7 +962,7 @@ public class ServiceStateTracker extends Handler {
                    return;
                    return;
                }
                }
                ar = (AsyncResult) msg.obj;
                ar = (AsyncResult) msg.obj;
                onSignalStrengthResult(ar, true);
                onSignalStrengthResult(ar);
                queueNextSignalStrengthPoll();
                queueNextSignalStrengthPoll();


                break;
                break;
@@ -1081,7 +1081,7 @@ public class ServiceStateTracker extends Handler {
                // we don't have to ask it
                // we don't have to ask it
                mDontPollSignalStrength = true;
                mDontPollSignalStrength = true;


                onSignalStrengthResult(ar, true);
                onSignalStrengthResult(ar);
                break;
                break;


            case EVENT_SIM_RECORDS_LOADED:
            case EVENT_SIM_RECORDS_LOADED:
@@ -4361,10 +4361,12 @@ public class ServiceStateTracker extends Handler {
     *
     *
     * @return true if the signal strength changed and a notification was sent.
     * @return true if the signal strength changed and a notification was sent.
     */
     */
    protected boolean onSignalStrengthResult(AsyncResult ar, boolean isGsm) {
    protected boolean onSignalStrengthResult(AsyncResult ar) {
        boolean isGsm = false;
        //override isGsm for CDMA LTE
        //override isGsm for CDMA LTE
        if (mPhone.isPhoneTypeCdmaLte() &&
        if (mPhone.isPhoneTypeGsm() ||
                mSS.getRilDataRadioTechnology() == ServiceState.RIL_RADIO_TECHNOLOGY_LTE) {
                (mPhone.isPhoneTypeCdmaLte() &&
                        mSS.getRilDataRadioTechnology() == ServiceState.RIL_RADIO_TECHNOLOGY_LTE)) {
            isGsm = true;
            isGsm = true;
        }
        }


+26 −0
Original line number Original line Diff line number Diff line
@@ -2018,6 +2018,32 @@ public class SimulatedCommands extends BaseCommands
        }
        }
    }
    }


    public void notifySignalStrength() {
        if (mSignalStrength == null) {
            mSignalStrength = new SignalStrength(
                    20, // gsmSignalStrength
                    0,  // gsmBitErrorRate
                    -1, // cdmaDbm
                    -1, // cdmaEcio
                    -1, // evdoDbm
                    -1, // evdoEcio
                    -1, // evdoSnr
                    99, // lteSignalStrength
                    SignalStrength.INVALID,     // lteRsrp
                    SignalStrength.INVALID,     // lteRsrq
                    SignalStrength.INVALID,     // lteRssnr
                    SignalStrength.INVALID,     // lteCqi
                    SignalStrength.INVALID,     // tdScdmaRscp
                    true                        // gsmFlag
            );
        }

        if (mSignalStrengthRegistrant != null) {
            mSignalStrengthRegistrant.notifyRegistrant(
                    new AsyncResult (null, mSignalStrength, null));
        }
    }

    public void setIccCardStatus(IccCardStatus iccCardStatus){
    public void setIccCardStatus(IccCardStatus iccCardStatus){
        mIccCardStatus = iccCardStatus;
        mIccCardStatus = iccCardStatus;
    }
    }
+21 −2
Original line number Original line Diff line number Diff line
@@ -292,10 +292,29 @@ public class ServiceStateTrackerTest extends TelephonyTest {
                true                        // gsmFlag
                true                        // gsmFlag
        );
        );


        sst.sendMessage(sst.obtainMessage(ServiceStateTracker.EVENT_SIGNAL_STRENGTH_UPDATE,
        mSimulatedCommands.setSignalStrength(ss);
                new AsyncResult(null, ss, null)));
        mSimulatedCommands.notifySignalStrength();
        waitForMs(200);
        waitForMs(200);
        assertEquals(sst.getSignalStrength(), ss);
        assertEquals(sst.getSignalStrength(), ss);
        assertEquals(sst.getSignalStrength().isGsm(), true);

        // switch to CDMA
        doReturn(false).when(mPhone).isPhoneTypeGsm();
        doReturn(true).when(mPhone).isPhoneTypeCdmaLte();
        sst.updatePhoneType();
        sst.mSS.setRilDataRadioTechnology(ServiceState.RIL_RADIO_TECHNOLOGY_LTE);

        mSimulatedCommands.notifySignalStrength();
        waitForMs(200);
        assertEquals(sst.getSignalStrength(), ss);
        assertEquals(sst.getSignalStrength().isGsm(), true);

        // notify signal strength again, but this time data RAT is not LTE
        sst.mSS.setRilDataRadioTechnology(ServiceState.RIL_RADIO_TECHNOLOGY_EHRPD);
        mSimulatedCommands.notifySignalStrength();
        waitForMs(200);
        assertEquals(sst.getSignalStrength(), ss);
        assertEquals(sst.getSignalStrength().isGsm(), false);
    }
    }


    @Test
    @Test