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

Commit 4a2d0192 authored by Chinmay Dhodapkar's avatar Chinmay Dhodapkar
Browse files

register intent receiver for country change

-this code was removed by mistake in ag/20657717
-added test

Bug: 269676510
Test: atest EmergencyNumberTrackerTest
Change-Id: I82d4eeba5dce48d2e5d8445b2e4456c6627b348a
parent 816e6132
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);