From 32cb6c11a03c3ffde788d039ff05b2868b387e4f Mon Sep 17 00:00:00 2001 From: zhoujie0328 Date: Tue, 28 Mar 2023 10:34:45 +0800 Subject: [PATCH 01/12] =?UTF-8?q?IssueNo:=E6=9A=97=E7=A0=81=E5=B9=BF?= =?UTF-8?q?=E6=92=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Description:暗码广播 Sig:SIG_Telephony Feature or Bugfix: Feature Binary Source: No Signed-off-by: zhoujie0328 Change-Id: Ia186850dc3d4ae7e35ba4c3c8002a16d8a753534 --- .../js/napi/include/napi_call_manager.h | 2 + frameworks/js/napi/src/napi_call_manager.cpp | 40 +++++++++++++++++++ .../native/include/call_manager_proxy.h | 1 + .../include/call_manager_service_proxy.h | 8 ++++ .../native/include/i_call_manager_service.h | 2 + frameworks/native/src/call_manager_client.cpp | 9 +++++ frameworks/native/src/call_manager_proxy.cpp | 16 ++++++++ .../native/src/call_manager_service_proxy.cpp | 24 +++++++++++ interfaces/innerkits/call_manager_client.h | 1 + interfaces/kits/js/@ohos.telephony.call.d.ts | 34 ++++++++++++++++ .../include/call_manager_service.h | 9 +++++ .../include/call_manager_service_stub.h | 1 + .../src/call_manager_service.cpp | 25 ++++++++++++ .../src/call_manager_service_stub.cpp | 14 +++++++ .../src/call_manager_gtest.cpp | 31 ++++++++++++++ 15 files changed, 217 insertions(+) diff --git a/frameworks/js/napi/include/napi_call_manager.h b/frameworks/js/napi/include/napi_call_manager.h index b1502869..9e452154 100644 --- a/frameworks/js/napi/include/napi_call_manager.h +++ b/frameworks/js/napi/include/napi_call_manager.h @@ -129,6 +129,7 @@ public: static napi_value ReportOttCallEventInfo(napi_env env, napi_callback_info info); static napi_value HasVoiceCapability(napi_env env, napi_callback_info info); static napi_value CloseUnFinishedUssd(napi_env env, napi_callback_info info); + static napi_value InputDialerSpecialCode(napi_env env, napi_callback_info info); private: static void RegisterCallBack(); @@ -198,6 +199,7 @@ private: static void NativeJoinConference(napi_env env, void *data); static void NativeUpdateImsCallMode(napi_env env, void *data); static void NativeCloseUnFinishedUssd(napi_env env, void *data); + static void NativeInputDialerSpecialCode(napi_env env, void *data); static bool MatchEmptyParameter(napi_env env, const napi_value parameters[], const size_t parameterCount); static bool MatchOneOptionalNumberParameter( napi_env env, const napi_value parameters[], const size_t parameterCount); diff --git a/frameworks/js/napi/src/napi_call_manager.cpp b/frameworks/js/napi/src/napi_call_manager.cpp index 0d34cb93..6bbd67cf 100644 --- a/frameworks/js/napi/src/napi_call_manager.cpp +++ b/frameworks/js/napi/src/napi_call_manager.cpp @@ -104,6 +104,7 @@ napi_value NapiCallManager::DeclareCallSupplementInterface(napi_env env, napi_va DECLARE_NAPI_FUNCTION("isImsSwitchEnabled", IsImsSwitchEnabled), DECLARE_NAPI_FUNCTION("canSetCallTransferTime", CanSetCallTransferTime), DECLARE_NAPI_FUNCTION("closeUnFinishedUssd", CloseUnFinishedUssd), + DECLARE_NAPI_FUNCTION("inputDialerSpecialCode", InputDialerSpecialCode), }; NAPI_CALL(env, napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc)); return exports; @@ -2576,6 +2577,30 @@ napi_value NapiCallManager::CloseUnFinishedUssd(napi_env env, napi_callback_info env, asyncContext.release(), "CloseUnFinishedUssd", NativeCloseUnFinishedUssd, NativeVoidCallBackWithErrorCode); } +napi_value NapiCallManager::InputDialerSpecialCode(napi_env env, napi_callback_info info) +{ + GET_PARAMS(env, info, VALUE_MAXIMUM_LIMIT); + if (!MatchOneStringParameter(env, argv, argc)) { + TELEPHONY_LOGE("NapiCallManager::InputDialerSpecialCode MatchOneStringParameter failed."); + NapiUtil::ThrowParameterError(env); + return nullptr; + } + + auto asyncContext = std::make_unique(); + if (asyncContext == nullptr) { + TELEPHONY_LOGE("NapiCallManager::InputDialerSpecialCode asyncContext is nullptr."); + NapiUtil::ThrowParameterError(env); + return nullptr; + } + napi_get_value_string_utf8( + env, argv[ARRAY_INDEX_FIRST], asyncContext->number, PHONE_NUMBER_MAXIMUM_LIMIT, &(asyncContext->numberLen)); + if (argc == TWO_VALUE_LIMIT) { + napi_create_reference(env, argv[ARRAY_INDEX_SECOND], DATA_LENGTH_ONE, &(asyncContext->callbackRef)); + } + return HandleAsyncWork(env, asyncContext.release(), "InputDialerSpecialCode", NativeInputDialerSpecialCode, + NativeVoidCallBackWithErrorCode); +} + napi_value NapiCallManager::HasVoiceCapability(napi_env env, napi_callback_info) { TELEPHONY_LOGI("napi_call HasVoiceCapability"); @@ -4213,6 +4238,21 @@ void NapiCallManager::NativeCloseUnFinishedUssd(napi_env env, void *data) asyncContext->deferred = nullptr; } +void NapiCallManager::NativeInputDialerSpecialCode(napi_env env, void *data) +{ + if (data == nullptr) { + TELEPHONY_LOGE("NapiCallManager::NativeInputDialerSpecialCode data is nullptr"); + NapiUtil::ThrowParameterError(env); + return; + } + AsyncContext *asyncContext = (AsyncContext *)data; + std::string specialCode(asyncContext->number, asyncContext->numberLen); + asyncContext->errorCode = DelayedSingleton::GetInstance()->InputDialerSpecialCode(specialCode); + if (asyncContext->errorCode == TELEPHONY_SUCCESS) { + asyncContext->resolved = TELEPHONY_SUCCESS; + } +} + void NapiCallManager::RegisterCallBack() { if (registerStatus_ == TELEPHONY_SUCCESS) { diff --git a/frameworks/native/include/call_manager_proxy.h b/frameworks/native/include/call_manager_proxy.h index 58fcb353..4ff330c8 100644 --- a/frameworks/native/include/call_manager_proxy.h +++ b/frameworks/native/include/call_manager_proxy.h @@ -99,6 +99,7 @@ public: int32_t ReportOttCallDetailsInfo(std::vector &ottVec); int32_t ReportOttCallEventInfo(OttCallEventInfo &eventInfo); int32_t CloseUnFinishedUssd(int32_t slotId); + int32_t InputDialerSpecialCode(const std::string &specialCode); sptr GetProxyObjectPtr(CallManagerProxyType proxyType); void OnRemoteDied(const wptr &remote); int32_t ReportAudioDeviceInfo(); diff --git a/frameworks/native/include/call_manager_service_proxy.h b/frameworks/native/include/call_manager_service_proxy.h index 369a73f5..0c26dcd1 100644 --- a/frameworks/native/include/call_manager_service_proxy.h +++ b/frameworks/native/include/call_manager_service_proxy.h @@ -565,6 +565,14 @@ public: */ int32_t CloseUnFinishedUssd(int32_t slotId) override; + /** + * Handle special code from dialer. + * + * @param specialCode[in], special code + * @return Returns 0 on success, others on failure. + */ + int32_t InputDialerSpecialCode(const std::string &specialCode) override; + /** * GetProxyObjectPtr * diff --git a/frameworks/native/include/i_call_manager_service.h b/frameworks/native/include/i_call_manager_service.h index c3a20bbf..bd4f8724 100644 --- a/frameworks/native/include/i_call_manager_service.h +++ b/frameworks/native/include/i_call_manager_service.h @@ -87,6 +87,7 @@ enum CallManagerSurfaceCode { INTERFACE_GET_PROXY_OBJECT_PTR, INTERFACE_CLOSE_UNFINISHED_USSD, INTERFACE_REPORT_AUDIO_DEVICE_INFO, + INTERFACE_INPUT_DIALER_SPECIAL_CODE, }; enum CallManagerProxyType { @@ -154,6 +155,7 @@ public: virtual int32_t ReportOttCallDetailsInfo(std::vector &ottVec) = 0; virtual int32_t ReportOttCallEventInfo(OttCallEventInfo &eventInfo) = 0; virtual int32_t CloseUnFinishedUssd(int32_t slotId) = 0; + virtual int32_t InputDialerSpecialCode(const std::string &specialCode) = 0; virtual sptr GetProxyObjectPtr(CallManagerProxyType proxyType) = 0; virtual int32_t ReportAudioDeviceInfo() = 0; diff --git a/frameworks/native/src/call_manager_client.cpp b/frameworks/native/src/call_manager_client.cpp index 6ba76dd7..087b52bb 100644 --- a/frameworks/native/src/call_manager_client.cpp +++ b/frameworks/native/src/call_manager_client.cpp @@ -608,6 +608,15 @@ int32_t CallManagerClient::CloseUnFinishedUssd(int32_t slotId) } } +int32_t CallManagerClient::InputDialerSpecialCode(const std::string &specialCode) +{ + if (g_callManagerProxy == nullptr) { + TELEPHONY_LOGE("init first please!"); + return TELEPHONY_ERR_UNINIT; + } + return g_callManagerProxy->InputDialerSpecialCode(specialCode); +} + bool CallManagerClient::HasVoiceCapability() { char retValue[VOICECALL_CAP_VAL_LEN + 1] = {"true"}; diff --git a/frameworks/native/src/call_manager_proxy.cpp b/frameworks/native/src/call_manager_proxy.cpp index 6919a2e7..88d632b4 100644 --- a/frameworks/native/src/call_manager_proxy.cpp +++ b/frameworks/native/src/call_manager_proxy.cpp @@ -1056,6 +1056,22 @@ int32_t CallManagerProxy::CloseUnFinishedUssd(int32_t slotId) return TELEPHONY_SUCCESS; } +int32_t CallManagerProxy::InputDialerSpecialCode(const std::string &specialCode) +{ + if (ReConnectService() != TELEPHONY_SUCCESS) { + TELEPHONY_LOGE("ipc reconnect failed!"); + return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL; + } + + std::lock_guard lock(mutex_); + int32_t errCode = callManagerServicePtr_->InputDialerSpecialCode(specialCode); + if (errCode != TELEPHONY_SUCCESS) { + TELEPHONY_LOGE("InputDialerSpecialCode failed, errcode:%{public}d", errCode); + return errCode; + } + return TELEPHONY_SUCCESS; +} + sptr CallManagerProxy::GetProxyObjectPtr(CallManagerProxyType proxyType) { if (ReConnectService() != TELEPHONY_SUCCESS) { diff --git a/frameworks/native/src/call_manager_service_proxy.cpp b/frameworks/native/src/call_manager_service_proxy.cpp index 2e240cd5..c51b3919 100644 --- a/frameworks/native/src/call_manager_service_proxy.cpp +++ b/frameworks/native/src/call_manager_service_proxy.cpp @@ -1397,6 +1397,30 @@ int32_t CallManagerServiceProxy::CloseUnFinishedUssd(int32_t slotId) return replyParcel.ReadInt32(); } +int32_t CallManagerServiceProxy::InputDialerSpecialCode(const std::string &specialCode) +{ + MessageOption option; + MessageParcel dataParcel; + MessageParcel replyParcel; + if (!dataParcel.WriteInterfaceToken(CallManagerServiceProxy::GetDescriptor())) { + TELEPHONY_LOGE("write descriptor fail"); + return TELEPHONY_ERR_WRITE_DESCRIPTOR_TOKEN_FAIL; + } + auto remote = Remote(); + if (remote == nullptr) { + TELEPHONY_LOGE("function Remote() return nullptr!"); + return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL; + } + dataParcel.WriteString(specialCode); + int32_t error = remote->SendRequest(CallManagerSurfaceCode::INTERFACE_INPUT_DIALER_SPECIAL_CODE, + dataParcel, replyParcel, option); + if (error != TELEPHONY_SUCCESS) { + TELEPHONY_LOGE("Function InputDialerSpecialCode! errCode:%{public}d", error); + return error; + } + return replyParcel.ReadInt32(); +} + sptr CallManagerServiceProxy::GetProxyObjectPtr(CallManagerProxyType proxyType) { MessageOption option; diff --git a/interfaces/innerkits/call_manager_client.h b/interfaces/innerkits/call_manager_client.h index 62bbda48..c84ac9fe 100644 --- a/interfaces/innerkits/call_manager_client.h +++ b/interfaces/innerkits/call_manager_client.h @@ -84,6 +84,7 @@ public: int32_t ReportOttCallDetailsInfo(std::vector &ottVec); int32_t ReportOttCallEventInfo(OttCallEventInfo &eventInfo); int32_t CloseUnFinishedUssd(int32_t slotId); + int32_t InputDialerSpecialCode(const std::string &specialCode); bool HasVoiceCapability(); int32_t ReportAudioDeviceInfo(); }; diff --git a/interfaces/kits/js/@ohos.telephony.call.d.ts b/interfaces/kits/js/@ohos.telephony.call.d.ts index 7c694022..44cd05fa 100644 --- a/interfaces/kits/js/@ohos.telephony.call.d.ts +++ b/interfaces/kits/js/@ohos.telephony.call.d.ts @@ -963,6 +963,40 @@ declare namespace call { */ function closeUnFinishedUssd(slotId: number): Promise; + /** + * Handle special code from dialer. + * + * @permission ohos.permission.PLACE_CALL + * @param { string } inputCode - Indicates the special code entered. + * @param { AsyncCallback } callback - The callback of inputDialerSpecialCode. + * @throws { BusinessError } 201 - Permission denied. + * @throws { BusinessError } 401 - Parameter error. + * @throws { BusinessError } 8300001 - Invalid parameter value. + * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service. + * @throws { BusinessError } 8300003 - System internal error. + * @throws { BusinessError } 8300999 - Unknown error code. + * @systemapi Hide this for inner system use. + * @since 10 + */ + function inputDialerSpecialCode(inputCode: string, callback: AsyncCallback): void; + + /** + * Handle special code from dialer. + * + * @permission ohos.permission.PLACE_CALL + * @param { string } inputCode - Indicates the special code entered. + * @returns { Promise } The promise returned by the function. + * @throws { BusinessError } 201 - Permission denied. + * @throws { BusinessError } 401 - Parameter error. + * @throws { BusinessError } 8300001 - Invalid parameter value. + * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service. + * @throws { BusinessError } 8300003 - System internal error. + * @throws { BusinessError } 8300999 - Unknown error code. + * @systemapi Hide this for inner system use. + * @since 10 + */ + function inputDialerSpecialCode(inputCode: string): Promise; + /** * @systemapi Hide this for inner system use. * @since 8 diff --git a/services/call_manager_service/include/call_manager_service.h b/services/call_manager_service/include/call_manager_service.h index 23b30e44..fbd8db0a 100644 --- a/services/call_manager_service/include/call_manager_service.h +++ b/services/call_manager_service/include/call_manager_service.h @@ -602,6 +602,14 @@ public: */ int32_t CloseUnFinishedUssd(int32_t slotId) override; + /** + * Handle special code from dialer. + * + * @param specialCode[in], special code + * @return Returns 0 on success, others on failure. + */ + int32_t InputDialerSpecialCode(const std::string &specialCode) override; + /** * GetProxyObjectPtr * @@ -632,6 +640,7 @@ private: std::shared_ptr callControlManagerPtr_; std::map> proxyObjectPtrMap_; + std::vector supportSpecialCode_ { "2846579" }; std::mutex lock_; const int32_t startTime_ = 1900; const int32_t extraMonth_ = 1; diff --git a/services/call_manager_service/include/call_manager_service_stub.h b/services/call_manager_service/include/call_manager_service_stub.h index fd4e1f52..67d496f1 100644 --- a/services/call_manager_service/include/call_manager_service_stub.h +++ b/services/call_manager_service/include/call_manager_service_stub.h @@ -100,6 +100,7 @@ private: int32_t OnReportOttCallDetailsInfo(MessageParcel &data, MessageParcel &reply); int32_t OnReportOttCallEventInfo(MessageParcel &data, MessageParcel &reply); int32_t OnCloseUnFinishedUssd(MessageParcel &data, MessageParcel &reply); + int32_t OnInputDialerSpecialCode(MessageParcel &data, MessageParcel &reply); int32_t OnGetProxyObjectPtr(MessageParcel &data, MessageParcel &reply); int32_t OnReportAudioDeviceInfo(MessageParcel &data, MessageParcel &reply); std::map memberFuncMap_; diff --git a/services/call_manager_service/src/call_manager_service.cpp b/services/call_manager_service/src/call_manager_service.cpp index 4d9f0b13..f084711f 100644 --- a/services/call_manager_service/src/call_manager_service.cpp +++ b/services/call_manager_service/src/call_manager_service.cpp @@ -867,6 +867,31 @@ int32_t CallManagerService::CloseUnFinishedUssd(int32_t slotId) } } +int32_t CallManagerService::InputDialerSpecialCode(const std::string &specialCode) +{ + if (!TelephonyPermission::CheckPermission(OHOS_PERMISSION_PLACE_CALL)) { + TELEPHONY_LOGE("Permission denied!"); + return TELEPHONY_ERR_PERMISSION_ERR; + } + + auto it = find(supportSpecialCode_.begin(), supportSpecialCode_.end(), specialCode); + if (it == supportSpecialCode_.end()) { + TELEPHONY_LOGE("specialCode is not support"); + return TELEPHONY_ERR_ARGUMENT_INVALID; + } + AAFwk::Want want; + want.SetAction(EventFwk::CommonEventSupport::COMMON_EVENT_SPECIAL_CODE); + EventFwk::CommonEventData commonEventData; + commonEventData.SetWant(want); + commonEventData.SetData("harmony_special_code://" + specialCode); + EventFwk::CommonEventPublishInfo publishInfo; + if (!EventFwk::CommonEventManager::PublishCommonEvent(commonEventData, publishInfo, nullptr)) { + TELEPHONY_LOGE("PublishCommonEvent fail"); + return TELEPHONY_ERR_PUBLISH_BROADCAST_FAIL; + } + return TELEPHONY_SUCCESS; +} + sptr CallManagerService::GetProxyObjectPtr(CallManagerProxyType proxyType) { auto it = proxyObjectPtrMap_.find(static_cast(proxyType)); diff --git a/services/call_manager_service/src/call_manager_service_stub.cpp b/services/call_manager_service/src/call_manager_service_stub.cpp index aebbb77a..9f7c8217 100644 --- a/services/call_manager_service/src/call_manager_service_stub.cpp +++ b/services/call_manager_service/src/call_manager_service_stub.cpp @@ -58,6 +58,7 @@ void CallManagerServiceStub::InitCallBasicRequest() memberFuncMap_[INTERFACE_DISCONNECT_CALL] = &CallManagerServiceStub::OnHangUpCall; memberFuncMap_[INTERFACE_GET_CALL_STATE] = &CallManagerServiceStub::OnGetCallState; memberFuncMap_[INTERFACE_SWAP_CALL] = &CallManagerServiceStub::OnSwitchCall; + memberFuncMap_[INTERFACE_INPUT_DIALER_SPECIAL_CODE] = &CallManagerServiceStub::OnInputDialerSpecialCode; } void CallManagerServiceStub::InitCallUtilsRequest() @@ -1007,6 +1008,19 @@ int32_t CallManagerServiceStub::OnCloseUnFinishedUssd(MessageParcel &data, Messa return TELEPHONY_SUCCESS; } +int32_t CallManagerServiceStub::OnInputDialerSpecialCode(MessageParcel &data, MessageParcel &reply) +{ + int32_t result = TELEPHONY_ERR_FAIL; + std::string specialCode = data.ReadString(); + result = InputDialerSpecialCode(specialCode); + TELEPHONY_LOGI("result:%{public}d", result); + if (!reply.WriteInt32(result)) { + TELEPHONY_LOGE("fail to write parcel"); + return TELEPHONY_ERR_WRITE_REPLY_FAIL; + } + return TELEPHONY_SUCCESS; +} + int32_t CallManagerServiceStub::OnGetProxyObjectPtr(MessageParcel &data, MessageParcel &reply) { CallManagerProxyType proxyType = static_cast(data.ReadInt32()); diff --git a/test/unittest/call_manager_gtest/src/call_manager_gtest.cpp b/test/unittest/call_manager_gtest/src/call_manager_gtest.cpp index 0e091d29..09e72ba8 100644 --- a/test/unittest/call_manager_gtest/src/call_manager_gtest.cpp +++ b/test/unittest/call_manager_gtest/src/call_manager_gtest.cpp @@ -4778,6 +4778,37 @@ HWTEST_F(CallManagerGtest, Telephony_CallManager_CloseUnFinishedUssd_0100, Funct } } +/************************************* Test InputDialerSpecialCode() ************************************/ +/** + * @tc.number Telephony_CallManager_InputDialerSpecialCode_0100 + * @tc.name test Input Dialer Special Code with support code + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_InputDialerSpecialCode_0100, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + std::string specialCode = "2846579"; + EXPECT_EQ(CallManagerGtest::clientPtr_->InputDialerSpecialCode(specialCode), RETURN_VALUE_IS_ZERO); +} + +/** + * @tc.number Telephony_CallManager_InputDialerSpecialCode_0200 + * @tc.name test Input Dialer Special Code with unsupport code + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_InputDialerSpecialCode_0200, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + std::string specialCode = "1234"; + EXPECT_NE(CallManagerGtest::clientPtr_->InputDialerSpecialCode(specialCode), RETURN_VALUE_IS_ZERO); +} + /*********************************** Test Dump() ***************************************/ /** * @tc.number Telephony_CallManager_TestDump_0100 -- Gitee From 8dc1b9c9eb6085e7eb4577a9c822187a79495886 Mon Sep 17 00:00:00 2001 From: zhoujie0328 Date: Mon, 3 Apr 2023 21:00:41 +0800 Subject: [PATCH 02/12] IssueNo:fix review comment Description:fix review comment Sig:SIG_Telephony Feature or Bugfix: Feature Binary Source: No Signed-off-by: zhoujie0328 Change-Id: Ic86e8fc6f6ef59463103dc559c9d28c258e0feb4 --- interfaces/kits/js/@ohos.telephony.call.d.ts | 4 ++-- .../src/call_manager_service.cpp | 6 +++++- .../dialcall_fuzzer/dialcall_fuzzer.cpp | 14 ++++++++++++++ .../src/call_manager_gtest.cpp | 14 ++++++++++++++ test/unittest/ui_client/ui_client_test.cpp | 17 +++++++++++++++++ 5 files changed, 52 insertions(+), 3 deletions(-) diff --git a/interfaces/kits/js/@ohos.telephony.call.d.ts b/interfaces/kits/js/@ohos.telephony.call.d.ts index 44cd05fa..b922108c 100644 --- a/interfaces/kits/js/@ohos.telephony.call.d.ts +++ b/interfaces/kits/js/@ohos.telephony.call.d.ts @@ -970,11 +970,11 @@ declare namespace call { * @param { string } inputCode - Indicates the special code entered. * @param { AsyncCallback } callback - The callback of inputDialerSpecialCode. * @throws { BusinessError } 201 - Permission denied. + * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 8300001 - Invalid parameter value. * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service. * @throws { BusinessError } 8300003 - System internal error. - * @throws { BusinessError } 8300999 - Unknown error code. * @systemapi Hide this for inner system use. * @since 10 */ @@ -987,11 +987,11 @@ declare namespace call { * @param { string } inputCode - Indicates the special code entered. * @returns { Promise } The promise returned by the function. * @throws { BusinessError } 201 - Permission denied. + * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 8300001 - Invalid parameter value. * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service. * @throws { BusinessError } 8300003 - System internal error. - * @throws { BusinessError } 8300999 - Unknown error code. * @systemapi Hide this for inner system use. * @since 10 */ diff --git a/services/call_manager_service/src/call_manager_service.cpp b/services/call_manager_service/src/call_manager_service.cpp index f084711f..4b39a81a 100644 --- a/services/call_manager_service/src/call_manager_service.cpp +++ b/services/call_manager_service/src/call_manager_service.cpp @@ -869,6 +869,10 @@ int32_t CallManagerService::CloseUnFinishedUssd(int32_t slotId) int32_t CallManagerService::InputDialerSpecialCode(const std::string &specialCode) { + if (!TelephonyPermission::CheckCallerIsSystemApp()) { + TELEPHONY_LOGE("Non system applications use system APIs!"); + return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API; + } if (!TelephonyPermission::CheckPermission(OHOS_PERMISSION_PLACE_CALL)) { TELEPHONY_LOGE("Permission denied!"); return TELEPHONY_ERR_PERMISSION_ERR; @@ -883,7 +887,7 @@ int32_t CallManagerService::InputDialerSpecialCode(const std::string &specialCod want.SetAction(EventFwk::CommonEventSupport::COMMON_EVENT_SPECIAL_CODE); EventFwk::CommonEventData commonEventData; commonEventData.SetWant(want); - commonEventData.SetData("harmony_special_code://" + specialCode); + commonEventData.SetData(specialCode); EventFwk::CommonEventPublishInfo publishInfo; if (!EventFwk::CommonEventManager::PublishCommonEvent(commonEventData, publishInfo, nullptr)) { TELEPHONY_LOGE("PublishCommonEvent fail"); diff --git a/test/fuzztest/dialcall_fuzzer/dialcall_fuzzer.cpp b/test/fuzztest/dialcall_fuzzer/dialcall_fuzzer.cpp index 471400d0..2c11c574 100644 --- a/test/fuzztest/dialcall_fuzzer/dialcall_fuzzer.cpp +++ b/test/fuzztest/dialcall_fuzzer/dialcall_fuzzer.cpp @@ -147,6 +147,19 @@ int32_t SetCallWaiting(const uint8_t *data, size_t size) return DelayedSingleton::GetInstance()->OnSetCallWaiting(dataParcel, reply); } +int32_t InputDialerSpecialCode(const uint8_t *data, size_t size) +{ + if (!IsServiceInited()) { + return TELEPHONY_ERROR; + } + std::string specialCode(reinterpret_cast(data), size); + MessageParcel dataParcel; + dataParcel.WriteString(specialCode); + dataParcel.RewindRead(0); + MessageParcel reply; + return DelayedSingleton::GetInstance()->OnInputDialerSpecialCode(dataParcel, reply); +} + void DoSomethingInterestingWithMyAPI(const uint8_t *data, size_t size) { if (data == nullptr || size == 0) { @@ -160,6 +173,7 @@ void DoSomethingInterestingWithMyAPI(const uint8_t *data, size_t size) IsInEmergencyCall(data, size); DialCall(data, size); SetCallWaiting(data, size); + InputDialerSpecialCode(data, size); } } // namespace OHOS diff --git a/test/unittest/call_manager_gtest/src/call_manager_gtest.cpp b/test/unittest/call_manager_gtest/src/call_manager_gtest.cpp index 09e72ba8..3a1bad47 100644 --- a/test/unittest/call_manager_gtest/src/call_manager_gtest.cpp +++ b/test/unittest/call_manager_gtest/src/call_manager_gtest.cpp @@ -4809,6 +4809,20 @@ HWTEST_F(CallManagerGtest, Telephony_CallManager_InputDialerSpecialCode_0200, Fu EXPECT_NE(CallManagerGtest::clientPtr_->InputDialerSpecialCode(specialCode), RETURN_VALUE_IS_ZERO); } +/** + * @tc.number Telephony_CallManager_InputDialerSpecialCode_0300 + * @tc.name test Input Dialer Special Code without permission + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_InputDialerSpecialCode_0300, Function | MediumTest | Level3) +{ + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + std::string specialCode = "2846579"; + EXPECT_NE(CallManagerGtest::clientPtr_->InputDialerSpecialCode(specialCode), RETURN_VALUE_IS_ZERO); +} + /*********************************** Test Dump() ***************************************/ /** * @tc.number Telephony_CallManager_TestDump_0100 diff --git a/test/unittest/ui_client/ui_client_test.cpp b/test/unittest/ui_client/ui_client_test.cpp index d3a10b9f..e8eba70e 100644 --- a/test/unittest/ui_client/ui_client_test.cpp +++ b/test/unittest/ui_client/ui_client_test.cpp @@ -1222,6 +1222,21 @@ void StopRtt() std::cout << "return value:" << ret << std::endl; } +void InputDialerSpecialCode() +{ + AccessToken token; + std::string specialCode; + std::cout << "------InputDialerSpecialCode------" << std::endl; + std::cout << "please input special code:" << std::endl; + std::cin >> specialCode; + if (g_clientPtr == nullptr) { + std::cout << "g_clientPtr is nullptr" << std::endl; + return; + } + int32_t ret = g_clientPtr->InputDialerSpecialCode(specialCode); + std::cout << "return value:" << ret << std::endl; +} + void AddPermission() { return; @@ -1249,6 +1264,7 @@ void InitCallBasicPower() g_memberFuncMap[OHOS::Telephony::INTERFACE_SWAP_CALL] = &OHOS::Telephony::SwitchCall; g_memberFuncMap[OHOS::Telephony::INTERFACE_START_RTT] = &OHOS::Telephony::StartRtt; g_memberFuncMap[OHOS::Telephony::INTERFACE_STOP_RTT] = &OHOS::Telephony::StopRtt; + g_memberFuncMap[OHOS::Telephony::INTERFACE_INPUT_DIALER_SPECIAL_CODE] = &OHOS::Telephony::InputDialerSpecialCode; } void InitCallUtils() @@ -1431,6 +1447,7 @@ void PrintfCallMultimediaInterface() << "48:IsImsSwitchEnabled\n" << "49:StartRtt\n" << "50:StopRtt\n" + << "57:InputDialerSpecialCode\n" << "93:InitPermission\n" << "94:VerifyPermission\n" << "95:SendConnectBluetoothScoBroadcast\n" -- Gitee From 04241e2d0a93b195289c6a3068cb7872f81eb68e Mon Sep 17 00:00:00 2001 From: zhangcl0222 Date: Fri, 7 Apr 2023 20:08:34 +0800 Subject: [PATCH 03/12] =?UTF-8?q?IssueNo:=20call=5Fmanager=E7=BC=96?= =?UTF-8?q?=E8=AF=91=E4=BE=9D=E8=B5=96=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Description: call_manager部件间依赖解耦,清理不合理依赖 Sig: SIG_Telephony Feature or Bugfix: Feature Binary Source: No Signed-off-by: zhangcl0222 Change-Id: I6490ab899d20a6fadc7e8ca4038bb92f7ca6d3ad --- BUILD.gn | 43 ++++------- bundle.json | 14 ++-- call_manager_aafwk.gni | 17 ----- frameworks/js/BUILD.gn | 18 ++--- frameworks/native/BUILD.gn | 15 ++-- .../innerkits}/cellular_call_interface.h | 0 .../innerkits}/i_call_status_callback.h | 0 resource/audio/BUILD.gn | 2 +- services/audio/include/audio_proxy.h | 4 +- services/audio/src/audio_proxy.cpp | 2 +- test/fuzztest/audiodevice_fuzzer/BUILD.gn | 71 +++++++------------ .../bluetoothdialcall_fuzzer/BUILD.gn | 44 ++++++------ test/fuzztest/call_fuzzer/BUILD.gn | 45 ++++++------ .../fuzztest/callnotification_fuzzer/BUILD.gn | 45 ++++++------ test/fuzztest/controlcamera_fuzzer/BUILD.gn | 46 ++++++------ test/fuzztest/dialcall_fuzzer/BUILD.gn | 46 ++++++------ .../formatphonenumber_fuzzer/BUILD.gn | 45 ++++++------ .../formatphonenumbertoe164_fuzzer/BUILD.gn | 46 ++++++------ .../isemergencyphonenumber_fuzzer/BUILD.gn | 46 ++++++------ test/fuzztest/rejectcall_fuzzer/BUILD.gn | 46 ++++++------ test/fuzztest/setaudiodevice_fuzzer/BUILD.gn | 46 ++++++------ .../setcalltransferinfo_fuzzer/BUILD.gn | 44 ++++++------ test/fuzztest/setpausepicture_fuzzer/BUILD.gn | 45 ++++++------ test/fuzztest/startdtmf_fuzzer/BUILD.gn | 46 ++++++------ test/unittest/call_manager_gtest/BUILD.gn | 56 ++++++--------- test/unittest/ui_client/BUILD.gn | 26 +------ 26 files changed, 363 insertions(+), 495 deletions(-) delete mode 100644 call_manager_aafwk.gni rename {services/telephony_interaction/include => interfaces/innerkits}/cellular_call_interface.h (100%) rename {services/telephony_interaction/include => interfaces/innerkits}/i_call_status_callback.h (100%) diff --git a/BUILD.gn b/BUILD.gn index f43a20f3..0c5a4ebc 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -11,8 +11,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -import("//base/telephony/call_manager/call_manager_aafwk.gni") -import("//base/telephony/core_service/telephony.gni") import("//build/ohos.gni") ohos_shared_library("tel_call_manager") { @@ -101,8 +99,6 @@ ohos_shared_library("tel_call_manager") { "//third_party/libphonenumber/cpp/src/phonenumbers", "//third_party/protobuf/src", "//third_party/protobuf/src/google/protobuf", - "//base/telephony/call_manager/interfaces/innerkits", - "//base/telephony/sms_mms/interfaces/innerkits/", "services/audio/include", "services/audio/include/audio_state", "services/video/include", @@ -114,34 +110,13 @@ ohos_shared_library("tel_call_manager") { "services/call_report/include", "services/video/include", "services/call/call_state_observer/include", - "frameworks/native/include", - "//foundation/graphic/graphic_2d/interfaces/inner_api/surface", - "//foundation/graphic/graphic_2d/interfaces/inner_api/common", - "//drivers/peripheral/camera/interfaces/metadata/include", - "//drivers/hdf_core/framework/include/utils", - "//drivers/hdf_core/adapter/uhdf2/utils/include", - "//drivers/hdf_core/adapter/uhdf2/include/hdi", - "//drivers/peripheral/display/interfaces/include", - "//drivers/peripheral/camera/interfaces/include", - "//drivers/peripheral/camera/interfaces/include/server", - "//drivers/peripheral/camera/interfaces/include/callback/device", - "//drivers/peripheral/camera/interfaces/include/callback/operator", - "//drivers/peripheral/camera/interfaces/include/callback/host", - "${ability_runtime_inner_api_path}/dataobs_manager/include", - "${multimedia_player_framework_path}/frameworks/native/system_sound", - "${multimedia_player_framework_path}/interfaces/inner_api/native", - "${multimedia_player_framework_path}/interfaces/inner_api/native/audio_ringtone/include", - "${multimedia_player_framework_path}/services/utils/include", - "//foundation/multimedia/media_library/interfaces/innerkits/native/include", ] - configs = [ "//base/telephony/core_service/utils:telephony_log_config" ] - deps = [ - "${ability_runtime_inner_api_path}/dataobs_manager:dataobs_manager", + "frameworks/native:tel_call_manager_api", "//base/notification/distributed_notification_service/frameworks/ans:ans_innerkits", - "//base/telephony/core_service/utils:libtel_common", "//third_party/libphonenumber/cpp:phonenumber_standard", + "//third_party/protobuf:protobuf_lite_static", ] external_deps = [ @@ -149,8 +124,10 @@ ohos_shared_library("tel_call_manager") { "ability_base:want", "ability_base:zuri", "ability_runtime:ability_manager", + "ability_runtime:dataobs_manager", "c_utils:utils", "common_event_service:cesfwk_innerkits", + "core_service:libtel_common", "core_service:tel_core_service_api", "data_share:datashare_consumer", "eventhandler:libeventhandler", @@ -162,6 +139,7 @@ ohos_shared_library("tel_call_manager") { "multimedia_audio_framework:audio_renderer", "multimedia_camera_framework:camera_framework", "multimedia_player_framework:audio_ringtone_client", + "multimedia_player_framework:media_client", "power_manager:powermgr_client", "safwk:system_ability_fwk", "samgr:samgr_proxy", @@ -179,7 +157,7 @@ ohos_shared_library("tel_call_manager") { ldflags = [ "-flto" ] - defines += [ + defines = [ "TELEPHONY_LOG_TAG = \"CallManager\"", "LOG_DOMAIN = 0xD001F01", ] @@ -200,9 +178,16 @@ ohos_shared_library("tel_call_manager") { if (defined(global_parts_info) && defined(global_parts_info.telephony_sms_mms) && global_parts_info.telephony_sms_mms) { - deps += [ "//base/telephony/sms_mms/frameworks/native:tel_sms_mms_api" ] + external_deps += [ "sms_mms:tel_sms_mms_api" ] defines += [ "ABILITY_SMS_SUPPORT" ] } + + if (defined(global_parts_info) && + defined(global_parts_info.telephony_cellular_call) && + global_parts_info.telephony_cellular_call) { + defines += [ "CELLULAR_SUPPORT" ] + } + part_name = "call_manager" subsystem_name = "telephony" } diff --git a/bundle.json b/bundle.json index c13eb928..3a2e3861 100644 --- a/bundle.json +++ b/bundle.json @@ -1,6 +1,6 @@ { "name": "@ohos/call_manager", - "version": "3.1.0", + "version": "4.0", "description": "telephony call manager service", "publishAs": "code-segment", "homePage": "https://gitee.com/openharmony", @@ -26,7 +26,7 @@ "adapted_system_type": [ "standard" ], - "rom": "1.6MB", + "rom": "1639KB", "ram": "6MB", "deps": { "components": [ @@ -36,19 +36,19 @@ "c_utils", "common_event_service", "core_service", + "data_share", "distributed_notification_service", "eventhandler", + "hilog", "hisysevent_native", "hitrace_native", "hiviewdfx_hilog_native", "init", "ipc", - "libuv", "multimedia_audio_framework", "multimedia_camera_framework", - "napi", + "multimedia_player_framework", "power_manager", - "relational_store", "safwk", "samgr", "sms_mms" @@ -76,7 +76,9 @@ "header_base" : "//base/telephony/call_manager/interfaces/innerkits/", "header_files": [ "call_manager_client.h", - "call_manager_callback.h" + "call_manager_callback.h", + "cellular_call_interface.h", + "i_call_status_callback.h" ] }, "name":"//base/telephony/call_manager/frameworks/native:tel_call_manager_api" diff --git a/call_manager_aafwk.gni b/call_manager_aafwk.gni deleted file mode 100644 index e5d64049..00000000 --- a/call_manager_aafwk.gni +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright (c) 2022 Huawei Device Co., Ltd. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -ability_runtime_path = "//foundation/ability/ability_runtime" -ability_runtime_inner_api_path = "${ability_runtime_path}/interfaces/inner_api" -ability_runtime_kits_path = "${ability_runtime_path}/frameworks/kits" -multimedia_player_framework_path = "//foundation/multimedia/player_framework" diff --git a/frameworks/js/BUILD.gn b/frameworks/js/BUILD.gn index 46de8144..904d232f 100644 --- a/frameworks/js/BUILD.gn +++ b/frameworks/js/BUILD.gn @@ -12,34 +12,22 @@ # limitations under the License. import("//build/ohos.gni") -SUBSYSTEM_DIR = "//base/telephony" config("call_manager_js_config") { - include_dirs = [ - "//third_party/node/src", - "$SUBSYSTEM_DIR/call_manager/frameworks/js/napi/include", - "//commonlibrary/c_utils/base/include", - "$SUBSYSTEM_DIR/core_service/frameworks/js/napi", - ] + include_dirs = [ "napi/include" ] } ohos_shared_library("call") { sources = [ - "$SUBSYSTEM_DIR/core_service/frameworks/js/napi/napi_util.cpp", "napi/src/napi_call_ability_callback.cpp", "napi/src/napi_call_manager.cpp", "napi/src/napi_call_manager_callback.cpp", "napi/src/napi_call_manager_utils.cpp", ] - configs = [ "//base/telephony/core_service/utils:telephony_log_config" ] - public_configs = [ ":call_manager_js_config" ] - deps = [ - "//foundation/arkui/napi:ace_napi", - "//third_party/libuv:uv", - ] + deps = [ "//third_party/libuv:uv" ] external_deps = [ "ability_base:base", @@ -47,8 +35,10 @@ ohos_shared_library("call") { "ability_runtime:ability_manager", "c_utils:utils", "call_manager:tel_call_manager_api", + "core_service:libtel_common", "core_service:tel_core_service_api", "init:libbegetutil", + "napi:ace_napi", ] defines = [ diff --git a/frameworks/native/BUILD.gn b/frameworks/native/BUILD.gn index e3fc68b3..cda83548 100644 --- a/frameworks/native/BUILD.gn +++ b/frameworks/native/BUILD.gn @@ -11,17 +11,14 @@ # See the License for the specific language governing permissions and # limitations under the License. -import("//base/telephony/call_manager/call_manager_aafwk.gni") import("//build/ohos.gni") -SUBSYSTEM_DIR = "//base/telephony" +SUBSYSTEM_DIR = "../.." config("call_manager_config") { include_dirs = [ - "$SUBSYSTEM_DIR/call_manager/frameworks/native/include", - "$SUBSYSTEM_DIR/call_manager/interfaces/innerkits", - "$SUBSYSTEM_DIR/call_manager/utils/include", - "${ability_runtime_inner_api_path}/ability_manager/include", - "${ability_runtime_inner_api_path}/app_manager/include/appmgr", + "include", + "${SUBSYSTEM_DIR}/interfaces/innerkits", + "${SUBSYSTEM_DIR}/utils/include", ] } @@ -36,12 +33,12 @@ ohos_shared_library("tel_call_manager_api") { "src/call_manager_service_proxy.cpp", ] - configs = [ "//base/telephony/core_service/utils:telephony_log_config" ] - public_configs = [ ":call_manager_config" ] external_deps = [ "ability_base:want", + "ability_runtime:ability_manager", + "ability_runtime:app_manager", "c_utils:utils", "common_event_service:cesfwk_innerkits", "core_service:tel_core_service_api", diff --git a/services/telephony_interaction/include/cellular_call_interface.h b/interfaces/innerkits/cellular_call_interface.h similarity index 100% rename from services/telephony_interaction/include/cellular_call_interface.h rename to interfaces/innerkits/cellular_call_interface.h diff --git a/services/telephony_interaction/include/i_call_status_callback.h b/interfaces/innerkits/i_call_status_callback.h similarity index 100% rename from services/telephony_interaction/include/i_call_status_callback.h rename to interfaces/innerkits/i_call_status_callback.h diff --git a/resource/audio/BUILD.gn b/resource/audio/BUILD.gn index 4af5d719..255a33a4 100644 --- a/resource/audio/BUILD.gn +++ b/resource/audio/BUILD.gn @@ -14,7 +14,7 @@ import("//build/ohos.gni") ## Install ring.wav to /system/etc/telephony/rings/ring.wav ohos_prebuilt_etc("ring.wav") { - source = "//base/telephony/call_manager/resource/audio/ring.wav" + source = "ring.wav" module_install_dir = "etc/telephony/rings/" part_name = "call_manager" subsystem_name = "telephony" diff --git a/services/audio/include/audio_proxy.h b/services/audio/include/audio_proxy.h index f35ee4eb..743aa668 100644 --- a/services/audio/include/audio_proxy.h +++ b/services/audio/include/audio_proxy.h @@ -22,7 +22,7 @@ #include "audio_manager_proxy.h" #include "singleton.h" -#include "audio_ringtone_manager.h" +#include "./audio_ringtone/include/iringtone_sound_manager.h" #include "call_manager_errors.h" @@ -79,7 +79,7 @@ private: const std::string defaultTonePath_ = "/system/etc/telephony/tones/tone.wav"; const std::string defaultDtmfPath_ = "/system/etc/telephony/dtmfs/dtmf.wav"; std::shared_ptr context_; - std::unique_ptr audioSoundManager_; + std::unique_ptr audioSoundManager_; std::shared_ptr deviceCallback_; bool isWiredHeadsetConnected_ = false; }; diff --git a/services/audio/src/audio_proxy.cpp b/services/audio/src/audio_proxy.cpp index 888f28fa..fc00b83c 100644 --- a/services/audio/src/audio_proxy.cpp +++ b/services/audio/src/audio_proxy.cpp @@ -22,7 +22,7 @@ namespace OHOS { namespace Telephony { AudioProxy::AudioProxy() - : context_(nullptr), audioSoundManager_(std::make_unique()), + : context_(nullptr), audioSoundManager_(Media::RingtoneFactory::CreateRingtoneManager()), deviceCallback_(std::make_shared()) {} diff --git a/test/fuzztest/audiodevice_fuzzer/BUILD.gn b/test/fuzztest/audiodevice_fuzzer/BUILD.gn index 012dcd9c..dcee6b64 100644 --- a/test/fuzztest/audiodevice_fuzzer/BUILD.gn +++ b/test/fuzztest/audiodevice_fuzzer/BUILD.gn @@ -11,67 +11,45 @@ # See the License for the specific language governing permissions and # limitations under the License. -import("//base/telephony/core_service/telephony.gni") import("//build/config/features.gni") import("//build/ohos.gni") import("//build/test.gni") #####################hydra-fuzz################### -import("./../../../call_manager_aafwk.gni") +CALL_MANAGER_PATH = "../../.." ##############################fuzztest########################################## + ohos_fuzztest("AudioDeviceFuzzTest") { module_output_path = "call_manager/AudioDeviceFuzzTest" module_out_path = module_output_path - fuzz_config_file = - "//base/telephony/call_manager/test/fuzztest/audiodevice_fuzzer" + fuzz_config_file = "${CALL_MANAGER_PATH}/test/fuzztest/audiodevice_fuzzer" include_dirs = [ - "//base/telephony/call_manager/frameworks/native/include", - "//base/telephony/call_manager/frameworks/native/include", - "//base/telephony/core_service/interfaces/innerkits/include", "utils/include", "//third_party/libphonenumber/cpp/src", "//third_party/libphonenumber/cpp/src/phonenumbers", "//third_party/protobuf/src", "//third_party/protobuf/src/google/protobuf", - "//base/telephony/call_manager/interfaces/innerkits", - "//base/telephony/sms_mms/interfaces/innerkits/", - "//base/telephony/call_manager/services/audio/include", - "//base/telephony/call_manager/services/audio/include/audio_state", - "//base/telephony/call_manager/services/video/include", - "//base/telephony/call_manager/services/bluetooth/include", - "//base/telephony/call_manager/services/call/include", - "//base/telephony/call_manager/services/call_manager_service/include", - "//base/telephony/call_manager/services/call_setting/include", - "//base/telephony/call_manager/services/telephony_interaction/include", - "//base/telephony/call_manager/services/call_report/include", - "//base/telephony/call_manager/services/video/include", - "//base/telephony/call_manager/services/call/call_state_observer/include", - "//base/telephony/call_manager/frameworks/native/include", - "//base/telephony/call_manager/test/fuzztest/common_fuzzer", - "//foundation/graphic/graphic_2d/interfaces/inner_api/surface", - "//foundation/graphic/graphic_2d/interfaces/inner_api/common", - "//drivers/peripheral/camera/interfaces/metadata/include", - "//drivers/hdf_core/framework/include/utils", - "//drivers/hdf_core/adapter/uhdf2/utils/include", - "//drivers/hdf_core/adapter/uhdf2/include/hdi", - "//drivers/peripheral/display/interfaces/include", - "//drivers/peripheral/camera/interfaces/include", - "//drivers/peripheral/camera/interfaces/include/server", - "//drivers/peripheral/camera/interfaces/include/callback/device", - "//drivers/peripheral/camera/interfaces/include/callback/operator", - "//drivers/peripheral/camera/interfaces/include/callback/host", - "//foundation/graphic/graphic_2d/utils/buffer_handle/export", - "${multimedia_player_framework_path}/frameworks/native/system_sound", - "${multimedia_player_framework_path}/interfaces/inner_api/native", - "${multimedia_player_framework_path}/interfaces/inner_api/native/audio_ringtone/include", - "${multimedia_player_framework_path}/services/utils/include", - "//foundation/multimedia/media_library/interfaces/innerkits/native/include", + "${CALL_MANAGER_PATH}/interfaces/innerkits", + "${CALL_MANAGER_PATH}/services/audio/include", + "${CALL_MANAGER_PATH}/services/audio/include/audio_state", + "${CALL_MANAGER_PATH}/services/video/include", + "${CALL_MANAGER_PATH}/services/bluetooth/include", + "${CALL_MANAGER_PATH}/services/call/include", + "${CALL_MANAGER_PATH}/services/call_manager_service/include", + "${CALL_MANAGER_PATH}/services/call_setting/include", + "${CALL_MANAGER_PATH}/services/telephony_interaction/include", + "${CALL_MANAGER_PATH}/services/call_report/include", + "${CALL_MANAGER_PATH}/services/video/include", + "${CALL_MANAGER_PATH}/services/call/call_state_observer/include", + "${CALL_MANAGER_PATH}/frameworks/native/include", + "${CALL_MANAGER_PATH}/test/fuzztest/common_fuzzer", ] - configs = [ "//base/telephony/core_service/utils:telephony_log_config" ] - - deps = [ "//base/telephony/call_manager:tel_call_manager" ] + deps = [ + "${CALL_MANAGER_PATH}:tel_call_manager", + "${CALL_MANAGER_PATH}/frameworks/native:tel_call_manager_api", + ] external_deps = [ "ability_base:base", @@ -94,11 +72,14 @@ ohos_fuzztest("AudioDeviceFuzzTest") { "multimedia_audio_framework:audio_renderer", "multimedia_camera_framework:camera_framework", "multimedia_player_framework:audio_ringtone_client", + "multimedia_player_framework:audio_ringtone_client", + "multimedia_player_framework:media_client", "power_manager:powermgr_client", "safwk:system_ability_fwk", "samgr:samgr_proxy", + "sms_mms:tel_sms_mms_api", ] - defines += [ + defines = [ "TELEPHONY_LOG_TAG = \"CallManagerFuzzTest\"", "LOG_DOMAIN = 0xD000F00", ] @@ -109,7 +90,7 @@ ohos_fuzztest("AudioDeviceFuzzTest") { "-fno-omit-frame-pointer", ] sources = [ - "//base/telephony/call_manager/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp", + "${CALL_MANAGER_PATH}/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp", "audiodevice_fuzzer.cpp", ] if (is_standard_system) { diff --git a/test/fuzztest/bluetoothdialcall_fuzzer/BUILD.gn b/test/fuzztest/bluetoothdialcall_fuzzer/BUILD.gn index 152ac690..b76e521c 100644 --- a/test/fuzztest/bluetoothdialcall_fuzzer/BUILD.gn +++ b/test/fuzztest/bluetoothdialcall_fuzzer/BUILD.gn @@ -12,39 +12,36 @@ # limitations under the License. #####################hydra-fuzz################### -import("//base/telephony/core_service/telephony.gni") import("//build/config/features.gni") import("//build/ohos.gni") import("//build/test.gni") ##############################fuzztest########################################## +CALL_MANAGER_PATH = "../../.." ohos_fuzztest("BluetoothDialCallFuzzTest") { module_output_path = "call_manager/BluetoothDialCallFuzzTest" module_out_path = module_output_path fuzz_config_file = - "//base/telephony/call_manager/test/fuzztest/bluetoothdialcall_fuzzer" + "${CALL_MANAGER_PATH}/test/fuzztest/bluetoothdialcall_fuzzer" include_dirs = [ - "//base/telephony/call_manager/interfaces/innerkits", - "//base/telephony/call_manager/services/audio/include", - "//base/telephony/call_manager/services/audio/include/audio_state", - "//base/telephony/call_manager/services/video/include", - "//base/telephony/call_manager/services/bluetooth/include", - "//base/telephony/call_manager/services/call/include", - "//base/telephony/call_manager/services/call_manager_service/include", - "//base/telephony/call_manager/services/call_setting/include", - "//base/telephony/call_manager/services/telephony_interaction/include", - "//base/telephony/call_manager/services/call_report/include", - "//base/telephony/call_manager/services/video/include", - "//base/telephony/call_manager/services/call/call_state_observer/include", - "//base/telephony/call_manager/test/fuzztest/common_fuzzer", - "//base/telephony/call_manager/frameworks/native/include", - "//base/telephony/call_manager/frameworks/native/include", - "//base/telephony/core_service/interfaces/innerkits/include", + "${CALL_MANAGER_PATH}/test/fuzztest/common_fuzzer", + "${CALL_MANAGER_PATH}/services/audio/include", + "${CALL_MANAGER_PATH}/services/audio/include/audio_state", + "${CALL_MANAGER_PATH}/services/video/include", + "${CALL_MANAGER_PATH}/services/bluetooth/include", + "${CALL_MANAGER_PATH}/services/call/include", + "${CALL_MANAGER_PATH}/services/call_manager_service/include", + "${CALL_MANAGER_PATH}/services/call_setting/include", + "${CALL_MANAGER_PATH}/services/telephony_interaction/include", + "${CALL_MANAGER_PATH}/services/call_report/include", + "${CALL_MANAGER_PATH}/services/video/include", + "${CALL_MANAGER_PATH}/services/call/call_state_observer/include", ] - configs = [ "//base/telephony/core_service/utils:telephony_log_config" ] - - deps = [ "//base/telephony/call_manager:tel_call_manager" ] + deps = [ + "${CALL_MANAGER_PATH}:tel_call_manager", + "${CALL_MANAGER_PATH}/frameworks/native:tel_call_manager_api", + ] external_deps = [ "ability_runtime:ability_manager", @@ -54,12 +51,13 @@ ohos_fuzztest("BluetoothDialCallFuzzTest") { "c_utils:utils", "common_event_service:cesfwk_innerkits", "core_service:libtel_common", + "core_service:tel_core_service_api", "data_share:datashare_consumer", "init:libbegetutil", "ipc:ipc_core", "samgr:samgr_proxy", ] - defines += [ + defines = [ "TELEPHONY_LOG_TAG = \"CallManagerFuzzTest\"", "LOG_DOMAIN = 0xD000F00", ] @@ -70,7 +68,7 @@ ohos_fuzztest("BluetoothDialCallFuzzTest") { "-fno-omit-frame-pointer", ] sources = [ - "//base/telephony/call_manager/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp", + "${CALL_MANAGER_PATH}/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp", "bluetoothdialcall_fuzzer.cpp", ] if (is_standard_system) { diff --git a/test/fuzztest/call_fuzzer/BUILD.gn b/test/fuzztest/call_fuzzer/BUILD.gn index 1cce9961..733008be 100644 --- a/test/fuzztest/call_fuzzer/BUILD.gn +++ b/test/fuzztest/call_fuzzer/BUILD.gn @@ -12,38 +12,35 @@ # limitations under the License. #####################hydra-fuzz################### -import("//base/telephony/core_service/telephony.gni") import("//build/config/features.gni") import("//build/ohos.gni") import("//build/test.gni") ##############################fuzztest########################################## +CALL_MANAGER_PATH = "../../.." ohos_fuzztest("CallFuzzTest") { module_output_path = "call_manager/CallFuzzTest" module_out_path = module_output_path - fuzz_config_file = "//base/telephony/call_manager/test/fuzztest/call_fuzzer" + fuzz_config_file = "${CALL_MANAGER_PATH}/test/fuzztest/call_fuzzer" include_dirs = [ - "//base/telephony/call_manager/interfaces/innerkits", - "//base/telephony/call_manager/services/audio/include", - "//base/telephony/call_manager/services/audio/include/audio_state", - "//base/telephony/call_manager/services/video/include", - "//base/telephony/call_manager/services/bluetooth/include", - "//base/telephony/call_manager/services/call/include", - "//base/telephony/call_manager/services/call_manager_service/include", - "//base/telephony/call_manager/services/call_setting/include", - "//base/telephony/call_manager/services/telephony_interaction/include", - "//base/telephony/call_manager/services/call_report/include", - "//base/telephony/call_manager/services/video/include", - "//base/telephony/call_manager/services/call/call_state_observer/include", - "//base/telephony/call_manager/test/fuzztest/common_fuzzer", - "//base/telephony/call_manager/frameworks/native/include", - "//base/telephony/call_manager/frameworks/native/include", - "//base/telephony/core_service/interfaces/innerkits/include", + "${CALL_MANAGER_PATH}/test/fuzztest/common_fuzzer", + "${CALL_MANAGER_PATH}/services/audio/include", + "${CALL_MANAGER_PATH}/services/audio/include/audio_state", + "${CALL_MANAGER_PATH}/services/video/include", + "${CALL_MANAGER_PATH}/services/bluetooth/include", + "${CALL_MANAGER_PATH}/services/call/include", + "${CALL_MANAGER_PATH}/services/call_manager_service/include", + "${CALL_MANAGER_PATH}/services/call_setting/include", + "${CALL_MANAGER_PATH}/services/telephony_interaction/include", + "${CALL_MANAGER_PATH}/services/call_report/include", + "${CALL_MANAGER_PATH}/services/video/include", + "${CALL_MANAGER_PATH}/services/call/call_state_observer/include", ] - configs = [ "//base/telephony/core_service/utils:telephony_log_config" ] - - deps = [ "//base/telephony/call_manager:tel_call_manager" ] + deps = [ + "${CALL_MANAGER_PATH}:tel_call_manager", + "${CALL_MANAGER_PATH}/frameworks/native:tel_call_manager_api", + ] external_deps = [ "ability_runtime:ability_manager", @@ -52,13 +49,13 @@ ohos_fuzztest("CallFuzzTest") { "access_token:libtoken_setproc", "c_utils:utils", "common_event_service:cesfwk_innerkits", - "core_service:libtel_common", + "core_service:tel_core_service_api", "data_share:datashare_consumer", "init:libbegetutil", "ipc:ipc_core", "samgr:samgr_proxy", ] - defines += [ + defines = [ "TELEPHONY_LOG_TAG = \"CallManagerFuzzTest\"", "LOG_DOMAIN = 0xD000F00", ] @@ -69,7 +66,7 @@ ohos_fuzztest("CallFuzzTest") { "-fno-omit-frame-pointer", ] sources = [ - "//base/telephony/call_manager/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp", + "${CALL_MANAGER_PATH}/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp", "call_fuzzer.cpp", ] if (is_standard_system) { diff --git a/test/fuzztest/callnotification_fuzzer/BUILD.gn b/test/fuzztest/callnotification_fuzzer/BUILD.gn index 2067b295..51b13624 100644 --- a/test/fuzztest/callnotification_fuzzer/BUILD.gn +++ b/test/fuzztest/callnotification_fuzzer/BUILD.gn @@ -12,39 +12,36 @@ # limitations under the License. #####################hydra-fuzz################### -import("//base/telephony/core_service/telephony.gni") import("//build/config/features.gni") import("//build/ohos.gni") import("//build/test.gni") ##############################fuzztest########################################## +CALL_MANAGER_PATH = "../../.." ohos_fuzztest("CallNotificationFuzzTest") { module_output_path = "call_manager/CallNotificationFuzzTest" module_out_path = module_output_path fuzz_config_file = - "//base/telephony/call_manager/test/fuzztest/callnotification_fuzzer" + "${CALL_MANAGER_PATH}/test/fuzztest/callnotification_fuzzer" include_dirs = [ - "//base/telephony/call_manager/interfaces/innerkits", - "//base/telephony/call_manager/services/audio/include", - "//base/telephony/call_manager/services/audio/include/audio_state", - "//base/telephony/call_manager/services/video/include", - "//base/telephony/call_manager/services/bluetooth/include", - "//base/telephony/call_manager/services/call/include", - "//base/telephony/call_manager/services/call_manager_service/include", - "//base/telephony/call_manager/services/call_setting/include", - "//base/telephony/call_manager/services/telephony_interaction/include", - "//base/telephony/call_manager/services/call_report/include", - "//base/telephony/call_manager/services/video/include", - "//base/telephony/call_manager/services/call/call_state_observer/include", - "//base/telephony/call_manager/test/fuzztest/common_fuzzer", - "//base/telephony/call_manager/frameworks/native/include", - "//base/telephony/call_manager/frameworks/native/include", - "//base/telephony/core_service/interfaces/innerkits/include", + "${CALL_MANAGER_PATH}/test/fuzztest/common_fuzzer", + "${CALL_MANAGER_PATH}/services/audio/include", + "${CALL_MANAGER_PATH}/services/audio/include/audio_state", + "${CALL_MANAGER_PATH}/services/video/include", + "${CALL_MANAGER_PATH}/services/bluetooth/include", + "${CALL_MANAGER_PATH}/services/call/include", + "${CALL_MANAGER_PATH}/services/call_manager_service/include", + "${CALL_MANAGER_PATH}/services/call_setting/include", + "${CALL_MANAGER_PATH}/services/telephony_interaction/include", + "${CALL_MANAGER_PATH}/services/call_report/include", + "${CALL_MANAGER_PATH}/services/video/include", + "${CALL_MANAGER_PATH}/services/call/call_state_observer/include", ] - configs = [ "//base/telephony/core_service/utils:telephony_log_config" ] - - deps = [ "//base/telephony/call_manager:tel_call_manager" ] + deps = [ + "${CALL_MANAGER_PATH}:tel_call_manager", + "${CALL_MANAGER_PATH}/frameworks/native:tel_call_manager_api", + ] external_deps = [ "ability_runtime:ability_manager", @@ -53,14 +50,14 @@ ohos_fuzztest("CallNotificationFuzzTest") { "access_token:libtoken_setproc", "c_utils:utils", "common_event_service:cesfwk_innerkits", - "core_service:libtel_common", + "core_service:tel_core_service_api", "data_share:datashare_consumer", "init:libbegetutil", "ipc:ipc_core", "power_manager:powermgr_client", "samgr:samgr_proxy", ] - defines += [ + defines = [ "TELEPHONY_LOG_TAG = \"CallManagerFuzzTest\"", "LOG_DOMAIN = 0xD000F00", ] @@ -71,7 +68,7 @@ ohos_fuzztest("CallNotificationFuzzTest") { "-fno-omit-frame-pointer", ] sources = [ - "//base/telephony/call_manager/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp", + "${CALL_MANAGER_PATH}/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp", "callnotification_fuzzer.cpp", ] if (is_standard_system) { diff --git a/test/fuzztest/controlcamera_fuzzer/BUILD.gn b/test/fuzztest/controlcamera_fuzzer/BUILD.gn index b5cf16f3..e7159876 100644 --- a/test/fuzztest/controlcamera_fuzzer/BUILD.gn +++ b/test/fuzztest/controlcamera_fuzzer/BUILD.gn @@ -12,40 +12,36 @@ # limitations under the License. #####################hydra-fuzz################### -import("//base/telephony/core_service/telephony.gni") import("//build/config/features.gni") import("//build/ohos.gni") import("//build/test.gni") ##############################fuzztest########################################## +CALL_MANAGER_PATH = "../../.." ohos_fuzztest("ControlCameraFuzzTest") { module_output_path = "call_manager/ControlCameraFuzzTest" module_out_path = module_output_path - fuzz_config_file = - "//base/telephony/call_manager/test/fuzztest/controlcamera_fuzzer" + fuzz_config_file = "${CALL_MANAGER_PATH}/test/fuzztest/controlcamera_fuzzer" include_dirs = [ - "//base/telephony/call_manager/interfaces/innerkits", - "//base/telephony/call_manager/services/audio/include", - "//base/telephony/call_manager/services/audio/include/audio_state", - "//base/telephony/call_manager/services/video/include", - "//base/telephony/call_manager/services/bluetooth/include", - "//base/telephony/call_manager/services/call/include", - "//base/telephony/call_manager/services/call_manager_service/include", - "//base/telephony/call_manager/services/call_setting/include", - "//base/telephony/call_manager/services/telephony_interaction/include", - "//base/telephony/call_manager/services/call_report/include", - "//base/telephony/call_manager/services/video/include", - "//base/telephony/call_manager/services/call/call_state_observer/include", - "//base/telephony/call_manager/test/fuzztest/common_fuzzer", - "//base/telephony/call_manager/frameworks/native/include", - "//base/telephony/call_manager/frameworks/native/include", - "//base/telephony/core_service/interfaces/innerkits/include", + "${CALL_MANAGER_PATH}/test/fuzztest/common_fuzzer", + "${CALL_MANAGER_PATH}/services/audio/include", + "${CALL_MANAGER_PATH}/services/audio/include/audio_state", + "${CALL_MANAGER_PATH}/services/video/include", + "${CALL_MANAGER_PATH}/services/bluetooth/include", + "${CALL_MANAGER_PATH}/services/call/include", + "${CALL_MANAGER_PATH}/services/call_manager_service/include", + "${CALL_MANAGER_PATH}/services/call_setting/include", + "${CALL_MANAGER_PATH}/services/telephony_interaction/include", + "${CALL_MANAGER_PATH}/services/call_report/include", + "${CALL_MANAGER_PATH}/services/video/include", + "${CALL_MANAGER_PATH}/services/call/call_state_observer/include", ] - configs = [ "//base/telephony/core_service/utils:telephony_log_config" ] - - deps = [ "//base/telephony/call_manager:tel_call_manager" ] + deps = [ + "${CALL_MANAGER_PATH}:tel_call_manager", + "${CALL_MANAGER_PATH}/frameworks/native:tel_call_manager_api", + ] external_deps = [ "ability_runtime:ability_manager", @@ -54,13 +50,13 @@ ohos_fuzztest("ControlCameraFuzzTest") { "access_token:libtoken_setproc", "c_utils:utils", "common_event_service:cesfwk_innerkits", - "core_service:libtel_common", + "core_service:tel_core_service_api", "data_share:datashare_consumer", "init:libbegetutil", "ipc:ipc_core", "samgr:samgr_proxy", ] - defines += [ + defines = [ "TELEPHONY_LOG_TAG = \"CallManagerFuzzTest\"", "LOG_DOMAIN = 0xD000F00", ] @@ -71,7 +67,7 @@ ohos_fuzztest("ControlCameraFuzzTest") { "-fno-omit-frame-pointer", ] sources = [ - "//base/telephony/call_manager/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp", + "${CALL_MANAGER_PATH}/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp", "controlcamera_fuzzer.cpp", ] if (is_standard_system) { diff --git a/test/fuzztest/dialcall_fuzzer/BUILD.gn b/test/fuzztest/dialcall_fuzzer/BUILD.gn index 6164749f..dbd0f52a 100644 --- a/test/fuzztest/dialcall_fuzzer/BUILD.gn +++ b/test/fuzztest/dialcall_fuzzer/BUILD.gn @@ -12,39 +12,35 @@ # limitations under the License. #####################hydra-fuzz################### -import("//base/telephony/core_service/telephony.gni") import("//build/config/features.gni") import("//build/ohos.gni") import("//build/test.gni") +CALL_MANAGER_PATH = "../../.." ##############################fuzztest########################################## ohos_fuzztest("DialCallFuzzTest") { module_output_path = "call_manager/DialCallFuzzTest" module_out_path = module_output_path - fuzz_config_file = - "//base/telephony/call_manager/test/fuzztest/dialcall_fuzzer" + fuzz_config_file = "${CALL_MANAGER_PATH}/test/fuzztest/dialcall_fuzzer" include_dirs = [ - "//base/telephony/call_manager/interfaces/innerkits", - "//base/telephony/call_manager/services/audio/include", - "//base/telephony/call_manager/services/audio/include/audio_state", - "//base/telephony/call_manager/services/video/include", - "//base/telephony/call_manager/services/bluetooth/include", - "//base/telephony/call_manager/services/call/include", - "//base/telephony/call_manager/services/call_manager_service/include", - "//base/telephony/call_manager/services/call_setting/include", - "//base/telephony/call_manager/services/telephony_interaction/include", - "//base/telephony/call_manager/services/call_report/include", - "//base/telephony/call_manager/services/video/include", - "//base/telephony/call_manager/services/call/call_state_observer/include", - "//base/telephony/call_manager/test/fuzztest/common_fuzzer", - "//base/telephony/call_manager/frameworks/native/include", - "//base/telephony/call_manager/frameworks/native/include", - "//base/telephony/core_service/interfaces/innerkits/include", + "${CALL_MANAGER_PATH}/test/fuzztest/common_fuzzer", + "${CALL_MANAGER_PATH}/services/audio/include", + "${CALL_MANAGER_PATH}/services/audio/include/audio_state", + "${CALL_MANAGER_PATH}/services/video/include", + "${CALL_MANAGER_PATH}/services/bluetooth/include", + "${CALL_MANAGER_PATH}/services/call/include", + "${CALL_MANAGER_PATH}/services/call_manager_service/include", + "${CALL_MANAGER_PATH}/services/call_setting/include", + "${CALL_MANAGER_PATH}/services/telephony_interaction/include", + "${CALL_MANAGER_PATH}/services/call_report/include", + "${CALL_MANAGER_PATH}/services/video/include", + "${CALL_MANAGER_PATH}/services/call/call_state_observer/include", ] - configs = [ "//base/telephony/core_service/utils:telephony_log_config" ] - - deps = [ "//base/telephony/call_manager:tel_call_manager" ] + deps = [ + "${CALL_MANAGER_PATH}:tel_call_manager", + "${CALL_MANAGER_PATH}/frameworks/native:tel_call_manager_api", + ] external_deps = [ "ability_runtime:ability_manager", @@ -53,13 +49,13 @@ ohos_fuzztest("DialCallFuzzTest") { "access_token:libtoken_setproc", "c_utils:utils", "common_event_service:cesfwk_innerkits", - "core_service:libtel_common", + "core_service:tel_core_service_api", "data_share:datashare_consumer", "init:libbegetutil", "ipc:ipc_core", "samgr:samgr_proxy", ] - defines += [ + defines = [ "TELEPHONY_LOG_TAG = \"CallManagerFuzzTest\"", "LOG_DOMAIN = 0xD000F00", ] @@ -70,7 +66,7 @@ ohos_fuzztest("DialCallFuzzTest") { "-fno-omit-frame-pointer", ] sources = [ - "//base/telephony/call_manager/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp", + "${CALL_MANAGER_PATH}/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp", "dialcall_fuzzer.cpp", ] if (is_standard_system) { diff --git a/test/fuzztest/formatphonenumber_fuzzer/BUILD.gn b/test/fuzztest/formatphonenumber_fuzzer/BUILD.gn index 57325c63..6aadd639 100644 --- a/test/fuzztest/formatphonenumber_fuzzer/BUILD.gn +++ b/test/fuzztest/formatphonenumber_fuzzer/BUILD.gn @@ -12,40 +12,37 @@ # limitations under the License. #####################hydra-fuzz################### -import("//base/telephony/core_service/telephony.gni") import("//build/config/features.gni") import("//build/ohos.gni") import("//build/test.gni") +CALL_MANAGER_PATH = "../../.." ##############################fuzztest########################################## ohos_fuzztest("FormatPhoneNumberFuzzTest") { module_output_path = "call_manager/FormatPhoneNumberFuzzTest" module_out_path = module_output_path fuzz_config_file = - "//base/telephony/call_manager/test/fuzztest/formatphonenumber_fuzzer" + "${CALL_MANAGER_PATH}/test/fuzztest/formatphonenumber_fuzzer" include_dirs = [ - "//base/telephony/call_manager/interfaces/innerkits", - "//base/telephony/call_manager/services/audio/include", - "//base/telephony/call_manager/services/audio/include/audio_state", - "//base/telephony/call_manager/services/video/include", - "//base/telephony/call_manager/services/bluetooth/include", - "//base/telephony/call_manager/services/call/include", - "//base/telephony/call_manager/services/call_manager_service/include", - "//base/telephony/call_manager/services/call_setting/include", - "//base/telephony/call_manager/services/telephony_interaction/include", - "//base/telephony/call_manager/services/call_report/include", - "//base/telephony/call_manager/services/video/include", - "//base/telephony/call_manager/services/call/call_state_observer/include", - "//base/telephony/call_manager/test/fuzztest/common_fuzzer", - "//base/telephony/call_manager/frameworks/native/include", - "//base/telephony/call_manager/frameworks/native/include", - "//base/telephony/core_service/interfaces/innerkits/include", + "${CALL_MANAGER_PATH}/test/fuzztest/common_fuzzer", + "${CALL_MANAGER_PATH}/services/audio/include", + "${CALL_MANAGER_PATH}/services/audio/include/audio_state", + "${CALL_MANAGER_PATH}/services/video/include", + "${CALL_MANAGER_PATH}/services/bluetooth/include", + "${CALL_MANAGER_PATH}/services/call/include", + "${CALL_MANAGER_PATH}/services/call_manager_service/include", + "${CALL_MANAGER_PATH}/services/call_setting/include", + "${CALL_MANAGER_PATH}/services/telephony_interaction/include", + "${CALL_MANAGER_PATH}/services/call_report/include", + "${CALL_MANAGER_PATH}/services/video/include", + "${CALL_MANAGER_PATH}/services/call/call_state_observer/include", ] - configs = [ "//base/telephony/core_service/utils:telephony_log_config" ] - - deps = [ "//base/telephony/call_manager:tel_call_manager" ] + deps = [ + "${CALL_MANAGER_PATH}:tel_call_manager", + "${CALL_MANAGER_PATH}/frameworks/native:tel_call_manager_api", + ] external_deps = [ "ability_runtime:ability_manager", @@ -54,13 +51,13 @@ ohos_fuzztest("FormatPhoneNumberFuzzTest") { "access_token:libtoken_setproc", "c_utils:utils", "common_event_service:cesfwk_innerkits", - "core_service:libtel_common", + "core_service:tel_core_service_api", "data_share:datashare_consumer", "init:libbegetutil", "ipc:ipc_core", "samgr:samgr_proxy", ] - defines += [ + defines = [ "TELEPHONY_LOG_TAG = \"CallManagerFuzzTest\"", "LOG_DOMAIN = 0xD000F00", ] @@ -71,7 +68,7 @@ ohos_fuzztest("FormatPhoneNumberFuzzTest") { "-fno-omit-frame-pointer", ] sources = [ - "//base/telephony/call_manager/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp", + "${CALL_MANAGER_PATH}/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp", "formatphonenumber_fuzzer.cpp", ] if (is_standard_system) { diff --git a/test/fuzztest/formatphonenumbertoe164_fuzzer/BUILD.gn b/test/fuzztest/formatphonenumbertoe164_fuzzer/BUILD.gn index cb233e71..b2857f09 100644 --- a/test/fuzztest/formatphonenumbertoe164_fuzzer/BUILD.gn +++ b/test/fuzztest/formatphonenumbertoe164_fuzzer/BUILD.gn @@ -12,39 +12,37 @@ # limitations under the License. #####################hydra-fuzz################### -import("//base/telephony/core_service/telephony.gni") import("//build/config/features.gni") import("//build/ohos.gni") import("//build/test.gni") +CALL_MANAGER_PATH = "../../.." ##############################fuzztest########################################## ohos_fuzztest("FormatPhoneNumberToE164FuzzTest") { module_output_path = "call_manager/FormatPhoneNumberToE164FuzzTest" module_out_path = module_output_path - fuzz_config_file = "//base/telephony/call_manager/test/fuzztest/formatphonenumbertoe164_fuzzer" + fuzz_config_file = + "${CALL_MANAGER_PATH}/test/fuzztest/formatphonenumbertoe164_fuzzer" include_dirs = [ - "//base/telephony/call_manager/interfaces/innerkits", - "//base/telephony/call_manager/services/audio/include", - "//base/telephony/call_manager/services/audio/include/audio_state", - "//base/telephony/call_manager/services/video/include", - "//base/telephony/call_manager/services/bluetooth/include", - "//base/telephony/call_manager/services/call/include", - "//base/telephony/call_manager/services/call_manager_service/include", - "//base/telephony/call_manager/services/call_setting/include", - "//base/telephony/call_manager/services/telephony_interaction/include", - "//base/telephony/call_manager/services/call_report/include", - "//base/telephony/call_manager/services/video/include", - "//base/telephony/call_manager/services/call/call_state_observer/include", - "//base/telephony/call_manager/test/fuzztest/common_fuzzer", - "//base/telephony/call_manager/frameworks/native/include", - "//base/telephony/call_manager/frameworks/native/include", - "//base/telephony/core_service/interfaces/innerkits/include", + "${CALL_MANAGER_PATH}/test/fuzztest/common_fuzzer", + "${CALL_MANAGER_PATH}/services/audio/include", + "${CALL_MANAGER_PATH}/services/audio/include/audio_state", + "${CALL_MANAGER_PATH}/services/video/include", + "${CALL_MANAGER_PATH}/services/bluetooth/include", + "${CALL_MANAGER_PATH}/services/call/include", + "${CALL_MANAGER_PATH}/services/call_manager_service/include", + "${CALL_MANAGER_PATH}/services/call_setting/include", + "${CALL_MANAGER_PATH}/services/telephony_interaction/include", + "${CALL_MANAGER_PATH}/services/call_report/include", + "${CALL_MANAGER_PATH}/services/video/include", + "${CALL_MANAGER_PATH}/services/call/call_state_observer/include", ] - configs = [ "//base/telephony/core_service/utils:telephony_log_config" ] - - deps = [ "//base/telephony/call_manager:tel_call_manager" ] + deps = [ + "${CALL_MANAGER_PATH}:tel_call_manager", + "${CALL_MANAGER_PATH}/frameworks/native:tel_call_manager_api", + ] external_deps = [ "ability_runtime:ability_manager", @@ -53,13 +51,13 @@ ohos_fuzztest("FormatPhoneNumberToE164FuzzTest") { "access_token:libtoken_setproc", "c_utils:utils", "common_event_service:cesfwk_innerkits", - "core_service:libtel_common", + "core_service:tel_core_service_api", "data_share:datashare_consumer", "init:libbegetutil", "ipc:ipc_core", "samgr:samgr_proxy", ] - defines += [ + defines = [ "TELEPHONY_LOG_TAG = \"CallManagerFuzzTest\"", "LOG_DOMAIN = 0xD000F00", ] @@ -70,7 +68,7 @@ ohos_fuzztest("FormatPhoneNumberToE164FuzzTest") { "-fno-omit-frame-pointer", ] sources = [ - "//base/telephony/call_manager/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp", + "${CALL_MANAGER_PATH}/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp", "formatphonenumbertoe164_fuzzer.cpp", ] if (is_standard_system) { diff --git a/test/fuzztest/isemergencyphonenumber_fuzzer/BUILD.gn b/test/fuzztest/isemergencyphonenumber_fuzzer/BUILD.gn index 042d27e3..ff372c1a 100644 --- a/test/fuzztest/isemergencyphonenumber_fuzzer/BUILD.gn +++ b/test/fuzztest/isemergencyphonenumber_fuzzer/BUILD.gn @@ -12,39 +12,37 @@ # limitations under the License. #####################hydra-fuzz################### -import("//base/telephony/core_service/telephony.gni") import("//build/config/features.gni") import("//build/ohos.gni") import("//build/test.gni") +CALL_MANAGER_PATH = "../../.." ##############################fuzztest########################################## ohos_fuzztest("IsEmergencyPhoneNumberFuzzTest") { module_output_path = "call_manager/IsEmergencyPhoneNumberFuzzTest" module_out_path = module_output_path - fuzz_config_file = "//base/telephony/call_manager/test/fuzztest/isemergencyphonenumber_fuzzer" + fuzz_config_file = + "${CALL_MANAGER_PATH}/test/fuzztest/isemergencyphonenumber_fuzzer" include_dirs = [ - "//base/telephony/call_manager/interfaces/innerkits", - "//base/telephony/call_manager/services/audio/include", - "//base/telephony/call_manager/services/audio/include/audio_state", - "//base/telephony/call_manager/services/video/include", - "//base/telephony/call_manager/services/bluetooth/include", - "//base/telephony/call_manager/services/call/include", - "//base/telephony/call_manager/services/call_manager_service/include", - "//base/telephony/call_manager/services/call_setting/include", - "//base/telephony/call_manager/services/telephony_interaction/include", - "//base/telephony/call_manager/services/call_report/include", - "//base/telephony/call_manager/services/video/include", - "//base/telephony/call_manager/services/call/call_state_observer/include", - "//base/telephony/call_manager/test/fuzztest/common_fuzzer", - "//base/telephony/call_manager/frameworks/native/include", - "//base/telephony/call_manager/frameworks/native/include", - "//base/telephony/core_service/interfaces/innerkits/include", + "${CALL_MANAGER_PATH}/test/fuzztest/common_fuzzer", + "${CALL_MANAGER_PATH}/services/audio/include", + "${CALL_MANAGER_PATH}/services/audio/include/audio_state", + "${CALL_MANAGER_PATH}/services/video/include", + "${CALL_MANAGER_PATH}/services/bluetooth/include", + "${CALL_MANAGER_PATH}/services/call/include", + "${CALL_MANAGER_PATH}/services/call_manager_service/include", + "${CALL_MANAGER_PATH}/services/call_setting/include", + "${CALL_MANAGER_PATH}/services/telephony_interaction/include", + "${CALL_MANAGER_PATH}/services/call_report/include", + "${CALL_MANAGER_PATH}/services/video/include", + "${CALL_MANAGER_PATH}/services/call/call_state_observer/include", ] - configs = [ "//base/telephony/core_service/utils:telephony_log_config" ] - - deps = [ "//base/telephony/call_manager:tel_call_manager" ] + deps = [ + "${CALL_MANAGER_PATH}:tel_call_manager", + "${CALL_MANAGER_PATH}/frameworks/native:tel_call_manager_api", + ] external_deps = [ "ability_runtime:ability_manager", @@ -53,13 +51,13 @@ ohos_fuzztest("IsEmergencyPhoneNumberFuzzTest") { "access_token:libtoken_setproc", "c_utils:utils", "common_event_service:cesfwk_innerkits", - "core_service:libtel_common", + "core_service:tel_core_service_api", "data_share:datashare_consumer", "init:libbegetutil", "ipc:ipc_core", "samgr:samgr_proxy", ] - defines += [ + defines = [ "TELEPHONY_LOG_TAG = \"CallManagerFuzzTest\"", "LOG_DOMAIN = 0xD000F00", ] @@ -70,7 +68,7 @@ ohos_fuzztest("IsEmergencyPhoneNumberFuzzTest") { "-fno-omit-frame-pointer", ] sources = [ - "//base/telephony/call_manager/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp", + "${CALL_MANAGER_PATH}/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp", "isemergencyphonenumber_fuzzer.cpp", ] if (is_standard_system) { diff --git a/test/fuzztest/rejectcall_fuzzer/BUILD.gn b/test/fuzztest/rejectcall_fuzzer/BUILD.gn index ef7995e5..239fd250 100644 --- a/test/fuzztest/rejectcall_fuzzer/BUILD.gn +++ b/test/fuzztest/rejectcall_fuzzer/BUILD.gn @@ -12,40 +12,36 @@ # limitations under the License. #####################hydra-fuzz################### -import("//base/telephony/core_service/telephony.gni") import("//build/config/features.gni") import("//build/ohos.gni") import("//build/test.gni") +CALL_MANAGER_PATH = "../../.." ##############################fuzztest########################################## ohos_fuzztest("RejectCallFuzzTest") { module_output_path = "call_manager/RejectCallFuzzTest" module_out_path = module_output_path - fuzz_config_file = - "//base/telephony/call_manager/test/fuzztest/rejectcall_fuzzer" + fuzz_config_file = "${CALL_MANAGER_PATH}/test/fuzztest/rejectcall_fuzzer" include_dirs = [ - "//base/telephony/call_manager/interfaces/innerkits", - "//base/telephony/call_manager/services/audio/include", - "//base/telephony/call_manager/services/audio/include/audio_state", - "//base/telephony/call_manager/services/video/include", - "//base/telephony/call_manager/services/bluetooth/include", - "//base/telephony/call_manager/services/call/include", - "//base/telephony/call_manager/services/call_manager_service/include", - "//base/telephony/call_manager/services/call_setting/include", - "//base/telephony/call_manager/services/telephony_interaction/include", - "//base/telephony/call_manager/services/call_report/include", - "//base/telephony/call_manager/services/video/include", - "//base/telephony/call_manager/services/call/call_state_observer/include", - "//base/telephony/call_manager/test/fuzztest/common_fuzzer", - "//base/telephony/call_manager/frameworks/native/include", - "//base/telephony/call_manager/frameworks/native/include", - "//base/telephony/core_service/interfaces/innerkits/include", + "${CALL_MANAGER_PATH}/test/fuzztest/common_fuzzer", + "${CALL_MANAGER_PATH}/services/audio/include", + "${CALL_MANAGER_PATH}/services/audio/include/audio_state", + "${CALL_MANAGER_PATH}/services/video/include", + "${CALL_MANAGER_PATH}/services/bluetooth/include", + "${CALL_MANAGER_PATH}/services/call/include", + "${CALL_MANAGER_PATH}/services/call_manager_service/include", + "${CALL_MANAGER_PATH}/services/call_setting/include", + "${CALL_MANAGER_PATH}/services/telephony_interaction/include", + "${CALL_MANAGER_PATH}/services/call_report/include", + "${CALL_MANAGER_PATH}/services/video/include", + "${CALL_MANAGER_PATH}/services/call/call_state_observer/include", ] - configs = [ "//base/telephony/core_service/utils:telephony_log_config" ] - - deps = [ "//base/telephony/call_manager:tel_call_manager" ] + deps = [ + "${CALL_MANAGER_PATH}:tel_call_manager", + "${CALL_MANAGER_PATH}/frameworks/native:tel_call_manager_api", + ] external_deps = [ "ability_runtime:ability_manager", @@ -54,13 +50,13 @@ ohos_fuzztest("RejectCallFuzzTest") { "access_token:libtoken_setproc", "c_utils:utils", "common_event_service:cesfwk_innerkits", - "core_service:libtel_common", + "core_service:tel_core_service_api", "data_share:datashare_consumer", "init:libbegetutil", "ipc:ipc_core", "samgr:samgr_proxy", ] - defines += [ + defines = [ "TELEPHONY_LOG_TAG = \"CallManagerFuzzTest\"", "LOG_DOMAIN = 0xD000F00", ] @@ -71,7 +67,7 @@ ohos_fuzztest("RejectCallFuzzTest") { "-fno-omit-frame-pointer", ] sources = [ - "//base/telephony/call_manager/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp", + "${CALL_MANAGER_PATH}/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp", "rejectcall_fuzzer.cpp", ] if (is_standard_system) { diff --git a/test/fuzztest/setaudiodevice_fuzzer/BUILD.gn b/test/fuzztest/setaudiodevice_fuzzer/BUILD.gn index f39baa4d..650d7224 100644 --- a/test/fuzztest/setaudiodevice_fuzzer/BUILD.gn +++ b/test/fuzztest/setaudiodevice_fuzzer/BUILD.gn @@ -12,40 +12,36 @@ # limitations under the License. #####################hydra-fuzz################### -import("//base/telephony/core_service/telephony.gni") import("//build/config/features.gni") import("//build/ohos.gni") import("//build/test.gni") +CALL_MANAGER_PATH = "../../.." ##############################fuzztest########################################## ohos_fuzztest("SetAudioDeviceFuzzTest") { module_output_path = "call_manager/SetAudioDeviceFuzzTest" module_out_path = module_output_path - fuzz_config_file = - "//base/telephony/call_manager/test/fuzztest/setaudiodevice_fuzzer" + fuzz_config_file = "${CALL_MANAGER_PATH}/test/fuzztest/setaudiodevice_fuzzer" include_dirs = [ - "//base/telephony/call_manager/interfaces/innerkits", - "//base/telephony/call_manager/services/audio/include", - "//base/telephony/call_manager/services/audio/include/audio_state", - "//base/telephony/call_manager/services/video/include", - "//base/telephony/call_manager/services/bluetooth/include", - "//base/telephony/call_manager/services/call/include", - "//base/telephony/call_manager/services/call_manager_service/include", - "//base/telephony/call_manager/services/call_setting/include", - "//base/telephony/call_manager/services/telephony_interaction/include", - "//base/telephony/call_manager/services/call_report/include", - "//base/telephony/call_manager/services/video/include", - "//base/telephony/call_manager/services/call/call_state_observer/include", - "//base/telephony/call_manager/test/fuzztest/common_fuzzer", - "//base/telephony/call_manager/frameworks/native/include", - "//base/telephony/call_manager/frameworks/native/include", - "//base/telephony/core_service/interfaces/innerkits/include", + "${CALL_MANAGER_PATH}/test/fuzztest/common_fuzzer", + "${CALL_MANAGER_PATH}/services/audio/include", + "${CALL_MANAGER_PATH}/services/audio/include/audio_state", + "${CALL_MANAGER_PATH}/services/video/include", + "${CALL_MANAGER_PATH}/services/bluetooth/include", + "${CALL_MANAGER_PATH}/services/call/include", + "${CALL_MANAGER_PATH}/services/call_manager_service/include", + "${CALL_MANAGER_PATH}/services/call_setting/include", + "${CALL_MANAGER_PATH}/services/telephony_interaction/include", + "${CALL_MANAGER_PATH}/services/call_report/include", + "${CALL_MANAGER_PATH}/services/video/include", + "${CALL_MANAGER_PATH}/services/call/call_state_observer/include", ] - configs = [ "//base/telephony/core_service/utils:telephony_log_config" ] - - deps = [ "//base/telephony/call_manager:tel_call_manager" ] + deps = [ + "${CALL_MANAGER_PATH}:tel_call_manager", + "${CALL_MANAGER_PATH}/frameworks/native:tel_call_manager_api", + ] external_deps = [ "ability_runtime:ability_manager", @@ -54,13 +50,13 @@ ohos_fuzztest("SetAudioDeviceFuzzTest") { "access_token:libtoken_setproc", "c_utils:utils", "common_event_service:cesfwk_innerkits", - "core_service:libtel_common", + "core_service:tel_core_service_api", "data_share:datashare_consumer", "init:libbegetutil", "ipc:ipc_core", "samgr:samgr_proxy", ] - defines += [ + defines = [ "TELEPHONY_LOG_TAG = \"CallManagerFuzzTest\"", "LOG_DOMAIN = 0xD000F00", ] @@ -71,7 +67,7 @@ ohos_fuzztest("SetAudioDeviceFuzzTest") { "-fno-omit-frame-pointer", ] sources = [ - "//base/telephony/call_manager/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp", + "${CALL_MANAGER_PATH}/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp", "setaudiodevice_fuzzer.cpp", ] if (is_standard_system) { diff --git a/test/fuzztest/setcalltransferinfo_fuzzer/BUILD.gn b/test/fuzztest/setcalltransferinfo_fuzzer/BUILD.gn index cb6333a6..a664239d 100644 --- a/test/fuzztest/setcalltransferinfo_fuzzer/BUILD.gn +++ b/test/fuzztest/setcalltransferinfo_fuzzer/BUILD.gn @@ -12,38 +12,36 @@ # limitations under the License. #####################hydra-fuzz################### -import("//base/telephony/core_service/telephony.gni") import("//build/config/features.gni") import("//build/ohos.gni") import("//build/test.gni") +CALL_MANAGER_PATH = "../../.." ##############################fuzztest########################################## ohos_fuzztest("SetCallTransferInfoFuzzTest") { module_output_path = "call_manager/SetCallTransferInfoFuzzTest" module_out_path = module_output_path fuzz_config_file = - "//base/telephony/call_manager/test/fuzztest/setcalltransferinfo_fuzzer" + "${CALL_MANAGER_PATH}/test/fuzztest/setcalltransferinfo_fuzzer" include_dirs = [ - "//base/telephony/call_manager/interfaces/innerkits", - "//base/telephony/call_manager/services/audio/include", - "//base/telephony/call_manager/services/audio/include/audio_state", - "//base/telephony/call_manager/services/video/include", - "//base/telephony/call_manager/services/bluetooth/include", - "//base/telephony/call_manager/services/call/include", - "//base/telephony/call_manager/services/call_manager_service/include", - "//base/telephony/call_manager/services/call_setting/include", - "//base/telephony/call_manager/services/telephony_interaction/include", - "//base/telephony/call_manager/services/call_report/include", - "//base/telephony/call_manager/services/video/include", - "//base/telephony/call_manager/services/call/call_state_observer/include", - "//base/telephony/call_manager/test/fuzztest/common_fuzzer", - "//base/telephony/call_manager/frameworks/native/include", - "//base/telephony/call_manager/frameworks/native/include", - "//base/telephony/core_service/interfaces/innerkits/include", + "${CALL_MANAGER_PATH}/test/fuzztest/common_fuzzer", + "${CALL_MANAGER_PATH}/services/audio/include", + "${CALL_MANAGER_PATH}/services/audio/include/audio_state", + "${CALL_MANAGER_PATH}/services/video/include", + "${CALL_MANAGER_PATH}/services/bluetooth/include", + "${CALL_MANAGER_PATH}/services/call/include", + "${CALL_MANAGER_PATH}/services/call_manager_service/include", + "${CALL_MANAGER_PATH}/services/call_setting/include", + "${CALL_MANAGER_PATH}/services/telephony_interaction/include", + "${CALL_MANAGER_PATH}/services/call_report/include", + "${CALL_MANAGER_PATH}/services/video/include", + "${CALL_MANAGER_PATH}/services/call/call_state_observer/include", ] - configs = [ "//base/telephony/core_service/utils:telephony_log_config" ] - deps = [ "//base/telephony/call_manager:tel_call_manager" ] + deps = [ + "${CALL_MANAGER_PATH}:tel_call_manager", + "${CALL_MANAGER_PATH}/frameworks/native:tel_call_manager_api", + ] external_deps = [ "ability_runtime:ability_manager", @@ -52,13 +50,13 @@ ohos_fuzztest("SetCallTransferInfoFuzzTest") { "access_token:libtoken_setproc", "c_utils:utils", "common_event_service:cesfwk_innerkits", - "core_service:libtel_common", + "core_service:tel_core_service_api", "data_share:datashare_consumer", "init:libbegetutil", "ipc:ipc_core", "samgr:samgr_proxy", ] - defines += [ + defines = [ "TELEPHONY_LOG_TAG = \"CallManagerFuzzTest\"", "LOG_DOMAIN = 0xD000F00", ] @@ -69,7 +67,7 @@ ohos_fuzztest("SetCallTransferInfoFuzzTest") { "-fno-omit-frame-pointer", ] sources = [ - "//base/telephony/call_manager/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp", + "${CALL_MANAGER_PATH}/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp", "setcalltransferinfo_fuzzer.cpp", ] if (is_standard_system) { diff --git a/test/fuzztest/setpausepicture_fuzzer/BUILD.gn b/test/fuzztest/setpausepicture_fuzzer/BUILD.gn index 37f859e6..7cbeda8e 100644 --- a/test/fuzztest/setpausepicture_fuzzer/BUILD.gn +++ b/test/fuzztest/setpausepicture_fuzzer/BUILD.gn @@ -12,39 +12,36 @@ # limitations under the License. #####################hydra-fuzz################### -import("//base/telephony/core_service/telephony.gni") import("//build/config/features.gni") import("//build/ohos.gni") import("//build/test.gni") +CALL_MANAGER_PATH = "../../.." ##############################fuzztest########################################## ohos_fuzztest("SetPausePictureFuzzTest") { module_output_path = "call_manager/SetPausePictureFuzzTest" module_out_path = module_output_path - fuzz_config_file = - "//base/telephony/call_manager/test/fuzztest/setpausepicture_fuzzer" + fuzz_config_file = "${CALL_MANAGER_PATH}/test/fuzztest/setpausepicture_fuzzer" include_dirs = [ - "//base/telephony/call_manager/interfaces/innerkits", - "//base/telephony/call_manager/services/audio/include", - "//base/telephony/call_manager/services/audio/include/audio_state", - "//base/telephony/call_manager/services/video/include", - "//base/telephony/call_manager/services/bluetooth/include", - "//base/telephony/call_manager/services/call/include", - "//base/telephony/call_manager/services/call_manager_service/include", - "//base/telephony/call_manager/services/call_setting/include", - "//base/telephony/call_manager/services/telephony_interaction/include", - "//base/telephony/call_manager/services/call_report/include", - "//base/telephony/call_manager/services/video/include", - "//base/telephony/call_manager/services/call/call_state_observer/include", - "//base/telephony/call_manager/test/fuzztest/common_fuzzer", - "//base/telephony/call_manager/frameworks/native/include", - "//base/telephony/call_manager/frameworks/native/include", - "//base/telephony/core_service/interfaces/innerkits/include", + "${CALL_MANAGER_PATH}/test/fuzztest/common_fuzzer", + "${CALL_MANAGER_PATH}/services/audio/include", + "${CALL_MANAGER_PATH}/services/audio/include/audio_state", + "${CALL_MANAGER_PATH}/services/video/include", + "${CALL_MANAGER_PATH}/services/bluetooth/include", + "${CALL_MANAGER_PATH}/services/call/include", + "${CALL_MANAGER_PATH}/services/call_manager_service/include", + "${CALL_MANAGER_PATH}/services/call_setting/include", + "${CALL_MANAGER_PATH}/services/telephony_interaction/include", + "${CALL_MANAGER_PATH}/services/call_report/include", + "${CALL_MANAGER_PATH}/services/video/include", + "${CALL_MANAGER_PATH}/services/call/call_state_observer/include", ] - configs = [ "//base/telephony/core_service/utils:telephony_log_config" ] + deps = [ + "${CALL_MANAGER_PATH}:tel_call_manager", + "${CALL_MANAGER_PATH}/frameworks/native:tel_call_manager_api", + ] - deps = [ "//base/telephony/call_manager:tel_call_manager" ] external_deps = [ "ability_runtime:ability_manager", "access_token:libaccesstoken_sdk", @@ -52,13 +49,13 @@ ohos_fuzztest("SetPausePictureFuzzTest") { "access_token:libtoken_setproc", "c_utils:utils", "common_event_service:cesfwk_innerkits", - "core_service:libtel_common", + "core_service:tel_core_service_api", "data_share:datashare_consumer", "init:libbegetutil", "ipc:ipc_core", "samgr:samgr_proxy", ] - defines += [ + defines = [ "TELEPHONY_LOG_TAG = \"CallManagerFuzzTest\"", "LOG_DOMAIN = 0xD000F00", ] @@ -69,7 +66,7 @@ ohos_fuzztest("SetPausePictureFuzzTest") { "-fno-omit-frame-pointer", ] sources = [ - "//base/telephony/call_manager/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp", + "${CALL_MANAGER_PATH}/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp", "setpausepicture_fuzzer.cpp", ] if (is_standard_system) { diff --git a/test/fuzztest/startdtmf_fuzzer/BUILD.gn b/test/fuzztest/startdtmf_fuzzer/BUILD.gn index 0bd1b3e4..99d4229e 100644 --- a/test/fuzztest/startdtmf_fuzzer/BUILD.gn +++ b/test/fuzztest/startdtmf_fuzzer/BUILD.gn @@ -12,39 +12,35 @@ # limitations under the License. #####################hydra-fuzz################### -import("//base/telephony/core_service/telephony.gni") import("//build/config/features.gni") import("//build/ohos.gni") import("//build/test.gni") +CALL_MANAGER_PATH = "../../.." ##############################fuzztest########################################## ohos_fuzztest("StartDtmfFuzzTest") { module_output_path = "call_manager/StartDtmfFuzzTest" module_out_path = module_output_path - fuzz_config_file = - "//base/telephony/call_manager/test/fuzztest/startdtmf_fuzzer" + fuzz_config_file = "${CALL_MANAGER_PATH}/test/fuzztest/startdtmf_fuzzer" include_dirs = [ - "//base/telephony/call_manager/interfaces/innerkits", - "//base/telephony/call_manager/services/audio/include", - "//base/telephony/call_manager/services/audio/include/audio_state", - "//base/telephony/call_manager/services/video/include", - "//base/telephony/call_manager/services/bluetooth/include", - "//base/telephony/call_manager/services/call/include", - "//base/telephony/call_manager/services/call_manager_service/include", - "//base/telephony/call_manager/services/call_setting/include", - "//base/telephony/call_manager/services/telephony_interaction/include", - "//base/telephony/call_manager/services/call_report/include", - "//base/telephony/call_manager/services/video/include", - "//base/telephony/call_manager/services/call/call_state_observer/include", - "//base/telephony/call_manager/test/fuzztest/common_fuzzer", - "//base/telephony/call_manager/frameworks/native/include", - "//base/telephony/call_manager/frameworks/native/include", - "//base/telephony/core_service/interfaces/innerkits/include", + "${CALL_MANAGER_PATH}/test/fuzztest/common_fuzzer", + "${CALL_MANAGER_PATH}/services/audio/include", + "${CALL_MANAGER_PATH}/services/audio/include/audio_state", + "${CALL_MANAGER_PATH}/services/video/include", + "${CALL_MANAGER_PATH}/services/bluetooth/include", + "${CALL_MANAGER_PATH}/services/call/include", + "${CALL_MANAGER_PATH}/services/call_manager_service/include", + "${CALL_MANAGER_PATH}/services/call_setting/include", + "${CALL_MANAGER_PATH}/services/telephony_interaction/include", + "${CALL_MANAGER_PATH}/services/call_report/include", + "${CALL_MANAGER_PATH}/services/video/include", + "${CALL_MANAGER_PATH}/services/call/call_state_observer/include", ] - configs = [ "//base/telephony/core_service/utils:telephony_log_config" ] - - deps = [ "//base/telephony/call_manager:tel_call_manager" ] + deps = [ + "${CALL_MANAGER_PATH}:tel_call_manager", + "${CALL_MANAGER_PATH}/frameworks/native:tel_call_manager_api", + ] external_deps = [ "ability_runtime:ability_manager", @@ -53,13 +49,13 @@ ohos_fuzztest("StartDtmfFuzzTest") { "access_token:libtoken_setproc", "c_utils:utils", "common_event_service:cesfwk_innerkits", - "core_service:libtel_common", + "core_service:tel_core_service_api", "data_share:datashare_consumer", "init:libbegetutil", "ipc:ipc_core", "samgr:samgr_proxy", ] - defines += [ + defines = [ "TELEPHONY_LOG_TAG = \"CallManagerFuzzTest\"", "LOG_DOMAIN = 0xD000F00", ] @@ -70,7 +66,7 @@ ohos_fuzztest("StartDtmfFuzzTest") { "-fno-omit-frame-pointer", ] sources = [ - "//base/telephony/call_manager/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp", + "${CALL_MANAGER_PATH}/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp", "startdtmf_fuzzer.cpp", ] if (is_standard_system) { diff --git a/test/unittest/call_manager_gtest/BUILD.gn b/test/unittest/call_manager_gtest/BUILD.gn index 81f2b7ff..ade1e7a6 100644 --- a/test/unittest/call_manager_gtest/BUILD.gn +++ b/test/unittest/call_manager_gtest/BUILD.gn @@ -11,8 +11,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -import("//base/telephony/call_manager/call_manager_aafwk.gni") import("//build/test.gni") +CALL_MANAGER_PATH = "../../.." ohos_unittest("tel_call_manager_gtest") { install_enable = true @@ -22,49 +22,41 @@ ohos_unittest("tel_call_manager_gtest") { module_out_path = part_name + "/" + test_module sources = [ - "//base/telephony/call_manager/frameworks/native/src/call_manager_service_proxy.cpp", + "${CALL_MANAGER_PATH}/frameworks/native/src/call_manager_service_proxy.cpp", "src/call_manager_gtest.cpp", "src/zero_branch_test.cpp", ] include_dirs = [ - "//base/telephony/call_manager/services/bluetooth/include", - "//base/telephony/call_manager/services/call_manager_service/include", - "//base/telephony/call_manager/test/unittest/call_manager_gtest/include", - "//base/telephony/call_manager/utils/include", - "//base/telephony/call_manager/services/call_report/include", - "//base/telephony/call_manager/services/call/include", - "//base/telephony/call_manager/services/call_setting/include", - "//base/telephony/call_manager/services/telephony_interaction/include", - "//base/telephony/call_manager/services/call/call_state_observer/include", - "//base/telephony/call_manager/services/video/include", - "//base/telephony/call_manager/frameworks/native/include", - "//base/telephony/call_manager/interfaces/innerkits", + "${CALL_MANAGER_PATH}/frameworks/native/include", + "${CALL_MANAGER_PATH}/interfaces/innerkits", + "${CALL_MANAGER_PATH}/services/bluetooth/include", + "${CALL_MANAGER_PATH}/services/call_manager_service/include", + "${CALL_MANAGER_PATH}/services/call_report/include", + "${CALL_MANAGER_PATH}/services/call_setting/include", + "${CALL_MANAGER_PATH}/services/call/call_state_observer/include", + "${CALL_MANAGER_PATH}/services/call/include", + "${CALL_MANAGER_PATH}/services/telephony_interaction/include", + "${CALL_MANAGER_PATH}/services/video/include", + "${CALL_MANAGER_PATH}/test/unittest/call_manager_gtest/include", + "${CALL_MANAGER_PATH}/utils/include", "//third_party/libphonenumber/cpp/src", "//third_party/libphonenumber/cpp/src/phonenumbers", "//third_party/protobuf/src", "//third_party/protobuf/src/google/protobuf", ] - configs = [ "//base/telephony/core_service/utils:telephony_log_config" ] - - deps = [ - "${ability_runtime_inner_api_path}/ability_manager:ability_manager", - "${ability_runtime_path}/frameworks/native/ability/native:abilitykit_native", - "//base/telephony/call_manager:tel_call_manager", - "//base/telephony/call_manager/frameworks/native:tel_call_manager_api", - "//base/telephony/core_service/utils:libtel_common", - "//third_party/googletest:gtest_main", - "//third_party/libphonenumber/cpp:phonenumber_standard", - ] - external_deps = [ "ability_base:want", + "ability_runtime:ability_manager", + "ability_runtime:dataobs_manager", "access_token:libaccesstoken_sdk", "access_token:libnativetoken", "access_token:libtoken_setproc", + "bluetooth:btframework", "c_utils:utils", "common_event_service:cesfwk_innerkits", + "core_service:libtel_common", "core_service:tel_core_service_api", "data_share:datashare_consumer", "eventhandler:libeventhandler", @@ -74,6 +66,11 @@ ohos_unittest("tel_call_manager_gtest") { "samgr:samgr_proxy", ] + deps = [ + "${CALL_MANAGER_PATH}:tel_call_manager", + "${CALL_MANAGER_PATH}/frameworks/native:tel_call_manager_api", + ] + defines = [ "TELEPHONY_LOG_TAG = \"CallManagerGtest\"", "LOG_DOMAIN = 0xD000F00", @@ -83,13 +80,6 @@ ohos_unittest("tel_call_manager_gtest") { defines += [ "CALL_MANAGER_IMS_LITE_UNSUPPORT" ] } - if (defined(global_parts_info) && - defined(global_parts_info.communication_bluetooth) && - global_parts_info.communication_bluetooth) { - external_deps += [ "bluetooth:btframework" ] - defines += [ "ABILITY_BLUETOOTH_SUPPORT" ] - } - if (is_standard_system) { external_deps += [ "hiviewdfx_hilog_native:libhilog" ] } else { diff --git a/test/unittest/ui_client/BUILD.gn b/test/unittest/ui_client/BUILD.gn index 5df870ab..04ed9c29 100644 --- a/test/unittest/ui_client/BUILD.gn +++ b/test/unittest/ui_client/BUILD.gn @@ -11,8 +11,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -import("//base/telephony/call_manager/call_manager_aafwk.gni") import("//build/ohos.gni") +CALL_MANAGER_PATH = "../../.." ohos_executable("tel_call_manager_ui_test") { install_enable = true @@ -23,31 +23,11 @@ ohos_executable("tel_call_manager_ui_test") { "ui_client_test.cpp", ] - include_dirs = [ - "//base/telephony/call_manager/services/audio/include", - "//foundation/graphic/graphic_2d/frameworks/surface/include", - "//utils/system/safwk/native/include", - "//drivers/hdf_core/framework/include/utils", - "//drivers/hdf_core/adapter/uhdf2/utils/include", - "//drivers/hdf_core/adapter/uhdf2/include/hdi", - "//drivers/peripheral/display/interfaces/include", - "//drivers/peripheral/camera/interfaces/include", - "//drivers/peripheral/camera/interfaces/include/server", - "//drivers/peripheral/camera/interfaces/include/callback/device", - "//drivers/peripheral/camera/interfaces/include/callback/operator", - "//drivers/peripheral/camera/interfaces/include/callback/host", - "/commonlibrary/c_utils/base/include", - ] - - configs = [ "//base/telephony/core_service/utils:telephony_log_config" ] - - deps = [ - "${ability_runtime_path}/frameworks/native/ability/native:abilitykit_native", - "//foundation/graphic/graphic_2d:libsurface", - ] + include_dirs = [ "${CALL_MANAGER_PATH}/services/audio/include" ] external_deps = [ "ability_base:want", + "ability_runtime:abilitykit_native", "access_token:libaccesstoken_sdk", "access_token:libnativetoken", "access_token:libtoken_setproc", -- Gitee From aaff54a8dc25336b4aa8d874ff498a81849cdb47 Mon Sep 17 00:00:00 2001 From: zhangcl0222 Date: Thu, 20 Apr 2023 17:27:42 +0800 Subject: [PATCH 04/12] =?UTF-8?q?IssueNo:=20call=5Fmanager=20=E9=83=A8?= =?UTF-8?q?=E4=BB=B6=E9=97=B4=E4=BE=9D=E8=B5=96=E4=BC=98=E5=8C=96=EF=BC=8C?= =?UTF-8?q?=E8=A1=A5=E5=85=85=E8=B7=A8=E9=83=A8=E4=BB=B6ipc=E9=80=9A?= =?UTF-8?q?=E4=BF=A1=E7=9B=B8=E5=85=B3=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Description: 补充跨部件ipc通信相关依赖 Sig: SIG_Telephony Feature or Bugfix: Feature Binary Source: No Change-Id: I2b42c1de0ab0455c3cddf0938e4381f642c71b3f --- frameworks/native/BUILD.gn | 2 ++ .../innerkits}/call_status_callback_proxy.h | 0 .../include => interfaces/innerkits}/cellular_call_proxy.h | 0 3 files changed, 2 insertions(+) rename {services/telephony_interaction/include => interfaces/innerkits}/call_status_callback_proxy.h (100%) rename {services/telephony_interaction/include => interfaces/innerkits}/cellular_call_proxy.h (100%) diff --git a/frameworks/native/BUILD.gn b/frameworks/native/BUILD.gn index cda83548..db107500 100644 --- a/frameworks/native/BUILD.gn +++ b/frameworks/native/BUILD.gn @@ -24,6 +24,8 @@ config("call_manager_config") { ohos_shared_library("tel_call_manager_api") { sources = [ + "${SUBSYSTEM_DIR}/services/telephony_interaction/src/call_status_callback_proxy.cpp", + "${SUBSYSTEM_DIR}/services/telephony_interaction/src/cellular_call_proxy.cpp", "src/bluetooth_call_client.cpp", "src/bluetooth_call_proxy.cpp", "src/call_ability_callback.cpp", diff --git a/services/telephony_interaction/include/call_status_callback_proxy.h b/interfaces/innerkits/call_status_callback_proxy.h similarity index 100% rename from services/telephony_interaction/include/call_status_callback_proxy.h rename to interfaces/innerkits/call_status_callback_proxy.h diff --git a/services/telephony_interaction/include/cellular_call_proxy.h b/interfaces/innerkits/cellular_call_proxy.h similarity index 100% rename from services/telephony_interaction/include/cellular_call_proxy.h rename to interfaces/innerkits/cellular_call_proxy.h -- Gitee From 42affdb67d8f5480b33e96b1c710bccbd64cb2a8 Mon Sep 17 00:00:00 2001 From: zhangcl0222 Date: Fri, 21 Apr 2023 18:06:25 +0800 Subject: [PATCH 05/12] =?UTF-8?q?IssueNo:=20call=5Fmanger=20log=E4=BC=98?= =?UTF-8?q?=E5=85=88=E7=BA=A7=E6=95=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Description: call_manger log优先级整改 Sig: SIG_Telephony Feature or Bugfix: Feature Binary Source: No Signed-off-by: zhangcl0222 Change-Id: I283f84e7ff3ba3862dd96d17bf12875946b75db2 --- frameworks/js/napi/src/napi_call_manager.cpp | 6 +++--- frameworks/native/src/call_ability_callback_stub.cpp | 2 +- frameworks/native/src/call_manager_client.cpp | 4 ++-- frameworks/native/src/call_manager_proxy.cpp | 10 +++++----- services/bluetooth/src/bluetooth_call_stub.cpp | 2 +- .../src/call_manager_service_stub.cpp | 2 +- services/call_report/src/call_ability_report_proxy.cpp | 2 +- .../src/call_status_callback_stub.cpp | 2 +- 8 files changed, 15 insertions(+), 15 deletions(-) diff --git a/frameworks/js/napi/src/napi_call_manager.cpp b/frameworks/js/napi/src/napi_call_manager.cpp index 6bbd67cf..7adfadaa 100644 --- a/frameworks/js/napi/src/napi_call_manager.cpp +++ b/frameworks/js/napi/src/napi_call_manager.cpp @@ -1387,7 +1387,7 @@ bool NapiCallManager::MatchEmptyParameter(napi_env env, const napi_value paramet bool NapiCallManager::MatchOneOptionalNumberParameter( napi_env env, const napi_value parameters[], const size_t parameterCount) { - TELEPHONY_LOGI("Telephony_CallManager MatchAnswerParameters %{public}zu", parameterCount); + TELEPHONY_LOGD("Telephony_CallManager MatchAnswerParameters %{public}zu", parameterCount); switch (parameterCount) { case ZERO_VALUE: return true; @@ -1416,7 +1416,7 @@ bool NapiCallManager::MatchOneStringParameter(napi_env env, const napi_value par bool NapiCallManager::MatchOneNumberParameter(napi_env env, const napi_value parameters[], const size_t parameterCount) { - TELEPHONY_LOGI("Telephony_CallManager MatchOneNumberParameter %{public}zu", parameterCount); + TELEPHONY_LOGD("Telephony_CallManager MatchOneNumberParameter %{public}zu", parameterCount); switch (parameterCount) { case ONLY_ONE_VALUE: return NapiUtil::MatchParameters(env, parameters, { napi_number }); @@ -2603,7 +2603,7 @@ napi_value NapiCallManager::InputDialerSpecialCode(napi_env env, napi_callback_i napi_value NapiCallManager::HasVoiceCapability(napi_env env, napi_callback_info) { - TELEPHONY_LOGI("napi_call HasVoiceCapability"); + TELEPHONY_LOGD("napi_call HasVoiceCapability"); napi_value result = nullptr; napi_get_boolean(env, DelayedSingleton::GetInstance()->HasVoiceCapability(), &result); return result; diff --git a/frameworks/native/src/call_ability_callback_stub.cpp b/frameworks/native/src/call_ability_callback_stub.cpp index 36bcc0f9..713fed76 100644 --- a/frameworks/native/src/call_ability_callback_stub.cpp +++ b/frameworks/native/src/call_ability_callback_stub.cpp @@ -48,7 +48,7 @@ int32_t CallAbilityCallbackStub::OnRemoteRequest( TELEPHONY_LOGE("descriptor checked failed"); return TELEPHONY_ERR_DESCRIPTOR_MISMATCH; } - TELEPHONY_LOGI("OnReceived, cmd = %{public}u", code); + TELEPHONY_LOGD("OnReceived, cmd = %{public}u", code); auto itFunc = memberFuncMap_.find(code); if (itFunc != memberFuncMap_.end()) { auto memberFunc = itFunc->second; diff --git a/frameworks/native/src/call_manager_client.cpp b/frameworks/native/src/call_manager_client.cpp index 087b52bb..8bf293a3 100644 --- a/frameworks/native/src/call_manager_client.cpp +++ b/frameworks/native/src/call_manager_client.cpp @@ -42,7 +42,7 @@ void CallManagerClient::Init(int32_t systemAbilityId) } g_callManagerProxy->Init(systemAbilityId); } - TELEPHONY_LOGI("CallManagerClient init success!"); + TELEPHONY_LOGD("CallManagerClient init success!"); } void CallManagerClient::UnInit() @@ -621,7 +621,7 @@ bool CallManagerClient::HasVoiceCapability() { char retValue[VOICECALL_CAP_VAL_LEN + 1] = {"true"}; int retLen = GetParameter(KEY_VOICECALL_CAP.c_str(), "true", retValue, VOICECALL_CAP_VAL_LEN); - TELEPHONY_LOGI("HasVoiceCapability retValue %{public}s, retLen %{public}d", retValue, retLen); + TELEPHONY_LOGD("HasVoiceCapability retValue %{public}s, retLen %{public}d", retValue, retLen); if (strcmp(retValue, "false") == 0) { return false; } diff --git a/frameworks/native/src/call_manager_proxy.cpp b/frameworks/native/src/call_manager_proxy.cpp index 88d632b4..61dfa980 100644 --- a/frameworks/native/src/call_manager_proxy.cpp +++ b/frameworks/native/src/call_manager_proxy.cpp @@ -90,7 +90,7 @@ void CallManagerProxy::Init(int32_t systemAbilityId) return; } initStatus_ = true; - TELEPHONY_LOGI("connected to call manager service successfully!"); + TELEPHONY_LOGD("connected to call manager service successfully!"); } #ifdef CALL_MANAGER_AUTO_START_OPTIMIZE @@ -117,9 +117,9 @@ void CallManagerProxy::CallManagerProxySubcribed::OnReceiveEvent(const EventFwk: return; } proxy->SetInitState(true); - TELEPHONY_LOGI("OnReceiveEvent connected to call manager service successfully!"); + TELEPHONY_LOGD("OnReceiveEvent connected to call manager service successfully!"); bool unsubscribeResult = EventFwk::CommonEventManager::UnSubscribeCommonEvent(shared_from_this()); - TELEPHONY_LOGI("OnReceiveEvent UnSubscribeCommonEvent unsubscribeResult: %{public}d", unsubscribeResult); + TELEPHONY_LOGD("OnReceiveEvent UnSubscribeCommonEvent unsubscribeResult: %{public}d", unsubscribeResult); } #endif @@ -163,7 +163,7 @@ int32_t CallManagerProxy::RegisterCallBack(std::unique_ptr } return TELEPHONY_ERR_REGISTER_CALLBACK_FAIL; } - TELEPHONY_LOGI("register call ability callback success!"); + TELEPHONY_LOGD("register call ability callback success!"); callAbilityCallbackPtr_->SetProcessCallback(std::move(callback)); registerStatus_ = true; return TELEPHONY_SUCCESS; @@ -195,7 +195,7 @@ int32_t CallManagerProxy::UnRegisterCallBack() callAbilityCallbackPtr_.clear(); callAbilityCallbackPtr_ = nullptr; registerStatus_ = false; - TELEPHONY_LOGI("UnRegisterCallBack success!"); + TELEPHONY_LOGD("UnRegisterCallBack success!"); return TELEPHONY_SUCCESS; } diff --git a/services/bluetooth/src/bluetooth_call_stub.cpp b/services/bluetooth/src/bluetooth_call_stub.cpp index 0f537cda..3317d06c 100644 --- a/services/bluetooth/src/bluetooth_call_stub.cpp +++ b/services/bluetooth/src/bluetooth_call_stub.cpp @@ -57,7 +57,7 @@ int32_t BluetoothCallStub::OnRemoteRequest(uint32_t code, MessageParcel &data, M TELEPHONY_LOGE("descriptor checked fail !"); return TELEPHONY_ERR_DESCRIPTOR_MISMATCH; } - TELEPHONY_LOGI("OnReceived, cmd = %{public}u", code); + TELEPHONY_LOGD("OnReceived, cmd = %{public}u", code); auto itFunc = memberFuncMap_.find(code); if (itFunc != memberFuncMap_.end()) { auto memberFunc = itFunc->second; diff --git a/services/call_manager_service/src/call_manager_service_stub.cpp b/services/call_manager_service/src/call_manager_service_stub.cpp index 9f7c8217..7fb05cf2 100644 --- a/services/call_manager_service/src/call_manager_service_stub.cpp +++ b/services/call_manager_service/src/call_manager_service_stub.cpp @@ -149,7 +149,7 @@ int32_t CallManagerServiceStub::OnRemoteRequest( TELEPHONY_LOGE("descriptor checked fail !"); return TELEPHONY_ERR_DESCRIPTOR_MISMATCH; } - TELEPHONY_LOGI("OnReceived, cmd = %{public}u", code); + TELEPHONY_LOGD("OnReceived, cmd = %{public}u", code); auto itFunc = memberFuncMap_.find(code); if (itFunc != memberFuncMap_.end()) { auto memberFunc = itFunc->second; diff --git a/services/call_report/src/call_ability_report_proxy.cpp b/services/call_report/src/call_ability_report_proxy.cpp index 4b5abeeb..4e661e8b 100644 --- a/services/call_report/src/call_ability_report_proxy.cpp +++ b/services/call_report/src/call_ability_report_proxy.cpp @@ -63,7 +63,7 @@ int32_t CallAbilityReportProxy::RegisterCallBack( } } callbackPtrList_.emplace_back(callAbilityCallbackPtr); - TELEPHONY_LOGI("%{public}s successfully registered the callback for the first time!", bundleName.c_str()); + TELEPHONY_LOGD("%{public}s successfully registered the callback for the first time!", bundleName.c_str()); return TELEPHONY_SUCCESS; } diff --git a/services/telephony_interaction/src/call_status_callback_stub.cpp b/services/telephony_interaction/src/call_status_callback_stub.cpp index 1af6c6d4..bbbaae90 100644 --- a/services/telephony_interaction/src/call_status_callback_stub.cpp +++ b/services/telephony_interaction/src/call_status_callback_stub.cpp @@ -69,7 +69,7 @@ int32_t CallStatusCallbackStub::OnRemoteRequest( TELEPHONY_LOGE("descriptor checked failed"); return TELEPHONY_ERR_DESCRIPTOR_MISMATCH; } - TELEPHONY_LOGI("OnReceived, cmd = %{public}u", code); + TELEPHONY_LOGD("OnReceived, cmd = %{public}u", code); auto itFunc = memberFuncMap_.find(code); if (itFunc != memberFuncMap_.end()) { auto memberFunc = itFunc->second; -- Gitee From 5dd537c4fd41446828a340d51f7fb793380c1e94 Mon Sep 17 00:00:00 2001 From: luowz0409 Date: Mon, 24 Apr 2023 12:13:29 +0800 Subject: [PATCH 06/12] =?UTF-8?q?IssueNo:=E6=9C=AA=E6=8E=A5=E6=9D=A5?= =?UTF-8?q?=E7=94=B5=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Description:修复内部未接来电测试问题 Sig:SIG_Telephony Feature or Bugfix: Feature Binary Source: No --- .../js/napi/include/napi_call_manager.h | 2 + frameworks/js/napi/src/napi_call_manager.cpp | 42 ++++++++++ .../native/include/call_manager_proxy.h | 1 + .../include/call_manager_service_proxy.h | 7 ++ .../native/include/i_call_manager_service.h | 2 + frameworks/native/src/call_manager_client.cpp | 9 +++ frameworks/native/src/call_manager_proxy.cpp | 16 ++++ .../native/src/call_manager_service_proxy.cpp | 23 ++++++ interfaces/innerkits/call_manager_client.h | 1 + interfaces/kits/js/@ohos.telephony.call.d.ts | 39 +++++++++ .../include/call_data_base_helper.h | 13 ++- .../include/call_records_handler.h | 8 ++ .../include/call_records_manager.h | 2 + .../include/missed_call_notification.h | 1 + .../src/call_data_base_helper.cpp | 57 +++++++++++-- .../src/call_records_handler.cpp | 73 +++++++++++++++++ .../src/call_records_manager.cpp | 28 +++++++ .../src/missed_call_notification.cpp | 30 ++++++- services/call/include/call_control_manager.h | 2 + services/call/src/call_control_manager.cpp | 20 +++++ .../include/call_manager_service.h | 7 ++ .../include/call_manager_service_stub.h | 1 + .../src/call_manager_service.cpp | 21 +++++ .../src/call_manager_service_stub.cpp | 12 +++ .../common_fuzzer/addcalltoken_fuzzer.cpp | 4 +- .../rejectcall_fuzzer/rejectcall_fuzzer.cpp | 13 +++ .../include/call_manager_connect.h | 62 ++++++++++++++- .../src/call_manager_gtest.cpp | 31 ++++++++ .../src/zero_branch_test.cpp | 8 ++ test/unittest/ui_client/ui_client_test.cpp | 79 ++++++++++++++++++- 30 files changed, 601 insertions(+), 13 deletions(-) diff --git a/frameworks/js/napi/include/napi_call_manager.h b/frameworks/js/napi/include/napi_call_manager.h index 9e452154..aee6bcb1 100644 --- a/frameworks/js/napi/include/napi_call_manager.h +++ b/frameworks/js/napi/include/napi_call_manager.h @@ -130,6 +130,7 @@ public: static napi_value HasVoiceCapability(napi_env env, napi_callback_info info); static napi_value CloseUnFinishedUssd(napi_env env, napi_callback_info info); static napi_value InputDialerSpecialCode(napi_env env, napi_callback_info info); + static napi_value CancelMissedIncomingCallNotification(napi_env env, napi_callback_info info); private: static void RegisterCallBack(); @@ -200,6 +201,7 @@ private: static void NativeUpdateImsCallMode(napi_env env, void *data); static void NativeCloseUnFinishedUssd(napi_env env, void *data); static void NativeInputDialerSpecialCode(napi_env env, void *data); + static void NativeCancelMissedIncomingCallNotification(napi_env env, void *data); static bool MatchEmptyParameter(napi_env env, const napi_value parameters[], const size_t parameterCount); static bool MatchOneOptionalNumberParameter( napi_env env, const napi_value parameters[], const size_t parameterCount); diff --git a/frameworks/js/napi/src/napi_call_manager.cpp b/frameworks/js/napi/src/napi_call_manager.cpp index 7adfadaa..49cdd6cc 100644 --- a/frameworks/js/napi/src/napi_call_manager.cpp +++ b/frameworks/js/napi/src/napi_call_manager.cpp @@ -127,6 +127,7 @@ napi_value NapiCallManager::DeclareCallExtendInterface(napi_env env, napi_value DECLARE_NAPI_FUNCTION("off", ObserverOff), DECLARE_NAPI_FUNCTION("reportOttCallDetailsInfo", ReportOttCallDetailsInfo), DECLARE_NAPI_FUNCTION("reportOttCallEventInfo", ReportOttCallEventInfo), + DECLARE_NAPI_FUNCTION("cancelMissedIncomingCallNotification", CancelMissedIncomingCallNotification), }; NAPI_CALL(env, napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc)); return exports; @@ -2601,6 +2602,31 @@ napi_value NapiCallManager::InputDialerSpecialCode(napi_env env, napi_callback_i NativeVoidCallBackWithErrorCode); } +napi_value NapiCallManager::CancelMissedIncomingCallNotification(napi_env env, napi_callback_info info) +{ + GET_PARAMS(env, info, VALUE_MAXIMUM_LIMIT); + if (!MatchEmptyParameter(env, argv, argc)) { + TELEPHONY_LOGE("NapiCallManager::CancelMissedIncomingCallNotification " + "MatchEmptyParameter failed."); + NapiUtil::ThrowParameterError(env); + return nullptr; + } + + auto asyncContext = std::make_unique(); + if (asyncContext == nullptr) { + TELEPHONY_LOGE("NapiCallManager::CancelMissedIncomingCallNotification " + "asyncContext is nullptr."); + NapiUtil::ThrowParameterError(env); + return nullptr; + } + + if (argc == ONLY_ONE_VALUE) { + napi_create_reference(env, argv[ARRAY_INDEX_FIRST], DATA_LENGTH_ONE, &(asyncContext->callbackRef)); + } + return HandleAsyncWork(env, asyncContext.release(), "CancelMissedIncomingCallNotification", + NativeCancelMissedIncomingCallNotification, NativeVoidCallBackWithErrorCode); +} + napi_value NapiCallManager::HasVoiceCapability(napi_env env, napi_callback_info) { TELEPHONY_LOGD("napi_call HasVoiceCapability"); @@ -4253,6 +4279,22 @@ void NapiCallManager::NativeInputDialerSpecialCode(napi_env env, void *data) } } +void NapiCallManager::NativeCancelMissedIncomingCallNotification(napi_env env, void *data) +{ + if (data == nullptr) { + TELEPHONY_LOGE("NapiCallManager::NativeCancelMissedIncomingCallNotification data is " + "nullptr"); + NapiUtil::ThrowParameterError(env); + return; + } + AsyncContext *asyncContext = (AsyncContext *)data; + asyncContext->errorCode = + DelayedSingleton::GetInstance()->CancelMissedIncomingCallNotification(); + if (asyncContext->errorCode == TELEPHONY_SUCCESS) { + asyncContext->resolved = TELEPHONY_SUCCESS; + } +} + void NapiCallManager::RegisterCallBack() { if (registerStatus_ == TELEPHONY_SUCCESS) { diff --git a/frameworks/native/include/call_manager_proxy.h b/frameworks/native/include/call_manager_proxy.h index 4ff330c8..85c47bbc 100644 --- a/frameworks/native/include/call_manager_proxy.h +++ b/frameworks/native/include/call_manager_proxy.h @@ -100,6 +100,7 @@ public: int32_t ReportOttCallEventInfo(OttCallEventInfo &eventInfo); int32_t CloseUnFinishedUssd(int32_t slotId); int32_t InputDialerSpecialCode(const std::string &specialCode); + int32_t CancelMissedIncomingCallNotification(); sptr GetProxyObjectPtr(CallManagerProxyType proxyType); void OnRemoteDied(const wptr &remote); int32_t ReportAudioDeviceInfo(); diff --git a/frameworks/native/include/call_manager_service_proxy.h b/frameworks/native/include/call_manager_service_proxy.h index 0c26dcd1..6dcac66d 100644 --- a/frameworks/native/include/call_manager_service_proxy.h +++ b/frameworks/native/include/call_manager_service_proxy.h @@ -573,6 +573,13 @@ public: */ int32_t InputDialerSpecialCode(const std::string &specialCode) override; + /** + * Cancel missed incoming call notification. + * + * @return Returns 0 on success, others on failure. + */ + int32_t CancelMissedIncomingCallNotification() override; + /** * GetProxyObjectPtr * diff --git a/frameworks/native/include/i_call_manager_service.h b/frameworks/native/include/i_call_manager_service.h index bd4f8724..02d8b90f 100644 --- a/frameworks/native/include/i_call_manager_service.h +++ b/frameworks/native/include/i_call_manager_service.h @@ -88,6 +88,7 @@ enum CallManagerSurfaceCode { INTERFACE_CLOSE_UNFINISHED_USSD, INTERFACE_REPORT_AUDIO_DEVICE_INFO, INTERFACE_INPUT_DIALER_SPECIAL_CODE, + INTERFACE_CANCEL_MISSED_INCOMING_CALL_NOTIFICATION, }; enum CallManagerProxyType { @@ -156,6 +157,7 @@ public: virtual int32_t ReportOttCallEventInfo(OttCallEventInfo &eventInfo) = 0; virtual int32_t CloseUnFinishedUssd(int32_t slotId) = 0; virtual int32_t InputDialerSpecialCode(const std::string &specialCode) = 0; + virtual int32_t CancelMissedIncomingCallNotification() = 0; virtual sptr GetProxyObjectPtr(CallManagerProxyType proxyType) = 0; virtual int32_t ReportAudioDeviceInfo() = 0; diff --git a/frameworks/native/src/call_manager_client.cpp b/frameworks/native/src/call_manager_client.cpp index 8bf293a3..5f8ddc88 100644 --- a/frameworks/native/src/call_manager_client.cpp +++ b/frameworks/native/src/call_manager_client.cpp @@ -617,6 +617,15 @@ int32_t CallManagerClient::InputDialerSpecialCode(const std::string &specialCode return g_callManagerProxy->InputDialerSpecialCode(specialCode); } +int32_t CallManagerClient::CancelMissedIncomingCallNotification() +{ + if (g_callManagerProxy == nullptr) { + TELEPHONY_LOGE("init first please!"); + return TELEPHONY_ERR_UNINIT; + } + return g_callManagerProxy->CancelMissedIncomingCallNotification(); +} + bool CallManagerClient::HasVoiceCapability() { char retValue[VOICECALL_CAP_VAL_LEN + 1] = {"true"}; diff --git a/frameworks/native/src/call_manager_proxy.cpp b/frameworks/native/src/call_manager_proxy.cpp index 61dfa980..05dc5e0f 100644 --- a/frameworks/native/src/call_manager_proxy.cpp +++ b/frameworks/native/src/call_manager_proxy.cpp @@ -1072,6 +1072,22 @@ int32_t CallManagerProxy::InputDialerSpecialCode(const std::string &specialCode) return TELEPHONY_SUCCESS; } +int32_t CallManagerProxy::CancelMissedIncomingCallNotification() +{ + if (ReConnectService() != TELEPHONY_SUCCESS) { + TELEPHONY_LOGE("ipc reconnect failed!"); + return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL; + } + + std::lock_guard lock(mutex_); + int32_t errCode = callManagerServicePtr_->CancelMissedIncomingCallNotification(); + if (errCode != TELEPHONY_SUCCESS) { + TELEPHONY_LOGE("CancelMissedIncomingCallNotification failed, errcode:%{public}d", errCode); + return errCode; + } + return TELEPHONY_SUCCESS; +} + sptr CallManagerProxy::GetProxyObjectPtr(CallManagerProxyType proxyType) { if (ReConnectService() != TELEPHONY_SUCCESS) { diff --git a/frameworks/native/src/call_manager_service_proxy.cpp b/frameworks/native/src/call_manager_service_proxy.cpp index c51b3919..0590c144 100644 --- a/frameworks/native/src/call_manager_service_proxy.cpp +++ b/frameworks/native/src/call_manager_service_proxy.cpp @@ -1421,6 +1421,29 @@ int32_t CallManagerServiceProxy::InputDialerSpecialCode(const std::string &speci return replyParcel.ReadInt32(); } +int32_t CallManagerServiceProxy::CancelMissedIncomingCallNotification() +{ + MessageOption option; + MessageParcel dataParcel; + MessageParcel replyParcel; + if (!dataParcel.WriteInterfaceToken(CallManagerServiceProxy::GetDescriptor())) { + TELEPHONY_LOGE("write descriptor fail"); + return TELEPHONY_ERR_WRITE_DESCRIPTOR_TOKEN_FAIL; + } + auto remote = Remote(); + if (remote == nullptr) { + TELEPHONY_LOGE("function Remote() return nullptr!"); + return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL; + } + int32_t error = remote->SendRequest( + CallManagerSurfaceCode::INTERFACE_CANCEL_MISSED_INCOMING_CALL_NOTIFICATION, dataParcel, replyParcel, option); + if (error != TELEPHONY_SUCCESS) { + TELEPHONY_LOGE("Function CancelMissedIncomingCallNotification! errCode:%{public}d", error); + return error; + } + return replyParcel.ReadInt32(); +} + sptr CallManagerServiceProxy::GetProxyObjectPtr(CallManagerProxyType proxyType) { MessageOption option; diff --git a/interfaces/innerkits/call_manager_client.h b/interfaces/innerkits/call_manager_client.h index c84ac9fe..105342a2 100644 --- a/interfaces/innerkits/call_manager_client.h +++ b/interfaces/innerkits/call_manager_client.h @@ -85,6 +85,7 @@ public: int32_t ReportOttCallEventInfo(OttCallEventInfo &eventInfo); int32_t CloseUnFinishedUssd(int32_t slotId); int32_t InputDialerSpecialCode(const std::string &specialCode); + int32_t CancelMissedIncomingCallNotification(); bool HasVoiceCapability(); int32_t ReportAudioDeviceInfo(); }; diff --git a/interfaces/kits/js/@ohos.telephony.call.d.ts b/interfaces/kits/js/@ohos.telephony.call.d.ts index b922108c..576be16b 100644 --- a/interfaces/kits/js/@ohos.telephony.call.d.ts +++ b/interfaces/kits/js/@ohos.telephony.call.d.ts @@ -998,6 +998,45 @@ declare namespace call { function inputDialerSpecialCode(inputCode: string): Promise; /** + * Cancel missed incoming call notification. + * + * @permission ohos.permission.SET_TELEPHONY_STATE + * @param {AsyncCallback} callback - Returns option result. + * @throws {BusinessError} 201 - Permission denied. + * @throws {BusinessError} 202 - Applicable only to system applications. + * @throws {BusinessError} 401 - Parameter error. + * @throws {BusinessError} 8300001 - Invalid parameter value. + * @throws {BusinessError} 8300002 - Operation failed. Cannot connect to service. + * @throws {BusinessError} 8300003 - System internal error. + * @throws {BusinessError} 8300999 - Unknown error code. + * @syscap SystemCapability.Telephony.CallManager + * @systemapi Hide this for inner system use. + * @since 10 + */ + function cancelMissedIncomingCallNotification(callback: AsyncCallback): + void; + + /** + * Cancel missed incoming call notification. + * + * @permission ohos.permission.SET_TELEPHONY_STATE + * @returns {Promise} Returns option result. + * @throws {BusinessError} 201 - Permission denied. + * @throws {BusinessError} 202 - Applicable only to system applications. + * @throws {BusinessError} 8300002 - Operation failed. Cannot connect to service. + * @throws {BusinessError} 8300003 - System internal error. + * @throws {BusinessError} 8300999 - Unknown error code. + * @syscap SystemCapability.Telephony.CallManager + * @systemapi Hide this for inner system use. + * @since 10 + */ + function cancelMissedIncomingCallNotification(): Promise; + + /** + * Indicates the mode of the ims call. + * + * @enum { number } + * @syscap SystemCapability.Telephony.CallManager * @systemapi Hide this for inner system use. * @since 8 */ diff --git a/services/call/call_state_observer/include/call_data_base_helper.h b/services/call/call_state_observer/include/call_data_base_helper.h index 60715b35..a1fcecf5 100644 --- a/services/call/call_state_observer/include/call_data_base_helper.h +++ b/services/call/call_state_observer/include/call_data_base_helper.h @@ -53,6 +53,11 @@ constexpr const char *CALL_CONTENT_TYPE = "content_type"; constexpr const char *CALL_PHONE = "phone"; constexpr const char *CALL_SLOT_ID = "slot_id"; +enum class CallLogReadState { + CALL_IS_UNREAD, + CALL_IS_READ, +}; + class CallDataRdbObserver : public AAFwk::DataAbilityObserverStub { public: CallDataRdbObserver(std::vector *phones); @@ -71,7 +76,13 @@ public: bool Insert(DataShare::DataShareValuesBucket &values); bool Query(std::vector *phones, DataShare::DataSharePredicates &predicates); bool Query(ContactInfo &contactInfo, DataShare::DataSharePredicates &predicates); + bool Update(DataShare::DataSharePredicates &predicates, DataShare::DataShareValuesBucket &values); bool Delete(DataShare::DataSharePredicates &predicates); + bool QueryCallLog(std::map &phonesAndUnreadCountMap, + DataShare::DataSharePredicates &predicates); + +public: + const int16_t CALL_LOG_DEFAULT_COUNT = 1; private: sptr callDataRdbObserverPtr_; @@ -79,4 +90,4 @@ private: }; } // namespace Telephony } // namespace OHOS -#endif \ No newline at end of file +#endif diff --git a/services/call/call_state_observer/include/call_records_handler.h b/services/call/call_state_observer/include/call_records_handler.h index 10d95252..1a35bbe2 100644 --- a/services/call/call_state_observer/include/call_records_handler.h +++ b/services/call/call_state_observer/include/call_records_handler.h @@ -23,6 +23,7 @@ #include "call_status_manager.h" #include "event_handler.h" #include "event_runner.h" +#include "missed_call_notification.h" #include "singleton.h" namespace OHOS { @@ -32,12 +33,14 @@ public: CallRecordsHandler(const std::shared_ptr &runner); virtual ~CallRecordsHandler() = default; void ProcessEvent(const AppExecFwk::InnerEvent::Pointer &event); + int32_t QueryAndNotifyUnReadMissedCall(); private: void QueryCallerInfo(ContactInfo &contactInfo, std::string phoneNumber); private: std::shared_ptr callDataPtr_; + std::shared_ptr missedCallNotification_; }; class CallRecordsHandlerService : public std::enable_shared_from_this { @@ -45,8 +48,13 @@ class CallRecordsHandlerService : public std::enable_shared_from_this &callObjectPtr, TelCallState priorState, TelCallState nextState) override; void AddOneCallRecord(CallAttributeInfo &info); void AddOneCallRecord(sptr call, CallAnswerType answerType); + int32_t CancelMissedIncomingCallNotification(); + int32_t QueryUnReadMissedCallLog(); private: std::shared_ptr callRecordsHandlerServerPtr_; diff --git a/services/call/call_state_observer/include/missed_call_notification.h b/services/call/call_state_observer/include/missed_call_notification.h index a19a5792..eb73d641 100644 --- a/services/call/call_state_observer/include/missed_call_notification.h +++ b/services/call/call_state_observer/include/missed_call_notification.h @@ -32,6 +32,7 @@ public: void IncomingCallHungUp(sptr &callObjectPtr, bool isSendSms, std::string content) override; void CallStateUpdated(sptr &callObjectPtr, TelCallState priorState, TelCallState nextState) override; int32_t CancelMissedCallsNotification(int32_t id); + int32_t NotifyUnReadMissedCall(std::map &phoneNumAndUnreadCountMap); private: bool isIncomingCallMissed_; diff --git a/services/call/call_state_observer/src/call_data_base_helper.cpp b/services/call/call_state_observer/src/call_data_base_helper.cpp index 2d193876..b15e41b9 100644 --- a/services/call/call_state_observer/src/call_data_base_helper.cpp +++ b/services/call/call_state_observer/src/call_data_base_helper.cpp @@ -13,12 +13,10 @@ * limitations under the License. */ +#include "ability_context.h" #include "call_data_base_helper.h" - +#include "call_manager_errors.h" #include "iservice_registry.h" - -#include "ability_context.h" - #include "telephony_log_wrapper.h" namespace OHOS { @@ -181,6 +179,55 @@ bool CallDataBaseHelper::Query(ContactInfo &contactInfo, DataShare::DataSharePre return true; } +bool CallDataBaseHelper::QueryCallLog( + std::map &phoneNumAndUnreadCountMap, DataShare::DataSharePredicates &predicates) +{ + std::shared_ptr helper = CreateDataShareHelper(CALLLOG_URI); + if (helper == nullptr) { + TELEPHONY_LOGE("helper is nullptr!"); + return false; + } + Uri uri(CALL_SUBSECTION); + std::vector columns; + columns.push_back(CALL_PHONE_NUMBER); + auto resultSet = helper->Query(uri, predicates, columns); + helper->Release(); + if (resultSet == nullptr) { + return false; + } + int32_t operationResult = resultSet->GoToFirstRow(); + while (operationResult == TELEPHONY_SUCCESS) { + std::string phoneNumber = ""; + int32_t columnIndex = 0; + resultSet->GetColumnIndex(CALL_PHONE_NUMBER, columnIndex); + operationResult = resultSet->GetString(columnIndex, phoneNumber); + if (operationResult == TELEPHONY_SUCCESS && (!phoneNumber.empty())) { + auto iter = phoneNumAndUnreadCountMap.find(phoneNumber); + if (iter != phoneNumAndUnreadCountMap.end()) { + iter->second++; + } else { + phoneNumAndUnreadCountMap.insert( + std::map::value_type(phoneNumber, CALL_LOG_DEFAULT_COUNT)); + } + } + operationResult = resultSet->GoToNextRow(); + } + resultSet->Close(); + TELEPHONY_LOGD("QueryCallLog end"); + return true; +} + +bool CallDataBaseHelper::Update(DataShare::DataSharePredicates &predicates, DataShare::DataShareValuesBucket &values) +{ + std::shared_ptr helper = CreateDataShareHelper(CALLLOG_URI); + if (helper == nullptr) { + TELEPHONY_LOGE("helper is nullptr"); + return true; + } + Uri uri(CALL_SUBSECTION); + return helper->Update(uri, predicates, values); +} + bool CallDataBaseHelper::Delete(DataShare::DataSharePredicates &predicates) { std::shared_ptr helper = CreateDataShareHelper(CALLLOG_URI); @@ -192,4 +239,4 @@ bool CallDataBaseHelper::Delete(DataShare::DataSharePredicates &predicates) return helper->Delete(uri, predicates); } } // namespace Telephony -} // namespace OHOS \ No newline at end of file +} // namespace OHOS diff --git a/services/call/call_state_observer/src/call_records_handler.cpp b/services/call/call_state_observer/src/call_records_handler.cpp index 2fa793b3..acb11a71 100644 --- a/services/call/call_state_observer/src/call_records_handler.cpp +++ b/services/call/call_state_observer/src/call_records_handler.cpp @@ -16,6 +16,7 @@ #include "call_records_handler.h" #include "call_manager_errors.h" +#include "call_manager_inner_type.h" namespace OHOS { namespace Telephony { @@ -81,6 +82,12 @@ void CallRecordsHandler::ProcessEvent(const AppExecFwk::InnerEvent::Pointer &eve bucket.Put(CALL_SLOT_ID, info.slotId); callDataPtr_->Insert(bucket); return; + } else if (event->GetInnerEventId() == CallRecordsHandlerService::HANDLER_QUERY_UNREAD_MISSED_CALL_LOG) { + int32_t ret = QueryAndNotifyUnReadMissedCall(); + if (ret != TELEPHONY_SUCCESS) { + TELEPHONY_LOGE("Query or notify unread missed call fail!"); + } + return; } } @@ -101,6 +108,37 @@ void CallRecordsHandler::QueryCallerInfo(ContactInfo &contactInfo, std::string p } } +int32_t CallRecordsHandler::QueryAndNotifyUnReadMissedCall() +{ + if (callDataPtr_ == nullptr) { + TELEPHONY_LOGE("callDataPtr is nullptr!"); + return TELEPHONY_ERR_LOCAL_PTR_NULL; + } + missedCallNotification_ = std::make_shared(); + if (missedCallNotification_ == nullptr) { + TELEPHONY_LOGE("missedCallNotification_ is null!"); + return TELEPHONY_ERR_LOCAL_PTR_NULL; + } + DataShare::DataSharePredicates predicates; + std::map phoneNumAndUnreadCountMap; + predicates.EqualTo(CALL_IS_READ, static_cast(CallLogReadState::CALL_IS_UNREAD)); + predicates.And(); + predicates.EqualTo(CALL_DIRECTION, static_cast(CallDirection::CALL_DIRECTION_IN)); + predicates.And(); + predicates.EqualTo(CALL_ANSWER_STATE, static_cast(CallAnswerType::CALL_ANSWER_MISSED)); + bool ret = callDataPtr_->QueryCallLog(phoneNumAndUnreadCountMap, predicates); + if (phoneNumAndUnreadCountMap.empty() || !ret) { + TELEPHONY_LOGE("Don't have unread missed call in call log!"); + return TELEPHONY_ERR_DATABASE_READ_FAIL; + } + int32_t result = missedCallNotification_->NotifyUnReadMissedCall(phoneNumAndUnreadCountMap); + if (result != TELEPHONY_SUCCESS) { + TELEPHONY_LOGE("Notify unread missed call error!"); + return TELEPHONY_ERR_PUBLISH_BROADCAST_FAIL; + } + return TELEPHONY_SUCCESS; +} + CallRecordsHandlerService::CallRecordsHandlerService() : eventLoop_(nullptr), handler_(nullptr) {} CallRecordsHandlerService::~CallRecordsHandlerService() {} @@ -136,5 +174,40 @@ int32_t CallRecordsHandlerService::StoreCallRecord(const CallRecordInfo &info) handler_->SendEvent(HANDLER_ADD_CALL_RECORD_INFO, std::move(para)); return TELEPHONY_SUCCESS; } + +int32_t CallRecordsHandlerService::CancelMissedIncomingCallNotification() +{ + std::shared_ptr callDataPtr = DelayedSingleton::GetInstance(); + if (callDataPtr == nullptr) { + TELEPHONY_LOGE("callDataPtr is nullptr!"); + return TELEPHONY_ERR_LOCAL_PTR_NULL; + } + DataShare::DataSharePredicates predicates; + DataShare::DataShareValuesBucket bucket; + bucket.Put(CALL_IS_READ, static_cast(CallLogReadState::CALL_IS_READ)); + predicates.EqualTo(CALL_IS_READ, static_cast(CallLogReadState::CALL_IS_UNREAD)); + predicates.And(); + predicates.EqualTo(CALL_DIRECTION, static_cast(CallDirection::CALL_DIRECTION_IN)); + predicates.And(); + predicates.EqualTo(CALL_ANSWER_STATE, static_cast(CallAnswerType::CALL_ANSWER_MISSED)); + bool ret = callDataPtr->Update(predicates, bucket); + if (ret) { + TELEPHONY_LOGE("Update call log database fail!"); + return TELEPHONY_ERR_DATABASE_WRITE_FAIL; + } + TELEPHONY_LOGI("Update call log database success!"); + return TELEPHONY_SUCCESS; +} + +int32_t CallRecordsHandlerService::QueryUnReadMissedCallLog() +{ + if (handler_.get() == nullptr) { + TELEPHONY_LOGE("handler_ is nullptr"); + return TELEPHONY_ERR_LOCAL_PTR_NULL; + } + handler_->SendEvent(HANDLER_QUERY_UNREAD_MISSED_CALL_LOG, 0); + return TELEPHONY_SUCCESS; +} + } // namespace Telephony } // namespace OHOS diff --git a/services/call/call_state_observer/src/call_records_manager.cpp b/services/call/call_state_observer/src/call_records_manager.cpp index d901b437..3af6e1cc 100644 --- a/services/call/call_state_observer/src/call_records_manager.cpp +++ b/services/call/call_state_observer/src/call_records_manager.cpp @@ -110,5 +110,33 @@ void CallRecordsManager::AddOneCallRecord(CallAttributeInfo &info) } callRecordsHandlerServerPtr_->StoreCallRecord(data); } + +int32_t CallRecordsManager::CancelMissedIncomingCallNotification() +{ + if (callRecordsHandlerServerPtr_ == nullptr) { + TELEPHONY_LOGE("callRecordsHandlerServerPtr_ is nullptr"); + return TELEPHONY_ERR_LOCAL_PTR_NULL; + } + int32_t ret = callRecordsHandlerServerPtr_->CancelMissedIncomingCallNotification(); + if (ret != TELEPHONY_SUCCESS) { + TELEPHONY_LOGE("CancelMissedIncomingCallNotification failed!"); + return ret; + } + return TELEPHONY_SUCCESS; +} + +int32_t CallRecordsManager::QueryUnReadMissedCallLog() +{ + if (callRecordsHandlerServerPtr_ == nullptr) { + TELEPHONY_LOGE("callRecordsHandlerServerPtr_ is nullptr"); + return TELEPHONY_ERR_LOCAL_PTR_NULL; + } + int32_t ret = callRecordsHandlerServerPtr_->QueryUnReadMissedCallLog(); + if (ret != TELEPHONY_SUCCESS) { + TELEPHONY_LOGE("QueryUnReadMissedCallLog failed!"); + return ret; + } + return TELEPHONY_SUCCESS; +} } // namespace Telephony } // namespace OHOS \ No newline at end of file diff --git a/services/call/call_state_observer/src/missed_call_notification.cpp b/services/call/call_state_observer/src/missed_call_notification.cpp index be234f0b..e73f5bc9 100644 --- a/services/call/call_state_observer/src/missed_call_notification.cpp +++ b/services/call/call_state_observer/src/missed_call_notification.cpp @@ -111,6 +111,34 @@ int32_t MissedCallNotification::CancelMissedCallsNotification(int32_t id) return TELEPHONY_SUCCESS; } +int32_t MissedCallNotification::NotifyUnReadMissedCall(std::map &phoneNumAndUnreadCountMap) +{ + AAFwk::Want want; + want.SetParam("notificationId", INCOMING_CALL_MISSED_ID); + std::vector phoneNumberList; + std::vector countList; + for (auto it = phoneNumAndUnreadCountMap.begin(); it != phoneNumAndUnreadCountMap.end(); it++) { + phoneNumberList.push_back(it->first); + countList.push_back(it->second); + } + want.SetParam("phoneNumberList", phoneNumberList); + want.SetParam("countList", countList); + want.SetAction(EventFwk::CommonEventSupport::COMMON_EVENT_INCOMING_CALL_MISSED); + EventFwk::CommonEventData data; + data.SetWant(want); + EventFwk::CommonEventPublishInfo publishInfo; + std::vector callPermissions; + callPermissions.emplace_back(Permission::GET_TELEPHONY_STATE); + publishInfo.SetSubscriberPermissions(callPermissions); + bool resultWithNumber = EventFwk::CommonEventManager::PublishCommonEvent(data, publishInfo, nullptr); + TELEPHONY_LOGI("publish unread missed call event with number result : %{public}d", resultWithNumber); + if (!resultWithNumber) { + TELEPHONY_LOGE("publish unread missed call event with number error"); + return TELEPHONY_ERR_PUBLISH_BROADCAST_FAIL; + } + return TELEPHONY_ERR_SUCCESS; +} + void MissedCallNotification::IncomingCallActivated(sptr &callObjectPtr) { if (callObjectPtr != nullptr && callObjectPtr->GetAccountNumber() == incomingCallNumber_) { @@ -127,4 +155,4 @@ void MissedCallNotification::IncomingCallHungUp(sptr &callObjectPtr, b void MissedCallNotification::CallDestroyed(const DisconnectedDetails &details) {} } // namespace Telephony -} // namespace OHOS \ No newline at end of file +} // namespace OHOS diff --git a/services/call/include/call_control_manager.h b/services/call/include/call_control_manager.h index 7258dfd8..ea1c62d6 100644 --- a/services/call/include/call_control_manager.h +++ b/services/call/include/call_control_manager.h @@ -106,6 +106,8 @@ public: int32_t CloseUnFinishedUssd(int32_t slotId); void GetDialParaInfo(DialParaInfo &info); void GetDialParaInfo(DialParaInfo &info, AppExecFwk::PacMap &extras); + int32_t CancelMissedIncomingCallNotification(); + int32_t QueryUnReadMissedCallLog(); private: void CallStateObserve(); diff --git a/services/call/src/call_control_manager.cpp b/services/call/src/call_control_manager.cpp index ee30d524..7d80f4c8 100644 --- a/services/call/src/call_control_manager.cpp +++ b/services/call/src/call_control_manager.cpp @@ -965,6 +965,26 @@ void CallControlManager::GetDialParaInfo(DialParaInfo &info, AppExecFwk::PacMap extras = extras_; } +int32_t CallControlManager::CancelMissedIncomingCallNotification() +{ + int32_t ret = DelayedSingleton::GetInstance()->CancelMissedIncomingCallNotification(); + if (ret != TELEPHONY_SUCCESS) { + TELEPHONY_LOGE("CancelMissedIncomingCallNotification failed!"); + return ret; + } + return TELEPHONY_SUCCESS; +} + +int32_t CallControlManager::QueryUnReadMissedCallLog() +{ + int32_t ret = DelayedSingleton::GetInstance()->QueryUnReadMissedCallLog(); + if (ret != TELEPHONY_SUCCESS) { + TELEPHONY_LOGE("QueryUnReadMissedCallLog failed!"); + return ret; + } + return TELEPHONY_SUCCESS; +} + void CallControlManager::CallStateObserve() { if (callStateListenerPtr_ == nullptr) { diff --git a/services/call_manager_service/include/call_manager_service.h b/services/call_manager_service/include/call_manager_service.h index fbd8db0a..df2e885c 100644 --- a/services/call_manager_service/include/call_manager_service.h +++ b/services/call_manager_service/include/call_manager_service.h @@ -602,6 +602,13 @@ public: */ int32_t CloseUnFinishedUssd(int32_t slotId) override; + /** + * Cancel missed incoming call notification. + * + * @return Returns 0 on success, others on failure. + */ + int32_t CancelMissedIncomingCallNotification() override; + /** * Handle special code from dialer. * diff --git a/services/call_manager_service/include/call_manager_service_stub.h b/services/call_manager_service/include/call_manager_service_stub.h index 67d496f1..9d762bbb 100644 --- a/services/call_manager_service/include/call_manager_service_stub.h +++ b/services/call_manager_service/include/call_manager_service_stub.h @@ -101,6 +101,7 @@ private: int32_t OnReportOttCallEventInfo(MessageParcel &data, MessageParcel &reply); int32_t OnCloseUnFinishedUssd(MessageParcel &data, MessageParcel &reply); int32_t OnInputDialerSpecialCode(MessageParcel &data, MessageParcel &reply); + int32_t OnCancelMissedIncomingCallNotification(MessageParcel &data, MessageParcel &reply); int32_t OnGetProxyObjectPtr(MessageParcel &data, MessageParcel &reply); int32_t OnReportAudioDeviceInfo(MessageParcel &data, MessageParcel &reply); std::map memberFuncMap_; diff --git a/services/call_manager_service/src/call_manager_service.cpp b/services/call_manager_service/src/call_manager_service.cpp index 4b39a81a..96c3e3e9 100644 --- a/services/call_manager_service/src/call_manager_service.cpp +++ b/services/call_manager_service/src/call_manager_service.cpp @@ -69,6 +69,10 @@ bool CallManagerService::Init() DelayedSingleton::GetInstance()->Init(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID); DelayedSingleton::GetInstance()->Init(); DelayedSingleton::GetInstance()->Init(); + int ret = callControlManagerPtr_->QueryUnReadMissedCallLog(); + if (ret == TELEPHONY_SUCCESS) { + TELEPHONY_LOGD("Query unread missed call log success"); + } return true; } @@ -896,6 +900,23 @@ int32_t CallManagerService::InputDialerSpecialCode(const std::string &specialCod return TELEPHONY_SUCCESS; } +int32_t CallManagerService::CancelMissedIncomingCallNotification() +{ + if (!TelephonyPermission::CheckCallerIsSystemApp()) { + TELEPHONY_LOGE("Non-system applications use system APIs!"); + return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API; + } + if (!TelephonyPermission::CheckPermission(OHOS_PERMISSION_SET_TELEPHONY_STATE)) { + TELEPHONY_LOGE("Permission denied!"); + return TELEPHONY_ERR_PERMISSION_ERR; + } + if (callControlManagerPtr_ == nullptr) { + TELEPHONY_LOGE("callControlManagerPtr_ is nullptr!"); + return TELEPHONY_ERR_LOCAL_PTR_NULL; + } + return callControlManagerPtr_->CancelMissedIncomingCallNotification(); +} + sptr CallManagerService::GetProxyObjectPtr(CallManagerProxyType proxyType) { auto it = proxyObjectPtrMap_.find(static_cast(proxyType)); diff --git a/services/call_manager_service/src/call_manager_service_stub.cpp b/services/call_manager_service/src/call_manager_service_stub.cpp index 7fb05cf2..18a0c77e 100644 --- a/services/call_manager_service/src/call_manager_service_stub.cpp +++ b/services/call_manager_service/src/call_manager_service_stub.cpp @@ -70,6 +70,8 @@ void CallManagerServiceStub::InitCallUtilsRequest() memberFuncMap_[INTERFACE_IS_EMERGENCY_NUMBER] = &CallManagerServiceStub::OnIsEmergencyPhoneNumber; memberFuncMap_[INTERFACE_IS_FORMAT_NUMBER] = &CallManagerServiceStub::OnFormatPhoneNumber; memberFuncMap_[INTERFACE_IS_FORMAT_NUMBER_E164] = &CallManagerServiceStub::OnFormatPhoneNumberToE164; + memberFuncMap_[INTERFACE_CANCEL_MISSED_INCOMING_CALL_NOTIFICATION] = + &CallManagerServiceStub::OnCancelMissedIncomingCallNotification; } void CallManagerServiceStub::InitCallConferenceRequest() @@ -1021,6 +1023,16 @@ int32_t CallManagerServiceStub::OnInputDialerSpecialCode(MessageParcel &data, Me return TELEPHONY_SUCCESS; } +int32_t CallManagerServiceStub::OnCancelMissedIncomingCallNotification(MessageParcel &data, MessageParcel &reply) +{ + int32_t result = CancelMissedIncomingCallNotification(); + if (!reply.WriteInt32(result)) { + TELEPHONY_LOGE("OnCancelMissedIncomingCallNotification fail to write parcel"); + return TELEPHONY_ERR_WRITE_REPLY_FAIL; + } + return TELEPHONY_SUCCESS; +} + int32_t CallManagerServiceStub::OnGetProxyObjectPtr(MessageParcel &data, MessageParcel &reply) { CallManagerProxyType proxyType = static_cast(data.ReadInt32()); diff --git a/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp b/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp index 12577107..b4d34bf8 100644 --- a/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp +++ b/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp @@ -21,7 +21,7 @@ #include "token_setproc.h" namespace OHOS { -const int PERMS_NUM = 4; +const int PERMS_NUM = 6; AddCallTokenFuzzer::AddCallTokenFuzzer() { @@ -30,6 +30,8 @@ AddCallTokenFuzzer::AddCallTokenFuzzer() "ohos.permission.ANSWER_CALL", "ohos.permission.SET_TELEPHONY_STATE", "ohos.permission.GET_TELEPHONY_STATE", + "ohos.permission.READ_CALL_LOG", + "ohos.permission.WRITE_CALL_LOG", }; NativeTokenInfoParams testCallInfoParams = { diff --git a/test/fuzztest/rejectcall_fuzzer/rejectcall_fuzzer.cpp b/test/fuzztest/rejectcall_fuzzer/rejectcall_fuzzer.cpp index 5874b8ca..bd18cb49 100644 --- a/test/fuzztest/rejectcall_fuzzer/rejectcall_fuzzer.cpp +++ b/test/fuzztest/rejectcall_fuzzer/rejectcall_fuzzer.cpp @@ -59,6 +59,18 @@ void RejectCall(const uint8_t *data, size_t size) DelayedSingleton::GetInstance()->OnRejectCall(dataMessageParcel, reply); } +void CancelMissedIncomingCallNotification(const uint8_t *data, size_t size) +{ + if (!IsServiceInited()) { + return; + } + MessageParcel dataMessageParcel; + dataMessageParcel.RewindRead(0); + MessageParcel reply; + DelayedSingleton::GetInstance()->OnCancelMissedIncomingCallNotification( + dataMessageParcel, reply); +} + void DoSomethingInterestingWithMyAPI(const uint8_t *data, size_t size) { if (data == nullptr || size == 0) { @@ -66,6 +78,7 @@ void DoSomethingInterestingWithMyAPI(const uint8_t *data, size_t size) } RejectCall(data, size); + CancelMissedIncomingCallNotification(data, size); } } // namespace OHOS diff --git a/test/unittest/call_manager_gtest/include/call_manager_connect.h b/test/unittest/call_manager_gtest/include/call_manager_connect.h index 4da88d1f..337d4ba3 100644 --- a/test/unittest/call_manager_gtest/include/call_manager_connect.h +++ b/test/unittest/call_manager_gtest/include/call_manager_connect.h @@ -129,12 +129,70 @@ PermissionStateFull testAnswerCallState = { .resDeviceID = { "local" }, }; +PermissionDef testReadCallLogDef = { + .permissionName = "ohos.permission.READ_CALL_LOG", + .bundleName = "tel_call_manager_gtest", + .grantMode = 1, // SYSTEM_GRANT + .label = "label", + .labelId = 1, + .description = "Test call manager", + .descriptionId = 1, + .availableLevel = APL_SYSTEM_BASIC, +}; + +PermissionStateFull testPermReadCallLog = { + .grantFlags = { 2 }, // PERMISSION_USER_SET + .grantStatus = { PermissionState::PERMISSION_GRANTED }, + .isGeneral = true, + .permissionName = "ohos.permission.READ_CALL_LOG", + .resDeviceID = { "local" }, +}; + +PermissionDef testWriteCallLogDef = { + .permissionName = "ohos.permission.WRITE_CALL_LOG", + .bundleName = "tel_call_manager_gtest", + .grantMode = 1, // SYSTEM_GRANT + .label = "label", + .labelId = 1, + .description = "Test call manager", + .descriptionId = 1, + .availableLevel = APL_SYSTEM_BASIC, +}; + +PermissionStateFull testPermWriteCallLog = { + .grantFlags = { 2 }, // PERMISSION_USER_SET + .grantStatus = { PermissionState::PERMISSION_GRANTED }, + .isGeneral = true, + .permissionName = "ohos.permission.WRITE_CALL_LOG", + .resDeviceID = { "local" }, +}; + +PermissionDef testStartAbilityFromBGDef = { + .permissionName = "ohos.permission.START_ABILITIES_FROM_BACKGROUND", + .bundleName = "tel_call_manager_gtest", + .grantMode = 1, // SYSTEM_GRANT + .label = "label", + .labelId = 1, + .description = "Test call manager", + .descriptionId = 1, + .availableLevel = APL_SYSTEM_BASIC, +}; + +PermissionStateFull testPermStartAbilityFromBG = { + .grantFlags = { 2 }, // PERMISSION_USER_SET + .grantStatus = { PermissionState::PERMISSION_GRANTED }, + .isGeneral = true, + .permissionName = "ohos.permission.START_ABILITIES_FROM_BACKGROUND", + .resDeviceID = { "local" }, +}; + HapPolicyParams testPolicyParams = { .apl = APL_SYSTEM_BASIC, .domain = "test.domain", .permList = { testPermPlaceCallDef, testPermSetTelephonyStateDef, testPermGetTelephonyStateDef, - testPermAnswerCallDef }, - .permStateList = { testPlaceCallState, testSetTelephonyState, testGetTelephonyState, testAnswerCallState }, + testPermAnswerCallDef, testReadCallLogDef, testWriteCallLogDef, testStartAbilityFromBGDef }, + .permStateList = { testPlaceCallState, testSetTelephonyState, testGetTelephonyState, testAnswerCallState, + testPermReadCallLog, testPermWriteCallLog, testPermStartAbilityFromBG }, }; class AccessToken { diff --git a/test/unittest/call_manager_gtest/src/call_manager_gtest.cpp b/test/unittest/call_manager_gtest/src/call_manager_gtest.cpp index 3a1bad47..68a013aa 100644 --- a/test/unittest/call_manager_gtest/src/call_manager_gtest.cpp +++ b/test/unittest/call_manager_gtest/src/call_manager_gtest.cpp @@ -22,6 +22,7 @@ #include #include "bluetooth_hfp_ag.h" +#include "call_manager_connect.h" #include "call_manager_service.h" #include "telephony_types.h" @@ -4823,6 +4824,36 @@ HWTEST_F(CallManagerGtest, Telephony_CallManager_InputDialerSpecialCode_0300, Fu EXPECT_NE(CallManagerGtest::clientPtr_->InputDialerSpecialCode(specialCode), RETURN_VALUE_IS_ZERO); } +/**************************** Test CancelMissedIncomingCallNotification() ****************************/ +/** + * @tc.number Telephony_CallManager_CancelMissedIncomingCallNotification_0100 + * @tc.name test cancel missed incoming call and mark as read + * @tc.desc Function test + */ +HWTEST_F( + CallManagerGtest, Telephony_CallManager_CancelMissedIncomingCallNotification_0100, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + EXPECT_EQ(CallManagerGtest::clientPtr_->CancelMissedIncomingCallNotification(), RETURN_VALUE_IS_ZERO); +} + +/** + * @tc.number Telephony_CallManager_CancelMissedIncomingCallNotification_0200 + * @tc.name test cancel missed incoming call and mark as read without permission + * @tc.desc Function test + */ +HWTEST_F( + CallManagerGtest, Telephony_CallManager_CancelMissedIncomingCallNotification_0200, Function | MediumTest | Level3) +{ + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + EXPECT_NE(CallManagerGtest::clientPtr_->CancelMissedIncomingCallNotification(), RETURN_VALUE_IS_ZERO); +} + /*********************************** Test Dump() ***************************************/ /** * @tc.number Telephony_CallManager_TestDump_0100 diff --git a/test/unittest/call_manager_gtest/src/zero_branch_test.cpp b/test/unittest/call_manager_gtest/src/zero_branch_test.cpp index b6f8329b..ffe61b92 100644 --- a/test/unittest/call_manager_gtest/src/zero_branch_test.cpp +++ b/test/unittest/call_manager_gtest/src/zero_branch_test.cpp @@ -831,6 +831,9 @@ HWTEST_F(BranchTest, Telephony_MissedCallNotification_001, Function | MediumTest missedCallNotification->PublishMissedCallNotification(callObjectPtr); int32_t id = 1; ASSERT_EQ(missedCallNotification->CancelMissedCallsNotification(id), TELEPHONY_SUCCESS); + std::map phoneNumAndUnReadCountMap; + phoneNumAndUnReadCountMap.insert(pair("000", 1)); + ASSERT_EQ(missedCallNotification->NotifyUnReadMissedCall(phoneNumAndUnReadCountMap), TELEPHONY_SUCCESS); } /** @@ -991,6 +994,7 @@ HWTEST_F(BranchTest, Telephony_CallManagerClient_001, Function | MediumTest | Le ASSERT_NE(callManagerClient->RejectCall(0, false, value), TELEPHONY_SUCCESS); ASSERT_NE(callManagerClient->HangUpCall(0), TELEPHONY_SUCCESS); ASSERT_GE(callManagerClient->GetCallState(), TELEPHONY_SUCCESS); + ASSERT_EQ(callManagerClient->CancelMissedIncomingCallNotification(), TELEPHONY_SUCCESS); } /** @@ -1691,6 +1695,8 @@ HWTEST_F(BranchTest, Telephony_CallRecordsManager_001, Function | MediumTest | L info.ringBeginTime = ONE_TIME; info.ringEndTime = ONE_TIME; callRecordsManager.AddOneCallRecord(info); + ASSERT_EQ(callRecordsManager.CancelMissedIncomingCallNotification(), TELEPHONY_SUCCESS); + ASSERT_EQ(callRecordsManager.QueryUnReadMissedCallLog(), TELEPHONY_SUCCESS); } /** @@ -1739,6 +1745,8 @@ HWTEST_F(BranchTest, Telephony_CallControlManager_001, Function | MediumTest | L ASSERT_TRUE(callControlManager->NotifyCallStateUpdated(callObjectPtr, priorState, nextState)); ASSERT_TRUE(callControlManager->NotifyIncomingCallAnswered(callObjectPtr)); ASSERT_TRUE(callControlManager->NotifyIncomingCallRejected(callObjectPtr, false, "")); + ASSERT_NE(callControlManager->CancelMissedIncomingCallNotification(), TELEPHONY_SUCCESS); + ASSERT_NE(callControlManager->QueryUnReadMissedCallLog(), TELEPHONY_SUCCESS); } /** diff --git a/test/unittest/ui_client/ui_client_test.cpp b/test/unittest/ui_client/ui_client_test.cpp index e8eba70e..1acad4d1 100644 --- a/test/unittest/ui_client/ui_client_test.cpp +++ b/test/unittest/ui_client/ui_client_test.cpp @@ -128,12 +128,70 @@ PermissionStateFull testAnswerCallState = { .grantFlags = { 2 }, // PERMISSION_USER_SET }; +PermissionDef testReadCallLogDef = { + .permissionName = "ohos.permission.READ_CALL_LOG", + .bundleName = "tel_call_manager_gtest", + .grantMode = 1, // SYSTEM_GRANT + .availableLevel = APL_SYSTEM_BASIC, + .label = "label", + .labelId = 1, + .description = "Test call manager", + .descriptionId = 1, +}; + +PermissionStateFull testPermReadCallLog = { + .permissionName = "ohos.permission.READ_CALL_LOG", + .isGeneral = true, + .resDeviceID = { "local" }, + .grantStatus = { PermissionState::PERMISSION_GRANTED }, + .grantFlags = { 2 }, // PERMISSION_USER_SET +}; + +PermissionDef testWriteCallLogDef = { + .permissionName = "ohos.permission.WRITE_CALL_LOG", + .bundleName = "tel_call_manager_gtest", + .grantMode = 1, // SYSTEM_GRANT + .availableLevel = APL_SYSTEM_BASIC, + .label = "label", + .labelId = 1, + .description = "Test call manager", + .descriptionId = 1, +}; + +PermissionStateFull testPermWriteCallLog = { + .permissionName = "ohos.permission.WRITE_CALL_LOG", + .isGeneral = true, + .resDeviceID = { "local" }, + .grantStatus = { PermissionState::PERMISSION_GRANTED }, + .grantFlags = { 2 }, // PERMISSION_USER_SET +}; + +PermissionDef testStartAbilityFromBGDef = { + .permissionName = "ohos.permission.START_ABILITIES_FROM_BACKGROUND", + .bundleName = "tel_call_manager_gtest", + .grantMode = 1, // SYSTEM_GRANT + .availableLevel = APL_SYSTEM_BASIC, + .label = "label", + .labelId = 1, + .description = "Test call manager", + .descriptionId = 1, +}; + +PermissionStateFull testPermStartAbilityFromBG = { + .permissionName = "ohos.permission.START_ABILITIES_FROM_BACKGROUND", + .isGeneral = true, + .resDeviceID = { "local" }, + .grantStatus = { PermissionState::PERMISSION_GRANTED }, + .grantFlags = { 2 }, // PERMISSION_USER_SET +}; + HapPolicyParams testPolicyParams = { .apl = APL_SYSTEM_BASIC, .domain = "test.domain", .permList = { testPermPlaceCallDef, testPermSetTelephonyStateDef, testPermGetTelephonyStateDef, - testPermAnswerCallDef }, - .permStateList = { testPlaceCallState, testSetTelephonyState, testGetTelephonyState, testAnswerCallState }, + testPermAnswerCallDef, testReadCallLogDef, testWriteCallLogDef, testStartAbilityFromBGDef }, + .permStateList = { testPlaceCallState, testSetTelephonyState, testGetTelephonyState, testAnswerCallState, + testPermReadCallLog, testPermWriteCallLog, testPermStartAbilityFromBG }, }; class AccessToken { @@ -1237,6 +1295,18 @@ void InputDialerSpecialCode() std::cout << "return value:" << ret << std::endl; } +void CancelMissedIncomingCallNotification() +{ + AccessToken token; + std::cout << "------CancelMissedIncomingCallNotification------" << std::endl; + if (g_clientPtr == nullptr) { + std::cout << "g_clientPtr is nullptr" << std::endl; + return; + } + int32_t ret = g_clientPtr->CancelMissedIncomingCallNotification(); + std::cout << "return value:" << ret << std::endl; +} + void AddPermission() { return; @@ -1276,6 +1346,8 @@ void InitCallUtils() g_memberFuncMap[OHOS::Telephony::INTERFACE_IS_EMERGENCY_NUMBER] = &OHOS::Telephony::IsEmergencyPhoneNumber; g_memberFuncMap[OHOS::Telephony::INTERFACE_IS_FORMAT_NUMBER] = &OHOS::Telephony::FormatPhoneNumber; g_memberFuncMap[OHOS::Telephony::INTERFACE_IS_FORMAT_NUMBER_E164] = &OHOS::Telephony::FormatPhoneNumberToE164; + g_memberFuncMap[OHOS::Telephony::INTERFACE_CANCEL_MISSED_INCOMING_CALL_NOTIFICATION] = + &OHOS::Telephony::CancelMissedIncomingCallNotification; } void InitCallConferencePower() @@ -1392,7 +1464,8 @@ void PrintfCallUtilsInterface() << "13:isInEmergencyCall\n" << "14:isEmergencyPhoneNumber\n" << "15:formatPhoneNumber\n" - << "16:formatPhoneNumberToE164\n"; + << "16:formatPhoneNumberToE164\n" + << "58:CancelMissedIncomingCallNotification\n"; } void PrintfCallConferenceInterface() -- Gitee From f21d585708b3ce7208135d39fc7f1a4029fde19d Mon Sep 17 00:00:00 2001 From: zhoujie0328 Date: Tue, 18 Apr 2023 22:47:04 +0800 Subject: [PATCH 07/12] IssueNo:add GetAirPlaneMode js error code Description:add GetAirPlaneMode js error code Sig:SIG_Telephony Feature or Bugfix: Feature Binary Source: No Signed-off-by: zhoujie0328 Change-Id: I61fc2f68e9cc963d9f371c9e9f6efc1bf42aca86 --- interfaces/kits/js/@ohos.telephony.call.d.ts | 59 ++++++++++-- services/call/include/call_request_handler.h | 1 + services/call/include/call_request_process.h | 9 +- services/call/src/call_request_handler.cpp | 15 ++-- services/call/src/call_request_process.cpp | 89 +++++++++++-------- .../src/zero_branch_test.cpp | 1 + 6 files changed, 121 insertions(+), 53 deletions(-) diff --git a/interfaces/kits/js/@ohos.telephony.call.d.ts b/interfaces/kits/js/@ohos.telephony.call.d.ts index 576be16b..4c110e85 100644 --- a/interfaces/kits/js/@ohos.telephony.call.d.ts +++ b/interfaces/kits/js/@ohos.telephony.call.d.ts @@ -42,19 +42,62 @@ declare namespace call { * Makes a call. * * @permission ohos.permission.PLACE_CALL - * @param phoneNumber Indicates the called number. - * @param options Indicates additional information carried in the call. - * @throws {BusinessError} 201 - Permission denied. - * @throws {BusinessError} 401 - Parameter error. - * @throws {BusinessError} 8300001 - Invalid parameter value. - * @throws {BusinessError} 8300002 - Operation failed. Cannot connect to service. - * @throws {BusinessError} 8300003 - System internal error. - * @throws {BusinessError} 8300999 - Unknown error code. + * @param { string } phoneNumber - Indicates the called number. + * @param { AsyncCallback } callback - The callback of dialCall. + * @throws { BusinessError } 201 - Permission denied. + * @throws { BusinessError } 202 - Non-system applications use system APIs. + * @throws { BusinessError } 401 - Parameter error. + * @throws { BusinessError } 8300001 - Invalid parameter value. + * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service. + * @throws { BusinessError } 8300003 - System internal error. + * @throws { BusinessError } 8300005 - Airplane mode is on. + * @throws { BusinessError } 8300999 - Unknown error code. + * @syscap SystemCapability.Telephony.CallManager * @systemapi Hide this for inner system use. * @since 9 */ function dialCall(phoneNumber: string, callback: AsyncCallback): void; + + /** + * Makes a call. + * + * @permission ohos.permission.PLACE_CALL + * @param { string } phoneNumber - Indicates the called number. + * @param { DialCallOptions } options - Indicates additional information carried in the call. + * @param { AsyncCallback } callback - The callback of dialCall. + * @throws { BusinessError } 201 - Permission denied. + * @throws { BusinessError } 202 - Non-system applications use system APIs. + * @throws { BusinessError } 401 - Parameter error. + * @throws { BusinessError } 8300001 - Invalid parameter value. + * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service. + * @throws { BusinessError } 8300003 - System internal error. + * @throws { BusinessError } 8300005 - Airplane mode is on. + * @throws { BusinessError } 8300999 - Unknown error code. + * @syscap SystemCapability.Telephony.CallManager + * @systemapi Hide this for inner system use. + * @since 9 + */ function dialCall(phoneNumber: string, options: DialCallOptions, callback: AsyncCallback): void; + + /** + * Makes a call. + * + * @permission ohos.permission.PLACE_CALL + * @param { string } phoneNumber - Indicates the called number. + * @param { DialCallOptions } options - Indicates additional information carried in the call. + * @returns { Promise } The promise returned by the dialCall. + * @throws { BusinessError } 201 - Permission denied. + * @throws { BusinessError } 202 - Non-system applications use system APIs. + * @throws { BusinessError } 401 - Parameter error. + * @throws { BusinessError } 8300001 - Invalid parameter value. + * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service. + * @throws { BusinessError } 8300003 - System internal error. + * @throws { BusinessError } 8300005 - Airplane mode is on. + * @throws { BusinessError } 8300999 - Unknown error code. + * @syscap SystemCapability.Telephony.CallManager + * @systemapi Hide this for inner system use. + * @since 9 + */ function dialCall(phoneNumber: string, options?: DialCallOptions): Promise; /** diff --git a/services/call/include/call_request_handler.h b/services/call/include/call_request_handler.h index aca792ff..4bb2a734 100644 --- a/services/call/include/call_request_handler.h +++ b/services/call/include/call_request_handler.h @@ -66,6 +66,7 @@ public: void Init(); void ProcessEvent(const AppExecFwk::InnerEvent::Pointer &event); + int32_t DialCall(); private: using CallRequestFunc = void (CallRequestHandler::*)(const AppExecFwk::InnerEvent::Pointer &event); diff --git a/services/call/include/call_request_process.h b/services/call/include/call_request_process.h index 959bceb5..c9be5c66 100644 --- a/services/call/include/call_request_process.h +++ b/services/call/include/call_request_process.h @@ -27,7 +27,7 @@ public: CallRequestProcess(); ~CallRequestProcess(); - void DialRequest(); + int32_t DialRequest(); void AnswerRequest(int32_t callId, int32_t videoState); void RejectRequest(int32_t callId, bool isSendSms, std::string &content); void HangUpRequest(int32_t callId); @@ -42,13 +42,14 @@ public: void JoinConference(int32_t callId, std::vector &numberList); private: - void CarrierDialProcess(DialParaInfo &info); - void VoiceMailDialProcess(DialParaInfo &info); - void OttDialProcess(DialParaInfo &info); + int32_t CarrierDialProcess(DialParaInfo &info); + int32_t VoiceMailDialProcess(DialParaInfo &info); + int32_t OttDialProcess(DialParaInfo &info); int32_t UpdateImsCallMode(int32_t callId, ImsCallMode mode); int32_t PackCellularCallInfo(DialParaInfo &info, CellularCallInfo &callInfo); bool IsFdnNumber(std::vector fdnNumberList, std::string phoneNumber); int32_t UpdateCallReportInfo(const DialParaInfo &info, TelCallState state); + int32_t HandleDialFail(); private: std::mutex mutex_; diff --git a/services/call/src/call_request_handler.cpp b/services/call/src/call_request_handler.cpp index 85bbd467..080da76d 100644 --- a/services/call/src/call_request_handler.cpp +++ b/services/call/src/call_request_handler.cpp @@ -76,6 +76,15 @@ void CallRequestHandler::ProcessEvent(const AppExecFwk::InnerEvent::Pointer &eve } } +int32_t CallRequestHandler::DialCall() +{ + if (callRequestProcessPtr_ == nullptr) { + TELEPHONY_LOGE("callRequestProcessPtr_ is nullptr"); + return TELEPHONY_ERR_LOCAL_PTR_NULL; + } + return callRequestProcessPtr_->DialRequest(); +} + void CallRequestHandler::DialCallEvent(const AppExecFwk::InnerEvent::Pointer &event) { if (event == nullptr) { @@ -350,11 +359,7 @@ int32_t CallRequestHandlerService::DialCall() TELEPHONY_LOGE("handler_ is nullptr"); return TELEPHONY_ERR_LOCAL_PTR_NULL; } - if (!handler_->SendEvent(HANDLER_DIAL_CALL_REQUEST)) { - TELEPHONY_LOGE("send dial event failed!"); - return CALL_ERR_SYSTEM_EVENT_HANDLE_FAILURE; - } - return TELEPHONY_SUCCESS; + return handler_->DialCall(); } int32_t CallRequestHandlerService::AnswerCall(int32_t callId, int32_t videoState) diff --git a/services/call/src/call_request_process.cpp b/services/call/src/call_request_process.cpp index 2b0b28b4..d1e858aa 100644 --- a/services/call/src/call_request_process.cpp +++ b/services/call/src/call_request_process.cpp @@ -35,7 +35,7 @@ CallRequestProcess::CallRequestProcess() {} CallRequestProcess::~CallRequestProcess() {} -void CallRequestProcess::DialRequest() +int32_t CallRequestProcess::DialRequest() { DialParaInfo info; DelayedSingleton::GetInstance()->GetDialParaInfo(info); @@ -44,11 +44,11 @@ void CallRequestProcess::DialRequest() CallManagerHisysevent::WriteDialCallFaultEvent(info.accountId, static_cast(info.callType), static_cast(info.videoState), static_cast(CallErrorCode::CALL_ERROR_DEVICE_NOT_DIALING), "the device is not dialing"); - return; + return CALL_ERR_ILLEGAL_CALL_OPERATION; } if (info.number.length() > static_cast(kMaxNumberLen)) { TELEPHONY_LOGE("Number out of limit!"); - return; + return CALL_ERR_NUMBER_OUT_OF_RANGE; } if (info.dialType == DialType::DIAL_CARRIER_TYPE && DelayedSingleton::GetInstance()->IsFdnEnabled(info.accountId)) { @@ -64,24 +64,26 @@ void CallRequestProcess::DialRequest() CallManagerHisysevent::WriteDialCallFaultEvent(info.accountId, static_cast(info.callType), static_cast(info.videoState), static_cast(CallErrorCode::CALL_ERROR_INVALID_FDN_NUMBER), "invalid fdn number!"); - return; + return CALL_ERR_DIAL_FAILED; } } TELEPHONY_LOGI("dialType:%{public}d", info.dialType); + int32_t ret = CALL_ERR_UNKNOW_DIAL_TYPE; switch (info.dialType) { case DialType::DIAL_CARRIER_TYPE: - CarrierDialProcess(info); + ret = CarrierDialProcess(info); break; case DialType::DIAL_VOICE_MAIL_TYPE: - VoiceMailDialProcess(info); + ret = VoiceMailDialProcess(info); break; case DialType::DIAL_OTT_TYPE: - OttDialProcess(info); + ret = OttDialProcess(info); break; default: TELEPHONY_LOGE("invalid dialType:%{public}d", info.dialType); break; } + return ret; } void CallRequestProcess::AnswerRequest(int32_t callId, int32_t videoState) @@ -300,57 +302,70 @@ int32_t CallRequestProcess::UpdateCallReportInfo(const DialParaInfo &info, TelCa return DelayedSingleton::GetInstance()->UpdateCallReportInfo(callDetatilInfo); } -void CallRequestProcess::CarrierDialProcess(DialParaInfo &info) +int32_t CallRequestProcess::HandleDialFail() +{ + std::unique_lock lock(mutex_); + while (!isFirstDialCallAdded_) { + if (cv_.wait_for(lock, std::chrono::seconds(WAIT_TIME_ONE_SECOND)) == std::cv_status::timeout) { + TELEPHONY_LOGE("CarrierDialProcess call is not added"); + return CALL_ERR_DIAL_FAILED; + } + } + sptr call = nullptr; + if (GetOneCallObject(CallRunningState::CALL_RUNNING_STATE_CREATE) != nullptr) { + call = GetOneCallObject(CallRunningState::CALL_RUNNING_STATE_CREATE); + } else if (GetOneCallObject(CallRunningState::CALL_RUNNING_STATE_CONNECTING) != nullptr) { + call = GetOneCallObject(CallRunningState::CALL_RUNNING_STATE_CONNECTING); + } else if (GetOneCallObject(CallRunningState::CALL_RUNNING_STATE_DIALING) != nullptr) { + call = GetOneCallObject(CallRunningState::CALL_RUNNING_STATE_DIALING); + } else { + TELEPHONY_LOGE("can not find connect call or dialing call"); + return CALL_ERR_CALL_STATE; + } + return DealFailDial(call); +} + +int32_t CallRequestProcess::CarrierDialProcess(DialParaInfo &info) { std::string newPhoneNumer = DelayedSingleton::GetInstance()->RemoveSeparatorsPhoneNumber(info.number); bool isMMiCode = DelayedSingleton::GetInstance()->IsMMICode(newPhoneNumer); + int32_t ret = TELEPHONY_ERROR; if (!isMMiCode) { isFirstDialCallAdded_ = false; info.number = newPhoneNumer; - if (UpdateCallReportInfo(info, TelCallState::CALL_STATUS_DIALING) != TELEPHONY_SUCCESS) { + ret = UpdateCallReportInfo(info, TelCallState::CALL_STATUS_DIALING); + if (ret != TELEPHONY_SUCCESS) { TELEPHONY_LOGE("UpdateCallReportInfo failed!"); - return; + return ret; } } CellularCallInfo callInfo; - int32_t ret = PackCellularCallInfo(info, callInfo); + ret = PackCellularCallInfo(info, callInfo); if (ret != TELEPHONY_SUCCESS) { TELEPHONY_LOGW("PackCellularCallInfo failed!"); CallManagerHisysevent::WriteDialCallFaultEvent(info.accountId, static_cast(info.callType), static_cast(info.videoState), ret, "Carrier type PackCellularCallInfo failed"); - return; + return ret; } // Obtain gateway information ret = DelayedSingleton::GetInstance()->Dial(callInfo); if (ret != TELEPHONY_SUCCESS) { TELEPHONY_LOGE("Dial failed!"); if (isMMiCode) { - return; + return ret; } - std::unique_lock lock(mutex_); - while (!isFirstDialCallAdded_) { - if (cv_.wait_for(lock, std::chrono::seconds(WAIT_TIME_ONE_SECOND)) == std::cv_status::timeout) { - TELEPHONY_LOGE("CarrierDialProcess call is not added"); - return; - } + int32_t handleRet = HandleDialFail(); + if (handleRet != TELEPHONY_SUCCESS) { + TELEPHONY_LOGE("HandleDialFail failed!"); + return handleRet; } - sptr call = nullptr; - if (GetOneCallObject(CallRunningState::CALL_RUNNING_STATE_CREATE) != nullptr) { - call = GetOneCallObject(CallRunningState::CALL_RUNNING_STATE_CREATE); - } else if (GetOneCallObject(CallRunningState::CALL_RUNNING_STATE_CONNECTING) != nullptr) { - call = GetOneCallObject(CallRunningState::CALL_RUNNING_STATE_CONNECTING); - } else if (GetOneCallObject(CallRunningState::CALL_RUNNING_STATE_DIALING) != nullptr) { - call = GetOneCallObject(CallRunningState::CALL_RUNNING_STATE_DIALING); - } else { - TELEPHONY_LOGE("can not find connect call or dialing call"); - return; - } - DealFailDial(call); + return ret; } + return TELEPHONY_SUCCESS; } -void CallRequestProcess::VoiceMailDialProcess(DialParaInfo &info) +int32_t CallRequestProcess::VoiceMailDialProcess(DialParaInfo &info) { CellularCallInfo callInfo; int32_t ret = PackCellularCallInfo(info, callInfo); @@ -358,16 +373,17 @@ void CallRequestProcess::VoiceMailDialProcess(DialParaInfo &info) TELEPHONY_LOGW("PackCellularCallInfo failed!"); CallManagerHisysevent::WriteDialCallFaultEvent(info.accountId, static_cast(info.callType), static_cast(info.videoState), ret, "Voice mail type PackCellularCallInfo failed"); - return; + return ret; } ret = DelayedSingleton::GetInstance()->Dial(callInfo); if (ret != TELEPHONY_SUCCESS) { TELEPHONY_LOGE("Dial VoiceMail failed!"); - return; + return ret; } + return TELEPHONY_SUCCESS; } -void CallRequestProcess::OttDialProcess(DialParaInfo &info) +int32_t CallRequestProcess::OttDialProcess(DialParaInfo &info) { AppExecFwk::PacMap callInfo; callInfo.PutStringValue("phoneNumber", info.number); @@ -377,8 +393,9 @@ void CallRequestProcess::OttDialProcess(DialParaInfo &info) OttCallRequestId::OTT_REQUEST_DIAL, callInfo); if (ret != TELEPHONY_SUCCESS) { TELEPHONY_LOGE("OTT call Dial failed!"); - return; + return ret; } + return TELEPHONY_SUCCESS; } int32_t CallRequestProcess::PackCellularCallInfo(DialParaInfo &info, CellularCallInfo &callInfo) diff --git a/test/unittest/call_manager_gtest/src/zero_branch_test.cpp b/test/unittest/call_manager_gtest/src/zero_branch_test.cpp index ffe61b92..14935247 100644 --- a/test/unittest/call_manager_gtest/src/zero_branch_test.cpp +++ b/test/unittest/call_manager_gtest/src/zero_branch_test.cpp @@ -133,6 +133,7 @@ HWTEST_F(BranchTest, Telephony_CallRequestHandler_001, Function | MediumTest | L call_request_handler->StartRttEvent(event); call_request_handler->StopRttEvent(event); call_request_handler->JoinConferenceEvent(event); + call_request_handler->DialCall(); std::unique_ptr callRequestHandlerService = std::make_unique(); ASSERT_NE(callRequestHandlerService->DialCall(), TELEPHONY_ERR_SUCCESS); -- Gitee From 15abb20ea8f7f3ce2e8363b32538e3705bf14b20 Mon Sep 17 00:00:00 2001 From: zhoujie0328 Date: Tue, 18 Apr 2023 22:47:04 +0800 Subject: [PATCH 08/12] IssueNo:add GetAirPlaneMode js error code Description:add GetAirPlaneMode js error code Sig:SIG_Telephony Feature or Bugfix: Feature Binary Source: No Signed-off-by: zhoujie0328 Change-Id: I61fc2f68e9cc963d9f371c9e9f6efc1bf42aca86 --- .../innerkits/cellular_call_interface.h | 5 +++- interfaces/innerkits/cellular_call_proxy.h | 2 ++ services/call/src/call_control_manager.cpp | 1 + .../src/cellular_call_proxy.cpp | 28 +++++++++++++++++++ .../include/call_manager_connect.h | 3 +- .../src/call_manager_gtest.cpp | 2 +- .../src/zero_branch_test.cpp | 6 ++-- 7 files changed, 41 insertions(+), 6 deletions(-) diff --git a/interfaces/innerkits/cellular_call_interface.h b/interfaces/innerkits/cellular_call_interface.h index c9ce8e8b..455da328 100644 --- a/interfaces/innerkits/cellular_call_interface.h +++ b/interfaces/innerkits/cellular_call_interface.h @@ -40,6 +40,7 @@ public: INVITE_TO_CONFERENCE, KICK_OUT_CONFERENCE, HANG_UP_ALL_CONNECTION, + SET_READY_TO_CALL, UPDATE_CALL_MEDIA_MODE, REGISTER_CALLBACK, UNREGISTER_CALLBACK, @@ -194,11 +195,13 @@ public: /** * Hang Up All Connection. * - *@param slotId + * @param slotId * @return Returns TELEPHONY_SUCCESS on success, others on failure. */ virtual int32_t HangUpAllConnection(int32_t slotId) = 0; + virtual int32_t SetReadyToCall(int32_t slotId, bool isReadyToCall) = 0; + /** * IMS Update Call Media Mode * diff --git a/interfaces/innerkits/cellular_call_proxy.h b/interfaces/innerkits/cellular_call_proxy.h index b04b1d84..31a5ec9c 100644 --- a/interfaces/innerkits/cellular_call_proxy.h +++ b/interfaces/innerkits/cellular_call_proxy.h @@ -153,6 +153,8 @@ public: */ int32_t HangUpAllConnection(int32_t slotId) override; + int32_t SetReadyToCall(int32_t slotId, bool isReadyToCall) override; + /** * IMS Update Call Media Mode * diff --git a/services/call/src/call_control_manager.cpp b/services/call/src/call_control_manager.cpp index 7d80f4c8..2814a43a 100644 --- a/services/call/src/call_control_manager.cpp +++ b/services/call/src/call_control_manager.cpp @@ -121,6 +121,7 @@ int32_t CallControlManager::DialCall(std::u16string &number, AppExecFwk::PacMap TELEPHONY_LOGE("dial policy result:%{public}d", ret); return ret; } + TELEPHONY_LOGI("DiaCallControlManager::DialCalllCall 124"); // temporarily save dial information { std::lock_guard lock(mutex_); diff --git a/services/telephony_interaction/src/cellular_call_proxy.cpp b/services/telephony_interaction/src/cellular_call_proxy.cpp index 1c9b648e..6c632a11 100644 --- a/services/telephony_interaction/src/cellular_call_proxy.cpp +++ b/services/telephony_interaction/src/cellular_call_proxy.cpp @@ -414,6 +414,34 @@ int32_t CellularCallProxy::HangUpAllConnection() return error; } +int32_t CellularCallProxy::SetReadyToCall(int32_t slotId, bool isReadyToCall) +{ + MessageOption option; + MessageParcel in; + MessageParcel out; + if (!in.WriteInterfaceToken(CellularCallProxy::GetDescriptor())) { + return TELEPHONY_ERR_WRITE_DESCRIPTOR_TOKEN_FAIL; + } + if (!in.WriteInt32(slotId)) { + return TELEPHONY_ERR_WRITE_DATA_FAIL; + } + if (!in.WriteBool(isReadyToCall)) { + return TELEPHONY_ERR_WRITE_DATA_FAIL; + } + auto remote = Remote(); + if (remote == nullptr) { + TELEPHONY_LOGE("[slot%{public}d] function Remote() return nullptr!", slotId); + return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL; + } + int32_t error = + remote->SendRequest(static_cast(OperationType::SET_READY_TO_CALL), in, out, option); + if (error == ERR_NONE) { + TELEPHONY_LOGE("Function SetReadyToCall! errCode:%{public}d", error); + return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL; + } + return out.ReadInt32(); +} + int32_t CellularCallProxy::HangUpAllConnection(int32_t slotId) { return TELEPHONY_ERR_SUCCESS; diff --git a/test/unittest/call_manager_gtest/include/call_manager_connect.h b/test/unittest/call_manager_gtest/include/call_manager_connect.h index 337d4ba3..70fc728b 100644 --- a/test/unittest/call_manager_gtest/include/call_manager_connect.h +++ b/test/unittest/call_manager_gtest/include/call_manager_connect.h @@ -51,6 +51,7 @@ HapInfoParams testInfoParams = { .userID = 1, .instIndex = 0, .appIDDesc = "test", + .isSystemApp = true, }; PermissionDef testPermPlaceCallDef = { @@ -202,7 +203,7 @@ public: currentID_ = GetSelfTokenID(); AccessTokenIDEx tokenIdEx = AccessTokenKit::AllocHapToken(testInfoParams, testPolicyParams); accessID_ = tokenIdEx.tokenIdExStruct.tokenID; - SetSelfTokenID(accessID_); + SetSelfTokenID(tokenIdEx.tokenIDEx); } ~AccessToken() { diff --git a/test/unittest/call_manager_gtest/src/call_manager_gtest.cpp b/test/unittest/call_manager_gtest/src/call_manager_gtest.cpp index 68a013aa..236ee27a 100644 --- a/test/unittest/call_manager_gtest/src/call_manager_gtest.cpp +++ b/test/unittest/call_manager_gtest/src/call_manager_gtest.cpp @@ -2144,7 +2144,7 @@ HWTEST_F(CallManagerGtest, Telephony_CallManager_FormatPhoneNumberToE164_0400, F std::u16string phonyNumber = Str8ToStr16(number); std::u16string countryCode = Str8ToStr16(Code); std::u16string formatNumber = Str8ToStr16(formatBefore); - EXPECT_NE(CallManagerGtest::clientPtr_->FormatPhoneNumberToE164(phonyNumber, countryCode, formatNumber), + EXPECT_EQ(CallManagerGtest::clientPtr_->FormatPhoneNumberToE164(phonyNumber, countryCode, formatNumber), RETURN_VALUE_IS_ZERO); } diff --git a/test/unittest/call_manager_gtest/src/zero_branch_test.cpp b/test/unittest/call_manager_gtest/src/zero_branch_test.cpp index 14935247..042f8474 100644 --- a/test/unittest/call_manager_gtest/src/zero_branch_test.cpp +++ b/test/unittest/call_manager_gtest/src/zero_branch_test.cpp @@ -1378,14 +1378,12 @@ HWTEST_F(BranchTest, Telephony_BluetoothCallService_001, Function | MediumTest | */ HWTEST_F(BranchTest, Telephony_BluetoothConnection_001, Function | MediumTest | Level3) { +#ifdef ABILITY_BLUETOOTH_SUPPORT BluetoothConnection bluetoothConnection; bluetoothConnection.SetBtScoState(BtScoState::SCO_STATE_CONNECTED); ASSERT_EQ(BtScoState::SCO_STATE_CONNECTED, bluetoothConnection.GetBtScoState()); - ASSERT_EQ(true, bluetoothConnection.ConnectBtSco()); ASSERT_EQ(true, bluetoothConnection.IsBtScoConnected()); bluetoothConnection.SetBtScoState(BtScoState::SCO_STATE_DISCONNECTED); - ASSERT_EQ(true, bluetoothConnection.DisconnectBtSco()); -#ifdef ABILITY_BLUETOOTH_SUPPORT bluetoothConnection.Init(); bluetoothConnection.SetBtScoState(BtScoState::SCO_STATE_UNKNOWN); bluetoothConnection.connectedScoAddr_ = "123456"; @@ -1414,6 +1412,8 @@ HWTEST_F(BranchTest, Telephony_BluetoothConnection_001, Function | MediumTest | bluetoothConnection.OnConnectionStateChanged(device, (int32_t)Bluetooth::HfpScoConnectState::SCO_CONNECTED); bluetoothConnection.OnConnectionStateChanged(device, (int32_t)Bluetooth::HfpScoConnectState::SCO_DISCONNECTED); ASSERT_EQ(nullptr, bluetoothConnection.GetBtDevice("test")); + ASSERT_EQ(true, bluetoothConnection.ConnectBtSco()); + ASSERT_EQ(true, bluetoothConnection.DisconnectBtSco()); #endif } -- Gitee From dc712f3a2a4153c36b82bdb760057ffd1f9f8a3d Mon Sep 17 00:00:00 2001 From: luowz0409 Date: Thu, 27 Apr 2023 11:53:10 +0800 Subject: [PATCH 09/12] =?UTF-8?q?IssueNo:=20=E6=9C=AA=E6=8E=A5=E6=9D=A5?= =?UTF-8?q?=E7=94=B5=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Description: 增加Call log数据库读写权限 --- interfaces/kits/js/@ohos.telephony.call.d.ts | 35 ++++++++++--------- .../src/call_manager_service.cpp | 6 +++- .../src/zero_branch_test.cpp | 4 +-- 3 files changed, 26 insertions(+), 19 deletions(-) diff --git a/interfaces/kits/js/@ohos.telephony.call.d.ts b/interfaces/kits/js/@ohos.telephony.call.d.ts index 4c110e85..0d3585f9 100644 --- a/interfaces/kits/js/@ohos.telephony.call.d.ts +++ b/interfaces/kits/js/@ohos.telephony.call.d.ts @@ -1044,31 +1044,34 @@ declare namespace call { * Cancel missed incoming call notification. * * @permission ohos.permission.SET_TELEPHONY_STATE - * @param {AsyncCallback} callback - Returns option result. - * @throws {BusinessError} 201 - Permission denied. - * @throws {BusinessError} 202 - Applicable only to system applications. - * @throws {BusinessError} 401 - Parameter error. - * @throws {BusinessError} 8300001 - Invalid parameter value. - * @throws {BusinessError} 8300002 - Operation failed. Cannot connect to service. - * @throws {BusinessError} 8300003 - System internal error. - * @throws {BusinessError} 8300999 - Unknown error code. + * @permission ohos.permission.READ_CALL_LOG + * @permission ohos.permission.WRITE_CALL_LOG + * @param { AsyncCallback } callback - The callback of cancelMissedIncomingCallNotification. + * @throws { BusinessError } 201 - Permission denied. + * @throws { BusinessError } 202 - Applicable only to system applications. + * @throws { BusinessError } 401 - Parameter error. + * @throws { BusinessError } 8300001 - Invalid parameter value. + * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service. + * @throws { BusinessError } 8300003 - System internal error. + * @throws { BusinessError } 8300999 - Unknown error code. * @syscap SystemCapability.Telephony.CallManager * @systemapi Hide this for inner system use. * @since 10 */ - function cancelMissedIncomingCallNotification(callback: AsyncCallback): - void; + function cancelMissedIncomingCallNotification(callback: AsyncCallback): void; /** * Cancel missed incoming call notification. * * @permission ohos.permission.SET_TELEPHONY_STATE - * @returns {Promise} Returns option result. - * @throws {BusinessError} 201 - Permission denied. - * @throws {BusinessError} 202 - Applicable only to system applications. - * @throws {BusinessError} 8300002 - Operation failed. Cannot connect to service. - * @throws {BusinessError} 8300003 - System internal error. - * @throws {BusinessError} 8300999 - Unknown error code. + * @permission ohos.permission.READ_CALL_LOG + * @permission ohos.permission.WRITE_CALL_LOG + * @returns { Promise } The promise returned by the function.. + * @throws { BusinessError } 201 - Permission denied. + * @throws { BusinessError } 202 - Applicable only to system applications. + * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service. + * @throws { BusinessError } 8300003 - System internal error. + * @throws { BusinessError } 8300999 - Unknown error code. * @syscap SystemCapability.Telephony.CallManager * @systemapi Hide this for inner system use. * @since 10 diff --git a/services/call_manager_service/src/call_manager_service.cpp b/services/call_manager_service/src/call_manager_service.cpp index 96c3e3e9..fe4dc338 100644 --- a/services/call_manager_service/src/call_manager_service.cpp +++ b/services/call_manager_service/src/call_manager_service.cpp @@ -37,6 +37,8 @@ static constexpr const char *OHOS_PERMISSION_SET_TELEPHONY_STATE = "ohos.permiss static constexpr const char *OHOS_PERMISSION_GET_TELEPHONY_STATE = "ohos.permission.GET_TELEPHONY_STATE"; static constexpr const char *OHOS_PERMISSION_PLACE_CALL = "ohos.permission.PLACE_CALL"; static constexpr const char *OHOS_PERMISSION_ANSWER_CALL = "ohos.permission.ANSWER_CALL"; +static constexpr const char *OHOS_PERMISSION_READ_CALL_LOG = "ohos.permission.READ_CALL_LOG"; +static constexpr const char *OHOS_PERMISSION_WRITE_CALL_LOG = "ohos.permission.WRITE_CALL_LOG"; static constexpr const char *SLOT_ID = "accountId"; static constexpr const char *CALL_TYPE = "callType"; static constexpr const char *VIDEO_STATE = "videoState"; @@ -906,7 +908,9 @@ int32_t CallManagerService::CancelMissedIncomingCallNotification() TELEPHONY_LOGE("Non-system applications use system APIs!"); return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API; } - if (!TelephonyPermission::CheckPermission(OHOS_PERMISSION_SET_TELEPHONY_STATE)) { + if (!TelephonyPermission::CheckPermission(OHOS_PERMISSION_SET_TELEPHONY_STATE) || + !TelephonyPermission::CheckPermission(OHOS_PERMISSION_READ_CALL_LOG) || + !TelephonyPermission::CheckPermission(OHOS_PERMISSION_WRITE_CALL_LOG)) { TELEPHONY_LOGE("Permission denied!"); return TELEPHONY_ERR_PERMISSION_ERR; } diff --git a/test/unittest/call_manager_gtest/src/zero_branch_test.cpp b/test/unittest/call_manager_gtest/src/zero_branch_test.cpp index 042f8474..0f6c7697 100644 --- a/test/unittest/call_manager_gtest/src/zero_branch_test.cpp +++ b/test/unittest/call_manager_gtest/src/zero_branch_test.cpp @@ -995,7 +995,7 @@ HWTEST_F(BranchTest, Telephony_CallManagerClient_001, Function | MediumTest | Le ASSERT_NE(callManagerClient->RejectCall(0, false, value), TELEPHONY_SUCCESS); ASSERT_NE(callManagerClient->HangUpCall(0), TELEPHONY_SUCCESS); ASSERT_GE(callManagerClient->GetCallState(), TELEPHONY_SUCCESS); - ASSERT_EQ(callManagerClient->CancelMissedIncomingCallNotification(), TELEPHONY_SUCCESS); + ASSERT_NE(callManagerClient->CancelMissedIncomingCallNotification(), TELEPHONY_SUCCESS); } /** @@ -1696,7 +1696,7 @@ HWTEST_F(BranchTest, Telephony_CallRecordsManager_001, Function | MediumTest | L info.ringBeginTime = ONE_TIME; info.ringEndTime = ONE_TIME; callRecordsManager.AddOneCallRecord(info); - ASSERT_EQ(callRecordsManager.CancelMissedIncomingCallNotification(), TELEPHONY_SUCCESS); + ASSERT_NE(callRecordsManager.CancelMissedIncomingCallNotification(), TELEPHONY_SUCCESS); ASSERT_EQ(callRecordsManager.QueryUnReadMissedCallLog(), TELEPHONY_SUCCESS); } -- Gitee From 3a7055c59bd264dff8ed96dc576e2e6093589752 Mon Sep 17 00:00:00 2001 From: luowz0409 Date: Fri, 28 Apr 2023 19:23:14 +0800 Subject: [PATCH 10/12] =?UTF-8?q?IssueNo:=20=E6=9C=AA=E6=8E=A5=E6=9D=A5?= =?UTF-8?q?=E7=94=B5=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Description: 按照review意见进行部分代码整改 Signed-off-by: luowz0409@thundersoft.com --- interfaces/innerkits/call_manager_client.h | 5 + interfaces/kits/js/@ohos.telephony.call.d.ts | 5 +- .../include/call_records_handler.h | 1 + .../src/call_data_base_helper.cpp | 2 +- .../src/call_records_handler.cpp | 93 +++++++++++-------- .../src/call_manager_service.cpp | 2 +- 6 files changed, 63 insertions(+), 45 deletions(-) diff --git a/interfaces/innerkits/call_manager_client.h b/interfaces/innerkits/call_manager_client.h index 105342a2..122cbaa6 100644 --- a/interfaces/innerkits/call_manager_client.h +++ b/interfaces/innerkits/call_manager_client.h @@ -85,6 +85,11 @@ public: int32_t ReportOttCallEventInfo(OttCallEventInfo &eventInfo); int32_t CloseUnFinishedUssd(int32_t slotId); int32_t InputDialerSpecialCode(const std::string &specialCode); + /** + * Cancel missed incoming call notification. + * + * @return Returns 0 on success, others on failure. + */ int32_t CancelMissedIncomingCallNotification(); bool HasVoiceCapability(); int32_t ReportAudioDeviceInfo(); diff --git a/interfaces/kits/js/@ohos.telephony.call.d.ts b/interfaces/kits/js/@ohos.telephony.call.d.ts index 0d3585f9..cb38d54b 100644 --- a/interfaces/kits/js/@ohos.telephony.call.d.ts +++ b/interfaces/kits/js/@ohos.telephony.call.d.ts @@ -1048,9 +1048,8 @@ declare namespace call { * @permission ohos.permission.WRITE_CALL_LOG * @param { AsyncCallback } callback - The callback of cancelMissedIncomingCallNotification. * @throws { BusinessError } 201 - Permission denied. - * @throws { BusinessError } 202 - Applicable only to system applications. + * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 401 - Parameter error. - * @throws { BusinessError } 8300001 - Invalid parameter value. * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service. * @throws { BusinessError } 8300003 - System internal error. * @throws { BusinessError } 8300999 - Unknown error code. @@ -1068,7 +1067,7 @@ declare namespace call { * @permission ohos.permission.WRITE_CALL_LOG * @returns { Promise } The promise returned by the function.. * @throws { BusinessError } 201 - Permission denied. - * @throws { BusinessError } 202 - Applicable only to system applications. + * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service. * @throws { BusinessError } 8300003 - System internal error. * @throws { BusinessError } 8300999 - Unknown error code. diff --git a/services/call/call_state_observer/include/call_records_handler.h b/services/call/call_state_observer/include/call_records_handler.h index 1a35bbe2..6d988776 100644 --- a/services/call/call_state_observer/include/call_records_handler.h +++ b/services/call/call_state_observer/include/call_records_handler.h @@ -34,6 +34,7 @@ public: virtual ~CallRecordsHandler() = default; void ProcessEvent(const AppExecFwk::InnerEvent::Pointer &event); int32_t QueryAndNotifyUnReadMissedCall(); + int32_t AddCallLogInfo(CallRecordInfo &info); private: void QueryCallerInfo(ContactInfo &contactInfo, std::string phoneNumber); diff --git a/services/call/call_state_observer/src/call_data_base_helper.cpp b/services/call/call_state_observer/src/call_data_base_helper.cpp index b15e41b9..6bfb687a 100644 --- a/services/call/call_state_observer/src/call_data_base_helper.cpp +++ b/services/call/call_state_observer/src/call_data_base_helper.cpp @@ -213,7 +213,7 @@ bool CallDataBaseHelper::QueryCallLog( operationResult = resultSet->GoToNextRow(); } resultSet->Close(); - TELEPHONY_LOGD("QueryCallLog end"); + TELEPHONY_LOGI("QueryCallLog end"); return true; } diff --git a/services/call/call_state_observer/src/call_records_handler.cpp b/services/call/call_state_observer/src/call_records_handler.cpp index acb11a71..de891dac 100644 --- a/services/call/call_state_observer/src/call_records_handler.cpp +++ b/services/call/call_state_observer/src/call_records_handler.cpp @@ -42,52 +42,17 @@ void CallRecordsHandler::ProcessEvent(const AppExecFwk::InnerEvent::Pointer &eve return; } CallRecordInfo info = *object; - if (callDataPtr_ == nullptr) { - TELEPHONY_LOGE("callDataPtr_ is nullptr!"); - return; + int32_t ret = AddCallLogInfo(info); + if (ret != TELEPHONY_SUCCESS) { + TELEPHONY_LOGE("Add Call log fail!"); } - ContactInfo contactInfo = { - .name = "", - .number = "", - .isContacterExists = false, - .ringtonePath = "", - .isSendToVoicemail = false, - .isEcc = false, - .isVoiceMail = false, - }; - QueryCallerInfo(contactInfo, std::string(info.phoneNumber)); - - DataShare::DataShareValuesBucket bucket; - TELEPHONY_LOGI("callLog Insert begin"); - bucket.Put(CALL_PHONE_NUMBER, std::string(info.phoneNumber)); - bucket.Put(CALL_DISPLAY_NAME, std::string(contactInfo.name)); - bucket.Put(CALL_DIRECTION, static_cast(info.directionType)); - bucket.Put(CALL_VOICEMAIL_URI, std::string("")); - bucket.Put(CALL_SIM_TYPE, 0); - bucket.Put(CALL_IS_HD, static_cast(info.callType)); - bucket.Put(CALL_IS_READ, 0); - bucket.Put(CALL_RING_DURATION, static_cast(info.ringDuration)); - bucket.Put(CALL_TALK_DURATION, static_cast(info.callDuration)); - bucket.Put(CALL_FORMAT_NUMBER, std::string(info.formattedPhoneNumber)); - bucket.Put(CALL_QUICKSEARCH_KEY, std::string("")); - bucket.Put(CALL_NUMBER_TYPE, 0); - bucket.Put(CALL_NUMBER_TYPE_NAME, std::string("")); - bucket.Put(CALL_BEGIN_TIME, info.callBeginTime); - bucket.Put(CALL_END_TIME, info.callEndTime); - bucket.Put(CALL_ANSWER_STATE, static_cast(info.answerType)); - time_t timeStamp = time(0); - bucket.Put(CALL_CREATE_TIME, timeStamp); - bucket.Put(CALL_NUMBER_LOCATION, std::string("")); - bucket.Put(CALL_PHOTO_ID, 0); - bucket.Put(CALL_SLOT_ID, info.slotId); - callDataPtr_->Insert(bucket); - return; } else if (event->GetInnerEventId() == CallRecordsHandlerService::HANDLER_QUERY_UNREAD_MISSED_CALL_LOG) { int32_t ret = QueryAndNotifyUnReadMissedCall(); if (ret != TELEPHONY_SUCCESS) { TELEPHONY_LOGE("Query or notify unread missed call fail!"); } - return; + } else { + TELEPHONY_LOGI("Above all event are not handled."); } } @@ -108,6 +73,54 @@ void CallRecordsHandler::QueryCallerInfo(ContactInfo &contactInfo, std::string p } } +int32_t CallRecordsHandler::AddCallLogInfo(CallRecordInfo &info) +{ + if (callDataPtr_ == nullptr) { + TELEPHONY_LOGE("callDataPtr is nullptr!"); + return TELEPHONY_ERR_LOCAL_PTR_NULL; + } + ContactInfo contactInfo = { + .name = "", + .number = "", + .isContacterExists = false, + .ringtonePath = "", + .isSendToVoicemail = false, + .isEcc = false, + .isVoiceMail = false, + }; + QueryCallerInfo(contactInfo, std::string(info.phoneNumber)); + + DataShare::DataShareValuesBucket bucket; + TELEPHONY_LOGI("callLog Insert begin"); + bucket.Put(CALL_PHONE_NUMBER, std::string(info.phoneNumber)); + bucket.Put(CALL_DISPLAY_NAME, std::string(contactInfo.name)); + bucket.Put(CALL_DIRECTION, static_cast(info.directionType)); + bucket.Put(CALL_VOICEMAIL_URI, std::string("")); + bucket.Put(CALL_SIM_TYPE, 0); + bucket.Put(CALL_IS_HD, static_cast(info.callType)); + bucket.Put(CALL_IS_READ, 0); + bucket.Put(CALL_RING_DURATION, static_cast(info.ringDuration)); + bucket.Put(CALL_TALK_DURATION, static_cast(info.callDuration)); + bucket.Put(CALL_FORMAT_NUMBER, std::string(info.formattedPhoneNumber)); + bucket.Put(CALL_QUICKSEARCH_KEY, std::string("")); + bucket.Put(CALL_NUMBER_TYPE, 0); + bucket.Put(CALL_NUMBER_TYPE_NAME, std::string("")); + bucket.Put(CALL_BEGIN_TIME, info.callBeginTime); + bucket.Put(CALL_END_TIME, info.callEndTime); + bucket.Put(CALL_ANSWER_STATE, static_cast(info.answerType)); + time_t timeStamp = time(0); + bucket.Put(CALL_CREATE_TIME, timeStamp); + bucket.Put(CALL_NUMBER_LOCATION, std::string("")); + bucket.Put(CALL_PHOTO_ID, 0); + bucket.Put(CALL_SLOT_ID, info.slotId); + bool ret = callDataPtr_->Insert(bucket); + if (!ret) { + TELEPHONY_LOGE("Add call log database fail!"); + return TELEPHONY_ERR_DATABASE_WRITE_FAIL; + } + return TELEPHONY_SUCCESS; +} + int32_t CallRecordsHandler::QueryAndNotifyUnReadMissedCall() { if (callDataPtr_ == nullptr) { diff --git a/services/call_manager_service/src/call_manager_service.cpp b/services/call_manager_service/src/call_manager_service.cpp index fe4dc338..1f0e1178 100644 --- a/services/call_manager_service/src/call_manager_service.cpp +++ b/services/call_manager_service/src/call_manager_service.cpp @@ -73,7 +73,7 @@ bool CallManagerService::Init() DelayedSingleton::GetInstance()->Init(); int ret = callControlManagerPtr_->QueryUnReadMissedCallLog(); if (ret == TELEPHONY_SUCCESS) { - TELEPHONY_LOGD("Query unread missed call log success"); + TELEPHONY_LOGI("Query unread missed call log success"); } return true; } -- Gitee From 4972ba37a6302479409b95cbcc9a4a71368e2d8a Mon Sep 17 00:00:00 2001 From: zhangcl0222 Date: Fri, 21 Apr 2023 17:02:52 +0800 Subject: [PATCH 11/12] =?UTF-8?q?IssueNo:=20call=5Fmanager=20=E9=83=A8?= =?UTF-8?q?=E4=BB=B6=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Description: call_manager 部件代码优化 Sig: SIG_Telephony Feature or Bugfix: Feature Binary Source: No Change-Id: Ibde22425afb87954a53677a9e90a2ce2d049026e Signed-off-by: zhangcl0222 --- BUILD.gn | 1 - frameworks/native/BUILD.gn | 4 ++-- .../native}/src/call_status_callback_proxy.cpp | 0 .../native}/src/cellular_call_proxy.cpp | 0 .../telephony_interaction/src/cellular_call_connection.cpp | 1 + 5 files changed, 3 insertions(+), 3 deletions(-) rename {services/telephony_interaction => frameworks/native}/src/call_status_callback_proxy.cpp (100%) rename {services/telephony_interaction => frameworks/native}/src/cellular_call_proxy.cpp (100%) diff --git a/BUILD.gn b/BUILD.gn index 57d61344..a0a88b05 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -86,7 +86,6 @@ ohos_shared_library("tel_call_manager") { "services/telephony_interaction/src/call_status_callback.cpp", "services/telephony_interaction/src/call_status_callback_stub.cpp", "services/telephony_interaction/src/cellular_call_connection.cpp", - "services/telephony_interaction/src/cellular_call_proxy.cpp", "services/telephony_interaction/src/core_service_connection.cpp", "services/telephony_interaction/src/report_call_info_handler.cpp", "services/video/src/video_control_manager.cpp", diff --git a/frameworks/native/BUILD.gn b/frameworks/native/BUILD.gn index db107500..55247845 100644 --- a/frameworks/native/BUILD.gn +++ b/frameworks/native/BUILD.gn @@ -24,8 +24,6 @@ config("call_manager_config") { ohos_shared_library("tel_call_manager_api") { sources = [ - "${SUBSYSTEM_DIR}/services/telephony_interaction/src/call_status_callback_proxy.cpp", - "${SUBSYSTEM_DIR}/services/telephony_interaction/src/cellular_call_proxy.cpp", "src/bluetooth_call_client.cpp", "src/bluetooth_call_proxy.cpp", "src/call_ability_callback.cpp", @@ -33,6 +31,8 @@ ohos_shared_library("tel_call_manager_api") { "src/call_manager_client.cpp", "src/call_manager_proxy.cpp", "src/call_manager_service_proxy.cpp", + "src/call_status_callback_proxy.cpp", + "src/cellular_call_proxy.cpp", ] public_configs = [ ":call_manager_config" ] diff --git a/services/telephony_interaction/src/call_status_callback_proxy.cpp b/frameworks/native/src/call_status_callback_proxy.cpp similarity index 100% rename from services/telephony_interaction/src/call_status_callback_proxy.cpp rename to frameworks/native/src/call_status_callback_proxy.cpp diff --git a/services/telephony_interaction/src/cellular_call_proxy.cpp b/frameworks/native/src/cellular_call_proxy.cpp similarity index 100% rename from services/telephony_interaction/src/cellular_call_proxy.cpp rename to frameworks/native/src/cellular_call_proxy.cpp diff --git a/services/telephony_interaction/src/cellular_call_connection.cpp b/services/telephony_interaction/src/cellular_call_connection.cpp index 1c256cb3..b87a6549 100644 --- a/services/telephony_interaction/src/cellular_call_connection.cpp +++ b/services/telephony_interaction/src/cellular_call_connection.cpp @@ -19,6 +19,7 @@ #include "call_manager_errors.h" #include "call_manager_hisysevent.h" +#include "cellular_call_proxy.h" #include "iservice_registry.h" #include "system_ability.h" #include "system_ability_definition.h" -- Gitee From fe2bf83d40f66b209d146ddd63c64336076819dc Mon Sep 17 00:00:00 2001 From: zhangcl0222 Date: Fri, 28 Apr 2023 16:15:47 +0800 Subject: [PATCH 12/12] =?UTF-8?q?IssueNo:=20call=5Fmanager=20=E9=83=A8?= =?UTF-8?q?=E4=BB=B6bundle.json=E4=BE=9D=E8=B5=96=E9=A1=B9=E6=95=B4?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Description: call_manager 部件bundle.json依赖项整改 Sig: SIG_Telephony Feature or Bugfix: Feature Binary Source: No Signed-off-by: zhangcl0222 Change-Id: I9ac24fa7d5e9e3c136a13093c1ec66ba43a7adab --- bundle.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bundle.json b/bundle.json index 2d267577..71a93ecb 100644 --- a/bundle.json +++ b/bundle.json @@ -32,6 +32,7 @@ "components": [ "ability_base", "ability_runtime", + "access_token", "bluetooth", "c_utils", "common_event_service", @@ -48,13 +49,15 @@ "audio_framework", "multimedia_camera_framework", "multimedia_player_framework", + "napi", "power_manager", "safwk", "samgr", "sms_mms" ], "third_party": [ - "libphonenumber" + "libphonenumber", + "libuv" ] }, "build": { -- Gitee