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

Commit 12d205c7 authored by android-build-team Robot's avatar android-build-team Robot
Browse files

Snap for 6374687 from 3d809f74 to rvc-release

Change-Id: Icf6b88f35637e2c8976e5bcd685e17cbfd951ee7
parents 2446ade3 3d809f74
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -949,6 +949,12 @@ public class RIL extends BaseCommands implements CommandsInterface {
                    handleRadioProxyExceptionForRR(rr, "supplySimDepersonalization", e);
                }
            }
        } else {
            if (result != null) {
                AsyncResult.forMessage(result, null,
                        CommandException.fromRilErrno(REQUEST_NOT_SUPPORTED));
                result.sendToTarget();
            }
        }
    }

+1 −0
Original line number Diff line number Diff line
@@ -93,6 +93,7 @@ public class DcNetworkAgent extends NetworkAgent {
        mTransportType = transportType;
        mDataConnection = dc;
        mNetworkInfo = new NetworkInfo(ni);
        setLegacyExtraInfo(ni.getExtraInfo());
        // TODO: Remove after b/151487565 is fixed.
        sNetworkAgents.add(this);
        checkRedundantIms();
+40 −8
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ import android.util.LocalLog;

import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.telephony.CommandsInterface;
import com.android.internal.telephony.HalVersion;
import com.android.internal.telephony.LocaleTracker;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneConstants;
@@ -700,7 +701,7 @@ public class EmergencyNumberTracker extends Handler {
        if (!mEmergencyNumberListFromRadio.isEmpty()) {
            return Collections.unmodifiableList(mEmergencyNumberList);
        } else {
            return getEmergencyNumberListFromEccListAndTest();
            return getEmergencyNumberListFromEccListDatabaseAndTest();
        }
    }

@@ -738,7 +739,7 @@ public class EmergencyNumberTracker extends Handler {
            return false;
        } else {
            return isEmergencyNumberFromEccList(number, exactMatch)
                    || isEmergencyNumberForTest(number);
                    || isEmergencyNumberFromDatabase(number) || isEmergencyNumberForTest(number);
        }
    }

