mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 11:36:00 +00:00
Update IRadioNetwork and VTS for emergency domain selection
1. Add resetScan parameter to cancelEmergencyNetworkScan It indicates the way how the next triggerEmergencyNetworkScan shall work. If true, modem will start the new scan from the beginning. Otherwise, it will proceed as an existing search. 2. Allow RadioError:REQUEST_NOT_SUPPORTED to make requests optional Bug: 243344927 Test: atest VtsHalRadioTargetTest Change-Id: I0eaf905d73a7910b7bbd651add4b8a3bb6a23dc6
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
*/
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user