diff options
author | Chinmay Dhodapkar <chinmayd@google.com> | 2023-05-18 16:51:25 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-05-18 16:51:25 +0000 |
commit | c50a67ce8a15cdf4b524a1b23dda87bc5d601ddd (patch) | |
tree | d4ec5cc745236d889e9b8cc35dcd419f6eeb2d9e | |
parent | e32ef6c9b7f8e428575daa31bad5ce2cda806468 (diff) | |
parent | 92454b53b6701469db471cb43bcd9acdbf6ab102 (diff) | |
download | telephony-c50a67ce8a15cdf4b524a1b23dda87bc5d601ddd.tar.gz |
Merge "update fallback logic to use cached country" into udc-dev am: 92454b53b6
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/opt/telephony/+/23296068
Change-Id: I866f3f577a062b2d9231583b80025f62880aba76
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | src/java/com/android/internal/telephony/emergency/EmergencyNumberTracker.java | 2 | ||||
-rw-r--r-- | tests/telephonytests/src/com/android/internal/telephony/emergency/EmergencyNumberTrackerTest.java | 31 |
2 files changed, 31 insertions, 2 deletions
diff --git a/src/java/com/android/internal/telephony/emergency/EmergencyNumberTracker.java b/src/java/com/android/internal/telephony/emergency/EmergencyNumberTracker.java index a83569b275..9b44001785 100644 --- a/src/java/com/android/internal/telephony/emergency/EmergencyNumberTracker.java +++ b/src/java/com/android/internal/telephony/emergency/EmergencyNumberTracker.java @@ -684,7 +684,7 @@ public class EmergencyNumberTracker extends Handler { + countryIso); updateEmergencyCountryIso(countryIso.toLowerCase(Locale.ROOT)); // Use cached country iso in APM to load emergency number database. - if (TextUtils.isEmpty(countryIso) && isAirplaneModeEnabled()) { + if (TextUtils.isEmpty(countryIso)) { countryIso = getCountryIsoForCachingDatabase(); logd("updateEmergencyNumberListDatabaseAndNotify(): using cached APM country " + countryIso); diff --git a/tests/telephonytests/src/com/android/internal/telephony/emergency/EmergencyNumberTrackerTest.java b/tests/telephonytests/src/com/android/internal/telephony/emergency/EmergencyNumberTrackerTest.java index f7ea4b66f9..c47eb3beae 100644 --- a/tests/telephonytests/src/com/android/internal/telephony/emergency/EmergencyNumberTrackerTest.java +++ b/tests/telephonytests/src/com/android/internal/telephony/emergency/EmergencyNumberTrackerTest.java @@ -40,6 +40,7 @@ import android.os.Environment; import android.os.ParcelFileDescriptor; import android.os.PersistableBundle; import android.telephony.CarrierConfigManager; +import android.telephony.ServiceState; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.telephony.emergency.EmergencyNumber; @@ -50,6 +51,7 @@ import androidx.test.InstrumentationRegistry; import com.android.internal.telephony.Phone; import com.android.internal.telephony.PhoneFactory; +import com.android.internal.telephony.ServiceStateTracker; import com.android.internal.telephony.TelephonyTest; import com.google.i18n.phonenumbers.ShortNumberInfo; @@ -368,8 +370,31 @@ public class EmergencyNumberTrackerTest extends TelephonyTest { IntentFilter ifilter = intentCaptor.getValue(); 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 - 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); mEmergencyNumberTrackerMock.updateEmergencyNumberDatabaseCountryChange("us"); @@ -377,10 +402,14 @@ public class EmergencyNumberTrackerTest extends TelephonyTest { assertTrue(mEmergencyNumberTrackerMock.getEmergencyCountryIso().equals("us")); assertTrue(mEmergencyNumberTrackerMock.getLastKnownEmergencyCountryIso().equals("us")); + doReturn(ss).when(mServiceState).getState(); mEmergencyNumberTrackerMock.updateEmergencyNumberDatabaseCountryChange(""); processAllMessages(); assertTrue(mEmergencyNumberTrackerMock.getEmergencyCountryIso().equals("")); assertTrue(mEmergencyNumberTrackerMock.getLastKnownEmergencyCountryIso().equals("us")); + + //make sure we look up cached location whenever current iso is null + verify(mLocaleTracker).getLastKnownCountryIso(); } @Test |