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

Commit b25740f0 authored by Sarah Chin's avatar Sarah Chin Committed by Gerrit Code Review
Browse files

Merge "Manual network selection by RAN type"

parents 8ae16915 0b0871ee
Loading
Loading
Loading
Loading
+4 −10
Original line number Diff line number Diff line
@@ -634,17 +634,11 @@ a64467bae843569f0d465c5be7f0c7a5b987985b55a3ef4794dd5afc68538650 android.hardwar
619fc9839ec6e369cfa9b28e3e9412e6885720ff8f9b5750c1b6ffb905120391 android.hardware.wifi.supplicant@1.3::ISupplicantStaIfaceCallback
c9273429fcf98d797d3bb07fdba6f1be95bf960f9255cde169fd1ca4db85f856 android.hardware.wifi.supplicant@1.3::ISupplicantStaNetwork
9b0a3ab6f4f74b971ed094426d8a443e29b512ff03e1ab50c07156396cdb2483 android.hardware.wifi.supplicant@1.3::types
##
# BEGIN Radio HAL Merge Conflict Avoidance Buffer - STOPSHIP if present
##
2fc83babe7cd7c6d5f1013f84019d761d2ac0eb38bdade7f9b01f5dc577de8f8 android.hardware.radio@1.5::types
603851ca0f5360778049902fc7486d0ff60065b16e83b99f076487667aba1928 android.hardware.radio@1.5::IRadio
50e22cd55ad5499e68e81541bbc67bd10e59c1b9f3ff8cc7ba70dcb0d2918381 android.hardware.radio@1.5::types
8cc3306e8cd755d04521d1611b217b9d13a2a76d2af57cbea8f875333b3363f7 android.hardware.radio@1.5::IRadio
e96ae1c3a9c0689002ec2318e9c587f4f607c16a75a3cd38788b77eb91072021 android.hardware.radio@1.5::IRadioIndication
04cce8fdae2b03becda4ee6fe17cb032fd7d30152f8ab36f642d794e4f5f6999 android.hardware.radio@1.5::IRadioResponse
7b77721a7716e163f5cc5f2830ed5616b953fcf0e5406f69de0fde5ce95e4184 android.hardware.radio@1.5::IRadioResponse
2fd107f3de1b7e36825e241a88dfae8edf3a77c166cb746f00ddf6440ab78db1 android.hardware.radio.config@1.3::types
a2977755bc5f1ef47f04b7f2400632efda6218e1515dba847da487145cfabc4f android.hardware.radio.config@1.3::IRadioConfig
742360c775313438b0f82256eac62fb5bbc76a6ae6f388573f3aa142fb2c1eea android.hardware.radio.config@1.3::IRadioConfigIndication
0006ab8e8b0910cbd3bbb08d5f17d5fac7d65a2bdad5f2334e4851db9d1e6fa8 android.hardware.radio.config@1.3::IRadioConfigResponse
 No newline at end of file
##
# END Radio HAL Merge Conflict Avoidance Buffer - STOPSHIP if present
##
+27 −8
Original line number Diff line number Diff line
@@ -16,10 +16,10 @@

package android.hardware.radio@1.5;

import @1.2::DataRequestReason;
import @1.0::CdmaSmsMessage;
import @1.4::IRadio;
import @1.2::DataRequestReason;
import @1.4::DataProfileInfo;
import @1.4::IRadio;
import @1.5::AccessNetwork;
import @1.5::BarringInfo;
import @1.5::DataProfileInfo;
@@ -27,6 +27,7 @@ import @1.5::IndicationFilter;
import @1.5::LinkAddress;
import @1.5::NetworkScanRequest;
import @1.5::PersoSubstate;
import @1.5::RadioAccessNetworks;
import @1.5::RadioAccessSpecifier;
import @1.5::SignalThresholdInfo;

