Merge "Update IRadioNetwork and VTS for emergency domain selection"

This commit is contained in:
Hunsuk Choi
2022-10-26 18:26:20 +00:00
committed by Android (Google) Code Review
6 changed files with 40 additions and 19 deletions

View File

@@ -72,6 +72,6 @@ interface IRadioNetwork {
oneway void getUsageSetting(in int serial);
oneway void setEmergencyMode(int serial, in android.hardware.radio.network.EmergencyMode emcModeType);
oneway void triggerEmergencyNetworkScan(int serial, in android.hardware.radio.network.EmergencyNetworkScanTrigger request);
oneway void cancelEmergencyNetworkScan(in int serial);
oneway void cancelEmergencyNetworkScan(int serial, boolean resetScan);
oneway void exitEmergencyMode(in int serial);
}

View File

@@ -18,6 +18,8 @@ package android.hardware.radio.network;
import android.hardware.radio.AccessNetwork;
import android.hardware.radio.network.CdmaRoamingType;
import android.hardware.radio.network.EmergencyMode;
import android.hardware.radio.network.EmergencyNetworkScanTrigger;
import android.hardware.radio.network.IRadioNetworkIndication;
import android.hardware.radio.network.IRadioNetworkResponse;
import android.hardware.radio.network.IndicationFilter;
@@ -27,8 +29,6 @@ import android.hardware.radio.network.RadioAccessSpecifier;
import android.hardware.radio.network.RadioBandMode;
import android.hardware.radio.network.SignalThresholdInfo;
import android.hardware.radio.network.UsageSetting;
import android.hardware.radio.network.EmergencyNetworkScanTrigger;
import android.hardware.radio.network.EmergencyMode;
/**
* This interface is used by telephony and telecom to talk to cellular radio for network APIs.
@@ -449,27 +449,30 @@ oneway interface IRadioNetwork {
*
* Response function is IRadioEmergencyResponse.setEmergencyModeResponse()
*/
void setEmergencyMode(int serial, in EmergencyMode emcModeType );
void setEmergencyMode(int serial, in EmergencyMode emcModeType);
/**
* Triggers an Emergency network scan.
*
* @param serial Serial number of the request.
* @param request Defines the radio target networks/preferred network/
* Max Scan Time and type of service to be scanned.
* @param request Contains the preferred networks and type of service to be scanned.
* See {@link EmergencyNetworkScanTrigger}.
*
* Response function is IRadioEmergencyResponse.triggerEmergencyNetworkScanResponse()
*/
void triggerEmergencyNetworkScan( int serial, in EmergencyNetworkScanTrigger request);
void triggerEmergencyNetworkScan(int serial, in EmergencyNetworkScanTrigger request);
/**
* Cancels ongoing Emergency network scan
*
* @param serial Serial number of the request.
* @param resetScan Indicates how the next {@link #triggerEmergencyNetworkScan} should work.
* If {@code true}, then the modem shall start the new scan from the beginning,
* otherwise the modem shall resume from the last search.
*
* Response function is IRadioEmergencyResponse.cancelEmergencyNetworkScan()
*/
void cancelEmergencyNetworkScan(in int serial);
void cancelEmergencyNetworkScan(int serial, boolean resetScan);
/**
* Exits ongoing Emergency Mode

View File

@@ -23,13 +23,13 @@ import android.hardware.radio.network.BarringInfo;
import android.hardware.radio.network.CdmaRoamingType;
import android.hardware.radio.network.CellIdentity;
import android.hardware.radio.network.CellInfo;
import android.hardware.radio.network.EmergencyRegResult;
import android.hardware.radio.network.OperatorInfo;
import android.hardware.radio.network.RadioAccessSpecifier;
import android.hardware.radio.network.RadioBandMode;
import android.hardware.radio.network.RegStateResult;
import android.hardware.radio.network.SignalStrength;
import android.hardware.radio.network.UsageSetting;
import android.hardware.radio.network.EmergencyRegResult;
/**
* Interface declaring response functions to solicited radio requests for network APIs.
@@ -575,11 +575,15 @@ oneway interface IRadioNetworkResponse {
oneway void getUsageSettingResponse(in RadioResponseInfo info, in UsageSetting usageSetting);
/**
* Response of setEmergencyMode.
* This is an optional API.
*
* @param info Response info struct containing response type, serial no. and error.
* @param regState the current registration state of the modem.
*
* Valid errors returned:
* RadioError:NONE
* RadioError:REQUEST_NOT_SUPPORTED
* RadioError:RADIO_NOT_AVAILABLE
* RadioError:MODEM_ERR
* RadioError:INVALID_ARGUMENTS
@@ -587,10 +591,14 @@ oneway interface IRadioNetworkResponse {
void setEmergencyModeResponse(in RadioResponseInfo info, in EmergencyRegResult regState);
/**
* @param info Response info struct containing response type, serial no. and error
* Response of triggerEmergencyNetworkScan.
* This is an optional API.
*
* @param info Response info struct containing response type, serial no. and error.
*
* Valid errors returned:
* RadioError:NONE
* RadioError:REQUEST_NOT_SUPPORTED
* RadioError:RADIO_NOT_AVAILABLE
* RadioError:MODEM_ERR
* RadioError:INVALID_ARGUMENTS
@@ -598,20 +606,28 @@ oneway interface IRadioNetworkResponse {
void triggerEmergencyNetworkScanResponse(in RadioResponseInfo info);
/**
* @param info Response info struct containing response type, serial no. and error
* Response of exitEmergencyMode.
* This is an optional API.
*
* @param info Response info struct containing response type, serial no. and error.
*
* Valid errors returned:
* RadioError:NONE
* RadioError:REQUEST_NOT_SUPPORTED
* RadioError:RADIO_NOT_AVAILABLE
* RadioError:MODEM_ERR
*/
void exitEmergencyModeResponse(in RadioResponseInfo info);
/**
* @param info Response info struct containing response type, serial no. and error
* Response of cancelEmergencyNetworkScan.
* This is an optional API.
*
* @param info Response info struct containing response type, serial no. and error.
*
* Valid errors returned:
* RadioError:NONE
* RadioError:REQUEST_NOT_SUPPORTED
* RadioError:RADIO_NOT_AVAILABLE
* RadioError:MODEM_ERR
*/

