diff --git a/interfaces/inner_api/ability_manager/include/iability_manager_collaborator.h b/interfaces/inner_api/ability_manager/include/iability_manager_collaborator.h index 48aac8e5063af3c6b8bb54b83b0d54197b4fb7f5..cef23d14e3ae34ec57311097f69864c774e094da 100644 --- a/interfaces/inner_api/ability_manager/include/iability_manager_collaborator.h +++ b/interfaces/inner_api/ability_manager/include/iability_manager_collaborator.h @@ -46,7 +46,7 @@ public: * @return 0 when notify start ability success or else failed. */ virtual int32_t NotifyStartAbility(const AppExecFwk::AbilityInfo &abilityInfo, - int32_t userId, Want &want, uint64_t accessTokenIDEx) = 0; + int32_t userId, Want &want, uint64_t accessTokenIDEx, int32_t windowMode) = 0; /** * @brief Notify collaborator to app preload. diff --git a/services/abilitymgr/include/ability_manager_collaborator_proxy.h b/services/abilitymgr/include/ability_manager_collaborator_proxy.h index d3abb0e9a80a0f1c5f474def90b953aa31498ef5..b5531e04f474aa8b26c967304f6161507812c38d 100644 --- a/services/abilitymgr/include/ability_manager_collaborator_proxy.h +++ b/services/abilitymgr/include/ability_manager_collaborator_proxy.h @@ -36,7 +36,7 @@ public: * @return 0 when notify start ability success or else failed. */ virtual int32_t NotifyStartAbility(const AppExecFwk::AbilityInfo &abilityInfo, - int32_t userId, Want &want, uint64_t accessTokenIDEx) override; + int32_t userId, Want &want, uint64_t accessTokenIDEx, int32_t windowMode) override; /** * @brief Notify collaborator to app preload. diff --git a/services/abilitymgr/src/ability_manager_collaborator_proxy.cpp b/services/abilitymgr/src/ability_manager_collaborator_proxy.cpp index 9a5a5172b0cb30cdc8b0ca97e20439074a6d3d8e..de02ddb19fb1ccb9c8ccaff952b07ff847363521 100644 --- a/services/abilitymgr/src/ability_manager_collaborator_proxy.cpp +++ b/services/abilitymgr/src/ability_manager_collaborator_proxy.cpp @@ -22,7 +22,8 @@ namespace OHOS { namespace AAFwk { int32_t AbilityManagerCollaboratorProxy::NotifyStartAbility( - const AppExecFwk::AbilityInfo &abilityInfo, int32_t userId, Want &want, uint64_t accessTokenIDEx) + const AppExecFwk::AbilityInfo &abilityInfo, int32_t userId, Want &want, + uint64_t accessTokenIDEx, int32_t windowMode) { MessageParcel data; MessageParcel reply; @@ -49,6 +50,10 @@ int32_t AbilityManagerCollaboratorProxy::NotifyStartAbility( TAG_LOGE(AAFwkTag::ABILITYMGR, "accessTokenIDEx write fail"); return ERR_INVALID_OPERATION; } + if (!data.WriteInt32(windowMode)) { + TAG_LOGE(AAFwkTag::ABILITYMGR, "windowMode write fail."); + return ERR_INVALID_OPERATION; + } int32_t ret = SendTransactCmd(IAbilityManagerCollaborator::NOTIFY_START_ABILITY, data, reply, option); if (ret != NO_ERROR) { TAG_LOGE(AAFwkTag::ABILITYMGR, "request error:%{public}d", ret); diff --git a/test/mock/ability_manager_collaborator/mock_ability_manager_collaborator.h b/test/mock/ability_manager_collaborator/mock_ability_manager_collaborator.h index 8120f6c1e042d601c24dee9fa06868769cbbbb1c..e06300cbbf986af1bc05f18eb0ad0831199ff538 100644 --- a/test/mock/ability_manager_collaborator/mock_ability_manager_collaborator.h +++ b/test/mock/ability_manager_collaborator/mock_ability_manager_collaborator.h @@ -23,8 +23,8 @@ namespace OHOS { namespace AAFwk { class MockAbilityManagerCollaborator : public IAbilityManagerCollaborator { public: - MOCK_METHOD4(NotifyStartAbility, int32_t(const AppExecFwk::AbilityInfo &abilityInfo, - int32_t userId, Want &want, uint64_t accessTokenIDEx)); + MOCK_METHOD5(NotifyStartAbility, int32_t(const AppExecFwk::AbilityInfo &abilityInfo, + int32_t userId, Want &want, uint64_t accessTokenIDEx, int32_t windowMode)); MOCK_METHOD1(NotifyPreloadAbility, int32_t(const std::string &bundleName)); MOCK_METHOD2(NotifyMissionCreated, int32_t(int32_t missionId, const Want &want)); MOCK_METHOD1(NotifyMissionCreated, int32_t(const sptr &sessionInfo)); diff --git a/test/unittest/ability_manager_collaborator_proxy_test/ability_manager_collaborator_proxy_test.cpp b/test/unittest/ability_manager_collaborator_proxy_test/ability_manager_collaborator_proxy_test.cpp index fe484ade2128ab3cc87af3a2c615674f39cedf80..5fa45a1f58618569680c6ca6152f3788da6e4599 100644 --- a/test/unittest/ability_manager_collaborator_proxy_test/ability_manager_collaborator_proxy_test.cpp +++ b/test/unittest/ability_manager_collaborator_proxy_test/ability_manager_collaborator_proxy_test.cpp @@ -66,7 +66,8 @@ HWTEST_F(AbilityManagerCollaboratorProxyTest, NotifyStartAbility_0100, TestSize. Want want; int32_t userId = 0; uint64_t accessTokenIDEx = 0; - int32_t res = proxy_->NotifyStartAbility(info, userId, want, accessTokenIDEx); + int32_t windowMode = 0; + int32_t res = proxy_->NotifyStartAbility(info, userId, want, accessTokenIDEx, windowMode); EXPECT_EQ(res, ERR_INVALID_OPERATION); EXPECT_EQ(static_cast(IAbilityManagerCollaborator::NOTIFY_START_ABILITY), mock_->GetCode()); } diff --git a/test/unittest/ability_manager_collaborator_proxy_test/ability_manager_collaborator_stub_mock.h b/test/unittest/ability_manager_collaborator_proxy_test/ability_manager_collaborator_stub_mock.h index 807544f1991b1bdc58217235a29edd6f50798ff4..d53752bf5419b907c22819a04bb96a796cef6918 100644 --- a/test/unittest/ability_manager_collaborator_proxy_test/ability_manager_collaborator_stub_mock.h +++ b/test/unittest/ability_manager_collaborator_proxy_test/ability_manager_collaborator_stub_mock.h @@ -32,7 +32,7 @@ public: {} int32_t NotifyStartAbility(const AppExecFwk::AbilityInfo &abilityInfo, - int32_t userId, Want &want, uint64_t accessTokenIDEx) override + int32_t userId, Want &want, uint64_t accessTokenIDEx, int32_t windowMode) override { return 0; } diff --git a/test/unittest/ability_manager_proxy_second_test/ability_manager_proxy_second_test.cpp b/test/unittest/ability_manager_proxy_second_test/ability_manager_proxy_second_test.cpp index a57aac78d165590dea4ca90ddc1dd29de2c87cd2..4e0a64366622145ce169cd44f4a49a826024280c 100644 --- a/test/unittest/ability_manager_proxy_second_test/ability_manager_proxy_second_test.cpp +++ b/test/unittest/ability_manager_proxy_second_test/ability_manager_proxy_second_test.cpp @@ -84,8 +84,8 @@ public: class MockAbilityManagerCollaborator : public IAbilityManagerCollaborator { public: - MOCK_METHOD4(NotifyStartAbility, int32_t(const AppExecFwk::AbilityInfo &abilityInfo, - int32_t userId, Want &want, uint64_t accessTokenIDEx)); + MOCK_METHOD5(NotifyStartAbility, int32_t(const AppExecFwk::AbilityInfo &abilityInfo, + int32_t userId, Want &want, uint64_t accessTokenIDEx, int32_t windowMode)); MOCK_METHOD1(NotifyPreloadAbility, int32_t(const std::string &bundleName)); MOCK_METHOD2(NotifyMissionCreated, int32_t(int32_t missionId, const Want &want)); MOCK_METHOD1(NotifyMissionCreated, int32_t(const sptr &sessionInfo));