Loading src/java/com/android/internal/telephony/emergency/EmergencyNumberTracker.java +2 −2 Original line number Diff line number Diff line Loading @@ -189,7 +189,7 @@ public class EmergencyNumberTracker extends Handler { if (configMgr != null) { PersistableBundle b = CarrierConfigManager.getCarrierConfigSubset( mPhone.getContext(), mPhoneId, mPhone.getSubId(), CarrierConfigManager.KEY_EMERGENCY_NUMBER_PREFIX_STRING_ARRAY); if (!b.isEmpty()) { mEmergencyNumberPrefix = b.getStringArray( Loading Loading @@ -366,7 +366,7 @@ public class EmergencyNumberTracker extends Handler { PersistableBundle b = CarrierConfigManager.getCarrierConfigSubset( mPhone.getContext(), mPhone.getPhoneId(), mPhone.getSubId(), CarrierConfigManager.KEY_EMERGENCY_NUMBER_PREFIX_STRING_ARRAY); if (!b.isEmpty()) { String[] emergencyNumberPrefix = Loading tests/telephonytests/src/com/android/internal/telephony/emergency/EmergencyNumberTrackerTest.java +46 −4 Original line number Diff line number Diff line Loading @@ -22,9 +22,9 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.any; import static org.mockito.Mockito.anyString; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.any; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; Loading @@ -32,16 +32,16 @@ import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import org.mockito.ArgumentCaptor; import android.content.IntentFilter; import android.content.Context; import android.content.ContextWrapper; import android.content.IntentFilter; import android.content.res.AssetManager; import android.content.res.Resources; import android.os.AsyncResult; import android.os.Environment; import android.os.ParcelFileDescriptor; import android.os.PersistableBundle; import android.telephony.CarrierConfigManager; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.telephony.emergency.EmergencyNumber; Loading @@ -62,6 +62,8 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import java.io.BufferedInputStream; import java.io.File; Loading Loading @@ -117,6 +119,7 @@ public class EmergencyNumberTrackerTest extends TelephonyTest { private ParcelFileDescriptor mOtaParcelFileDescriptor = null; // Mocked classes private SubscriptionController mSubControllerMock; private CarrierConfigManager mCarrierConfigManagerMock; // mEmergencyNumberTrackerMock for mPhone private EmergencyNumberTracker mEmergencyNumberTrackerMock; Loading @@ -138,6 +141,7 @@ public class EmergencyNumberTrackerTest extends TelephonyTest { super.setUp(getClass().getSimpleName()); mShortNumberInfo = mock(ShortNumberInfo.class); mSubControllerMock = mock(SubscriptionController.class); mCarrierConfigManagerMock = mock(CarrierConfigManager.class); mContext = new ContextWrapper(InstrumentationRegistry.getTargetContext()); mMockContext = mock(Context.class); Loading Loading @@ -872,4 +876,42 @@ public class EmergencyNumberTrackerTest extends TelephonyTest { assertEquals(resultToVerify, resultFromRadio); } @Test public void testOverridingEmergencyNumberPrefixCarrierConfig() throws Exception { // Capture CarrierConfigChangeListener to emulate the carrier config change notification doReturn(mMockContext).when(mPhone).getContext(); doReturn(Context.CARRIER_CONFIG_SERVICE) .when(mMockContext) .getSystemService(CarrierConfigManager.class); doReturn(mCarrierConfigManagerMock) .when(mMockContext) .getSystemService(eq(Context.CARRIER_CONFIG_SERVICE)); ArgumentCaptor<CarrierConfigManager.CarrierConfigChangeListener> listenerArgumentCaptor = ArgumentCaptor.forClass(CarrierConfigManager.CarrierConfigChangeListener.class); EmergencyNumberTracker localEmergencyNumberTracker = new EmergencyNumberTracker(mPhone, mSimulatedCommands); verify(mCarrierConfigManagerMock) .registerCarrierConfigChangeListener(any(), listenerArgumentCaptor.capture()); CarrierConfigManager.CarrierConfigChangeListener carrierConfigChangeListener = listenerArgumentCaptor.getAllValues().get(0); assertFalse(localEmergencyNumberTracker.isEmergencyNumber("*272911")); PersistableBundle bundle = new PersistableBundle(); bundle.putStringArray( CarrierConfigManager.KEY_EMERGENCY_NUMBER_PREFIX_STRING_ARRAY, new String[] {"*272"}); doReturn(bundle) .when(mCarrierConfigManagerMock) .getConfigForSubId(eq(SUB_ID_PHONE_1), any()); carrierConfigChangeListener.onCarrierConfigChanged( mPhone.getPhoneId(), mPhone.getSubId(), TelephonyManager.UNKNOWN_CARRIER_ID, TelephonyManager.UNKNOWN_CARRIER_ID); processAllMessages(); assertTrue(localEmergencyNumberTracker.isEmergencyNumber("*272911")); } } Loading
src/java/com/android/internal/telephony/emergency/EmergencyNumberTracker.java +2 −2 Original line number Diff line number Diff line Loading @@ -189,7 +189,7 @@ public class EmergencyNumberTracker extends Handler { if (configMgr != null) { PersistableBundle b = CarrierConfigManager.getCarrierConfigSubset( mPhone.getContext(), mPhoneId, mPhone.getSubId(), CarrierConfigManager.KEY_EMERGENCY_NUMBER_PREFIX_STRING_ARRAY); if (!b.isEmpty()) { mEmergencyNumberPrefix = b.getStringArray( Loading Loading @@ -366,7 +366,7 @@ public class EmergencyNumberTracker extends Handler { PersistableBundle b = CarrierConfigManager.getCarrierConfigSubset( mPhone.getContext(), mPhone.getPhoneId(), mPhone.getSubId(), CarrierConfigManager.KEY_EMERGENCY_NUMBER_PREFIX_STRING_ARRAY); if (!b.isEmpty()) { String[] emergencyNumberPrefix = Loading
tests/telephonytests/src/com/android/internal/telephony/emergency/EmergencyNumberTrackerTest.java +46 −4 Original line number Diff line number Diff line Loading @@ -22,9 +22,9 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.any; import static org.mockito.Mockito.anyString; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.any; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; Loading @@ -32,16 +32,16 @@ import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import org.mockito.ArgumentCaptor; import android.content.IntentFilter; import android.content.Context; import android.content.ContextWrapper; import android.content.IntentFilter; import android.content.res.AssetManager; import android.content.res.Resources; import android.os.AsyncResult; import android.os.Environment; import android.os.ParcelFileDescriptor; import android.os.PersistableBundle; import android.telephony.CarrierConfigManager; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.telephony.emergency.EmergencyNumber; Loading @@ -62,6 +62,8 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import java.io.BufferedInputStream; import java.io.File; Loading Loading @@ -117,6 +119,7 @@ public class EmergencyNumberTrackerTest extends TelephonyTest { private ParcelFileDescriptor mOtaParcelFileDescriptor = null; // Mocked classes private SubscriptionController mSubControllerMock; private CarrierConfigManager mCarrierConfigManagerMock; // mEmergencyNumberTrackerMock for mPhone private EmergencyNumberTracker mEmergencyNumberTrackerMock; Loading @@ -138,6 +141,7 @@ public class EmergencyNumberTrackerTest extends TelephonyTest { super.setUp(getClass().getSimpleName()); mShortNumberInfo = mock(ShortNumberInfo.class); mSubControllerMock = mock(SubscriptionController.class); mCarrierConfigManagerMock = mock(CarrierConfigManager.class); mContext = new ContextWrapper(InstrumentationRegistry.getTargetContext()); mMockContext = mock(Context.class); Loading Loading @@ -872,4 +876,42 @@ public class EmergencyNumberTrackerTest extends TelephonyTest { assertEquals(resultToVerify, resultFromRadio); } @Test public void testOverridingEmergencyNumberPrefixCarrierConfig() throws Exception { // Capture CarrierConfigChangeListener to emulate the carrier config change notification doReturn(mMockContext).when(mPhone).getContext(); doReturn(Context.CARRIER_CONFIG_SERVICE) .when(mMockContext) .getSystemService(CarrierConfigManager.class); doReturn(mCarrierConfigManagerMock) .when(mMockContext) .getSystemService(eq(Context.CARRIER_CONFIG_SERVICE)); ArgumentCaptor<CarrierConfigManager.CarrierConfigChangeListener> listenerArgumentCaptor = ArgumentCaptor.forClass(CarrierConfigManager.CarrierConfigChangeListener.class); EmergencyNumberTracker localEmergencyNumberTracker = new EmergencyNumberTracker(mPhone, mSimulatedCommands); verify(mCarrierConfigManagerMock) .registerCarrierConfigChangeListener(any(), listenerArgumentCaptor.capture()); CarrierConfigManager.CarrierConfigChangeListener carrierConfigChangeListener = listenerArgumentCaptor.getAllValues().get(0); assertFalse(localEmergencyNumberTracker.isEmergencyNumber("*272911")); PersistableBundle bundle = new PersistableBundle(); bundle.putStringArray( CarrierConfigManager.KEY_EMERGENCY_NUMBER_PREFIX_STRING_ARRAY, new String[] {"*272"}); doReturn(bundle) .when(mCarrierConfigManagerMock) .getConfigForSubId(eq(SUB_ID_PHONE_1), any()); carrierConfigChangeListener.onCarrierConfigChanged( mPhone.getPhoneId(), mPhone.getSubId(), TelephonyManager.UNKNOWN_CARRIER_ID, TelephonyManager.UNKNOWN_CARRIER_ID); processAllMessages(); assertTrue(localEmergencyNumberTracker.isEmergencyNumber("*272911")); } }