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

Commit d0e43388 authored by Chinmay Dhodapkar's avatar Chinmay Dhodapkar Committed by Automerger Merge Worker
Browse files

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

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

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

            } else {
            } else {
                loge("CarrierConfigManager is null.");
                loge("CarrierConfigManager is null.");
            }
            }
@@ -544,7 +551,7 @@ public class EmergencyNumberTracker extends Handler {
                    readInputStreamToByteArray(gzipInputStream));
                    readInputStreamToByteArray(gzipInputStream));
            assetsDatabaseVersion = allEccMessages.revision;
            assetsDatabaseVersion = allEccMessages.revision;
            logd(countryIso + " asset emergency database is loaded. Ver: " + assetsDatabaseVersion
            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) {
            for (ProtobufEccData.CountryInfo countryEccInfo : allEccMessages.countries) {
                if (countryEccInfo.isoCode.equals(countryIso.toUpperCase(Locale.ROOT))) {
                if (countryEccInfo.isoCode.equals(countryIso.toUpperCase(Locale.ROOT))) {
                    for (ProtobufEccData.EccInfo eccInfo : countryEccInfo.eccs) {
                    for (ProtobufEccData.EccInfo eccInfo : countryEccInfo.eccs) {
+22 −1
Original line number Original line 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.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.anyString;
import static org.mockito.Mockito.anyString;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
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 static org.mockito.Mockito.verify;


import org.mockito.ArgumentCaptor;

import android.content.IntentFilter;
import android.content.Context;
import android.content.Context;
import android.content.ContextWrapper;
import android.content.res.AssetManager;
import android.content.res.AssetManager;
import android.content.res.Resources;
import android.content.res.Resources;
import android.os.AsyncResult;
import android.os.AsyncResult;
import android.os.Environment;
import android.os.Environment;
import android.os.ParcelFileDescriptor;
import android.os.ParcelFileDescriptor;
import android.telephony.SubscriptionManager;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.telephony.emergency.EmergencyNumber;
import android.telephony.emergency.EmergencyNumber;
import android.testing.AndroidTestingRunner;
import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper;
import android.testing.TestableLooper;
@@ -130,7 +138,8 @@ public class EmergencyNumberTrackerTest extends TelephonyTest {
        super.setUp(getClass().getSimpleName());
        super.setUp(getClass().getSimpleName());
        mShortNumberInfo = mock(ShortNumberInfo.class);
        mShortNumberInfo = mock(ShortNumberInfo.class);
        mSubControllerMock = mock(SubscriptionController.class);
        mSubControllerMock = mock(SubscriptionController.class);
        mContext = InstrumentationRegistry.getTargetContext();

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


@@ -366,6 +375,18 @@ public class EmergencyNumberTrackerTest extends TelephonyTest {
                mEmergencyNumberTrackerMock.getRadioEmergencyNumberList());
                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
    @Test
    public void testUpdateEmergencyCountryIso() throws Exception {
    public void testUpdateEmergencyCountryIso() throws Exception {
        sendEmergencyNumberPrefix(mEmergencyNumberTrackerMock);
        sendEmergencyNumberPrefix(mEmergencyNumberTrackerMock);