Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 92454b53 authored by Chinmay Dhodapkar's avatar Chinmay Dhodapkar Committed by Android (Google) Code Review
Browse files

Merge "update fallback logic to use cached country" into udc-dev

parents 2b5f925e 0acfea8d
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -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);
+30 −1
Original line number Original line Diff line number Diff line
@@ -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;
@@ -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;
@@ -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");
@@ -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