From 7f46b91dd57bb86e8b5f5d9fd483b6924beafa3f Mon Sep 17 00:00:00 2001 From: jerry Date: Tue, 18 Jan 2022 08:27:01 +0000 Subject: [PATCH 1/2] IssueNo:#I4RB25 Description: fix clear mission bugs Sig:SIG_ApplicationFramework Feature or Bugfix: Bugfix Binary Source: No Signed-off-by: jerry --- .../abilitymgr/include/mission_list_manager.h | 2 +- .../abilitymgr/src/mission_list_manager.cpp | 20 ++++++++++--------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/services/abilitymgr/include/mission_list_manager.h b/services/abilitymgr/include/mission_list_manager.h index 331dbbdb5a4..6c7d2486714 100644 --- a/services/abilitymgr/include/mission_list_manager.h +++ b/services/abilitymgr/include/mission_list_manager.h @@ -110,7 +110,7 @@ public: * @param missionId the given missionId * @return the mission of the given id */ - std::shared_ptr GetMissionById(int missionId) const; + std::shared_ptr GetMissionById(int missionId, bool containsLauncher) const; /** * @brief Terminate ability with the given abilityRecord diff --git a/services/abilitymgr/src/mission_list_manager.cpp b/services/abilitymgr/src/mission_list_manager.cpp index 2746ac91b0f..9dd67d3b587 100644 --- a/services/abilitymgr/src/mission_list_manager.cpp +++ b/services/abilitymgr/src/mission_list_manager.cpp @@ -579,11 +579,17 @@ std::shared_ptr MissionListManager::GetAbilityRecordByToken( return defaultStandardList_->GetAbilityRecordByToken(token); } -std::shared_ptr MissionListManager::GetMissionById(int missionId) const +std::shared_ptr MissionListManager::GetMissionById(int missionId, bool containsLauncher) const { std::shared_ptr mission = nullptr; for (auto missionList : currentMissionLists_) { - if (missionList && (mission = missionList->GetMissionById(missionId)) != nullptr) { + if (!missionList) { + continue; + } + if (!containsLauncher && missionList->GetType() == MissionListType::LAUNCHER) { + continue; + } + if (mission = missionList->GetMissionById(missionId) != nullptr) { return mission; } } @@ -592,10 +598,6 @@ std::shared_ptr MissionListManager::GetMissionById(int missionId) const return mission; } - if ((mission = launcherList_->GetMissionById(missionId)) != nullptr) { - return mission; - } - return defaultStandardList_->GetMissionById(missionId); } @@ -983,7 +985,7 @@ int MissionListManager::ClearMission(int missionId) return ERR_INVALID_VALUE; } std::lock_guard guard(managerLock_); - auto mission = GetMissionById(missionId); + auto mission = GetMissionById(missionId, false); return ClearMissionLocked(missionId, mission); } @@ -1064,7 +1066,7 @@ int MissionListManager::SetMissionLockedState(int missionId, bool lockedState) HILOG_ERROR("param is invalid"); return MISSION_NOT_FOUND; } - std::shared_ptr mission = GetMissionById(missionId); + std::shared_ptr mission = GetMissionById(missionId, false); if (mission) { mission->SetLockedState(lockedState); // update inner mission info time @@ -1177,7 +1179,7 @@ void MissionListManager::OnAbilityDied(std::shared_ptr abilityRec std::shared_ptr MissionListManager::GetTargetMissionList(int missionId, std::shared_ptr &mission) { - mission = GetMissionById(missionId); + mission = GetMissionById(missionId, true); if (mission) { HILOG_DEBUG("get mission by id successfully, missionId: %{public}d", missionId); auto missionList = mission->GetMissionList(); -- Gitee From 383f65d4c89b559f7213407eddf327aca2d735a7 Mon Sep 17 00:00:00 2001 From: jerry Date: Tue, 18 Jan 2022 09:00:38 +0000 Subject: [PATCH 2/2] fix bugs Signed-off-by: jerry --- services/abilitymgr/src/mission_list_manager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/abilitymgr/src/mission_list_manager.cpp b/services/abilitymgr/src/mission_list_manager.cpp index 9dd67d3b587..e1e309b6c20 100644 --- a/services/abilitymgr/src/mission_list_manager.cpp +++ b/services/abilitymgr/src/mission_list_manager.cpp @@ -589,7 +589,7 @@ std::shared_ptr MissionListManager::GetMissionById(int missionId, bool if (!containsLauncher && missionList->GetType() == MissionListType::LAUNCHER) { continue; } - if (mission = missionList->GetMissionById(missionId) != nullptr) { + if ((mission = missionList->GetMissionById(missionId)) != nullptr) { return mission; } } -- Gitee