@@ -266,16 +267,23 @@ interface IRadio extends @1.4::IRadio {
     */
    oneway getDataRegistrationState_1_5(int32_t serial);

    /**
     * Requests that deactivates one category of the device personalization.
    /*
     * Manually select a specified network.
     * This request must not respond until the new operator is selected and registered.
     * Per TS 23.122, the RAN is just the initial suggested value.
     * If registration fails, the RAN is not available afterwards, or the RAN is not within
     * the network types specified by IRadio::setPreferredNetworkTypeBitmap, then the modem
     * will need to select the next best RAN for network registration.
     *
     * @param serial Serial number of request.
     * @param persoType SIM personalization type.
     * @param controlKey depersonalization code corresponding to persoType
     * @param operatorNumeric String specifying MCCMNC of network to select (eg "310170").
     * @param ran Initial suggested radio access network type. If value is UNKNOWN, the modem
     *     will select the next best RAN for network registration.
     *
     * Response function is IRadioResponse.supplySimDepersonalizationResponse()
     * Response function is IRadioResponse.setNetworkSelectionModeManualResponse_1_5()
     */
    oneway supplySimDepersonalization(int32_t serial, PersoSubstate persoType, string controlKey);
    oneway setNetworkSelectionModeManual_1_5(int32_t serial, string operatorNumeric,
            RadioAccessNetworks ran);

    /**
     * Send an SMS message. Identical to sendCdmaSms,
@@ -287,4 +295,15 @@ interface IRadio extends @1.4::IRadio {
     * Response callback is IRadioResponse.sendCdmaSMSExpectMoreResponse()
     */
    oneway sendCdmaSmsExpectMore(int32_t serial, CdmaSmsMessage sms);

    /**
     * Requests that deactivates one category of the device personalization.
     *
     * @param serial Serial number of request.
     * @param persoType SIM personalization type.
     * @param controlKey depersonalization code corresponding to persoType
     *
     * Response function is IRadioResponse.supplySimDepersonalizationResponse()
     */
    oneway supplySimDepersonalization(int32_t serial, PersoSubstate persoType, string controlKey);
};
+35 −11
Original line number Diff line number Diff line
@@ -21,9 +21,10 @@ import @1.0::SendSmsResult;
import @1.4::IRadioResponse;
import @1.5::BarringInfo;
import @1.5::CellInfo;
import @1.5::PersoSubstate;
import @1.5::RegStateResult;
import @1.5::SetupDataCallResult;
import @1.4::SetupDataCallResult;
import @1.5::PersoSubstate;

/**
 * Interface declaring response functions to solicited radio requests.
@@ -176,7 +177,6 @@ interface IRadioResponse extends @1.4::IRadioResponse {
    oneway getBarringInfoResponse(RadioResponseInfo info, vec<BarringInfo> barringInfos);

    /**
     * @param info Response info struct containing response type, serial no. and error
     * @param voiceRegResponse Current Voice registration response as defined by RegStateResult
     *        in types.hal
     *
@@ -215,27 +215,29 @@ interface IRadioResponse extends @1.4::IRadioResponse {
     */
    oneway getCellInfoListResponse_1_5(RadioResponseInfo info, vec<CellInfo> cellInfo);


    /**
     * @param info Response info struct containing response type, serial no. and error
     * @param persoType SIM Personalisation type
     * @param remainingRetries Positive values indicates number of retries remaining,
     * must be equal to -1 if number of retries are infinite.
     *
     * Valid errors returned:
     *   RadioError:NONE
     *   RadioError:RADIO_NOT_AVAILABLE
     *   RadioError:PASSWORD_INCORRECT (code is invalid)
     *   RadioError:ILLEGAL_SIM_OR_ME
     *   RadioError:OPERATION_NOT_ALLOWED
     *   RadioError:INVALID_STATE
     *   RadioError:NO_MEMORY
     *   RadioError:INVALID_SIM_STATE
     *   RadioError:INTERNAL_ERR
     *   RadioError:SYSTEM_ERR
     *   RadioError:MODEM_ERR
     *   RadioError:INVALID_ARGUMENTS
     *   RadioError:NO_RESOURCES
     *   RadioError:MODEM_ERR
     *   RadioError:REQUEST_NOT_SUPPORTED
     *   RadioError:NO_RESOURCES
     *   RadioError:CANCELLED
     *
     * Returns RadioError:ILLEGAL_SIM_OR_ME when the failure is permanent and
     * no retries needed, such as illegal SIM or ME.
     */
    oneway supplySimDepersonalizationResponse(RadioResponseInfo info,
        PersoSubstate persoType, int32_t remainingRetries);
    oneway setNetworkSelectionModeManualResponse_1_5(RadioResponseInfo info);

    /**
     * @param info Response info struct containing response type, serial no. and error
@@ -267,4 +269,26 @@ interface IRadioResponse extends @1.4::IRadioResponse {
     *   RadioError:SIM_ABSENT
     */
    oneway sendCdmaSmsExpectMoreResponse(RadioResponseInfo info, SendSmsResult sms);

    /**
     * @param info Response info struct contatining response type, serial no. and error
     * @param persoType SIM Personalisation type
     * @param remainingRetries postiive values indicates number of retries remaining,
     * must be equal to -1 if number of retries is infinite.
     *
     * Valid errors returned:
     *   RadioError:NONE
     *   RadioError:RADIO_NOT_AVAILABLE
     *   RadioError:PASSWORD_INCORRECT (code is invalid)
     *   RadioError:NO_MEMORY
     *   RadioError:INVALID_SIM_STATE
     *   RadioError:INTERNAL_ERR
     *   RadioError:SYSTEM_ERR
     *   RadioError:MODEM_ERR
     *   RadioError:INVALID_ARGUMENTS
     *   RadioError:NO_RESOURCES
     *   RadioError:REQUEST_NOT_SUPPORTED
     */
    oneway supplySimDepersonalizationResponse(RadioResponseInfo info,
        PersoSubstate persoType, int32_t remainingRetries);
};
+5 −1
Original line number Diff line number Diff line
@@ -17,9 +17,9 @@
package android.hardware.radio@1.5;

