From fc4b7a0c93915759bf36c93b4c7ac55ce9267ea7 Mon Sep 17 00:00:00 2001 From: caochunlei Date: Mon, 17 Jan 2022 11:51:16 +0000 Subject: [PATCH 1/2] caochunlei1@huawei.com Signed-off-by: caochunlei Change-Id: Ifb740ac316fd95915e65e31fded65e6e5d8c656b Signed-off-by: caochunlei --- services/abilitymgr/src/ability_manager_service.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/abilitymgr/src/ability_manager_service.cpp b/services/abilitymgr/src/ability_manager_service.cpp index b4837a79034..7c6d799abea 100644 --- a/services/abilitymgr/src/ability_manager_service.cpp +++ b/services/abilitymgr/src/ability_manager_service.cpp @@ -121,7 +121,7 @@ void AbilityManagerService::OnStart() return; } - HILOG_INFO("Ability manager service start success."); + HILOG_INFO("Ability manager service start success..."); } bool AbilityManagerService::Init() -- Gitee From 5d723951687911636e23932d0a578d5ecf2d1188 Mon Sep 17 00:00:00 2001 From: caochunlei Date: Mon, 17 Jan 2022 13:19:26 +0000 Subject: [PATCH 2/2] caochunlei1@huawei.com Signed-off-by: caochunlei Change-Id: I3f1d1f530a17505c19491f302d39912717e16856 Signed-off-by: caochunlei --- .../ability_runtime/include/ability_context.h | 8 ++++ .../include/ability_context_impl.h | 8 ++++ .../src/ability_context_impl.cpp | 10 ++++ .../ability_runtime/js_ability_context.h | 2 + .../ability_runtime/js_ability_context.cpp | 46 +++++++++++++++++++ .../include/mock_ability_manager_service.h | 1 + .../mock/AMS/mock_ability_manager_service.h | 1 + .../AMS/mock_serviceability_manager_service.h | 1 + .../include/ability_manager_client.h | 9 ++++ .../include/ability_manager_interface.h | 5 ++ .../include/ability_manager_proxy.h | 2 + .../include/ability_manager_service.h | 2 + .../abilitymgr/include/ability_manager_stub.h | 1 + .../abilitymgr/include/mission_info_mgr.h | 9 ++++ .../abilitymgr/include/mission_list_manager.h | 9 ++++ .../abilitymgr/src/ability_manager_client.cpp | 7 +++ .../abilitymgr/src/ability_manager_proxy.cpp | 24 ++++++++++ .../src/ability_manager_service.cpp | 10 ++++ .../abilitymgr/src/ability_manager_stub.cpp | 18 ++++++++ services/abilitymgr/src/mission_info_mgr.cpp | 24 ++++++++++ .../abilitymgr/src/mission_list_manager.cpp | 19 +++++++- .../ability_manager_stub_mock.h | 1 + .../ability_manager_stub_impl_mock.h | 1 + .../ability_manager_stub_mock.h | 1 + .../mock/include/mock_ability_mgr_service.h | 1 + tools/test/mock/mock_ability_manager_stub.h | 1 + 26 files changed, 220 insertions(+), 1 deletion(-) diff --git a/frameworks/kits/ability/ability_runtime/include/ability_context.h b/frameworks/kits/ability/ability_runtime/include/ability_context.h index 45a54360f71..330f279a28c 100644 --- a/frameworks/kits/ability/ability_runtime/include/ability_context.h +++ b/frameworks/kits/ability/ability_runtime/include/ability_context.h @@ -133,6 +133,14 @@ public: */ virtual void* GetContentStorage() = 0; + /** + * @brief Set mission label of this ability. + * + * @param label the label of this ability. + * @return Returns ERR_OK if success. + */ + virtual ErrCode SetMissionLabel(const std::string &label) = 0; + using SelfType = AbilityContext; static const size_t CONTEXT_TYPE_ID; diff --git a/frameworks/kits/ability/ability_runtime/include/ability_context_impl.h b/frameworks/kits/ability/ability_runtime/include/ability_context_impl.h index e1a8b273084..981263744bb 100644 --- a/frameworks/kits/ability/ability_runtime/include/ability_context_impl.h +++ b/frameworks/kits/ability/ability_runtime/include/ability_context_impl.h @@ -60,6 +60,14 @@ public: void RequestPermissionsFromUser(const std::vector &permissions, int requestCode) override; ErrCode RestoreWindowStage(void* contentStorage) override; + /** + * @brief Set mission label of this ability. + * + * @param label the label of this ability. + * @return Returns ERR_OK if success. + */ + ErrCode SetMissionLabel(const std::string &label) override; + void SetStageContext(const std::shared_ptr &stageContext); /** diff --git a/frameworks/kits/ability/ability_runtime/src/ability_context_impl.cpp b/frameworks/kits/ability/ability_runtime/src/ability_context_impl.cpp index 544403720a5..35f5053d5f4 100644 --- a/frameworks/kits/ability/ability_runtime/src/ability_context_impl.cpp +++ b/frameworks/kits/ability/ability_runtime/src/ability_context_impl.cpp @@ -218,5 +218,15 @@ ErrCode AbilityContextImpl::RestoreWindowStage(void* contentStorage) contentStorage_ = contentStorage; return err; } + +ErrCode AbilityContextImpl::SetMissionLabel(const std::string &label) +{ + HILOG_INFO("%{public}s begin. label = %{public}s", __func__, label.c_str()); + ErrCode err = AAFwk::AbilityManagerClient::GetInstance()->SetMissionLabel(token_, label); + if (err != ERR_OK) { + HILOG_ERROR("AbilityContextImpl::SetMissionLabel is failed %{public}d", err); + } + return err; +} } // namespace AbilityRuntime } // namespace OHOS \ No newline at end of file diff --git a/frameworks/kits/ability/native/include/ability_runtime/js_ability_context.h b/frameworks/kits/ability/native/include/ability_runtime/js_ability_context.h index 66fbf92e6ae..3e47cc7ab81 100644 --- a/frameworks/kits/ability/native/include/ability_runtime/js_ability_context.h +++ b/frameworks/kits/ability/native/include/ability_runtime/js_ability_context.h @@ -46,6 +46,7 @@ public: static NativeValue* TerminateSelfWithResult(NativeEngine* engine, NativeCallbackInfo* info); static NativeValue* RequestPermissionsFromUser(NativeEngine* engine, NativeCallbackInfo* info); static NativeValue* RestoreWindowStage(NativeEngine* engine, NativeCallbackInfo* info); + static NativeValue* SetMissionLabel(NativeEngine* engine, NativeCallbackInfo* info); std::shared_ptr GetAbilityContext() { @@ -61,6 +62,7 @@ private: NativeValue* OnTerminateSelf(NativeEngine& engine, NativeCallbackInfo& info); NativeValue* OnRequestPermissionsFromUser(NativeEngine& engine, NativeCallbackInfo& info); NativeValue* OnRestoreWindowStage(NativeEngine& engine, NativeCallbackInfo& info); + NativeValue* OnSetMissionLabel(NativeEngine& engine, NativeCallbackInfo& info); static bool UnWrapWant(NativeEngine& engine, NativeValue* argv, AAFwk::Want& want); static NativeValue* WrapWant(NativeEngine& engine, const AAFwk::Want& want); diff --git a/frameworks/kits/ability/native/src/ability_runtime/js_ability_context.cpp b/frameworks/kits/ability/native/src/ability_runtime/js_ability_context.cpp index dde6a512da6..b986fc8fcc1 100644 --- a/frameworks/kits/ability/native/src/ability_runtime/js_ability_context.cpp +++ b/frameworks/kits/ability/native/src/ability_runtime/js_ability_context.cpp @@ -93,6 +93,12 @@ NativeValue* JsAbilityContext::RestoreWindowStage(NativeEngine* engine, NativeCa return (me != nullptr) ? me->OnRestoreWindowStage(*engine, *info) : nullptr; } +NativeValue* JsAbilityContext::SetMissionLabel(NativeEngine* engine, NativeCallbackInfo* info) +{ + JsAbilityContext* me = CheckParamsAndGetThis(engine, info); + return (me != nullptr) ? me->OnSetMissionLabel(*engine, *info) : nullptr; +} + NativeValue* JsAbilityContext::OnStartAbility(NativeEngine& engine, NativeCallbackInfo& info) { HILOG_INFO("OnStartAbility is called"); @@ -441,6 +447,45 @@ NativeValue* JsAbilityContext::OnRestoreWindowStage(NativeEngine& engine, Native return engine.CreateUndefined(); } +NativeValue* JsAbilityContext::OnSetMissionLabel(NativeEngine& engine, NativeCallbackInfo& info) +{ + HILOG_INFO("OnSetMissionLabel is called, argc = %{public}d", static_cast(info.argc)); + + if (info.argc < ARGC_ONE) { + HILOG_ERROR("OnSetMissionLabel, Not enough params"); + return engine.CreateUndefined(); + } + + std::string label; + if (!ConvertFromJsValue(engine, info.argv[0], label)) { + HILOG_ERROR("OnSetMissionLabel, parse label failed."); + return engine.CreateUndefined(); + } + + AsyncTask::CompleteCallback complete = + [weak = context_, label](NativeEngine& engine, AsyncTask& task, int32_t status) { + auto context = weak.lock(); + if (!context) { + HILOG_WARN("context is released"); + task.Reject(engine, CreateJsError(engine, 1, "Context is released")); + return; + } + + auto errcode = context->SetMissionLabel(label); + if (errcode == 0) { + task.Resolve(engine, engine.CreateUndefined()); + } else { + task.Reject(engine, CreateJsError(engine, errcode, "SetMissionLabel failed.")); + } + }; + + NativeValue* lastParam = (info.argc == ARGC_ONE) ? nullptr : info.argv[1]; + NativeValue* result = nullptr; + AsyncTask::Schedule( + engine, CreateAsyncTaskWithLastParam(engine, lastParam, nullptr, std::move(complete), &result)); + return result; +} + bool JsAbilityContext::UnWrapWant(NativeEngine& engine, NativeValue* argv, AAFwk::Want& want) { if (argv == nullptr) { @@ -520,6 +565,7 @@ NativeValue* CreateJsAbilityContext(NativeEngine& engine, std::shared_ptr &token, const std::string &label)); MOCK_METHOD2(GetWantSenderInfo, int(const sptr &target, std::shared_ptr &info)); diff --git a/frameworks/kits/test/mock/AMS/mock_ability_manager_service.h b/frameworks/kits/test/mock/AMS/mock_ability_manager_service.h index ad5d44601d6..aaca9df4e2f 100644 --- a/frameworks/kits/test/mock/AMS/mock_ability_manager_service.h +++ b/frameworks/kits/test/mock/AMS/mock_ability_manager_service.h @@ -114,6 +114,7 @@ public: MOCK_METHOD0(CleanAllMissions, int()); MOCK_METHOD1(MoveMissionToFront, int(int32_t missionId)); MOCK_METHOD2(GetWantSenderInfo, int(const sptr &target, std::shared_ptr &info)); + MOCK_METHOD2(SetMissionLabel, int(const sptr &token, const std::string &label)); int MoveMissionToEnd(const sptr &token, const bool nonFirst) override; bool IsFirstInMission(const sptr &token) override; diff --git a/frameworks/kits/test/mock/AMS/mock_serviceability_manager_service.h b/frameworks/kits/test/mock/AMS/mock_serviceability_manager_service.h index 499e4d506f6..2e0cd6d9eb3 100755 --- a/frameworks/kits/test/mock/AMS/mock_serviceability_manager_service.h +++ b/frameworks/kits/test/mock/AMS/mock_serviceability_manager_service.h @@ -108,6 +108,7 @@ public: MOCK_METHOD1(CleanMission, int(int32_t missionId)); MOCK_METHOD0(CleanAllMissions, int()); MOCK_METHOD1(MoveMissionToFront, int(int32_t missionId)); + MOCK_METHOD2(SetMissionLabel, int(const sptr &token, const std::string &label)); MOCK_METHOD2(GetWantSenderInfo, int(const sptr &target, std::shared_ptr &info)); diff --git a/interfaces/innerkits/ability_manager/include/ability_manager_client.h b/interfaces/innerkits/ability_manager/include/ability_manager_client.h index f4271493446..de0617b7aaa 100644 --- a/interfaces/innerkits/ability_manager/include/ability_manager_client.h +++ b/interfaces/innerkits/ability_manager/include/ability_manager_client.h @@ -640,6 +640,15 @@ public: * @return ErrCode Returns ERR_OK on success, others on failure. */ ErrCode RegisterSnapshotHandler(const sptr& handler); + + /** + * Set mission label of this ability. + * + * @param abilityToken Indidate token of ability. + * @param label Indidate the label showed of the ability in recent missions. + * @return Returns ERR_OK on success, others on failure. + */ + ErrCode SetMissionLabel(const sptr &abilityToken, const std::string &label); private: static std::mutex mutex_; static std::shared_ptr instance_; diff --git a/interfaces/innerkits/ability_manager/include/ability_manager_interface.h b/interfaces/innerkits/ability_manager/include/ability_manager_interface.h index 6e57722b2e6..ec7e3f542da 100755 --- a/interfaces/innerkits/ability_manager/include/ability_manager_interface.h +++ b/interfaces/innerkits/ability_manager/include/ability_manager_interface.h @@ -545,6 +545,8 @@ public: virtual int StopUser(int userId, const sptr &callback) = 0; + virtual int SetMissionLabel(const sptr &abilityToken, const std::string &label) = 0; + /** * Start synchronizing remote device mission * @param devId, deviceId. @@ -748,6 +750,9 @@ public: // ipc id for get stability test flag (52) IS_USER_A_STABILITY_TEST, + // ipc id for set mission label (53) + SET_MISSION_LABEL, + // ipc id 1001-2000 for DMS // ipc id for starting ability (1001) START_ABILITY = 1001, diff --git a/services/abilitymgr/include/ability_manager_proxy.h b/services/abilitymgr/include/ability_manager_proxy.h index 9255eb5f31a..d5c18a1c190 100755 --- a/services/abilitymgr/include/ability_manager_proxy.h +++ b/services/abilitymgr/include/ability_manager_proxy.h @@ -525,6 +525,8 @@ public: virtual int StopUser(int userId, const sptr &callback) override; + virtual int SetMissionLabel(const sptr &abilityToken, const std::string &label) override; + virtual int RegisterMissionListener(const std::string &deviceId, const sptr &listener) override; diff --git a/services/abilitymgr/include/ability_manager_service.h b/services/abilitymgr/include/ability_manager_service.h index f6c2176e820..6d21abd3314 100644 --- a/services/abilitymgr/include/ability_manager_service.h +++ b/services/abilitymgr/include/ability_manager_service.h @@ -708,6 +708,8 @@ public: virtual int StopUser(int userId, const sptr &callback) override; + virtual int SetMissionLabel(const sptr &abilityToken, const std::string &label) override; + void ClearUserData(int32_t userId); virtual int RegisterSnapshotHandler(const sptr& handler) override; diff --git a/services/abilitymgr/include/ability_manager_stub.h b/services/abilitymgr/include/ability_manager_stub.h index 1f377e1bfb4..8e45b3d9f38 100755 --- a/services/abilitymgr/include/ability_manager_stub.h +++ b/services/abilitymgr/include/ability_manager_stub.h @@ -125,6 +125,7 @@ private: int MoveMissionToFrontInner(MessageParcel &data, MessageParcel &reply); int StartUserInner(MessageParcel &data, MessageParcel &reply); int StopUserInner(MessageParcel &data, MessageParcel &reply); + int SetMissionLabelInner(MessageParcel &data, MessageParcel &reply); int StartSyncRemoteMissionsInner(MessageParcel &data, MessageParcel &reply); int StopSyncRemoteMissionsInner(MessageParcel &data, MessageParcel &reply); diff --git a/services/abilitymgr/include/mission_info_mgr.h b/services/abilitymgr/include/mission_info_mgr.h index b41b2af4117..43ce89f31e6 100644 --- a/services/abilitymgr/include/mission_info_mgr.h +++ b/services/abilitymgr/include/mission_info_mgr.h @@ -114,6 +114,15 @@ public: */ bool DeleteAllMissionInfos(const std::shared_ptr &listenerController); + /** + * @brief Update mission label. + * + * @param missionId indicates this mission id. + * @param label indicates this mission label. + * @return 0 if success. + */ + int UpdateMissionLabel(int32_t missionId, const std::string& label); + /** * @brief dump mission info * diff --git a/services/abilitymgr/include/mission_list_manager.h b/services/abilitymgr/include/mission_list_manager.h index fe7b0590606..e98e285954c 100644 --- a/services/abilitymgr/include/mission_list_manager.h +++ b/services/abilitymgr/include/mission_list_manager.h @@ -222,6 +222,15 @@ public: */ sptr GetAbilityTokenByMissionId(int32_t missionId); + /** + * Set mission label of this ability. + * + * @param abilityToken target ability token. + * @param label target label. + * @return Retun 0 if success. + */ + int SetMissionLabel(const sptr &abilityToken, const std::string &label); + /** * @brief dump all abilities * diff --git a/services/abilitymgr/src/ability_manager_client.cpp b/services/abilitymgr/src/ability_manager_client.cpp index c54f280f0db..d9bf579fa35 100644 --- a/services/abilitymgr/src/ability_manager_client.cpp +++ b/services/abilitymgr/src/ability_manager_client.cpp @@ -809,5 +809,12 @@ ErrCode AbilityManagerClient::GetMissionSnapshot(const std::string& deviceId, in auto abms = iface_cast(remoteObject_); return abms->GetMissionSnapshot(deviceId, missionId, snapshot); } + +ErrCode AbilityManagerClient::SetMissionLabel(const sptr &token, const std::string& label) +{ + CHECK_REMOTE_OBJECT_AND_RETURN(remoteObject_, ABILITY_SERVICE_NOT_CONNECTED); + auto abms = iface_cast(remoteObject_); + return abms->SetMissionLabel(token, label); +} } // namespace AAFwk } // namespace OHOS diff --git a/services/abilitymgr/src/ability_manager_proxy.cpp b/services/abilitymgr/src/ability_manager_proxy.cpp index fc3a387d67e..bfc36539c1f 100755 --- a/services/abilitymgr/src/ability_manager_proxy.cpp +++ b/services/abilitymgr/src/ability_manager_proxy.cpp @@ -1983,6 +1983,30 @@ int AbilityManagerProxy::StopUser(int userId, const sptr &cal return reply.ReadInt32(); } +int AbilityManagerProxy::SetMissionLabel(const sptr &token, const std::string &label) +{ + MessageParcel data; + MessageParcel reply; + MessageOption option; + if (!WriteInterfaceToken(data)) { + return INNER_ERR; + } + if (!data.WriteRemoteObject(token)) { + HILOG_ERROR("SetMissionLabel write token failed."); + return ERR_INVALID_VALUE; + } + if (!data.WriteString16(Str8ToStr16(label))) { + HILOG_ERROR("SetMissionLabel write label failed."); + return ERR_INVALID_VALUE; + } + auto error = Remote()->SendRequest(IAbilityManager::SET_MISSION_LABEL, data, reply, option); + if (error != NO_ERROR) { + HILOG_ERROR("SetMissionLabel Send request error: %{public}d", error); + return error; + } + return reply.ReadInt32(); +} + int AbilityManagerProxy::StartSyncRemoteMissions(const std::string& devId, bool fixConflict, int64_t tag) { HILOG_INFO("called"); diff --git a/services/abilitymgr/src/ability_manager_service.cpp b/services/abilitymgr/src/ability_manager_service.cpp index 7c6d799abea..9ff292e2c70 100644 --- a/services/abilitymgr/src/ability_manager_service.cpp +++ b/services/abilitymgr/src/ability_manager_service.cpp @@ -2799,6 +2799,16 @@ int AbilityManagerService::StopUser(int userId, const sptr &c return 0; } +int AbilityManagerService::SetMissionLabel(const sptr &token, const std::string &label) +{ + HILOG_DEBUG("%{public}s", __func__); + auto missionListManager = currentMissionListManager_; + if (missionListManager) { + missionListManager->SetMissionLabel(token, label); + } + return 0; +} + void AbilityManagerService::ClearUserData(int32_t userId) { HILOG_DEBUG("%{public}s", __func__); diff --git a/services/abilitymgr/src/ability_manager_stub.cpp b/services/abilitymgr/src/ability_manager_stub.cpp index b94cf6b91ae..e82142a3689 100755 --- a/services/abilitymgr/src/ability_manager_stub.cpp +++ b/services/abilitymgr/src/ability_manager_stub.cpp @@ -125,6 +125,7 @@ void AbilityManagerStub::SecondStepInit() requestFuncMap_[MOVE_MISSION_TO_FRONT] = &AbilityManagerStub::MoveMissionToFrontInner; requestFuncMap_[START_USER] = &AbilityManagerStub::StartUserInner; requestFuncMap_[STOP_USER] = &AbilityManagerStub::StopUserInner; + requestFuncMap_[SET_MISSION_LABEL] = &AbilityManagerStub::SetMissionLabelInner; requestFuncMap_[SET_ABILITY_CONTROLLER] = &AbilityManagerStub::SetAbilityControllerInner; requestFuncMap_[IS_USER_A_STABILITY_TEST] = &AbilityManagerStub::IsUserAStabilityTestInner; } @@ -1125,6 +1126,23 @@ int AbilityManagerStub::StopUserInner(MessageParcel &data, MessageParcel &reply) return NO_ERROR; } +int AbilityManagerStub::SetMissionLabelInner(MessageParcel &data, MessageParcel &reply) +{ + sptr token = data.ReadParcelable(); + if (!token) { + HILOG_ERROR("SetMissionLabelInner read ability token failed."); + return ERR_NULL_OBJECT; + } + + std::string label = Str16ToStr8(data.ReadString16()); + int result = SetMissionLabel(token, label); + if (!reply.WriteInt32(result)) { + HILOG_ERROR("SetMissionLabel failed."); + return ERR_INVALID_VALUE; + } + return NO_ERROR; +} + int AbilityManagerStub::StartSyncRemoteMissionsInner(MessageParcel &data, MessageParcel &reply) { std::string deviceId = data.ReadString(); diff --git a/services/abilitymgr/src/mission_info_mgr.cpp b/services/abilitymgr/src/mission_info_mgr.cpp index e3282cc3ac2..cbf6ff3873d 100644 --- a/services/abilitymgr/src/mission_info_mgr.cpp +++ b/services/abilitymgr/src/mission_info_mgr.cpp @@ -275,6 +275,30 @@ void MissionInfoMgr::UpdateMissionTimeStamp(int32_t missionId, const std::string (void)AddMissionInfo(updateInfo); } +int MissionInfoMgr::UpdateMissionLabel(int32_t missionId, const std::string& label) +{ + if (!taskDataPersistenceMgr_) { + HILOG_ERROR("task data persist not init."); + return -1; + } + auto it = find_if(missionInfoList_.begin(), missionInfoList_.end(), [missionId](const InnerMissionInfo &info) { + return missionId == info.missionInfo.id; + }); + if (it == missionInfoList_.end()) { + HILOG_ERROR("UpdateMissionLabel failed, missionId %{public}d not exists", missionId); + return -1; + } + + InnerMissionInfo updateInfo = *it; + updateInfo.missionInfo.label = label; + + if (!taskDataPersistenceMgr_->SaveMissionInfo(updateInfo)) { + HILOG_ERROR("save mission info failed."); + return -1; + } + return 0; +} + bool MissionInfoMgr::LoadAllMissionInfo() { if (!taskDataPersistenceMgr_) { diff --git a/services/abilitymgr/src/mission_list_manager.cpp b/services/abilitymgr/src/mission_list_manager.cpp index c934493732e..41e812a68ec 100644 --- a/services/abilitymgr/src/mission_list_manager.cpp +++ b/services/abilitymgr/src/mission_list_manager.cpp @@ -279,11 +279,11 @@ void MissionListManager::GetTargetMissionAndAbility(const AbilityRequest &abilit info.isSingletonMode = isSingleton; info.missionInfo.runningState = 0; info.missionInfo.time = Time2str(time(0)); - info.missionInfo.label = abilityRequest.appInfo.label; info.missionInfo.iconPath = abilityRequest.appInfo.iconPath; info.missionInfo.want = abilityRequest.want; if (!findReusedMissionInfo) { + info.missionInfo.label = abilityRequest.appInfo.label; if (!DelayedSingleton::GetInstance()->GenerateMissionId(info.missionInfo.id)) { HILOG_DEBUG("failed to generate mission id."); return; @@ -1394,6 +1394,23 @@ void MissionListManager::BackToLauncher() launcherRootAbility->ProcessForegroundAbility(); } +int MissionListManager::SetMissionLabel(const sptr &token, const std::string &label) +{ + if (!token) { + HILOG_INFO("SetMissionLabel token is nullptr."); + return -1; + } + + std::lock_guard guard(managerLock_); + auto missionId = GetMissionIdByAbilityToken(token); + if (missionId <= 0) { + HILOG_INFO("SetMissionLabel find mission failed."); + return -1; + } + + return DelayedSingleton::GetInstance()->UpdateMissionLabel(missionId, label); +} + void MissionListManager::Dump(std::vector &info) { std::lock_guard guard(managerLock_); diff --git a/services/abilitymgr/test/unittest/phone/ability_manager_proxy_test/ability_manager_stub_mock.h b/services/abilitymgr/test/unittest/phone/ability_manager_proxy_test/ability_manager_stub_mock.h index 4bbdfa5e31e..adf87321683 100755 --- a/services/abilitymgr/test/unittest/phone/ability_manager_proxy_test/ability_manager_stub_mock.h +++ b/services/abilitymgr/test/unittest/phone/ability_manager_proxy_test/ability_manager_stub_mock.h @@ -378,6 +378,7 @@ public: MOCK_METHOD1(CleanMission, int(int32_t missionId)); MOCK_METHOD0(CleanAllMissions, int()); MOCK_METHOD1(MoveMissionToFront, int(int32_t missionId)); + MOCK_METHOD2(SetMissionLabel, int(const sptr &token, const std::string &label)); MOCK_METHOD2(GetWantSenderInfo, int(const sptr &target, std::shared_ptr &info)); }; } // namespace AAFwk diff --git a/services/abilitymgr/test/unittest/phone/ability_manager_stub_test/ability_manager_stub_impl_mock.h b/services/abilitymgr/test/unittest/phone/ability_manager_stub_test/ability_manager_stub_impl_mock.h index 0075b557b50..9ac7e2b7080 100755 --- a/services/abilitymgr/test/unittest/phone/ability_manager_stub_test/ability_manager_stub_impl_mock.h +++ b/services/abilitymgr/test/unittest/phone/ability_manager_stub_test/ability_manager_stub_impl_mock.h @@ -46,6 +46,7 @@ public: MOCK_METHOD2(GetPendingRequestWant, int(const sptr &target, std::shared_ptr &want)); MOCK_METHOD1(GetSystemMemoryAttr, void(AppExecFwk::SystemMemoryAttr &memoryInfo)); MOCK_METHOD2(GetWantSenderInfo, int(const sptr &target, std::shared_ptr &info)); + MOCK_METHOD2(SetMissionLabel, int(const sptr &token, const std::string &label)); MOCK_METHOD3(StartContinuation, int(const Want &want, const sptr &abilityToken, int32_t status)); MOCK_METHOD2(NotifyContinuationResult, int(int32_t missionId, const int32_t result)); diff --git a/services/abilitymgr/test/unittest/phone/ability_manager_test/ability_manager_stub_mock.h b/services/abilitymgr/test/unittest/phone/ability_manager_test/ability_manager_stub_mock.h index 2ed83816db6..562a1fb90d2 100755 --- a/services/abilitymgr/test/unittest/phone/ability_manager_test/ability_manager_stub_mock.h +++ b/services/abilitymgr/test/unittest/phone/ability_manager_test/ability_manager_stub_mock.h @@ -98,6 +98,7 @@ public: MOCK_METHOD1(TerminateAbilityTest, void(int id)); MOCK_METHOD1(MoveMissionToEnd, int(int id)); MOCK_METHOD2(GetWantSenderInfo, int(const sptr &target, std::shared_ptr &info)); + MOCK_METHOD2(SetMissionLabel, int(const sptr &token, const std::string &label)); virtual int StartUser(int userId) override { return 0; diff --git a/services/test/mock/include/mock_ability_mgr_service.h b/services/test/mock/include/mock_ability_mgr_service.h index a95f9080f81..d1c26500242 100755 --- a/services/test/mock/include/mock_ability_mgr_service.h +++ b/services/test/mock/include/mock_ability_mgr_service.h @@ -105,6 +105,7 @@ public: MOCK_METHOD1(CleanMission, int(int32_t missionId)); MOCK_METHOD0(CleanAllMissions, int()); MOCK_METHOD1(MoveMissionToFront, int(int32_t missionId)); + MOCK_METHOD2(SetMissionLabel, int(const sptr &token, const std::string &label)); MOCK_METHOD1(ClearUpApplicationData, int(const std::string &)); MOCK_METHOD2(GetWantSenderInfo, int(const sptr &target, std::shared_ptr &info)); diff --git a/tools/test/mock/mock_ability_manager_stub.h b/tools/test/mock/mock_ability_manager_stub.h index 73fe0ad0e5b..bb13aafd439 100755 --- a/tools/test/mock/mock_ability_manager_stub.h +++ b/tools/test/mock/mock_ability_manager_stub.h @@ -131,6 +131,7 @@ public: MOCK_METHOD1(CleanMission, int(int32_t missionId)); MOCK_METHOD0(CleanAllMissions, int()); MOCK_METHOD1(MoveMissionToFront, int(int32_t missionId)); + MOCK_METHOD2(SetMissionLabel, int(const sptr &token, const std::string &label)); MOCK_METHOD1(ClearUpApplicationData, int(const std::string &)); MOCK_METHOD2(GetWantSenderInfo, int(const sptr &target, std::shared_ptr &info)); -- Gitee