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

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

Merge "register intent receiver for country change" into udc-dev

parents a0d196d6 4a2d0192
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import android.annotation.NonNull;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.res.Resources;
import android.os.AsyncResult;
import android.os.Environment;
@@ -199,6 +200,12 @@ public class EmergencyNumberTracker extends Handler {
                configMgr.registerCarrierConfigChangeListener(this::post,
                        (slotIndex, subId, carrierId, specificCarrierId) ->
                                onCarrierConfigUpdated(slotIndex));

                //register country change listener
                IntentFilter filter = new IntentFilter(
                    TelephonyManager.ACTION_NETWORK_COUNTRY_CHANGED);
                mPhone.getContext().registerReceiver(mIntentReceiver, filter);

            } else {
                loge("CarrierConfigManager is null.");
            }
@@ -544,7 +551,7 @@ public class EmergencyNumberTracker extends Handler {
                    readInputStreamToByteArray(gzipInputStream));
            assetsDatabaseVersion = allEccMessages.revision;
            logd(countryIso + " asset emergency database is loaded. Ver: " + assetsDatabaseVersion
                    + " Phone Id: " + mPhone.getPhoneId());
                    + " Phone Id: " + mPhone.getPhoneId() + " countryIso: " + countryIso);
            for (ProtobufEccData.CountryInfo countryEccInfo : allEccMessages.countries) {
                if (countryEccInfo.isoCode.equals(countryIso.toUpperCase(Locale.ROOT))) {
                    for (ProtobufEccData.EccInfo eccInfo : countryEccInfo.eccs) {
+22 −1
Original line number Diff line number Diff line
@@ -24,18 +24,26 @@ import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.anyInt;
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;
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.res.AssetManager;
import android.content.res.Resources;
import android.os.AsyncResult;
import android.os.Environment;
import android.os.ParcelFileDescriptor;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.telephony.emergency.EmergencyNumber;
import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper;
@@ -130,7 +138,8 @@ public class EmergencyNumberTrackerTest extends TelephonyTest {
        super.setUp(getClass().getSimpleName());
        mShortNumberInfo = mock(ShortNumberInfo.class);
        mSubControllerMock = mock(SubscriptionController.class);
        mContext = InstrumentationRegistry.getTargetContext();

        mContext = new ContextWrapper(InstrumentationRegistry.getTargetContext());
        mMockContext = mock(Context.class);
        mResources = mock(Resources.class);

@@ -366,6 +375,18 @@ public class EmergencyNumberTrackerTest extends TelephonyTest {
                mEmergencyNumberTrackerMock.getRadioEmergencyNumberList());
    }

    @Test
    public void testRegistrationForCountryChangeIntent() throws Exception {
        EmergencyNumberTracker localEmergencyNumberTracker;
        Context spyContext = spy(mContext);
        doReturn(spyContext).when(mPhone).getContext();
        ArgumentCaptor<IntentFilter> intentCaptor = ArgumentCaptor.forClass(IntentFilter.class);

        localEmergencyNumberTracker = new EmergencyNumberTracker(mPhone, mSimulatedCommands);
        verify(spyContext, times(1)).registerReceiver(any(), intentCaptor.capture());
        IntentFilter ifilter = intentCaptor.getValue();
        assertTrue(ifilter.hasAction(TelephonyManager.ACTION_NETWORK_COUNTRY_CHANGED));
    }
    @Test
    public void testUpdateEmergencyCountryIso() throws Exception {
        sendEmergencyNumberPrefix(mEmergencyNumberTrackerMock);