From ede1e95b6cabc294bbc38c32aaa4a3621ccf36e5 Mon Sep 17 00:00:00 2001 From: Shinsuke Ishioka Date: Fri, 17 Aug 2018 18:02:29 +0900 Subject: [PATCH] Receive forwarded number from Modem Adds forwarded number to Call information Update 1.6 HAL: - Added Call - Added getCurrentCalls_1_6 - Added getCurrentCallsResponse_1_6 Test: Build pass. Bug: 29063067 Change-Id: I8e43439e5638b7820d156d8fc6fe963cf1edf6f0 --- radio/1.6/IRadio.hal | 9 +++++++++ radio/1.6/IRadioResponse.hal | 13 +++++++++++++ radio/1.6/types.hal | 10 ++++++++++ radio/1.6/vts/functional/radio_hidl_hal_api.cpp | 12 ++++++++++++ .../1.6/vts/functional/radio_hidl_hal_utils_v1_6.h | 4 ++++ radio/1.6/vts/functional/radio_response.cpp | 8 ++++++++ 6 files changed, 56 insertions(+) diff --git a/radio/1.6/IRadio.hal b/radio/1.6/IRadio.hal index 2c8ac5ea35..929c624f21 100644 --- a/radio/1.6/IRadio.hal +++ b/radio/1.6/IRadio.hal @@ -406,4 +406,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 3b2061f32d..0d27479c6b 100644 --- a/radio/1.6/IRadioResponse.hal +++ b/radio/1.6/IRadioResponse.hal @@ -18,6 +18,7 @@ package android.hardware.radio@1.6; import @1.0::SendSmsResult; import @1.5::IRadioResponse; +import @1.6::Call; import @1.6::CellInfo; import @1.6::RegStateResult; import @1.6::RadioResponseInfo; @@ -383,4 +384,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 111fcd1325..dc7bad370b 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 @@ -815,6 +815,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 68d1f202b7..4a78f2b58e 100644 --- a/radio/1.6/vts/functional/radio_response.cpp +++ b/radio/1.6/vts/functional/radio_response.cpp @@ -1199,3 +1199,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(); +}