@@ -858,9 +859,11 @@ public class EmergencyNumberTracker extends Handler {
    private List<EmergencyNumber> getEmergencyNumberListWithPrefix(
            List<EmergencyNumber> emergencyNumberList) {
        List<EmergencyNumber> emergencyNumberListWithPrefix = new ArrayList<>();
        if (emergencyNumberList != null) {
            for (EmergencyNumber num : emergencyNumberList) {
                for (String prefix : mEmergencyNumberPrefix) {
                // If an emergency number has started with the prefix, no need to apply the prefix.
                    // If an emergency number has started with the prefix,
                    // no need to apply the prefix.
                    if (!num.getNumber().startsWith(prefix)) {
                        emergencyNumberListWithPrefix.add(new EmergencyNumber(
                            prefix + num.getNumber(), num.getCountryIso(),
@@ -870,6 +873,7 @@ public class EmergencyNumberTracker extends Handler {
                    }
                }
            }
        }
        return emergencyNumberListWithPrefix;
    }

@@ -883,6 +887,26 @@ public class EmergencyNumberTracker extends Handler {
        return false;
    }

    private boolean isEmergencyNumberFromDatabase(String number) {
        if (!mPhone.getHalVersion().greaterOrEqual(new HalVersion(1, 4))) {
            return false;
        }
        number = PhoneNumberUtils.stripSeparators(number);
        for (EmergencyNumber num : mEmergencyNumberListFromDatabase) {
            if (num.getNumber().equals(number)) {
                return true;
            }
        }
        List<EmergencyNumber> emergencyNumberListFromDatabaseWithPrefix =
                getEmergencyNumberListWithPrefix(mEmergencyNumberListFromDatabase);
        for (EmergencyNumber num : emergencyNumberListFromDatabaseWithPrefix) {
            if (num.getNumber().equals(number)) {
                return true;
            }
        }
        return false;
    }

    private EmergencyNumber getLabeledEmergencyNumberForEcclist(String number) {
        number = PhoneNumberUtils.stripSeparators(number);
        for (EmergencyNumber num : mEmergencyNumberListFromDatabase) {
@@ -1074,9 +1098,17 @@ public class EmergencyNumberTracker extends Handler {
        notifyEmergencyNumberList();
    }

    private List<EmergencyNumber> getEmergencyNumberListFromEccListAndTest() {
    private List<EmergencyNumber> getEmergencyNumberListFromEccListDatabaseAndTest() {
        List<EmergencyNumber> mergedEmergencyNumberList = getEmergencyNumberListFromEccList();
        if (mPhone.getHalVersion().greaterOrEqual(new HalVersion(1, 4))) {
            loge("getEmergencyNumberListFromEccListDatabaseAndTest: radio indication is"
                    + " unavailable in 1.4 HAL.");
            mergedEmergencyNumberList.addAll(mEmergencyNumberListFromDatabase);
            mergedEmergencyNumberList.addAll(getEmergencyNumberListWithPrefix(
                    mEmergencyNumberListFromDatabase));
        }
        mergedEmergencyNumberList.addAll(getEmergencyNumberListTestMode());
        EmergencyNumber.mergeSameNumbersInEmergencyNumberList(mergedEmergencyNumberList);
        return mergedEmergencyNumberList;
    }

+51 B

File added.

No diff preview for this file type.

+48 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.internal.telephony.emergency;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.doReturn;

@@ -25,6 +26,9 @@ import android.telephony.emergency.EmergencyNumber;
import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper;

import androidx.test.InstrumentationRegistry;

import com.android.internal.telephony.HalVersion;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneFactory;
import com.android.internal.telephony.TelephonyTest;
@@ -62,6 +66,8 @@ public class EmergencyNumberTrackerTest extends TelephonyTest {
    public void setUp() throws Exception {
        logd("EmergencyNumberTrackerTest +Setup!");
        super.setUp("EmergencyNumberTrackerTest");
        mContext = InstrumentationRegistry.getTargetContext();

        doReturn(mContext).when(mPhone).getContext();
        doReturn(0).when(mPhone).getPhoneId();

@@ -189,6 +195,48 @@ public class EmergencyNumberTrackerTest extends TelephonyTest {
        assertTrue(mEmergencyNumberTrackerMock2.getEmergencyCountryIso().equals("us"));
    }

    /**
     * In 1.3 or less HAL. we should not use database number.
     */
    @Test
    public void testUsingEmergencyNumberDatabaseWheneverHal_1_3() {
        doReturn(new HalVersion(1, 3)).when(mPhone).getHalVersion();

        sendEmergencyNumberPrefix(mEmergencyNumberTrackerMock);
        mEmergencyNumberTrackerMock.updateEmergencyCountryIsoAllPhones("us");
        processAllMessages();

        boolean hasDatabaseNumber = false;
        for (EmergencyNumber number : mEmergencyNumberTrackerMock.getEmergencyNumberList()) {
            if (number.isFromSources(EmergencyNumber.EMERGENCY_NUMBER_SOURCE_DATABASE)) {
                hasDatabaseNumber = true;
                break;
            }
        }
        assertFalse(hasDatabaseNumber);
    }

    /**
     * In 1.4 or above HAL, we should use database number.
     */
    @Test
    public void testUsingEmergencyNumberDatabaseWheneverHal_1_4() {
        doReturn(new HalVersion(1, 4)).when(mPhone).getHalVersion();

        sendEmergencyNumberPrefix(mEmergencyNumberTrackerMock);
        mEmergencyNumberTrackerMock.updateEmergencyCountryIsoAllPhones("us");
        processAllMessages();

        boolean hasDatabaseNumber = false;
        for (EmergencyNumber number : mEmergencyNumberTrackerMock.getEmergencyNumberList()) {
            if (number.isFromSources(EmergencyNumber.EMERGENCY_NUMBER_SOURCE_DATABASE)) {
                hasDatabaseNumber = true;
                break;
            }
        }
        assertTrue(hasDatabaseNumber);
    }

    @Test
    public void testEmergencyNumberListPrefix() throws Exception {
        sendEmergencyNumberListFromRadio();