aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChinmay Dhodapkar <chinmayd@google.com>2023-05-18 16:51:25 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-05-18 16:51:25 +0000
commitc50a67ce8a15cdf4b524a1b23dda87bc5d601ddd (patch)
treed4ec5cc745236d889e9b8cc35dcd419f6eeb2d9e
parente32ef6c9b7f8e428575daa31bad5ce2cda806468 (diff)
parent92454b53b6701469db471cb43bcd9acdbf6ab102 (diff)
downloadtelephony-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.java2
-rw-r--r--tests/telephonytests/src/com/android/internal/telephony/emergency/EmergencyNumberTrackerTest.java31
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