Loading src/java/com/android/internal/telephony/emergency/EmergencyNumberTracker.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -684,7 +684,7 @@ public class EmergencyNumberTracker extends Handler { + countryIso); + countryIso); updateEmergencyCountryIso(countryIso.toLowerCase(Locale.ROOT)); updateEmergencyCountryIso(countryIso.toLowerCase(Locale.ROOT)); // Use cached country iso in APM to load emergency number database. // Use cached country iso in APM to load emergency number database. if (TextUtils.isEmpty(countryIso) && isAirplaneModeEnabled()) { if (TextUtils.isEmpty(countryIso)) { countryIso = getCountryIsoForCachingDatabase(); countryIso = getCountryIsoForCachingDatabase(); logd("updateEmergencyNumberListDatabaseAndNotify(): using cached APM country " logd("updateEmergencyNumberListDatabaseAndNotify(): using cached APM country " + countryIso); + countryIso); Loading tests/telephonytests/src/com/android/internal/telephony/emergency/EmergencyNumberTrackerTest.java +30 −1 Original line number Original line Diff line number Diff line Loading @@ -40,6 +40,7 @@ import android.os.Environment; import android.os.ParcelFileDescriptor; import android.os.ParcelFileDescriptor; import android.os.PersistableBundle; import android.os.PersistableBundle; import android.telephony.CarrierConfigManager; import android.telephony.CarrierConfigManager; import android.telephony.ServiceState; import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.telephony.TelephonyManager; import android.telephony.emergency.EmergencyNumber; import android.telephony.emergency.EmergencyNumber; Loading @@ -50,6 +51,7 @@ import androidx.test.InstrumentationRegistry; import com.android.internal.telephony.Phone; import com.android.internal.telephony.Phone; import com.android.internal.telephony.PhoneFactory; import com.android.internal.telephony.PhoneFactory; import com.android.internal.telephony.ServiceStateTracker; import com.android.internal.telephony.TelephonyTest; import com.android.internal.telephony.TelephonyTest; import com.google.i18n.phonenumbers.ShortNumberInfo; import com.google.i18n.phonenumbers.ShortNumberInfo; Loading Loading @@ -368,8 +370,31 @@ public class EmergencyNumberTrackerTest extends TelephonyTest { IntentFilter ifilter = intentCaptor.getValue(); IntentFilter ifilter = intentCaptor.getValue(); assertTrue(ifilter.hasAction(TelephonyManager.ACTION_NETWORK_COUNTRY_CHANGED)); assertTrue(ifilter.hasAction(TelephonyManager.ACTION_NETWORK_COUNTRY_CHANGED)); } } @Test public void testUpdateEmergencyCountryIso_whenStatePowerOff() throws Exception { testUpdateEmergencyCountryIso(ServiceState.STATE_POWER_OFF); } @Test public void testUpdateEmergencyCountryIso_whenStateInService() throws Exception { testUpdateEmergencyCountryIso(ServiceState.STATE_IN_SERVICE); } @Test @Test public void testUpdateEmergencyCountryIso() throws Exception { public void testUpdateEmergencyCountryIso_whenStateOos() throws Exception { testUpdateEmergencyCountryIso(ServiceState.STATE_OUT_OF_SERVICE); } @Test public void testUpdateEmergencyCountryIso_whenStateEmergencyOnly() throws Exception { testUpdateEmergencyCountryIso(ServiceState.STATE_EMERGENCY_ONLY); } private void testUpdateEmergencyCountryIso(int ss) throws Exception { doReturn(mLocaleTracker).when(mSST).getLocaleTracker(); doReturn("us").when(mLocaleTracker).getLastKnownCountryIso(); sendEmergencyNumberPrefix(mEmergencyNumberTrackerMock); sendEmergencyNumberPrefix(mEmergencyNumberTrackerMock); mEmergencyNumberTrackerMock.updateEmergencyNumberDatabaseCountryChange("us"); mEmergencyNumberTrackerMock.updateEmergencyNumberDatabaseCountryChange("us"); Loading @@ -377,10 +402,14 @@ public class EmergencyNumberTrackerTest extends TelephonyTest { assertTrue(mEmergencyNumberTrackerMock.getEmergencyCountryIso().equals("us")); assertTrue(mEmergencyNumberTrackerMock.getEmergencyCountryIso().equals("us")); assertTrue(mEmergencyNumberTrackerMock.getLastKnownEmergencyCountryIso().equals("us")); assertTrue(mEmergencyNumberTrackerMock.getLastKnownEmergencyCountryIso().equals("us")); doReturn(ss).when(mServiceState).getState(); mEmergencyNumberTrackerMock.updateEmergencyNumberDatabaseCountryChange(""); mEmergencyNumberTrackerMock.updateEmergencyNumberDatabaseCountryChange(""); processAllMessages(); processAllMessages(); assertTrue(mEmergencyNumberTrackerMock.getEmergencyCountryIso().equals("")); assertTrue(mEmergencyNumberTrackerMock.getEmergencyCountryIso().equals("")); assertTrue(mEmergencyNumberTrackerMock.getLastKnownEmergencyCountryIso().equals("us")); assertTrue(mEmergencyNumberTrackerMock.getLastKnownEmergencyCountryIso().equals("us")); //make sure we look up cached location whenever current iso is null verify(mLocaleTracker).getLastKnownCountryIso(); } } @Test @Test Loading Loading
src/java/com/android/internal/telephony/emergency/EmergencyNumberTracker.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -684,7 +684,7 @@ public class EmergencyNumberTracker extends Handler { + countryIso); + countryIso); updateEmergencyCountryIso(countryIso.toLowerCase(Locale.ROOT)); updateEmergencyCountryIso(countryIso.toLowerCase(Locale.ROOT)); // Use cached country iso in APM to load emergency number database. // Use cached country iso in APM to load emergency number database. if (TextUtils.isEmpty(countryIso) && isAirplaneModeEnabled()) { if (TextUtils.isEmpty(countryIso)) { countryIso = getCountryIsoForCachingDatabase(); countryIso = getCountryIsoForCachingDatabase(); logd("updateEmergencyNumberListDatabaseAndNotify(): using cached APM country " logd("updateEmergencyNumberListDatabaseAndNotify(): using cached APM country " + countryIso); + countryIso); Loading
tests/telephonytests/src/com/android/internal/telephony/emergency/EmergencyNumberTrackerTest.java +30 −1 Original line number Original line Diff line number Diff line Loading @@ -40,6 +40,7 @@ import android.os.Environment; import android.os.ParcelFileDescriptor; import android.os.ParcelFileDescriptor; import android.os.PersistableBundle; import android.os.PersistableBundle; import android.telephony.CarrierConfigManager; import android.telephony.CarrierConfigManager; import android.telephony.ServiceState; import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.telephony.TelephonyManager; import android.telephony.emergency.EmergencyNumber; import android.telephony.emergency.EmergencyNumber; Loading @@ -50,6 +51,7 @@ import androidx.test.InstrumentationRegistry; import com.android.internal.telephony.Phone; import com.android.internal.telephony.Phone; import com.android.internal.telephony.PhoneFactory; import com.android.internal.telephony.PhoneFactory; import com.android.internal.telephony.ServiceStateTracker; import com.android.internal.telephony.TelephonyTest; import com.android.internal.telephony.TelephonyTest; import com.google.i18n.phonenumbers.ShortNumberInfo; import com.google.i18n.phonenumbers.ShortNumberInfo; Loading Loading @@ -368,8 +370,31 @@ public class EmergencyNumberTrackerTest extends TelephonyTest { IntentFilter ifilter = intentCaptor.getValue(); IntentFilter ifilter = intentCaptor.getValue(); assertTrue(ifilter.hasAction(TelephonyManager.ACTION_NETWORK_COUNTRY_CHANGED)); assertTrue(ifilter.hasAction(TelephonyManager.ACTION_NETWORK_COUNTRY_CHANGED)); } } @Test public void testUpdateEmergencyCountryIso_whenStatePowerOff() throws Exception { testUpdateEmergencyCountryIso(ServiceState.STATE_POWER_OFF); } @Test public void testUpdateEmergencyCountryIso_whenStateInService() throws Exception { testUpdateEmergencyCountryIso(ServiceState.STATE_IN_SERVICE); } @Test @Test public void testUpdateEmergencyCountryIso() throws Exception { public void testUpdateEmergencyCountryIso_whenStateOos() throws Exception { testUpdateEmergencyCountryIso(ServiceState.STATE_OUT_OF_SERVICE); } @Test public void testUpdateEmergencyCountryIso_whenStateEmergencyOnly() throws Exception { testUpdateEmergencyCountryIso(ServiceState.STATE_EMERGENCY_ONLY); } private void testUpdateEmergencyCountryIso(int ss) throws Exception { doReturn(mLocaleTracker).when(mSST).getLocaleTracker(); doReturn("us").when(mLocaleTracker).getLastKnownCountryIso(); sendEmergencyNumberPrefix(mEmergencyNumberTrackerMock); sendEmergencyNumberPrefix(mEmergencyNumberTrackerMock); mEmergencyNumberTrackerMock.updateEmergencyNumberDatabaseCountryChange("us"); mEmergencyNumberTrackerMock.updateEmergencyNumberDatabaseCountryChange("us"); Loading @@ -377,10 +402,14 @@ public class EmergencyNumberTrackerTest extends TelephonyTest { assertTrue(mEmergencyNumberTrackerMock.getEmergencyCountryIso().equals("us")); assertTrue(mEmergencyNumberTrackerMock.getEmergencyCountryIso().equals("us")); assertTrue(mEmergencyNumberTrackerMock.getLastKnownEmergencyCountryIso().equals("us")); assertTrue(mEmergencyNumberTrackerMock.getLastKnownEmergencyCountryIso().equals("us")); doReturn(ss).when(mServiceState).getState(); mEmergencyNumberTrackerMock.updateEmergencyNumberDatabaseCountryChange(""); mEmergencyNumberTrackerMock.updateEmergencyNumberDatabaseCountryChange(""); processAllMessages(); processAllMessages(); assertTrue(mEmergencyNumberTrackerMock.getEmergencyCountryIso().equals("")); assertTrue(mEmergencyNumberTrackerMock.getEmergencyCountryIso().equals("")); assertTrue(mEmergencyNumberTrackerMock.getLastKnownEmergencyCountryIso().equals("us")); assertTrue(mEmergencyNumberTrackerMock.getLastKnownEmergencyCountryIso().equals("us")); //make sure we look up cached location whenever current iso is null verify(mLocaleTracker).getLastKnownCountryIso(); } } @Test @Test Loading