Loading src/java/com/android/internal/telephony/ServiceStateTracker.java +4 −2 Original line number Diff line number Diff line Loading @@ -2205,8 +2205,6 @@ public class ServiceStateTracker extends Handler { } case EVENT_POLL_STATE_OPERATOR: { String brandOverride = getOperatorBrandOverride(); mCdnr.updateEfForBrandOverride(brandOverride); if (mPhone.isPhoneTypeGsm()) { String opNames[] = (String[]) ar.result; Loading @@ -2214,6 +2212,8 @@ public class ServiceStateTracker extends Handler { mNewSS.setOperatorAlphaLongRaw(opNames[0]); mNewSS.setOperatorAlphaShortRaw(opNames[1]); // FIXME: Giving brandOverride higher precedence, is this desired? String brandOverride = getOperatorBrandOverride(); mCdnr.updateEfForBrandOverride(brandOverride); if (brandOverride != null) { log("EVENT_POLL_STATE_OPERATOR: use brandOverride=" + brandOverride); mNewSS.setOperatorName(brandOverride, brandOverride, opNames[2]); Loading Loading @@ -2243,6 +2243,8 @@ public class ServiceStateTracker extends Handler { // NV device (as opposed to CSIM) mNewSS.setOperatorName(opNames[0], opNames[1], opNames[2]); } else { String brandOverride = getOperatorBrandOverride(); mCdnr.updateEfForBrandOverride(brandOverride); if (brandOverride != null) { mNewSS.setOperatorName(brandOverride, brandOverride, opNames[2]); } else { Loading tests/telephonytests/src/com/android/internal/telephony/ServiceStateTrackerTest.java +20 −0 Original line number Diff line number Diff line Loading @@ -1913,6 +1913,26 @@ public class ServiceStateTrackerTest extends TelephonyTest { waitForLastHandlerAction(mSSTTestHandler.getThreadHandler()); } @Test public void testPollStateOperatorWhileNotRegistered() { final String[] oldOpNamesResult = new String[] { "Old carrier long", "Old carrier", "" }; final String[] badOpNamesResult = null; sst.mPollingContext[0] = 1; sst.sendMessage(sst.obtainMessage( ServiceStateTracker.EVENT_POLL_STATE_OPERATOR, new AsyncResult(sst.mPollingContext, oldOpNamesResult, null))); waitForLastHandlerAction(mSSTTestHandler.getThreadHandler()); assertEquals(oldOpNamesResult[0], sst.getServiceState().getOperatorAlpha()); // if the device is not registered, the modem returns an invalid operator sst.mPollingContext[0] = 1; sst.sendMessage(sst.obtainMessage( ServiceStateTracker.EVENT_POLL_STATE_OPERATOR, new AsyncResult(sst.mPollingContext, badOpNamesResult, null))); waitForLastHandlerAction(mSSTTestHandler.getThreadHandler()); assertEquals(null, sst.getServiceState().getOperatorAlpha()); } // Edge and GPRS are grouped under the same family and Edge has higher rate than GPRS. // Expect no rat update when move from E to G. @Test Loading Loading
src/java/com/android/internal/telephony/ServiceStateTracker.java +4 −2 Original line number Diff line number Diff line Loading @@ -2205,8 +2205,6 @@ public class ServiceStateTracker extends Handler { } case EVENT_POLL_STATE_OPERATOR: { String brandOverride = getOperatorBrandOverride(); mCdnr.updateEfForBrandOverride(brandOverride); if (mPhone.isPhoneTypeGsm()) { String opNames[] = (String[]) ar.result; Loading @@ -2214,6 +2212,8 @@ public class ServiceStateTracker extends Handler { mNewSS.setOperatorAlphaLongRaw(opNames[0]); mNewSS.setOperatorAlphaShortRaw(opNames[1]); // FIXME: Giving brandOverride higher precedence, is this desired? String brandOverride = getOperatorBrandOverride(); mCdnr.updateEfForBrandOverride(brandOverride); if (brandOverride != null) { log("EVENT_POLL_STATE_OPERATOR: use brandOverride=" + brandOverride); mNewSS.setOperatorName(brandOverride, brandOverride, opNames[2]); Loading Loading @@ -2243,6 +2243,8 @@ public class ServiceStateTracker extends Handler { // NV device (as opposed to CSIM) mNewSS.setOperatorName(opNames[0], opNames[1], opNames[2]); } else { String brandOverride = getOperatorBrandOverride(); mCdnr.updateEfForBrandOverride(brandOverride); if (brandOverride != null) { mNewSS.setOperatorName(brandOverride, brandOverride, opNames[2]); } else { Loading
tests/telephonytests/src/com/android/internal/telephony/ServiceStateTrackerTest.java +20 −0 Original line number Diff line number Diff line Loading @@ -1913,6 +1913,26 @@ public class ServiceStateTrackerTest extends TelephonyTest { waitForLastHandlerAction(mSSTTestHandler.getThreadHandler()); } @Test public void testPollStateOperatorWhileNotRegistered() { final String[] oldOpNamesResult = new String[] { "Old carrier long", "Old carrier", "" }; final String[] badOpNamesResult = null; sst.mPollingContext[0] = 1; sst.sendMessage(sst.obtainMessage( ServiceStateTracker.EVENT_POLL_STATE_OPERATOR, new AsyncResult(sst.mPollingContext, oldOpNamesResult, null))); waitForLastHandlerAction(mSSTTestHandler.getThreadHandler()); assertEquals(oldOpNamesResult[0], sst.getServiceState().getOperatorAlpha()); // if the device is not registered, the modem returns an invalid operator sst.mPollingContext[0] = 1; sst.sendMessage(sst.obtainMessage( ServiceStateTracker.EVENT_POLL_STATE_OPERATOR, new AsyncResult(sst.mPollingContext, badOpNamesResult, null))); waitForLastHandlerAction(mSSTTestHandler.getThreadHandler()); assertEquals(null, sst.getServiceState().getOperatorAlpha()); } // Edge and GPRS are grouped under the same family and Edge has higher rate than GPRS. // Expect no rat update when move from E to G. @Test Loading