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

Commit 7ecd81e4 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix wrong report previous country code when releaseing airplane mode" into udc-qpr-dev

parents affd54a7 9665ba1e
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -372,7 +372,10 @@ public class LocaleTracker extends Handler {
     */
    public void updateOperatorNumeric(String operatorNumeric) {
        if (TextUtils.isEmpty(operatorNumeric)) {
            sendMessageDelayed(obtainMessage(EVENT_OPERATOR_LOST), SERVICE_OPERATOR_LOST_DELAY_MS);
            if (!hasMessages(EVENT_OPERATOR_LOST)) {
                sendMessageDelayed(obtainMessage(EVENT_OPERATOR_LOST),
                        SERVICE_OPERATOR_LOST_DELAY_MS);
            }
        } else {
            removeMessages(EVENT_OPERATOR_LOST);
            updateOperatorNumericImmediate(operatorNumeric);
@@ -528,6 +531,9 @@ public class LocaleTracker extends Handler {
        if (!mPhone.isRadioOn()) {
            countryIso = "";
            countryIsoDebugInfo = "radio off";

            // clear cell infos, we don't know where the next network to camp on.
            mCellInfoList = null;
        }

        log("updateLocale: countryIso = " + countryIso
+15 −0
Original line number Diff line number Diff line
@@ -319,4 +319,19 @@ public class LocaleTrackerTest extends TelephonyTest {
        mLocaleTracker.updateOperatorNumeric(TEST_CELL_MCC + FAKE_MNC);
        verify(mNitzStateMachine, times(1)).handleCountryDetected("");
    }

    @Test
    public void testClearCellInfoForLostOperator() {
        doReturn(true).when(mPhone).isRadioOn();
        sendServiceState(ServiceState.STATE_OUT_OF_SERVICE);
        processAllMessages();
        assertTrue(mLocaleTracker.isTracking());
        assertEquals(US_COUNTRY_CODE, mLocaleTracker.getCurrentCountry());

        // airplane mode + VoWiFI case
        doReturn(false).when(mPhone).isRadioOn();
        sendServiceState(ServiceState.STATE_POWER_OFF);
        sendServiceState(ServiceState.STATE_IN_SERVICE);
        assertEquals(COUNTRY_CODE_UNAVAILABLE, mLocaleTracker.getCurrentCountry());
    }
}