import @1.0::ApnAuthType;
import @1.0::CdmaSignalStrength;
import @1.0::DataProfileId;
import @1.0::DataProfileInfoType;
import @1.0::CdmaSignalStrength;
import @1.0::EvdoSignalStrength;
import @1.0::GsmSignalStrength;
import @1.0::LteSignalStrength;
@@ -167,7 +167,11 @@ enum AccessNetwork : @1.4::AccessNetwork {
};

enum RadioAccessNetworks : @1.1::RadioAccessNetworks {
    UNKNOWN = 0,
    /** Next Generation Radio Access Network */
    NGRAN = 4,
    /** CDMA 2000 Network */
    CDMA2000 = 5,
};

/**
+33 −1
Original line number Diff line number Diff line
@@ -879,6 +879,9 @@ TEST_F(RadioHidlTest_v1_5, setupDataCall_1_5) {
    }
}

/*
 * Test IRadio.setInitialAttachApn_1_5() for the response returned.
 */
TEST_F(RadioHidlTest_v1_5, setInitialAttachApn_1_5) {
    serial = GetRandomSerialNumber();

@@ -919,6 +922,9 @@ TEST_F(RadioHidlTest_v1_5, setInitialAttachApn_1_5) {
    }
}

/*
 * Test IRadio.setDataProfile_1_5() for the response returned.
 */
TEST_F(RadioHidlTest_v1_5, setDataProfile_1_5) {
    serial = GetRandomSerialNumber();

@@ -991,6 +997,32 @@ TEST_F(RadioHidlTest_v1_5, setRadioPower_1_5_emergencyCall_cancalled) {
    EXPECT_EQ(RadioError::NONE, radioRsp_v1_5->rspInfo.error);
}

/*
 * Test IRadio.setNetworkSelectionModeManual_1_5() for the response returned.
 */
TEST_F(RadioHidlTest_v1_5, setNetworkSelectionModeManual_1_5) {
    serial = GetRandomSerialNumber();

    // can't camp on nonexistent MCCMNC, so we expect this to fail.
    Return<void> res = radio_v1_5->setNetworkSelectionModeManual_1_5(
            serial, "123456", android::hardware::radio::V1_5::RadioAccessNetworks::GERAN);
    EXPECT_EQ(std::cv_status::no_timeout, wait());
    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_5->rspInfo.type);
    EXPECT_EQ(serial, radioRsp_v1_5->rspInfo.serial);

    if (cardStatus.base.base.cardState == CardState::ABSENT) {
        ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_5->rspInfo.error,
                                     {RadioError::NONE, RadioError::ILLEGAL_SIM_OR_ME,
                                      RadioError::INVALID_ARGUMENTS, RadioError::INVALID_STATE},
                                     CHECK_GENERAL_ERROR));
    } else if (cardStatus.base.base.cardState == CardState::PRESENT) {
        ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_5->rspInfo.error,
                                     {RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE,
                                      RadioError::INVALID_ARGUMENTS, RadioError::INVALID_STATE},
                                     CHECK_GENERAL_ERROR));
    }
}

/*
 * Test IRadio.sendCdmaSmsExpectMore() for the response returned.
 */
Loading