Loading src/java/com/android/internal/telephony/LocaleTracker.java +7 −1 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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 Loading tests/telephonytests/src/com/android/internal/telephony/LocaleTrackerTest.java +15 −0 Original line number Diff line number Diff line Loading @@ -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()); } } Loading
src/java/com/android/internal/telephony/LocaleTracker.java +7 −1 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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 Loading
tests/telephonytests/src/com/android/internal/telephony/LocaleTrackerTest.java +15 −0 Original line number Diff line number Diff line Loading @@ -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()); } }