diff --git a/radio/1.6/IRadio.hal b/radio/1.6/IRadio.hal index 456655825e..3dc80b9e22 100644 --- a/radio/1.6/IRadio.hal +++ b/radio/1.6/IRadio.hal @@ -420,4 +420,13 @@ interface IRadio extends @1.5::IRadio { * Response function is IRadioResponse.getDataRegistrationStateResponse_1_6() */ oneway getDataRegistrationState_1_6(int32_t serial); + + /** + * Requests current call list + * + * @param serial Serial number of request. + * + * Response function is IRadioResponse.getCurrentCallsResponse_1_6() + */ + oneway getCurrentCalls_1_6(int32_t serial); }; diff --git a/radio/1.6/IRadioResponse.hal b/radio/1.6/IRadioResponse.hal index f13ee2b527..6ac86c335e 100644 --- a/radio/1.6/IRadioResponse.hal +++ b/radio/1.6/IRadioResponse.hal @@ -19,6 +19,7 @@ package android.hardware.radio@1.6; import @1.0::SendSmsResult; import @1.4::RadioAccessFamily; import @1.5::IRadioResponse; +import @1.6::Call; import @1.6::CellInfo; import @1.6::RegStateResult; import @1.6::RadioResponseInfo; @@ -401,4 +402,16 @@ interface IRadioResponse extends @1.5::IRadioResponse { */ oneway getDataRegistrationStateResponse_1_6(RadioResponseInfo info, RegStateResult dataRegResponse); + + /** + * @param calls Current call list + * RadioError:NO_MEMORY + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:INVALID_ARGUMENTS + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + oneway getCurrentCallsResponse_1_6(RadioResponseInfo info, vec calls); }; diff --git a/radio/1.6/types.hal b/radio/1.6/types.hal index 20dc612e82..f4dc0bdd17 100644 --- a/radio/1.6/types.hal +++ b/radio/1.6/types.hal @@ -24,6 +24,7 @@ import @1.0::RadioError; import @1.0::RadioResponseType; import @1.0::RegState; import @1.1::ScanStatus; +import @1.2::Call; import @1.2::CellInfoCdma; import @1.2::CellConnectionStatus; import @1.2::TdscdmaSignalStrength; @@ -723,3 +724,12 @@ struct RegStateResult { } ngranInfo; } accessTechnologySpecificInfo; }; + +struct Call { + @1.2::Call base; + /** + * Forwarded number. It can set only one forwarded number based on 3GPP rule of the CS. + * Reference: 3GPP TS 24.008 section 10.5.4.21b + */ + string forwardedNumber; +}; diff --git a/radio/1.6/vts/functional/radio_hidl_hal_api.cpp b/radio/1.6/vts/functional/radio_hidl_hal_api.cpp index 75772cdb2a..47babed32e 100644 --- a/radio/1.6/vts/functional/radio_hidl_hal_api.cpp +++ b/radio/1.6/vts/functional/radio_hidl_hal_api.cpp @@ -406,3 +406,15 @@ TEST_P(RadioHidlTest_v1_6, setSimCardPower_1_6) { EXPECT_EQ(CardState::PRESENT, cardStatus.base.base.base.cardState); } } + +/* + * Test IRadio.getCurrentCalls_1_6() for the response returned. + */ +TEST_P(RadioHidlTest_v1_6, getCurrentCalls_1_6) { + serial = GetRandomSerialNumber(); + radio_v1_6->getCurrentCalls_1_6(serial); + EXPECT_EQ(std::cv_status::no_timeout, wait()); + EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_6->rspInfo.type); + EXPECT_EQ(serial, radioRsp_v1_6->rspInfo.serial); + EXPECT_EQ(::android::hardware::radio::V1_6::RadioError::NONE, radioRsp_v1_6->rspInfo.error); +} diff --git a/radio/1.6/vts/functional/radio_hidl_hal_utils_v1_6.h b/radio/1.6/vts/functional/radio_hidl_hal_utils_v1_6.h index ab56540067..fbcd7a9339 100644 --- a/radio/1.6/vts/functional/radio_hidl_hal_utils_v1_6.h +++ b/radio/1.6/vts/functional/radio_hidl_hal_utils_v1_6.h @@ -821,6 +821,10 @@ class RadioResponse_v1_6 : public ::android::hardware::radio::V1_6::IRadioRespon Return getDataRegistrationStateResponse_1_6( const ::android::hardware::radio::V1_6::RadioResponseInfo& info, const ::android::hardware::radio::V1_6::RegStateResult& regResponse); + + Return getCurrentCallsResponse_1_6( + const ::android::hardware::radio::V1_6::RadioResponseInfo& info, + const ::android::hardware::hidl_vec<::android::hardware::radio::V1_6::Call>& calls); }; /* Callback class for radio indication */ diff --git a/radio/1.6/vts/functional/radio_response.cpp b/radio/1.6/vts/functional/radio_response.cpp index e37efdd9f0..7c5cf6df86 100644 --- a/radio/1.6/vts/functional/radio_response.cpp +++ b/radio/1.6/vts/functional/radio_response.cpp @@ -1207,3 +1207,11 @@ Return RadioResponse_v1_6::getDataRegistrationStateResponse_1_6( parent_v1_6.notify(info.serial); return Void(); } + +Return RadioResponse_v1_6::getCurrentCallsResponse_1_6( + const ::android::hardware::radio::V1_6::RadioResponseInfo& info, + const ::android::hardware::hidl_vec<::android::hardware::radio::V1_6::Call>& /*calls*/) { + rspInfo = info; + parent_v1_6.notify(info.serial); + return Void(); +}