diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000000000000000000000000000000000000..5aae30750ebc146be575ccd23865e1f6f9301c03 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,59 @@ +{ + "files.associations": { + "string": "cpp", + "array": "cpp", + "atomic": "cpp", + "bit": "cpp", + "*.tcc": "cpp", + "cctype": "cpp", + "chrono": "cpp", + "clocale": "cpp", + "cmath": "cpp", + "condition_variable": "cpp", + "cstdarg": "cpp", + "cstddef": "cpp", + "cstdint": "cpp", + "cstdio": "cpp", + "cstdlib": "cpp", + "cstring": "cpp", + "ctime": "cpp", + "cwchar": "cpp", + "cwctype": "cpp", + "deque": "cpp", + "list": "cpp", + "map": "cpp", + "set": "cpp", + "unordered_map": "cpp", + "vector": "cpp", + "exception": "cpp", + "algorithm": "cpp", + "functional": "cpp", + "iterator": "cpp", + "memory": "cpp", + "memory_resource": "cpp", + "numeric": "cpp", + "optional": "cpp", + "random": "cpp", + "ratio": "cpp", + "string_view": "cpp", + "system_error": "cpp", + "tuple": "cpp", + "type_traits": "cpp", + "utility": "cpp", + "fstream": "cpp", + "initializer_list": "cpp", + "iomanip": "cpp", + "iosfwd": "cpp", + "iostream": "cpp", + "istream": "cpp", + "limits": "cpp", + "mutex": "cpp", + "new": "cpp", + "ostream": "cpp", + "sstream": "cpp", + "stdexcept": "cpp", + "streambuf": "cpp", + "thread": "cpp", + "typeinfo": "cpp" + } +} \ No newline at end of file diff --git a/frameworks/ans/native/src/notification_request.cpp b/frameworks/ans/native/src/notification_request.cpp index 29d6657aa8d70481a06bc93402cd0811129876b5..463ffe7dfe639e759833baaf6de59bb5d4647d7b 100644 --- a/frameworks/ans/native/src/notification_request.cpp +++ b/frameworks/ans/native/src/notification_request.cpp @@ -51,13 +51,6 @@ NotificationRequest::NotificationRequest(int32_t notificationId) : notificationI deliveryTime_ = GetNowSysTime(); } -NotificationRequest::NotificationRequest(const std::shared_ptr &context, int32_t notificationId) - : notificationId_(notificationId), context_(context) -{ - createTime_ = GetNowSysTime(); - deliveryTime_ = GetNowSysTime(); -} - NotificationRequest::NotificationRequest(const NotificationRequest &other) { CopyBase(other); @@ -674,7 +667,6 @@ std::string NotificationRequest::Dump() ", unremovable = " + (unremovable_ ? "true" : "false") + ", floatingIcon = " + (floatingIcon_ ? "true" : "false") + ", onlyLocal = " + (onlyLocal_ ? "true" : "false") + ", permitted = " + (permitted_ ? "true" : "false") + - ", context = " + (context_ ? "not null" : "null") + ", wantAgent = " + (wantAgent_ ? "not null" : "null") + ", removalWantAgent = " + (removalWantAgent_ ? "not null" : "null") + ", maxScreenWantAgent = " + (maxScreenWantAgent_ ? "not null" : "null") + ", additionalParams = " + (additionalParams_ ? "not null" : "null") + @@ -1414,7 +1406,6 @@ void NotificationRequest::CopyOther(const NotificationRequest &other) this->onlyLocal_ = other.onlyLocal_; this->permitted_ = other.permitted_; - this->context_ = other.context_; this->wantAgent_ = other.wantAgent_; this->removalWantAgent_ = other.removalWantAgent_; this->maxScreenWantAgent_ = other.maxScreenWantAgent_; diff --git a/frameworks/wantagent/BUILD.gn b/frameworks/wantagent/BUILD.gn index 54be266712af53d3cfaf30fb2abd4e7e4d66dae3..9eb9bd4684b1b876b839b961666a88b82fc1c69a 100644 --- a/frameworks/wantagent/BUILD.gn +++ b/frameworks/wantagent/BUILD.gn @@ -33,6 +33,7 @@ config("wantagent_innerkits_public_config") { "//foundation/appexecfwk/standard/interfaces/innerkits/appexecfwk_core/include/appmgr", "//foundation/appexecfwk/standard/interfaces/innerkits/appexecfwk_core/include/bundlemgr", "//foundation/appexecfwk/standard/interfaces/innerkits/libeventhandler/include", + "//foundation/appexecfwk/standard/kits/appkit/native/ability_runtime/context", "//foundation/appexecfwk/standard/kits/appkit/native/app/include", "//third_party/icu/icu4c/source/common", ] @@ -62,6 +63,7 @@ ohos_shared_library("wantagent_innerkits") { deps = [ "//foundation/aafwk/standard/frameworks/kits/ability/native:abilitykit_native", "//foundation/aafwk/standard/services/abilitymgr:abilityms", + "//foundation/appexecfwk/standard/kits:app_context", "//foundation/appexecfwk/standard/kits:appkit_native", "//utils/native/base:utils", ] diff --git a/frameworks/wantagent/src/pending_want.cpp b/frameworks/wantagent/src/pending_want.cpp index 5781cdec6b28155c0769083e3e811a8a9ffb6a70..ebf1f4ad55162d11b6e6709f736fd5cafdc77fd0 100644 --- a/frameworks/wantagent/src/pending_want.cpp +++ b/frameworks/wantagent/src/pending_want.cpp @@ -40,19 +40,15 @@ WantAgentConstant::OperationType PendingWant::GetType(const sptr PendingWant::GetAbility( - const std::shared_ptr &context, int requestCode, const std::shared_ptr &want, unsigned int flags) + const std::string bundleName, int requestCode, const std::shared_ptr &want, unsigned int flags) { - return GetAbility(context, requestCode, want, flags, nullptr); + return GetAbility(bundleName, requestCode, want, flags, nullptr); } -std::shared_ptr PendingWant::GetAbility(const std::shared_ptr &context, int requestCode, +std::shared_ptr PendingWant::GetAbility(const std::string bundleName, int requestCode, const std::shared_ptr &want, unsigned int flags, const std::shared_ptr &options) { WANT_AGENT_LOGI("PendingWant::GetAbility begin."); - if (context == nullptr) { - WANT_AGENT_LOGE("PendingWant::GetAbility invalid input param."); - return nullptr; - } WantsInfo wantsInfo; wantsInfo.want = *want; @@ -64,7 +60,7 @@ std::shared_ptr PendingWant::GetAbility(const std::shared_ptrGetBundleName(); + wantSenderInfo.bundleName = bundleName; wantSenderInfo.flags = flags; wantSenderInfo.userId = 0; wantSenderInfo.requestCode = requestCode; @@ -74,23 +70,18 @@ std::shared_ptr PendingWant::GetAbility(const std::shared_ptr(target); } -std::shared_ptr PendingWant::GetAbilities(const std::shared_ptr &context, int requestCode, +std::shared_ptr PendingWant::GetAbilities(const std::string bundleName, int requestCode, std::vector> &wants, unsigned int flags) { - return GetAbilities(context, requestCode, wants, flags, nullptr); + return GetAbilities(bundleName, requestCode, wants, flags, nullptr); } -std::shared_ptr PendingWant::GetAbilities(const std::shared_ptr &context, int requestCode, +std::shared_ptr PendingWant::GetAbilities(const std::string bundleName, int requestCode, std::vector> &wants, unsigned int flags, const std::shared_ptr &options) { - if (context == nullptr) { - WANT_AGENT_LOGE("PendingWant::GetAbilities invalid input param."); - return nullptr; - } - WantSenderInfo wantSenderInfo; wantSenderInfo.type = (int32_t)WantAgentConstant::OperationType::START_ABILITIES; - wantSenderInfo.bundleName = context->GetBundleName(); + wantSenderInfo.bundleName = bundleName; wantSenderInfo.flags = flags; wantSenderInfo.userId = 0; wantSenderInfo.requestCode = requestCode; @@ -111,19 +102,14 @@ std::shared_ptr PendingWant::GetAbilities(const std::shared_ptr PendingWant::GetCommonEvent( - const std::shared_ptr &context, int requestCode, const std::shared_ptr &want, unsigned int flags) + const std::string bundleName, int requestCode, const std::shared_ptr &want, unsigned int flags) { - return GetCommonEventAsUser(context, requestCode, want, flags, 0); + return GetCommonEventAsUser(bundleName, requestCode, want, flags, 0); } -std::shared_ptr PendingWant::GetCommonEventAsUser(const std::shared_ptr &context, int requestCode, +std::shared_ptr PendingWant::GetCommonEventAsUser(const std::string bundleName, int requestCode, const std::shared_ptr &want, unsigned int flags, int uid) { - if (context == nullptr) { - WANT_AGENT_LOGE("PendingWant::GetCommonEventAsUser invalid input param."); - return nullptr; - } - WantsInfo wantsInfo; if (want != nullptr) { wantsInfo.want = *want; @@ -133,7 +119,7 @@ std::shared_ptr PendingWant::GetCommonEventAsUser(const std::shared WantSenderInfo wantSenderInfo; wantSenderInfo.type = (int32_t)WantAgentConstant::OperationType::SEND_COMMON_EVENT; wantSenderInfo.allWants.push_back(wantsInfo); - wantSenderInfo.bundleName = context->GetBundleName(); + wantSenderInfo.bundleName = bundleName; wantSenderInfo.flags = flags; wantSenderInfo.userId = 0; wantSenderInfo.requestCode = requestCode; @@ -143,27 +129,22 @@ std::shared_ptr PendingWant::GetCommonEventAsUser(const std::shared } std::shared_ptr PendingWant::GetService( - const std::shared_ptr &context, int requestCode, const std::shared_ptr &want, unsigned int flags) + const std::string bundleName, int requestCode, const std::shared_ptr &want, unsigned int flags) { - return BuildServicePendingWant(context, requestCode, want, flags, WantAgentConstant::OperationType::START_SERVICE); + return BuildServicePendingWant(bundleName, requestCode, want, flags, WantAgentConstant::OperationType::START_SERVICE); } std::shared_ptr PendingWant::GetForegroundService( - const std::shared_ptr &context, int requestCode, const std::shared_ptr &want, unsigned int flags) + const std::string bundleName, int requestCode, const std::shared_ptr &want, unsigned int flags) { return BuildServicePendingWant( - context, requestCode, want, flags, WantAgentConstant::OperationType::START_FOREGROUND_SERVICE); + bundleName, requestCode, want, flags, WantAgentConstant::OperationType::START_FOREGROUND_SERVICE); } -std::shared_ptr PendingWant::BuildServicePendingWant(const std::shared_ptr &context, +std::shared_ptr PendingWant::BuildServicePendingWant(const std::string bundleName, int requestCode, const std::shared_ptr &want, unsigned int flags, WantAgentConstant::OperationType serviceKind) { - if (context == nullptr) { - WANT_AGENT_LOGE("PendingWant::BuildServicePendingWant invalid input param."); - return nullptr; - } - WantsInfo wantsInfo; if (want != nullptr) { wantsInfo.want = *want; @@ -173,7 +154,7 @@ std::shared_ptr PendingWant::BuildServicePendingWant(const std::sha WantSenderInfo wantSenderInfo; wantSenderInfo.type = (int32_t)serviceKind; wantSenderInfo.allWants.push_back(wantsInfo); - wantSenderInfo.bundleName = context->GetBundleName(); + wantSenderInfo.bundleName = bundleName; wantSenderInfo.flags = flags; wantSenderInfo.userId = 0; wantSenderInfo.requestCode = requestCode; @@ -189,59 +170,54 @@ void PendingWant::Cancel(const sptr &target) void PendingWant::Send(const sptr &target) { - Send(nullptr, 0, nullptr, nullptr, "", nullptr, target); + Send(0, nullptr, nullptr, "", nullptr, target); } void PendingWant::Send(int resultCode, const sptr &target) { - Send(nullptr, resultCode, nullptr, nullptr, "", nullptr, target); + Send(resultCode, nullptr, nullptr, "", nullptr, target); } -void PendingWant::Send(const std::shared_ptr &context, int resultCode, const std::shared_ptr &want, +void PendingWant::Send(int resultCode, const std::shared_ptr &want, const sptr &target) { - Send(context, resultCode, want, nullptr, "", nullptr, target); + Send(resultCode, want, nullptr, "", nullptr, target); } void PendingWant::Send( int resultCode, const sptr &onCompleted, const sptr &target) { - Send(nullptr, resultCode, nullptr, onCompleted, "", nullptr, target); + Send(resultCode, nullptr, onCompleted, "", nullptr, target); } -void PendingWant::Send(const std::shared_ptr &context, int resultCode, const std::shared_ptr &want, +void PendingWant::Send(int resultCode, const std::shared_ptr &want, const sptr &onCompleted, const sptr &target) { - Send(context, resultCode, want, onCompleted, "", nullptr, target); + Send(resultCode, want, onCompleted, "", nullptr, target); } -void PendingWant::Send(const std::shared_ptr &context, int resultCode, const std::shared_ptr &want, +void PendingWant::Send(int resultCode, const std::shared_ptr &want, const sptr &onCompleted, const std::string &requiredPermission, const sptr &target) { - Send(context, resultCode, want, onCompleted, requiredPermission, nullptr, target); + Send(resultCode, want, onCompleted, requiredPermission, nullptr, target); } -void PendingWant::Send(const std::shared_ptr &context, int resultCode, const std::shared_ptr &want, +void PendingWant::Send(int resultCode, const std::shared_ptr &want, const sptr &onCompleted, const std::string &requiredPermission, const std::shared_ptr &options, const sptr &target) { HILOG_INFO("%{public}s:begin.", __func__); - if (SendAndReturnResult(context, resultCode, want, onCompleted, requiredPermission, options, target) != 0) { + if (SendAndReturnResult(resultCode, want, onCompleted, requiredPermission, options, target) != 0) { WANT_AGENT_LOGE("PendingWant::SendAndReturnResult failed."); } } -int PendingWant::SendAndReturnResult(const std::shared_ptr &context, int resultCode, - const std::shared_ptr &want, const sptr &onCompleted, - const std::string &requiredPermission, const std::shared_ptr &options, - const sptr &target) +int PendingWant::SendAndReturnResult(int resultCode, const std::shared_ptr &want, + const sptr &onCompleted, const std::string &requiredPermission, + const std::shared_ptr &options, const sptr &target) { HILOG_INFO("%{public}s:begin.", __func__); - if (context == nullptr) { - WANT_AGENT_LOGE("PendingWant::SendAndReturnResult invalid input param."); - return 1; - } SenderInfo senderInfo; senderInfo.resolvedType = want != nullptr ? want->GetType() : ""; diff --git a/frameworks/wantagent/src/want_agent_helper.cpp b/frameworks/wantagent/src/want_agent_helper.cpp index 7f3d0cb13f8ae6bb9e7cb12f65186eb86eb8fd10..7330c4fdb3adcf8f789f2fc44f564c25822e8954 100644 --- a/frameworks/wantagent/src/want_agent_helper.cpp +++ b/frameworks/wantagent/src/want_agent_helper.cpp @@ -63,15 +63,8 @@ unsigned int WantAgentHelper::FlagsTransformer(const std::vector WantAgentHelper::GetWantAgent( - const std::shared_ptr &context, const WantAgentInfo ¶msInfo) +std::shared_ptr WantAgentHelper::GetWantAgent(std::string bundleName, const WantAgentInfo ¶msInfo) { - WANT_AGENT_LOGI("WantAgentHelper::GetWantAgent begin."); - if (context == nullptr) { - WANT_AGENT_LOGE("WantAgentHelper::GetWantAgent invalid input param."); - return nullptr; - } - std::vector> wants = paramsInfo.GetWants(); if (wants.empty()) { WANT_AGENT_LOGE("WantAgentHelper::GetWantAgent invalid input param."); @@ -95,19 +88,19 @@ std::shared_ptr WantAgentHelper::GetWantAgent( WantAgentConstant::OperationType operationType = paramsInfo.GetOperationType(); switch (operationType) { case WantAgentConstant::OperationType::START_ABILITY: - pendingWant = PendingWant::GetAbility(context, requestCode, wants[0], flags, extraInfo); + pendingWant = PendingWant::GetAbility(bundleName, requestCode, wants[0], flags, extraInfo); break; case WantAgentConstant::OperationType::START_ABILITIES: - pendingWant = PendingWant::GetAbilities(context, requestCode, wants, flags, extraInfo); + pendingWant = PendingWant::GetAbilities(bundleName, requestCode, wants, flags, extraInfo); break; case WantAgentConstant::OperationType::START_SERVICE: - pendingWant = PendingWant::GetService(context, requestCode, wants[0], flags); + pendingWant = PendingWant::GetService(bundleName, requestCode, wants[0], flags); break; case WantAgentConstant::OperationType::START_FOREGROUND_SERVICE: - pendingWant = PendingWant::GetForegroundService(context, requestCode, wants[0], flags); + pendingWant = PendingWant::GetForegroundService(bundleName, requestCode, wants[0], flags); break; case WantAgentConstant::OperationType::SEND_COMMON_EVENT: - pendingWant = PendingWant::GetCommonEvent(context, requestCode, wants[0], flags); + pendingWant = PendingWant::GetCommonEvent(bundleName, requestCode, wants[0], flags); break; default: WANT_AGENT_LOGE("WantAgentHelper::GetWantAgent operation type is error."); @@ -124,6 +117,19 @@ std::shared_ptr WantAgentHelper::GetWantAgent( return agent; } +std::shared_ptr WantAgentHelper::GetWantAgent( + const std::shared_ptr &context, const WantAgentInfo ¶msInfo) +{ + WANT_AGENT_LOGI("WantAgentHelper::GetWantAgent begin."); + if (context == nullptr) { + WANT_AGENT_LOGE("WantAgentHelper::GetWantAgent invalid input param."); + return nullptr; + } + + std::string bundleName = context->GetBundleName(); + return GetWantAgent(bundleName, paramsInfo); +} + std::shared_ptr WantAgentHelper::GetWantAgent(const WantAgentInfo ¶msInfo) { std::vector> wants = paramsInfo.GetWants(); @@ -175,14 +181,10 @@ WantAgentConstant::OperationType WantAgentHelper::GetType(const std::shared_ptr< return agent->GetPendingWant()->GetType(agent->GetPendingWant()->GetTarget()); } -void WantAgentHelper::TriggerWantAgent(const std::shared_ptr &context, const std::shared_ptr &agent, +void WantAgentHelper::TriggerWantAgent(const std::shared_ptr &agent, const std::shared_ptr &callback, const TriggerInfo ¶msInfo) { HILOG_INFO("%{public}s:begin.", __func__); - if ((context == nullptr) || (agent == nullptr)) { - WANT_AGENT_LOGE("WantAgentHelper::TriggerWantAgent invalid input param."); - return; - } std::shared_ptr pendingWant = agent->GetPendingWant(); WantAgentConstant::OperationType type = GetType(agent); @@ -191,20 +193,15 @@ void WantAgentHelper::TriggerWantAgent(const std::shared_ptr &context, dispatcher = new (std::nothrow) CompletedDispatcher(pendingWant, callback, nullptr); } - Send(context, pendingWant, type, dispatcher, paramsInfo); + Send(pendingWant, type, dispatcher, paramsInfo); } -void WantAgentHelper::Send(const std::shared_ptr &context, const std::shared_ptr &pendingWant, +void WantAgentHelper::Send(const std::shared_ptr &pendingWant, WantAgentConstant::OperationType type, const sptr &callBack, const TriggerInfo ¶msInfo) { HILOG_INFO("%{public}s:begin.", __func__); - if ((context == nullptr) || (pendingWant == nullptr)) { - WANT_AGENT_LOGE("WantAgentHelper::Send invalid input param."); - return; - } - pendingWant->Send(context, - paramsInfo.GetResultCode(), + pendingWant->Send(paramsInfo.GetResultCode(), paramsInfo.GetWant(), callBack, paramsInfo.GetPermission(), diff --git a/frameworks/wantagent/test/unittest/pending_want_test/pending_want_test.cpp b/frameworks/wantagent/test/unittest/pending_want_test/pending_want_test.cpp index 196a3e36309e7bbf810c5638f4a12a983cc47385..bacafb10d7da0a2132c04521c0c7d5aeaf3d6909 100644 --- a/frameworks/wantagent/test/unittest/pending_want_test/pending_want_test.cpp +++ b/frameworks/wantagent/test/unittest/pending_want_test/pending_want_test.cpp @@ -166,7 +166,7 @@ HWTEST_F(PendingWantTest, PendingWant_0400, Function | MediumTest | Level1) want->SetElement(element); unsigned int flags = 1; flags |= FLAG_NO_CREATE; - std::shared_ptr pendingWant = PendingWant::GetAbility(nullptr, requestCode, want, flags); + std::shared_ptr pendingWant = PendingWant::GetAbility("", requestCode, want, flags); EXPECT_EQ(pendingWant, nullptr); } @@ -184,7 +184,7 @@ HWTEST_F(PendingWantTest, PendingWant_0500, Function | MediumTest | Level1) want->SetElement(element); unsigned int flags = 1; flags |= FLAG_NO_CREATE; - std::shared_ptr pendingWant = PendingWant::GetAbility(context, requestCode, want, flags); + std::shared_ptr pendingWant = PendingWant::GetAbility("bundleName", requestCode, want, flags); EXPECT_NE(pendingWant, nullptr); } @@ -206,7 +206,7 @@ HWTEST_F(PendingWantTest, PendingWant_0600, Function | MediumTest | Level1) wParams->SetParam(key, Boolean::Box(value)); unsigned int flags = 1; flags |= FLAG_NO_CREATE; - std::shared_ptr pendingWant = PendingWant::GetAbility(context, requestCode, want, flags, wParams); + std::shared_ptr pendingWant = PendingWant::GetAbility("bundleName", requestCode, want, flags, wParams); EXPECT_NE(pendingWant, nullptr); } @@ -316,7 +316,7 @@ HWTEST_F(PendingWantTest, PendingWant_1100, Function | MediumTest | Level1) want->SetElement(element); unsigned int flags = 1; flags |= FLAG_NO_CREATE; - std::shared_ptr pendingWant = PendingWant::GetCommonEventAsUser(context, requestCode, want, flags, 0); + std::shared_ptr pendingWant = PendingWant::GetCommonEventAsUser("bundleName", requestCode, want, flags, 0); EXPECT_NE(pendingWant, nullptr); } @@ -332,7 +332,7 @@ HWTEST_F(PendingWantTest, PendingWant_1200, Function | MediumTest | Level1) std::shared_ptr want; unsigned int flags = 1; flags |= FLAG_NO_CREATE; - std::shared_ptr pendingWant = PendingWant::GetCommonEventAsUser(context, requestCode, want, flags, 0); + std::shared_ptr pendingWant = PendingWant::GetCommonEventAsUser("bundleName", requestCode, want, flags, 0); EXPECT_NE(pendingWant, nullptr); } @@ -348,7 +348,7 @@ HWTEST_F(PendingWantTest, PendingWant_1300, Function | MediumTest | Level1) std::shared_ptr want; unsigned int flags = 1; flags |= FLAG_NO_CREATE; - std::shared_ptr pendingWant = PendingWant::GetService(context, requestCode, want, flags); + std::shared_ptr pendingWant = PendingWant::GetService("bundleName", requestCode, want, flags); EXPECT_NE(pendingWant, nullptr); } @@ -381,7 +381,7 @@ HWTEST_F(PendingWantTest, PendingWant_1500, Function | MediumTest | Level1) std::shared_ptr want; unsigned int flags = 1; flags |= FLAG_NO_CREATE; - std::shared_ptr pendingWant = PendingWant::GetForegroundService(context, requestCode, want, flags); + std::shared_ptr pendingWant = PendingWant::GetForegroundService("bundleName", requestCode, want, flags); EXPECT_NE(pendingWant, nullptr); } @@ -474,7 +474,6 @@ HWTEST_F(PendingWantTest, PendingWant_2000, Function | MediumTest | Level1) HWTEST_F(PendingWantTest, PendingWant_2100, Function | MediumTest | Level1) { PendingWant pendingWant(nullptr); - std::shared_ptr context = std::make_shared(); int requestCode = 10; std::shared_ptr want = std::make_shared(); ElementName element("device", "bundleName", "abilityName"); @@ -487,7 +486,7 @@ HWTEST_F(PendingWantTest, PendingWant_2100, Function | MediumTest | Level1) flags |= FLAG_NO_CREATE; AbilityManagerClient::GetInstance()->Connect(); EXPECT_EQ(INNER_ERR, - pendingWant.SendAndReturnResult(context, requestCode, want, nullptr, "Permission", nullptr, nullptr)); + pendingWant.SendAndReturnResult(requestCode, want, nullptr, "Permission", nullptr, nullptr)); } /* @@ -509,7 +508,7 @@ HWTEST_F(PendingWantTest, PendingWant_2200, Function | MediumTest | Level1) unsigned int flags = 1; flags |= FLAG_NO_CREATE; AbilityManagerClient::GetInstance()->Connect(); - EXPECT_EQ(1, pendingWant.SendAndReturnResult(nullptr, requestCode, want, nullptr, "Permission", nullptr, nullptr)); + EXPECT_EQ(1, pendingWant.SendAndReturnResult(requestCode, want, nullptr, "Permission", nullptr, nullptr)); } /* diff --git a/interfaces/innerkits/ans/native/include/notification_request.h b/interfaces/innerkits/ans/native/include/notification_request.h index c7f59f8e3790574b99132acd95facad6d6dff207..3b9c9d87dd27ed7a5a7af59cc9486a6d84c8f6da 100644 --- a/interfaces/innerkits/ans/native/include/notification_request.h +++ b/interfaces/innerkits/ans/native/include/notification_request.h @@ -149,14 +149,6 @@ public: */ explicit NotificationRequest(int32_t notificationId); - /** - * A constructor used to create a NotificationRequest instance based on the specified context and notification ID. - * To publish a notification with a custom view, you must call such a constructor with the Context specified. - * @param context the specified context - * @param notificationId notification ID - */ - NotificationRequest(const std::shared_ptr &context, int32_t notificationId); - /** * A constructor used to create a NotificationRequest instance by copying parameters from an existing one. * @param other the existing object @@ -1012,7 +1004,6 @@ private: bool onlyLocal_ {false}; bool permitted_ {true}; - std::shared_ptr context_ {}; std::shared_ptr wantAgent_ {}; std::shared_ptr removalWantAgent_ {}; std::shared_ptr maxScreenWantAgent_ {}; diff --git a/interfaces/innerkits/wantagent/include/pending_want.h b/interfaces/innerkits/wantagent/include/pending_want.h index 4f034279f0a0c4086373f13c8e8bafa4ce37683f..aff6c45144b5035086be4f14a271d36e5e2ee1a9 100644 --- a/interfaces/innerkits/wantagent/include/pending_want.h +++ b/interfaces/innerkits/wantagent/include/pending_want.h @@ -26,8 +26,10 @@ #include "event_handler.h" #include "want.h" #include "want_agent_constant.h" -#include "want_receiver_stub.h" #include "want_params.h" +#include "want_receiver_stub.h" +#include "want_sender_info.h" +#include "want_sender_stub.h" namespace OHOS::Notification::WantAgent { class PendingWant final : public std::enable_shared_from_this, public Parcelable { @@ -53,7 +55,7 @@ public: * parameters. May return null only if FLAG_NO_CREATE has been * supplied. */ - static std::shared_ptr GetAbility(const std::shared_ptr &context, int requestCode, + static std::shared_ptr GetAbility(const std::string bundleName, int requestCode, const std::shared_ptr &want, unsigned int flags); /** @@ -72,7 +74,7 @@ public: * parameters. May return null only if FLAG_NO_CREATE has been * supplied. */ - static std::shared_ptr GetAbility(const std::shared_ptr &context, int requestCode, + static std::shared_ptr GetAbility(const std::string bundleName, int requestCode, const std::shared_ptr &want, unsigned int flags, const std::shared_ptr &options); @@ -93,7 +95,7 @@ public: * parameters. May return null only if FLAG_NO_CREATE has been * supplied. */ - static std::shared_ptr GetAbilities(const std::shared_ptr &context, + static std::shared_ptr GetAbilities(const std::string bundleName, int requestCode, std::vector> &wants, unsigned int flags); /** @@ -114,7 +116,7 @@ public: * parameters. May return null only if FLAG_NO_CREATE has been * supplied. */ - static std::shared_ptr GetAbilities(const std::shared_ptr &context, + static std::shared_ptr GetAbilities(const std::string bundleName, int requestCode, std::vector> &wants, unsigned int flags, const std::shared_ptr &options); @@ -133,14 +135,14 @@ public: * parameters. May return null only if FLAG_NO_CREATE has been * supplied. */ - static std::shared_ptr GetCommonEvent(const std::shared_ptr &context, + static std::shared_ptr GetCommonEvent(const std::string bundleName, int requestCode, const std::shared_ptr &want, unsigned int flags); /** * Note that current user will be interpreted at the time the * common event is sent, not when the pending want is created. */ - static std::shared_ptr GetCommonEventAsUser(const std::shared_ptr &context, + static std::shared_ptr GetCommonEventAsUser(const std::string bundleName, int requestCode, const std::shared_ptr &want, unsigned int flags, int uid); /** @@ -158,7 +160,7 @@ public: * parameters. May return null only if FLAG_NO_CREATE has been * supplied. */ - static std::shared_ptr GetService(const std::shared_ptr &context, int requestCode, + static std::shared_ptr GetService(const std::string bundleName, int requestCode, const std::shared_ptr &want, unsigned int flags); /** @@ -176,7 +178,7 @@ public: * parameters. May return null only if FLAG_NO_CREATE has been * supplied. */ - static std::shared_ptr GetForegroundService(const std::shared_ptr &context, + static std::shared_ptr GetForegroundService(const std::string bundleName, int requestCode, const std::shared_ptr &want, unsigned int flags); /** @@ -204,28 +206,26 @@ public: void Send(int resultCode, const sptr &target); - void Send(const std::shared_ptr &context, int resultCode, + void Send(int resultCode, const std::shared_ptr &want, const sptr &target); void Send(int resultCode, const sptr &onCompleted, const sptr &target); - void Send(const std::shared_ptr &context, int resultCode, + void Send(int resultCode, const std::shared_ptr &want, const sptr &onCompleted, const sptr &target); - void Send(const std::shared_ptr &context, int resultCode, + void Send(int resultCode, const std::shared_ptr &want, const sptr &onCompleted, const std::string &requiredPermission, const sptr &target); - void Send(const std::shared_ptr &context, int resultCode, - const std::shared_ptr &want, const sptr &onCompleted, - const std::string &requiredPermission, const std::shared_ptr &options, - const sptr &target); + void Send(int resultCode, const std::shared_ptr &want, + const sptr &onCompleted, const std::string &requiredPermission, + const std::shared_ptr &options, const sptr &target); - int SendAndReturnResult(const std::shared_ptr &context, int resultCode, - const std::shared_ptr &want, const sptr &onCompleted, - const std::string &requiredPermission, const std::shared_ptr &options, - const sptr &target); + int SendAndReturnResult(int resultCode, const std::shared_ptr &want, + const sptr &onCompleted, const std::string &requiredPermission, + const std::shared_ptr &options, const sptr &target); std::string GetBundleName(const sptr &target); @@ -269,7 +269,7 @@ private: std::weak_ptr outerInstance_; }; - static std::shared_ptr BuildServicePendingWant(const std::shared_ptr &context, + static std::shared_ptr BuildServicePendingWant(const std::string bundleName, int requestCode, const std::shared_ptr &want, unsigned int flags, WantAgentConstant::OperationType serviceKind); }; diff --git a/interfaces/innerkits/wantagent/include/want_agent_helper.h b/interfaces/innerkits/wantagent/include/want_agent_helper.h index 56e554f2dd697717c6b9cd23d0e3ebb6a6a8171f..f5455bfbf7c9036d9efe3589524e574394ef1815 100644 --- a/interfaces/innerkits/wantagent/include/want_agent_helper.h +++ b/interfaces/innerkits/wantagent/include/want_agent_helper.h @@ -55,7 +55,7 @@ public: * @return Returns the created WantAgent object. */ static std::shared_ptr GetWantAgent( - const std::shared_ptr &context, const WantAgentInfo ¶msInfo); + const std::shared_ptr &context, const WantAgentInfo ¶msInfo); /** * Obtains an WantAgent object. @@ -92,8 +92,8 @@ public: * the current process. * @param paramsInfo Indicates the TriggerInfo object that contains triggering parameters. */ - static void TriggerWantAgent(const std::shared_ptr &context, - const std::shared_ptr &agent, const std::shared_ptr &callback, + static void TriggerWantAgent(const std::shared_ptr &agent, + const std::shared_ptr &callback, const TriggerInfo ¶msInfo); /** @@ -185,11 +185,15 @@ private: virtual ~WantAgentHelper() = default; private: - static void Send(const std::shared_ptr &context, - const std::shared_ptr &pendingWant, WantAgentConstant::OperationType type, - const sptr &callBack, const TriggerInfo ¶msInfo); + static void Send(const std::shared_ptr &pendingWant, + WantAgentConstant::OperationType type, + const sptr &callBack, + const TriggerInfo ¶msInfo); static unsigned int FlagsTransformer(const std::vector &flags); + + static std::shared_ptr GetWantAgent(std::string bundleName, const WantAgentInfo ¶msInfo); + }; } // namespace OHOS::Notification::WantAgent #endif // BASE_NOTIFICATION_ANS_STANDARD_KITS_NATIVE_WANTAGENT_INCLUDE_WANT_AGENT_HELPER_H \ No newline at end of file diff --git a/interfaces/kits/napi/wantagent/BUILD.gn b/interfaces/kits/napi/wantagent/BUILD.gn index fee5ef1d745aa96088cd7acc43a20746547c9cc7..20c814b3c09cbf446c90e2c31622d956183e96d9 100644 --- a/interfaces/kits/napi/wantagent/BUILD.gn +++ b/interfaces/kits/napi/wantagent/BUILD.gn @@ -21,6 +21,7 @@ ohos_shared_library("wantagent") { "//foundation/aafwk/standard/services/common/include", "//utils/system/safwk/native/include", "//third_party/libuv/include", + "//foundation/appexecfwk/standard/kits/appkit/native/ability_runtime/context", "//foundation/aafwk/standard/frameworks/kits/ability/native/include", "//foundation/aafwk/standard/services/abilitymgr/include", "//foundation/aafwk/standard/interfaces/kits/napi/aafwk/inner/napi_common", @@ -37,6 +38,11 @@ ohos_shared_library("wantagent") { "${frameworks_path}/wantagent:wantagent_innerkits", "//foundation/aafwk/standard/frameworks/kits/ability/native:abilitykit_native", "//foundation/aafwk/standard/interfaces/kits/napi/aafwk/inner/napi_common:napi_common", + "//foundation/ace/napi:ace_napi", + "//foundation/appexecfwk/standard/kits:app_context", + "//foundation/appexecfwk/standard/kits:appkit_native", + "//foundation/distributedschedule/safwk/interfaces/innerkits/safwk:system_ability_fwk", + "//foundation/distributedschedule/samgr/interfaces/innerkits/samgr_proxy:samgr_proxy", "//utils/native/base:utils", ] diff --git a/interfaces/kits/napi/wantagent/napi_want_agent.cpp b/interfaces/kits/napi/wantagent/napi_want_agent.cpp index 8239cca49364d8e22af4f216be2c6c7816500e45..c530972e4c90d2e07558ab9120c5304ba5a359bf 100644 --- a/interfaces/kits/napi/wantagent/napi_want_agent.cpp +++ b/interfaces/kits/napi/wantagent/napi_want_agent.cpp @@ -790,8 +790,7 @@ auto NAPI_TriggerWrapExecuteCallBack = [](napi_env env, void *data) { AsyncTriggerCallbackInfo *asyncCallbackInfo = static_cast(data); asyncCallbackInfo->triggerObj->SetCallbackInfo(env, asyncCallbackInfo->callback[0]); asyncCallbackInfo->triggerObj->SetWantAgentInstance(asyncCallbackInfo->wantAgent); - WantAgentHelper::TriggerWantAgent(asyncCallbackInfo->context, - asyncCallbackInfo->wantAgent, + WantAgentHelper::TriggerWantAgent(asyncCallbackInfo->wantAgent, asyncCallbackInfo->triggerObj, asyncCallbackInfo->triggerInfo); }; @@ -892,15 +891,6 @@ napi_value NAPI_Trigger(napi_env env, napi_callback_info info) return NapiGetNull(env); } - // Get context - napi_value global = nullptr; - NAPI_CALL(env, napi_get_global(env, &global)); - napi_value abilityObj = nullptr; - NAPI_CALL(env, napi_get_named_property(env, global, "ability", &abilityObj)); - Ability *ability = nullptr; - NAPI_CALL(env, napi_get_value_external(env, abilityObj, (void **)&ability)); - std::shared_ptr context = ability->GetContext(); - bool callBackMode = false; if (argc >= NUMBER_OF_PARAMETERS_THREE) { napi_valuetype valuetype; @@ -924,7 +914,6 @@ napi_value NAPI_Trigger(napi_env env, napi_callback_info info) return NapiGetNull(env); } asyncCallbackInfo->wantAgent = std::make_shared(*pWantAgent); - asyncCallbackInfo->context = context; asyncCallbackInfo->triggerInfo = triggerInfo; asyncCallbackInfo->triggerObj = nullptr; if (callBackMode) { @@ -1296,15 +1285,6 @@ napi_value NAPI_GetWantAgent(napi_env env, napi_callback_info info) return NapiGetNull(env); } - // Get context - napi_value global = 0; - NAPI_CALL(env, napi_get_global(env, &global)); - napi_value abilityObj = 0; - NAPI_CALL(env, napi_get_named_property(env, global, "ability", &abilityObj)); - Ability *ability = nullptr; - NAPI_CALL(env, napi_get_value_external(env, abilityObj, (void **)&ability)); - std::shared_ptr context = ability->GetContext(); - bool callBackMode = false; if (argc >= NUMBER_OF_PARAMETERS_TWO) { napi_valuetype valuetype; @@ -1327,7 +1307,7 @@ napi_value NAPI_GetWantAgent(napi_env env, napi_callback_info info) asyncCallbackInfo->requestCode = requestCode; asyncCallbackInfo->wantAgentFlags = wantAgentFlags; asyncCallbackInfo->extraInfo.reset(new (std::nothrow) AAFwk::WantParams(extraInfo)); - asyncCallbackInfo->context = context; + asyncCallbackInfo->context = OHOS::AbilityRuntime::Context::GetApplicationContext(); if (callBackMode) { napi_create_reference(env, argv[1], 1, &asyncCallbackInfo->callback[0]); diff --git a/interfaces/kits/napi/wantagent/napi_want_agent.h b/interfaces/kits/napi/wantagent/napi_want_agent.h index 6a33753c74fbd69aca90b09173abbe6de6bbc7e5..aeeb329e497160a1bebbf839ff878db9c82f6eb7 100644 --- a/interfaces/kits/napi/wantagent/napi_want_agent.h +++ b/interfaces/kits/napi/wantagent/napi_want_agent.h @@ -60,7 +60,7 @@ struct AsyncGetWantAgentCallbackInfo { int32_t requestCode = -1; std::vector wantAgentFlags; std::shared_ptr extraInfo; - std::shared_ptr context; + std::shared_ptr context; std::shared_ptr wantAgent; }; @@ -116,7 +116,6 @@ struct AsyncTriggerCallbackInfo { napi_ref callback[2] = {0}; bool callBackMode = false; std::shared_ptr triggerObj; - std::shared_ptr context; std::shared_ptr wantAgent; Notification::WantAgent::TriggerInfo triggerInfo; }; diff --git a/services/ans/src/advanced_notification_service.cpp b/services/ans/src/advanced_notification_service.cpp index 9c5bc5a09354c2c011829e418e764fceea5d8961..209299a090cc9795aed74eb6a1180eb6831c8eac 100644 --- a/services/ans/src/advanced_notification_service.cpp +++ b/services/ans/src/advanced_notification_service.cpp @@ -2786,9 +2786,8 @@ void AdvancedNotificationService::TriggerRemoveWantAgent(const sptr context = std::make_shared(); std::shared_ptr agent = request->GetRemovalWantAgent(); - WantAgent::WantAgentHelper::TriggerWantAgent(context, agent, nullptr, triggerInfo); + WantAgent::WantAgentHelper::TriggerWantAgent(agent, nullptr, triggerInfo); } } // namespace Notification } // namespace OHOS \ No newline at end of file diff --git a/test/resource/notificationfuzztest/include/notificationgetparam.h b/test/resource/notificationfuzztest/include/notificationgetparam.h index 80aa444cd6204b93ce1a9a39c31760041e79d3b2..1b7a14b7d26024c6e8a4c630ec49ff9c022a7c5c 100644 --- a/test/resource/notificationfuzztest/include/notificationgetparam.h +++ b/test/resource/notificationfuzztest/include/notificationgetparam.h @@ -88,7 +88,6 @@ sptr GetParamSptrRemote(); std::shared_ptr GetParamEventRunner(); std::shared_ptr GetParamAbility(); std::shared_ptr GetParamWantParams(); -std::shared_ptr GetParamContext(); OHOS::AppExecFwk::ApplicationFlag GetParamApplicationFlag(); OHOS::AppExecFwk::ApplicationInfo GetParamApplicationInfo(); OHOS::AppExecFwk::AbilityInfo GetParamAbilityInfo(); diff --git a/test/resource/notificationfuzztest/src/notificationfuzztestmanager.cpp b/test/resource/notificationfuzztest/src/notificationfuzztestmanager.cpp index 45eba385ca67a00db0318df88bb9b39056622a5e..e364f99d6ae5b15c04f9b4a70cc6248b7400a650 100644 --- a/test/resource/notificationfuzztest/src/notificationfuzztestmanager.cpp +++ b/test/resource/notificationfuzztest/src/notificationfuzztestmanager.cpp @@ -510,7 +510,7 @@ void NotificationFuzzTestManager::RegisterNotificationSubscriber() void NotificationFuzzTestManager::RegisterWantAgentHelper() { callFunctionMap_.emplace("WantAgentHelperGetWantAgentAppExecFwkparamsInfo", []() { - const std::shared_ptr context = GetParamContext(); + std::shared_ptr context = OHOS::AbilityRuntime::Context::GetApplicationContext(); const OHOS::Notification::WantAgent::WantAgentInfo paramsInfo = *GetParamWantAgentInfo(); OHOS::Notification::WantAgent::WantAgentHelper::GetWantAgent(context, paramsInfo); }); @@ -526,11 +526,10 @@ void NotificationFuzzTestManager::RegisterWantAgentHelper() }); callFunctionMap_.emplace("WantAgentHelperTriggerWantAgent", []() { - const std::shared_ptr context; const std::shared_ptr agent = GetParamWantAgent(); const std::shared_ptr callback = GetParamCompletedCallback(); OHOS::Notification::WantAgent::TriggerInfo paramsInfo(*GetParamTriggerInfo()); - OHOS::Notification::WantAgent::WantAgentHelper::TriggerWantAgent(context, agent, callback, paramsInfo); + OHOS::Notification::WantAgent::WantAgentHelper::TriggerWantAgent(agent, callback, paramsInfo); }); callFunctionMap_.emplace("WantAgentHelperCancel", []() { @@ -684,105 +683,6 @@ void NotificationFuzzTestManager::RegisterAbilityContext() }); } -// RegisterContext -void NotificationFuzzTestManager::RegisterContext() -{ - callFunctionMap_.emplace("ContextVerifyPermission", []() { - std::shared_ptr temp = GetParamContext(); - const std::string permission = GetStringParam(); - int pid = GetIntParam(); - int uid = GetIntParam(); - temp->VerifyPermission(permission, pid, uid); - }); - - callFunctionMap_.emplace("ContextVerifyCallingPermission", []() { - std::shared_ptr temp = GetParamContext(); - const std::string permission = GetStringParam(); - temp->VerifyCallingPermission(permission); - }); - - callFunctionMap_.emplace("ContextVerifySelfPermission", []() { - std::shared_ptr temp = GetParamContext(); - const std::string permission = GetStringParam(); - temp->VerifySelfPermission(permission); - }); - - callFunctionMap_.emplace("ContextVerifyCallingOrSelfPermission", []() { - std::shared_ptr temp = GetParamContext(); - temp->VerifyCallingOrSelfPermission(GetStringParam()); - }); - - callFunctionMap_["ContextCanRequestPermission"] = []() { - std::shared_ptr temp = GetParamContext(); - const std::string permission = GetStringParam(); - temp->CanRequestPermission(permission); - }; - - callFunctionMap_["ContextRequestPermissionsFromUser"] = []() { - std::shared_ptr temp = GetParamContext(); - std::vector permissions = GetStringVectorParam(); - int requestCode = GetIntParam(); - temp->RequestPermissionsFromUser(permissions, requestCode); - }; - - callFunctionMap_["ContextMoveMissionToEnd"] = []() { - std::shared_ptr temp = GetParamContext(); - bool nonFirst = GetBoolParam(); - temp->MoveMissionToEnd(nonFirst); - }; - - callFunctionMap_["ContextSetMissionInformation"] = []() { - std::shared_ptr temp = GetParamContext(); - const MissionInformation missionInformation = GetParamMissionInformation(); - temp->SetMissionInformation(missionInformation); - }; - - callFunctionMap_["ContextSetLockMission"] = []() { - std::shared_ptr temp = GetParamContext(); - temp->LockMission(); - }; - - callFunctionMap_["ContextUnlockMission"] = []() { - std::shared_ptr temp = GetParamContext(); - temp->UnlockMission(); - }; - - callFunctionMap_["ContextGetMissionId"] = []() { - std::shared_ptr temp = GetParamContext(); - temp->GetMissionId(); - }; - - callFunctionMap_["ContextGetUITaskDispatcher"] = []() { - std::shared_ptr temp = GetParamContext(); - temp->GetUITaskDispatcher(); - }; - - callFunctionMap_["ContextGetMainTaskDispatcher"] = []() { - std::shared_ptr temp = GetParamContext(); - temp->GetMainTaskDispatcher(); - }; - - callFunctionMap_["ContextCreateParallelTaskDispatcher"] = []() { - std::shared_ptr temp = GetParamContext(); - const std::string name = GetStringParam(); - const TaskPriority priority = GetParamTaskPriority(); - temp->CreateParallelTaskDispatcher(name, priority); - }; - - callFunctionMap_["ContextCreateSerialTaskDispatcher"] = []() { - std::shared_ptr temp = GetParamContext(); - const std::string name = GetStringParam(); - const TaskPriority priority = GetParamTaskPriority(); - temp->CreateSerialTaskDispatcher(name, priority); - }; - - callFunctionMap_["ContextGetGlobalTaskDispatcher"] = []() { - std::shared_ptr temp = GetParamContext(); - const TaskPriority priority = GetParamTaskPriority(); - temp->GetGlobalTaskDispatcher(priority); - }; -} - // RegisterAbilityLifecycleCallbacks void NotificationFuzzTestManager::RegisterAbilityLifecycleCallbacks() { diff --git a/test/resource/notificationfuzztest/src/notificationgetparam.cpp b/test/resource/notificationfuzztest/src/notificationgetparam.cpp index 29b8d46e05d760240a7b8de929ba361094a47298..a1c6578aad73516e5960317ffa5f28395ca5563f 100644 --- a/test/resource/notificationfuzztest/src/notificationgetparam.cpp +++ b/test/resource/notificationfuzztest/src/notificationgetparam.cpp @@ -449,11 +449,6 @@ std::shared_ptr GetParamAbility() return make_shared(); } -std::shared_ptr GetParamContext() -{ - return make_shared(); -} - std::shared_ptr GetParamWantParams() { return make_shared();