From bc84b2ffcaf22ff34601b6ebb2f3fb0023692bdd Mon Sep 17 00:00:00 2001 From: fangJinliang1 Date: Wed, 19 Jan 2022 10:03:31 +0800 Subject: [PATCH] code recovery Signed-off-by: fangJinliang1 Change-Id: I1461df4397cfa2c616850af5d499aca0501f82bd --- .../core/common/include/ans_const_define.h | 2 +- .../ans/native/src/notification_template.cpp | 7 +++++ interfaces/kits/napi/ans/src/ans_template.cpp | 6 ++-- interfaces/kits/napi/ans/src/common.cpp | 2 +- services/ans/BUILD.gn | 1 + .../include/advanced_notification_service.h | 1 + .../ans/src/advanced_notification_service.cpp | 28 +++++++++++++++++++ services/ans/test/unittest/BUILD.gn | 1 + services/test/moduletest/BUILD.gn | 1 + 9 files changed, 44 insertions(+), 5 deletions(-) diff --git a/frameworks/ans/core/common/include/ans_const_define.h b/frameworks/ans/core/common/include/ans_const_define.h index a38245ac7..ad5250663 100644 --- a/frameworks/ans/core/common/include/ans_const_define.h +++ b/frameworks/ans/core/common/include/ans_const_define.h @@ -45,7 +45,7 @@ const static Uri DEFAULT_NOTIFICATION_SOUND("file://system/etc/Light.ogg"); const static std::vector DEFAULT_NOTIFICATION_VIBRATION = {200}; // Default path for template -const static std::string DEFAULT_TEMPLATE_PATH("/system/etc/external.json"); +const static std::string DEFAULT_TEMPLATE_PATH("/system/etc/NotificationTemplate/external.json"); } // namespace Notification } // namespace OHOS diff --git a/frameworks/ans/native/src/notification_template.cpp b/frameworks/ans/native/src/notification_template.cpp index 6bc3b1ed5..894bd0e34 100644 --- a/frameworks/ans/native/src/notification_template.cpp +++ b/frameworks/ans/native/src/notification_template.cpp @@ -57,6 +57,13 @@ bool NotificationTemplate::Marshalling(Parcel &parcel) const return false; } + if (valid) { + if (!parcel.WriteParcelable(templateData_.get())) { + ANS_LOGE("Failed to write templateData"); + return false; + } + } + return true; } diff --git a/interfaces/kits/napi/ans/src/ans_template.cpp b/interfaces/kits/napi/ans/src/ans_template.cpp index 1efa21250..8c33a73f7 100644 --- a/interfaces/kits/napi/ans/src/ans_template.cpp +++ b/interfaces/kits/napi/ans/src/ans_template.cpp @@ -41,7 +41,7 @@ napi_value ParseParameters(const napi_env &env, const napi_callback_info &info, napi_value argv[IS_TEMPLATE_MAX_PARA] = {nullptr}; napi_value thisVar = nullptr; NAPI_CALL(env, napi_get_cb_info(env, info, &argc, argv, &thisVar, NULL)); - NAPI_ASSERT(env, argc < IS_TEMPLATE_MAX_PARA, "Wrong number of arguments"); + NAPI_ASSERT(env, argc <= IS_TEMPLATE_MAX_PARA, "Wrong number of arguments"); napi_valuetype valuetype = napi_undefined; // argv[0]: name: string @@ -89,7 +89,7 @@ napi_value IsSupportTemplate(napi_env env, napi_callback_info info) ANS_LOGI("IsSupportTemplate napi_create_async_work start"); AsyncCallbackInfoTemplate *asyncCallbackinfo = (AsyncCallbackInfoTemplate *)data; - asyncCallbackinfo->info.errorCode = NotificationHelper::CancelNotification( + asyncCallbackinfo->info.errorCode = NotificationHelper::IsSupportTemplate( asyncCallbackinfo->params.templateName, asyncCallbackinfo->params.support); }, [](napi_env env, napi_status status, void *data) { @@ -105,7 +105,7 @@ napi_value IsSupportTemplate(napi_env env, napi_callback_info info) } napi_delete_async_work(env, asyncCallbackinfo->asyncWork); - if (asyncCallbackinfo) { + if (asyncCallbackinfo != nullptr) { delete asyncCallbackinfo; asyncCallbackinfo = nullptr; } diff --git a/interfaces/kits/napi/ans/src/common.cpp b/interfaces/kits/napi/ans/src/common.cpp index 8849e7e61..6ec637d36 100644 --- a/interfaces/kits/napi/ans/src/common.cpp +++ b/interfaces/kits/napi/ans/src/common.cpp @@ -3970,7 +3970,7 @@ napi_value Common::GetNotificationTemplate(const napi_env &env, const napi_value ANS_LOGE("template is null"); return nullptr; } - if (GetNotificationTemplateInfo(env, value, templ) == nullptr) { + if (GetNotificationTemplateInfo(env, result, templ) == nullptr) { return nullptr; } diff --git a/services/ans/BUILD.gn b/services/ans/BUILD.gn index 7694c78b1..a3de29582 100644 --- a/services/ans/BUILD.gn +++ b/services/ans/BUILD.gn @@ -65,6 +65,7 @@ ohos_shared_library("libans") { "${frameworks_path}/wantagent:wantagent_innerkits", "//base/account/os_account/frameworks/osaccount/native:os_account_innerkits", "//base/miscservices/time/services:time_service", + "//foundation/aafwk/standard/frameworks/kits/ability/native:abilitykit_native", "//foundation/aafwk/standard/services/abilitymgr:abilityms", "//foundation/distributedschedule/dmsfwk/services/dtbschedmgr:distributedschedsvr", "//utils/native/base:utils", diff --git a/services/ans/include/advanced_notification_service.h b/services/ans/include/advanced_notification_service.h index e1fb967dc..46244f4b9 100644 --- a/services/ans/include/advanced_notification_service.h +++ b/services/ans/include/advanced_notification_service.h @@ -172,6 +172,7 @@ private: bool CheckPermission(const std::string &bundleName); ErrCode PrepereContinuousTaskNotificationRequest(const sptr &request, const int &uid); bool GetActiveUserId(int& userId); + void TriggerRemoveWantAgent(const sptr &request); #ifdef DISTRIBUTED_NOTIFICATION_SUPPORTED std::vector GetLocalNotificationKeys(const sptr &bundleOption); diff --git a/services/ans/src/advanced_notification_service.cpp b/services/ans/src/advanced_notification_service.cpp index 95ae995b2..084703d88 100644 --- a/services/ans/src/advanced_notification_service.cpp +++ b/services/ans/src/advanced_notification_service.cpp @@ -19,6 +19,7 @@ #include #include +#include "ability_context.h" #include "ans_const_define.h" #include "ans_inner_errors.h" #include "ans_log_wrapper.h" @@ -33,6 +34,8 @@ #include "os_account_manager.h" #include "permission_filter.h" #include "reminder_data_manager.h" +#include "trigger_info.h" +#include "want_agent_helper.h" #ifdef DISTRIBUTED_NOTIFICATION_SUPPORTED #include "distributed_notification_manager.h" @@ -1105,6 +1108,10 @@ ErrCode AdvancedNotificationService::RemoveFromNotificationList(const sptrnotification; + // delete or delete all, call the function + if (!isCancel) { + TriggerRemoveWantAgent(record->request); + } notificationList_.remove(record); return ERR_OK; } @@ -1874,6 +1881,8 @@ ErrCode AdvancedNotificationService::RemoveNotification( handler_->PostSyncTask(std::bind([&]() { sptr notification = nullptr; + sptr notificationRequest = nullptr; + #ifdef DISTRIBUTED_NOTIFICATION_SUPPORTED std::string deviceId; #endif @@ -1892,6 +1901,7 @@ ErrCode AdvancedNotificationService::RemoveNotification( deviceId = record->deviceId; #endif notification = record->notification; + notificationRequest = record->request; notificationList_.remove(record); result = ERR_OK; break; @@ -1907,6 +1917,8 @@ ErrCode AdvancedNotificationService::RemoveNotification( DoDistributedDelete(deviceId, notification); #endif } + + TriggerRemoveWantAgent(notificationRequest); })); return result; @@ -1957,6 +1969,8 @@ ErrCode AdvancedNotificationService::RemoveAllNotifications(const sptrdeviceId, record->notification); #endif } + + TriggerRemoveWantAgent(record->request); } })); @@ -2664,6 +2678,7 @@ ErrCode AdvancedNotificationService::IsSupportTemplate(const std::string& templa })); return result; } + bool AdvancedNotificationService::GetActiveUserId(int& userId) { std::vector osAccountInfos; @@ -2677,5 +2692,18 @@ bool AdvancedNotificationService::GetActiveUserId(int& userId) } return false; } + +void AdvancedNotificationService::TriggerRemoveWantAgent(const sptr &request) +{ + ANS_LOGD("%{public}s", __FUNCTION__); + + if (request == nullptr || request->GetRemovalWantAgent() == nullptr) { + return; + } + OHOS::Notification::WantAgent::TriggerInfo triggerInfo; + std::shared_ptr context = std::make_shared(); + std::shared_ptr agent = request->GetRemovalWantAgent(); + WantAgent::WantAgentHelper::TriggerWantAgent(context, agent, nullptr, triggerInfo); +} } // namespace Notification } // namespace OHOS \ No newline at end of file diff --git a/services/ans/test/unittest/BUILD.gn b/services/ans/test/unittest/BUILD.gn index 86c2c6e2b..bf2a10e6b 100644 --- a/services/ans/test/unittest/BUILD.gn +++ b/services/ans/test/unittest/BUILD.gn @@ -81,6 +81,7 @@ ohos_unittest("ans_unit_test") { "${frameworks_path}/wantagent:wantagent_innerkits", "//base/account/os_account/frameworks/osaccount/native:os_account_innerkits", "//base/miscservices/time/services:time_service", + "//foundation/aafwk/standard/frameworks/kits/ability/native:abilitykit_native", "//foundation/distributeddatamgr/distributeddatamgr/interfaces/innerkits/distributeddata:distributeddata_inner", "//foundation/distributedschedule/dmsfwk/services/dtbschedmgr:distributedschedsvr", "//third_party/googletest:gtest_main", diff --git a/services/test/moduletest/BUILD.gn b/services/test/moduletest/BUILD.gn index c5587e171..405b7fb7c 100644 --- a/services/test/moduletest/BUILD.gn +++ b/services/test/moduletest/BUILD.gn @@ -74,6 +74,7 @@ ohos_moduletest("ans_module_test") { "${frameworks_path}/wantagent:wantagent_innerkits", "//base/account/os_account/frameworks/osaccount/native:os_account_innerkits", "//base/miscservices/time/services:time_service", + "//foundation/aafwk/standard/frameworks/kits/ability/native:abilitykit_native", "//foundation/aafwk/standard/services/abilitymgr:abilityms", "//foundation/distributeddatamgr/distributeddatamgr/interfaces/innerkits/distributeddata:distributeddata_inner", "//foundation/distributedschedule/dmsfwk/services/dtbschedmgr:distributedschedsvr", -- Gitee