View File

@@ -97,7 +97,7 @@ class RadioNetwork : public RadioCompatBase,
int32_t serial,
const ::aidl::android::hardware::radio::network::EmergencyNetworkScanTrigger&
scanTrigger) override;
::ndk::ScopedAStatus cancelEmergencyNetworkScan(int32_t serial) override;
::ndk::ScopedAStatus cancelEmergencyNetworkScan(int32_t serial, bool resetScan) override;
::ndk::ScopedAStatus exitEmergencyMode(int32_t serial) override;
protected:

View File

@@ -326,7 +326,7 @@ ScopedAStatus RadioNetwork::triggerEmergencyNetworkScan(int32_t serial,
return ok();
}
ScopedAStatus RadioNetwork::cancelEmergencyNetworkScan(int32_t serial) {
ScopedAStatus RadioNetwork::cancelEmergencyNetworkScan(int32_t serial, bool) {
LOG_CALL << serial;
LOG(ERROR) << " cancelEmergencyNetworkScan is unsupported by HIDL HALs";
respond()->cancelEmergencyNetworkScanResponse(notSupported(serial));

View File

@@ -1848,7 +1848,7 @@ TEST_P(RadioNetworkTest, setEmergencyMode) {
ASSERT_TRUE(CheckAnyOfErrors(
radioRsp_network->rspInfo.error,
{RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE,
{RadioError::NONE, RadioError::REQUEST_NOT_SUPPORTED, RadioError::RADIO_NOT_AVAILABLE,
RadioError::MODEM_ERR, RadioError::INVALID_ARGUMENTS}));
LOG(DEBUG) << "setEmergencyMode finished";
}
@@ -1871,7 +1871,7 @@ TEST_P(RadioNetworkTest, triggerEmergencyNetworkScan) {
ASSERT_TRUE(CheckAnyOfErrors(
radioRsp_network->rspInfo.error,
{RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE,
{RadioError::NONE, RadioError::REQUEST_NOT_SUPPORTED, RadioError::RADIO_NOT_AVAILABLE,
RadioError::MODEM_ERR, RadioError::INVALID_ARGUMENTS}));
LOG(DEBUG) << "triggerEmergencyNetworkScan finished";
}
@@ -1883,14 +1883,15 @@ TEST_P(RadioNetworkTest, cancelEmergencyNetworkScan) {
LOG(DEBUG) << "cancelEmergencyNetworkScan";
serial = GetRandomSerialNumber();
radio_network->cancelEmergencyNetworkScan(serial);
radio_network->cancelEmergencyNetworkScan(serial, true);
EXPECT_EQ(std::cv_status::no_timeout, wait());
EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_network->rspInfo.type);
EXPECT_EQ(serial, radioRsp_network->rspInfo.serial);
ASSERT_TRUE(CheckAnyOfErrors(
radioRsp_network->rspInfo.error,
{RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE, RadioError::MODEM_ERR}));
{RadioError::NONE, RadioError::REQUEST_NOT_SUPPORTED, RadioError::RADIO_NOT_AVAILABLE,
RadioError::MODEM_ERR}));
LOG(DEBUG) << "cancelEmergencyNetworkScan finished";
}
@@ -1908,6 +1909,7 @@ TEST_P(RadioNetworkTest, exitEmergencyMode) {
ASSERT_TRUE(CheckAnyOfErrors(
radioRsp_network->rspInfo.error,
{RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE, RadioError::MODEM_ERR}));
{RadioError::NONE, RadioError::REQUEST_NOT_SUPPORTED, RadioError::RADIO_NOT_AVAILABLE,
RadioError::MODEM_ERR}));
LOG(DEBUG) << "exitEmergencyMode finished";
}