From a25a66df2c44a18873164f2c113b4fc101ddd949 Mon Sep 17 00:00:00 2001 From: danshenwudi Date: Thu, 21 Dec 2023 02:28:47 +0000 Subject: [PATCH] =?UTF-8?q?=E8=B6=85=E5=A4=A7=E4=BA=94=E9=A1=B9=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=95=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: danshenwudi Change-Id: I9ead48f00536ef574bc4ff6d676a716800c2c687 --- .../include/ability_connect_manager.h | 3 ++ .../src/ability_connect_manager.cpp | 29 +++++++++++-------- .../abilitymgr/src/ability_manager_proxy.cpp | 2 -- .../src/implicit_start_processor.cpp | 10 +++++-- 4 files changed, 27 insertions(+), 17 deletions(-) diff --git a/services/abilitymgr/include/ability_connect_manager.h b/services/abilitymgr/include/ability_connect_manager.h index 551b9c36a7f..d559f1213f9 100644 --- a/services/abilitymgr/include/ability_connect_manager.h +++ b/services/abilitymgr/include/ability_connect_manager.h @@ -129,6 +129,9 @@ public: */ int AbilityTransitionDone(const sptr &token, int state); + void ExecuteAbilityRecord(int targetState, const sptr &token, + std::shared_ptr &abilityRecord, std::string abilityState); + /** * ScheduleConnectAbilityDoneLocked, service ability call this interface while session was connected. * diff --git a/services/abilitymgr/src/ability_connect_manager.cpp b/services/abilitymgr/src/ability_connect_manager.cpp index 8ea182099c0..401639dda69 100644 --- a/services/abilitymgr/src/ability_connect_manager.cpp +++ b/services/abilitymgr/src/ability_connect_manager.cpp @@ -657,19 +657,8 @@ int AbilityConnectManager::AbilityTransitionDone(const sptr &toke int targetState = AbilityRecord::ConvertLifeCycleToAbilityState(static_cast(state)); std::string abilityState = AbilityRecord::ConvertAbilityState(static_cast(targetState)); std::shared_ptr abilityRecord; - if (targetState == AbilityState::INACTIVE - || targetState == AbilityState::FOREGROUND - || targetState == AbilityState::BACKGROUND) { - abilityRecord = GetExtensionFromServiceMapInner(token); - } else if (targetState == AbilityState::INITIAL) { - abilityRecord = GetExtensionFromTerminatingMapInner(token); - } else { - abilityRecord = nullptr; - } + AbilityConnectManager::ExecuteAbilityRecord(targetState, token, abilityRecord, abilityState); CHECK_POINTER_AND_RETURN(abilityRecord, ERR_INVALID_VALUE); - std::string element = abilityRecord->GetURI(); - HILOG_DEBUG("Ability: %{public}s, state: %{public}s", element.c_str(), abilityState.c_str()); - switch (targetState) { case AbilityState::INACTIVE: { if (abilityRecord->GetAbilityInfo().type == AbilityType::SERVICE) { @@ -715,6 +704,22 @@ int AbilityConnectManager::AbilityTransitionDone(const sptr &toke } } +void AbilityConnectManager::ExecuteAbilityRecord(int targetState, const sptr &token, + std::shared_ptr &abilityRecord, std::string abilityState) +{ + if (targetState == AbilityState::INACTIVE + || targetState == AbilityState::FOREGROUND + || targetState == AbilityState::BACKGROUND) { + abilityRecord = GetExtensionFromServiceMapInner(token); + } else if (targetState == AbilityState::INITIAL) { + abilityRecord = GetExtensionFromTerminatingMapInner(token); + } else { + abilityRecord = nullptr; + } + std::string element = abilityRecord->GetURI(); + HILOG_DEBUG("Ability: %{public}s, state: %{public}s", element.c_str(), abilityState.c_str()); +} + void AbilityConnectManager::ProcessPreload(const std::shared_ptr &record) const { auto bundleMgrHelper = AbilityUtil::GetBundleManagerHelper(); diff --git a/services/abilitymgr/src/ability_manager_proxy.cpp b/services/abilitymgr/src/ability_manager_proxy.cpp index 711564ea9be..43c34691788 100644 --- a/services/abilitymgr/src/ability_manager_proxy.cpp +++ b/services/abilitymgr/src/ability_manager_proxy.cpp @@ -375,7 +375,6 @@ int AbilityManagerProxy::StartAbilityAsCaller(const Want &want, const StartOptio } } else { if (!data.WriteBool(false)) { - HILOG_ERROR("flag write failed."); return INNER_ERR; } } @@ -386,7 +385,6 @@ int AbilityManagerProxy::StartAbilityAsCaller(const Want &want, const StartOptio } } else { if (!data.WriteBool(false)) { - HILOG_ERROR("asCallerSourceToken write failed."); return INNER_ERR; } } diff --git a/services/abilitymgr/src/implicit_start_processor.cpp b/services/abilitymgr/src/implicit_start_processor.cpp index aa635c3190c..14058813805 100644 --- a/services/abilitymgr/src/implicit_start_processor.cpp +++ b/services/abilitymgr/src/implicit_start_processor.cpp @@ -247,7 +247,8 @@ int ImplicitStartProcessor::GenerateAbilityRequestByAction(int32_t userId, bool withDefault = false; withDefault = request.want.GetBoolParam(SHOW_DEFAULT_PICKER_FLAG, withDefault) ? false : true; - if (IPCSkeleton::GetCallingUid() == NFC_CALLER_UID && !request.want.GetStringArrayParam(PARAM_ABILITY_APPINFOS).empty()) { + if (IPCSkeleton::GetCallingUid() == NFC_CALLER_UID && + !request.want.GetStringArrayParam(PARAM_ABILITY_APPINFOS).empty()) { HILOG_INFO("The NFCNeed caller source is NFC."); ImplicitStartProcessor::QueryBmsAppInfos(request, userId, dialogAppInfos); } @@ -318,7 +319,9 @@ int ImplicitStartProcessor::GenerateAbilityRequestByAction(int32_t userId, return ERR_OK; } -int ImplicitStartProcessor::QueryBmsAppInfos(AbilityRequest &request, int32_t userId, std::vector &dialogAppInfos) { +int ImplicitStartProcessor::QueryBmsAppInfos(AbilityRequest &request, int32_t userId, + std::vector &dialogAppInfos) +{ auto bundleMgrHelper = GetBundleManagerHelper(); std::vector bmsApps; auto abilityInfoFlag = AppExecFwk::AbilityInfoFlag::GET_ABILITY_INFO_DEFAULT @@ -357,7 +360,8 @@ int ImplicitStartProcessor::QueryBmsAppInfos(AbilityRequest &request, int32_t us return ERR_OK; } -std::vector ImplicitStartProcessor::SplitStr(const std::string& str, char delimiter) { +std::vector ImplicitStartProcessor::SplitStr(const std::string& str, char delimiter) +{ std::stringstream ss(str); std::vector result; std::string s; -- Gitee