From bab3ff3471caaa603852cf67d5e39d4fce893ccd Mon Sep 17 00:00:00 2001 From: xia Date: Wed, 3 Jul 2024 20:38:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=B7=B3=E8=BD=AC=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E6=A1=86=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: xia --- .../js_dialog_session_utils.h | 2 +- interfaces/inner_api/ability_manager/BUILD.gn | 2 +- .../include/ability_manager_client.h | 2 +- .../include/ability_manager_interface.h | 5 +- services/abilitymgr/BUILD.gn | 1 + services/abilitymgr/abilitymgr.gni | 2 +- .../include/ability_manager_proxy.h | 5 +- .../include/ability_manager_service.h | 18 +-- .../dialog_session_manager.h} | 34 ++-- .../include/implicit_start_processor.h | 3 - .../abilitymgr/src/ability_manager_client.cpp | 2 +- .../abilitymgr/src/ability_manager_proxy.cpp | 5 +- .../src/ability_manager_service.cpp | 148 +++--------------- .../abilitymgr/src/ability_manager_stub.cpp | 4 +- .../dialog_session_info.cpp | 0 .../dialog_session_manager.cpp} | 129 ++++++++++++++- .../src/implicit_start_processor.cpp | 25 +-- services/appmgr/src/app_mgr_service.cpp | 2 +- .../mock_serviceability_manager_service.cpp | 2 +- .../AMS/mock_serviceability_manager_service.h | 3 +- .../include/mock_ability_manager_service.h | 4 +- .../mock_ability_delegator_stub.h | 8 +- .../include/mock_ability_mgr_service.h | 4 +- .../AMS/mock_ability_manager_service.cpp | 2 +- .../AMS/mock_ability_manager_service.h | 3 +- .../mock_serviceability_manager_service.cpp | 2 +- .../AMS/mock_serviceability_manager_service.h | 3 +- .../include/appmgr/mock_ability_mgr_host.h | 2 +- .../mock/include/mock_ability_manager_proxy.h | 4 +- .../mock/include/mock_ability_mgr_service.h | 4 +- test/unittest/BUILD.gn | 2 +- .../ability_manager_stub_mock_test.h | 4 +- .../ability_manager_stub_mock.h | 4 +- .../ability_manager_service_third_test.cpp | 15 +- .../ability_manager_stub_impl_mock.h | 4 +- .../ability_manager_stub_mock.h | 4 +- .../ability_manager_stub_mock.h | 4 +- .../mock_ability_manager_service.h | 4 +- tools/test/mock/mock_ability_manager_stub.h | 4 +- 39 files changed, 233 insertions(+), 242 deletions(-) rename services/abilitymgr/include/{dialog_session_record.h => dialog_session/dialog_session_manager.h} (70%) rename services/abilitymgr/src/{ => dialog_session}/dialog_session_info.cpp (100%) rename services/abilitymgr/src/{dialog_session_record.cpp => dialog_session/dialog_session_manager.cpp} (51%) diff --git a/frameworks/js/napi/js_dialog_session/js_dialog_session_utils.h b/frameworks/js/napi/js_dialog_session/js_dialog_session_utils.h index 1f9d4864c0..81984a9569 100644 --- a/frameworks/js/napi/js_dialog_session/js_dialog_session_utils.h +++ b/frameworks/js/napi/js_dialog_session/js_dialog_session_utils.h @@ -23,7 +23,7 @@ #include "js_dialog_session.h" #include "js_runtime_utils.h" #include "native_engine/native_engine.h" -#include "dialog_session_record.h" +#include "dialog_session_manager.h" namespace OHOS { namespace AppExecFwk { diff --git a/interfaces/inner_api/ability_manager/BUILD.gn b/interfaces/inner_api/ability_manager/BUILD.gn index 8fa42e638b..d987116005 100644 --- a/interfaces/inner_api/ability_manager/BUILD.gn +++ b/interfaces/inner_api/ability_manager/BUILD.gn @@ -76,7 +76,7 @@ ohos_shared_library("ability_manager") { "${ability_runtime_services_path}/abilitymgr/src/acquire_share_data_callback_stub.cpp", "${ability_runtime_services_path}/abilitymgr/src/auto_startup_info.cpp", "${ability_runtime_services_path}/abilitymgr/src/caller_info.cpp", - "${ability_runtime_services_path}/abilitymgr/src/dialog_session_info.cpp", + "${ability_runtime_services_path}/abilitymgr/src/dialog_session/dialog_session_info.cpp", "${ability_runtime_services_path}/abilitymgr/src/exit_reason.cpp", "${ability_runtime_services_path}/abilitymgr/src/extension_running_info.cpp", "${ability_runtime_services_path}/abilitymgr/src/insight_intent_execute_callback_proxy.cpp", diff --git a/interfaces/inner_api/ability_manager/include/ability_manager_client.h b/interfaces/inner_api/ability_manager/include/ability_manager_client.h index ecb9fa180e..5aa52ce070 100644 --- a/interfaces/inner_api/ability_manager/include/ability_manager_client.h +++ b/interfaces/inner_api/ability_manager/include/ability_manager_client.h @@ -1035,7 +1035,7 @@ public: std::shared_ptr pixelMap); ErrCode GetDialogSessionInfo(const std::string dialogSessionId, sptr &info); - ErrCode SendDialogResult(const Want &want, const std::string dialogSessionId, bool isAllow); + ErrCode SendDialogResult(const Want &want, const std::string &dialogSessionId, bool isAllow); #endif /** diff --git a/interfaces/inner_api/ability_manager/include/ability_manager_interface.h b/interfaces/inner_api/ability_manager/include/ability_manager_interface.h index ed7699aa10..bdcc4ff633 100644 --- a/interfaces/inner_api/ability_manager/include/ability_manager_interface.h +++ b/interfaces/inner_api/ability_manager/include/ability_manager_interface.h @@ -203,8 +203,7 @@ public: const sptr &callerToken, sptr asCallerSourceToken, int32_t userId = DEFAULT_INVAL_VALUE, - int requestCode = DEFAULT_INVAL_VALUE, - bool isSendDialogResult = false) + int requestCode = DEFAULT_INVAL_VALUE) { return 0; } @@ -942,7 +941,7 @@ public: return 0; } - virtual int SendDialogResult(const Want &want, const std::string dialogSessionId, bool isAllow) + virtual int SendDialogResult(const Want &want, const std::string &dialogSessionId, bool isAllow) { return 0; } diff --git a/services/abilitymgr/BUILD.gn b/services/abilitymgr/BUILD.gn index 5aeef4ad1d..b679725fe4 100644 --- a/services/abilitymgr/BUILD.gn +++ b/services/abilitymgr/BUILD.gn @@ -32,6 +32,7 @@ config("abilityms_config") { "include/", "include/rdb/", "include/screen_lock/", + "include/dialog_session/", "${ability_runtime_innerkits_path}/ability_manager/include", "${ability_runtime_services_path}/appdfr/include", "${ability_runtime_innerkits_path}/app_manager/include", diff --git a/services/abilitymgr/abilitymgr.gni b/services/abilitymgr/abilitymgr.gni index 37afe7c10a..ccab515a4c 100644 --- a/services/abilitymgr/abilitymgr.gni +++ b/services/abilitymgr/abilitymgr.gni @@ -35,7 +35,7 @@ abilityms_files = [ "src/data_ability_caller_recipient.cpp", "src/data_ability_manager.cpp", "src/data_ability_record.cpp", - "src/dialog_session_record.cpp", + "src/dialog_session/dialog_session_manager.cpp", "src/lifecycle_deal.cpp", "src/ability_running_info.cpp", "src/ecological_rule/ability_ecological_rule_mgr_service_param.cpp", diff --git a/services/abilitymgr/include/ability_manager_proxy.h b/services/abilitymgr/include/ability_manager_proxy.h index 23e77bb36f..6b28c2314f 100644 --- a/services/abilitymgr/include/ability_manager_proxy.h +++ b/services/abilitymgr/include/ability_manager_proxy.h @@ -145,8 +145,7 @@ public: const sptr &callerToken, sptr asCallerSourceToken, int32_t userId = DEFAULT_INVAL_VALUE, - int requestCode = DEFAULT_INVAL_VALUE, - bool isSendDialogResult = false) override; + int requestCode = DEFAULT_INVAL_VALUE) override; /** * Starts a new ability using the original caller information. @@ -732,7 +731,7 @@ public: virtual int GetDialogSessionInfo(const std::string dialogSessionId, sptr &info) override; - virtual int SendDialogResult(const Want &want, const std::string dialogSessionId, bool isAllow) override; + virtual int SendDialogResult(const Want &want, const std::string &dialogSessionId, bool isAllow) override; virtual int RegisterAbilityFirstFrameStateObserver(const sptr &observer, const std::string &targetBundleName) override; diff --git a/services/abilitymgr/include/ability_manager_service.h b/services/abilitymgr/include/ability_manager_service.h index e312a605e5..16af167a3b 100644 --- a/services/abilitymgr/include/ability_manager_service.h +++ b/services/abilitymgr/include/ability_manager_service.h @@ -66,7 +66,6 @@ #include "uri.h" #include "user_controller.h" #ifdef SUPPORT_GRAPHICS -#include "dialog_session_record.h" #include "implicit_start_processor.h" #include "system_dialog_scheduler.h" #endif @@ -254,8 +253,7 @@ public: const sptr &callerToken, sptr asCallerSourceToken, int32_t userId = DEFAULT_INVAL_VALUE, - int requestCode = DEFAULT_INVAL_VALUE, - bool isSendDialogResult = false) override; + int requestCode = DEFAULT_INVAL_VALUE) override; /** * Starts a new ability using the original caller information. @@ -948,7 +946,6 @@ public: int requestCode, int32_t userId = DEFAULT_INVAL_VALUE, bool isStartAsCaller = false, - bool isSendDialogResult = false, uint32_t specifyTokenId = 0, bool isForegroundToRestartApp = false, bool isImplicit = false); @@ -959,7 +956,6 @@ public: int requestCode, int32_t userId = DEFAULT_INVAL_VALUE, bool isStartAsCaller = false, - bool isSendDialogResult = false, uint32_t specifyTokenId = 0, bool isForegroundToRestartApp = false, bool isImplicit = false); @@ -1032,7 +1028,6 @@ public: sptr asCallerSourceToken, int32_t userId = DEFAULT_INVAL_VALUE, int requestCode = DEFAULT_INVAL_VALUE, - bool isSendDialogResult = false, bool isImplicit = false); int ImplicitStartAbilityAsCaller( @@ -1040,8 +1035,7 @@ public: const sptr &callerToken, sptr asCallerSourceToken, int32_t userId = DEFAULT_INVAL_VALUE, - int requestCode = DEFAULT_INVAL_VALUE, - bool isSendDialogResult = false); + int requestCode = DEFAULT_INVAL_VALUE); void OnAcceptWantResponse(const AAFwk::Want &want, const std::string &flag, int32_t requestId = 0); void OnStartSpecifiedAbilityTimeoutResponse(const AAFwk::Want &want, int32_t requestId = 0); @@ -1130,12 +1124,7 @@ public: virtual int GetDialogSessionInfo(const std::string dialogSessionId, sptr &dialogSessionInfo) override; - bool GenerateDialogSessionRecord(AbilityRequest &abilityRequest, int32_t userId, - std::string &dialogSessionId, std::vector &dialogAppInfos, bool isSelector); - - int CreateModalDialog(const Want &replaceWant, sptr callerToken, std::string dialogSessionId); - - virtual int SendDialogResult(const Want &want, const std::string dialogSessionId, bool isAllowed) override; + virtual int SendDialogResult(const Want &want, const std::string &dialogSessionId, bool isAllowed) override; virtual int RegisterAbilityFirstFrameStateObserver(const sptr &observer, const std::string &bundleName) override; @@ -2330,7 +2319,6 @@ private: void InitPrepareTerminateConfig(); std::shared_ptr implicitStartProcessor_; sptr wmsHandler_; - std::shared_ptr dialogSessionRecord_; bool isAnimationEnabled_ = true; //only use on mission list #endif std::shared_ptr interceptorExecuter_; diff --git a/services/abilitymgr/include/dialog_session_record.h b/services/abilitymgr/include/dialog_session/dialog_session_manager.h similarity index 70% rename from services/abilitymgr/include/dialog_session_record.h rename to services/abilitymgr/include/dialog_session/dialog_session_manager.h index 1db719fb53..5e26da4165 100644 --- a/services/abilitymgr/include/dialog_session_record.h +++ b/services/abilitymgr/include/dialog_session/dialog_session_manager.h @@ -13,8 +13,8 @@ * limitations under the License. */ -#ifndef OHOS_ABILITY_RUNTIME_DIALOG_SESSION_RECORD_H -#define OHOS_ABILITY_RUNTIME_DIALOG_SESSION_RECORD_H +#ifndef OHOS_ABILITY_RUNTIME_DIALOG_SESSION_MANAGEER_H +#define OHOS_ABILITY_RUNTIME_DIALOG_SESSION_MANAGEER_H #include #include #include @@ -22,6 +22,7 @@ #include "cpp/mutex.h" #include "dialog_session_info.h" #include "json_serializer.h" +#include "nocopyable.h" #include "parcel.h" #include "refbase.h" #include "system_dialog_scheduler.h" @@ -37,17 +38,29 @@ struct DialogCallerInfo { bool isSelector = false; }; -class DialogSessionRecord { +class DialogSessionManager { public: - std::string GenerateDialogSessionId(); - - void SetDialogSessionInfo(const std::string dialogSessionId, sptr &dilogSessionInfo, - std::shared_ptr &dialogCallerInfo); + static DialogSessionManager &GetInstance(); + ~DialogSessionManager() = default; sptr GetDialogSessionInfo(const std::string dialogSessionId) const; std::shared_ptr GetDialogCallerInfo(const std::string dialogSessionId) const; + int SendDialogResult(const Want &want, const std::string &dialogSessionId, bool isAllowed); + + int CreateJumpModalDialog(AbilityRequest &abilityRequest, int32_t userId, const Want &replaceWant); + + int CreateSelectorModalDialog(AbilityRequest &abilityRequest, const Want &want, int32_t userId, + std::vector &dialogAppInfos); + +private: + DialogSessionManager() = default; + std::string GenerateDialogSessionId(); + + void SetDialogSessionInfo(const std::string dialogSessionId, sptr &dilogSessionInfo, + std::shared_ptr &dialogCallerInfo); + void ClearDialogContext(const std::string dialogSessionId); void ClearAllDialogContexts(); @@ -55,11 +68,14 @@ public: bool GenerateDialogSessionRecord(AbilityRequest &abilityRequest, int32_t userId, std::string &dialogSessionId, std::vector &dialogAppInfos, bool isSelector); -private: + int CreateModalDialogCommon(const Want &replaceWant, sptr callerToken, std::string dialogSessionId); + mutable ffrt::mutex dialogSessionRecordLock_; std::unordered_map> dialogSessionInfoMap_; std::unordered_map> dialogCallerInfoMap_; + + DISALLOW_COPY_AND_MOVE(DialogSessionManager); }; } // namespace AAFwk } // namespace OHOS -#endif // OHOS_ABILITY_RUNTIME_DIALOG_SESSION_RECORD_H +#endif // OHOS_ABILITY_RUNTIME_DIALOG_SESSION_MANAGEER_H diff --git a/services/abilitymgr/include/implicit_start_processor.h b/services/abilitymgr/include/implicit_start_processor.h index b5c17e31d2..8c9f02cbcc 100644 --- a/services/abilitymgr/include/implicit_start_processor.h +++ b/services/abilitymgr/include/implicit_start_processor.h @@ -62,9 +62,6 @@ public: void ResetCallingIdentityAsCaller(int32_t tokenId); - int NotifyCreateModalDialog(AbilityRequest &abilityRequest, const Want &want, int32_t userId, - std::vector &dialogAppInfos); - void SetUriReservedFlag(const bool flag); void SetUriReservedBundle(const std::string bundleName); diff --git a/services/abilitymgr/src/ability_manager_client.cpp b/services/abilitymgr/src/ability_manager_client.cpp index 22fd5cd6e7..db9052744b 100644 --- a/services/abilitymgr/src/ability_manager_client.cpp +++ b/services/abilitymgr/src/ability_manager_client.cpp @@ -1338,7 +1338,7 @@ ErrCode AbilityManagerClient::GetDialogSessionInfo(const std::string dialogSessi return abms->GetDialogSessionInfo(dialogSessionId, info); } -ErrCode AbilityManagerClient::SendDialogResult(const Want &want, const std::string dialogSessionId, const bool isAllow) +ErrCode AbilityManagerClient::SendDialogResult(const Want &want, const std::string &dialogSessionId, const bool isAllow) { auto abms = GetAbilityManager(); CHECK_POINTER_RETURN_NOT_CONNECTED(abms); diff --git a/services/abilitymgr/src/ability_manager_proxy.cpp b/services/abilitymgr/src/ability_manager_proxy.cpp index 1914ff778a..7774294dd9 100644 --- a/services/abilitymgr/src/ability_manager_proxy.cpp +++ b/services/abilitymgr/src/ability_manager_proxy.cpp @@ -367,7 +367,7 @@ int AbilityManagerProxy::StartAbility(const Want &want, const StartOptions &star } int AbilityManagerProxy::StartAbilityAsCaller(const Want &want, const sptr &callerToken, - sptr asCallerSourceToken, int32_t userId, int requestCode, bool isSendDialogResult) + sptr asCallerSourceToken, int32_t userId, int requestCode) { MessageParcel data; MessageParcel reply; @@ -390,7 +390,6 @@ int AbilityManagerProxy::StartAbilityAsCaller(const Want &want, const sptr(); -#ifdef SUPPORT_SCREEN - dialogSessionRecord_ = std::make_shared(); -#endif // SUPPORT_SCREEN InitPushTask(); AbilityCacheManager::GetInstance().Init(AppUtils::GetInstance().GetLimitMaximumExtensionsPerDevice(), AppUtils::GetInstance().GetLimitMaximumExtensionsPerProc()); @@ -760,20 +756,20 @@ int AbilityManagerService::StartAbilityByUIContentSession(const Want &want, cons } int AbilityManagerService::StartAbilityAsCaller(const Want &want, const sptr &callerToken, - sptr asCallerSourceToken, int32_t userId, int requestCode, bool isSendDialogResult) + sptr asCallerSourceToken, int32_t userId, int requestCode) { - return StartAbilityAsCallerDetails(want, callerToken, asCallerSourceToken, userId, requestCode, isSendDialogResult); + return StartAbilityAsCallerDetails(want, callerToken, asCallerSourceToken, userId, requestCode); } int AbilityManagerService::ImplicitStartAbilityAsCaller(const Want &want, const sptr &callerToken, - sptr asCallerSourceToken, int32_t userId, int requestCode, bool isSendDialogResult) + sptr asCallerSourceToken, int32_t userId, int requestCode) { return StartAbilityAsCallerDetails(want, callerToken, asCallerSourceToken, userId, - requestCode, isSendDialogResult, true); + requestCode, true); } int AbilityManagerService::StartAbilityAsCallerDetails(const Want &want, const sptr &callerToken, - sptr asCallerSourceToken, int32_t userId, int requestCode, bool isSendDialogResult, bool isImplicit) + sptr asCallerSourceToken, int32_t userId, int requestCode, bool isImplicit) { HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__); CHECK_CALLER_IS_SYSTEM_APP; @@ -800,7 +796,7 @@ int AbilityManagerService::StartAbilityAsCallerDetails(const Want &want, const s callerPkg.c_str(), targetPkg.c_str()); AbilityUtil::AddAbilityJumpRuleToBms(callerPkg, targetPkg, GetUserId()); } - int32_t ret = StartAbilityWrap(newWant, callerToken, requestCode, userId, true, isSendDialogResult, + int32_t ret = StartAbilityWrap(newWant, callerToken, requestCode, userId, true, 0, false, isImplicit); if (ret != ERR_OK) { eventInfo.errCode = ret; @@ -875,7 +871,7 @@ bool AbilityManagerService::StartAbilityInChain(StartAbilityParams ¶ms, int } int AbilityManagerService::StartAbilityWrap(const Want &want, const sptr &callerToken, - int requestCode, int32_t userId, bool isStartAsCaller, bool isSendDialogResult, uint32_t specifyToken, + int requestCode, int32_t userId, bool isStartAsCaller, uint32_t specifyToken, bool isForegroundToRestartApp, bool isImplicit) { HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__); @@ -892,7 +888,7 @@ int AbilityManagerService::StartAbilityWrap(const Want &want, const sptr &callerToken, - int requestCode, int32_t userId, bool isStartAsCaller, bool isSendDialogResult, uint32_t specifyTokenId, + int requestCode, int32_t userId, bool isStartAsCaller, uint32_t specifyTokenId, bool isForegroundToRestartApp, bool isImplicit) { HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__); @@ -1037,9 +1033,10 @@ int AbilityManagerService::StartAbilityInner(const Want &want, const sptr(want)); std::string dialogSessionId = want.GetStringParam("dialogSessionId"); - isSendDialogResult = false; + bool isSendDialogResult = false; #ifdef SUPPORT_SCREEN - if (!dialogSessionId.empty() && dialogSessionRecord_->GetDialogCallerInfo(dialogSessionId) != nullptr) { + if (!dialogSessionId.empty() && + DialogSessionManager::GetInstance().GetDialogCallerInfo(dialogSessionId) != nullptr) { isSendDialogResult = true; } #endif // SUPPORT_SCREEN @@ -1179,19 +1176,12 @@ int AbilityManagerService::StartAbilityInner(const Want &want, const sptr dialogAppInfos(1); - if (GenerateDialogSessionRecord(abilityRequest, GetUserId(), dialogSessionId, dialogAppInfos, false)) { - TAG_LOGD(AAFwkTag::ABILITYMGR, "create dialog by ui extension"); - return CreateModalDialog(newWant, callerToken, dialogSessionId); - } -#endif // SUPPORT_SCREEN - TAG_LOGE(AAFwkTag::ABILITYMGR, "create dialog by ui extension failed"); - return INNER_ERR; + return DialogSessionManager::GetInstance().CreateJumpModalDialog(abilityRequest, GetUserId(), newWant); } +#endif // SUPPORT_SCREEN if (!AbilityUtil::IsSystemDialogAbility(abilityInfo.bundleName, abilityInfo.name)) { TAG_LOGD(AAFwkTag::ABILITYMGR, "PreLoadAppDataAbilities:%{public}s.", abilityInfo.bundleName.c_str()); @@ -1791,18 +1781,11 @@ int AbilityManagerService::StartAbilityForOptionInner(const Want &want, const St TAG_LOGE(AAFwkTag::ABILITYMGR, "DoProcess failed or replaceWant not exist"); return result; } - if (result != ERR_OK && isReplaceWantExist) { - std::string dialogSessionId; #ifdef SUPPORT_SCREEN - std::vector dialogAppInfos(1); - if (GenerateDialogSessionRecord(abilityRequest, GetUserId(), dialogSessionId, dialogAppInfos, false)) { - TAG_LOGD(AAFwkTag::ABILITYMGR, "create dialog by ui extension"); - return CreateModalDialog(newWant, callerToken, dialogSessionId); - } -#endif // SUPPORT_GRAPHICS - TAG_LOGE(AAFwkTag::ABILITYMGR, "create dialog by ui extension failed"); - return INNER_ERR; + if (result != ERR_OK && isReplaceWantExist) { + return DialogSessionManager::GetInstance().CreateJumpModalDialog(abilityRequest, GetUserId(), newWant); } +#endif // SUPPORT_GRAPHICS abilityRequest.want.RemoveParam(SPECIFY_TOKEN_ID); if (specifyTokenId > 0) { TAG_LOGD(AAFwkTag::ABILITYMGR, "Set specifyTokenId, the specifyTokenId is %{public}d.", specifyTokenId); @@ -10209,8 +10192,7 @@ int AbilityManagerService::GetDialogSessionInfo(const std::string dialogSessionI sptr &dialogSessionInfo) { CHECK_CALLER_IS_SYSTEM_APP; - CHECK_POINTER_AND_RETURN(dialogSessionRecord_, ERR_INVALID_VALUE); - dialogSessionInfo = dialogSessionRecord_->GetDialogSessionInfo(dialogSessionId); + dialogSessionInfo = DialogSessionManager::GetInstance().GetDialogSessionInfo(dialogSessionId); if (dialogSessionInfo) { TAG_LOGD(AAFwkTag::ABILITYMGR, "success"); return ERR_OK; @@ -10219,83 +10201,10 @@ int AbilityManagerService::GetDialogSessionInfo(const std::string dialogSessionI return INNER_ERR; } -bool AbilityManagerService::GenerateDialogSessionRecord(AbilityRequest &abilityRequest, int32_t userId, - std::string &dialogSessionId, std::vector &dialogAppInfos, bool isSelector) -{ - CHECK_POINTER_AND_RETURN(dialogSessionRecord_, ERR_INVALID_VALUE); - if (!isSelector && dialogAppInfos.size() == 1) { - dialogAppInfos.front().bundleName = abilityRequest.abilityInfo.bundleName; - dialogAppInfos.front().moduleName = abilityRequest.abilityInfo.moduleName; - dialogAppInfos.front().abilityName = abilityRequest.abilityInfo.name; - dialogAppInfos.front().abilityIconId = abilityRequest.abilityInfo.iconId; - dialogAppInfos.front().abilityLabelId = abilityRequest.abilityInfo.labelId; - dialogAppInfos.front().bundleIconId = abilityRequest.abilityInfo.applicationInfo.iconId; - dialogAppInfos.front().bundleLabelId = abilityRequest.abilityInfo.applicationInfo.labelId; - } - return dialogSessionRecord_->GenerateDialogSessionRecord(abilityRequest, userId, - dialogSessionId, dialogAppInfos, isSelector); -} - -int AbilityManagerService::CreateModalDialog(const Want &replaceWant, sptr callerToken, - std::string dialogSessionId) -{ - HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__); - (const_cast(replaceWant)).SetParam("dialogSessionId", dialogSessionId); - auto connection = std::make_shared(); - if (callerToken == nullptr) { - TAG_LOGD(AAFwkTag::ABILITYMGR, "create modal ui extension for system"); - (const_cast(replaceWant)).SetParam(UIEXTENSION_MODAL_TYPE, 1); - return connection->CreateModalUIExtension(replaceWant) ? ERR_OK : INNER_ERR; - } - auto callerRecord = Token::GetAbilityRecordByToken(callerToken); - if (!callerRecord) { - TAG_LOGE(AAFwkTag::ABILITYMGR, "callerRecord is nullptr."); - return ERR_INVALID_VALUE; - } - - sptr token; - int ret = IN_PROCESS_CALL(GetTopAbility(token)); - if (ret != ERR_OK || token == nullptr) { - TAG_LOGD(AAFwkTag::ABILITYMGR, "create modal ui extension for system"); - (const_cast(replaceWant)).SetParam(UIEXTENSION_MODAL_TYPE, 1); - return connection->CreateModalUIExtension(replaceWant) ? ERR_OK : INNER_ERR; - } - - if (callerRecord->GetAbilityInfo().type == AppExecFwk::AbilityType::PAGE && token == callerToken) { - TAG_LOGD(AAFwkTag::ABILITYMGR, "create modal ui extension for application"); - return callerRecord->CreateModalUIExtension(replaceWant); - } - TAG_LOGD(AAFwkTag::ABILITYMGR, "create modal ui extension for system"); - (const_cast(replaceWant)).SetParam(UIEXTENSION_MODAL_TYPE, 1); - return connection->CreateModalUIExtension(replaceWant) ? ERR_OK : INNER_ERR; -} - -int AbilityManagerService::SendDialogResult(const Want &want, const std::string dialogSessionId, bool isAllowed) +int AbilityManagerService::SendDialogResult(const Want &want, const std::string &dialogSessionId, bool isAllowed) { CHECK_CALLER_IS_SYSTEM_APP; - CHECK_POINTER_AND_RETURN(dialogSessionRecord_, ERR_INVALID_VALUE); - if (!isAllowed) { - TAG_LOGI(AAFwkTag::ABILITYMGR, "user refuse to jump"); - dialogSessionRecord_->ClearDialogContext(dialogSessionId); - return ERR_OK; - } - std::shared_ptr dialogCallerInfo = dialogSessionRecord_->GetDialogCallerInfo(dialogSessionId); - if (dialogCallerInfo == nullptr) { - TAG_LOGE(AAFwkTag::ABILITYMGR, "dialog caller info is nullptr"); - dialogSessionRecord_->ClearDialogContext(dialogSessionId); - return ERR_INVALID_VALUE; - } - auto targetWant = dialogCallerInfo->targetWant; - targetWant.SetElement(want.GetElement()); - targetWant.SetParam("isSelector", dialogCallerInfo->isSelector); - targetWant.SetParam("dialogSessionId", dialogSessionId); - sptr callerToken = dialogCallerInfo->callerToken; - int ret = StartAbilityAsCaller(targetWant, callerToken, nullptr, dialogCallerInfo->userId, - dialogCallerInfo->requestCode, true); - if (ret == ERR_OK) { - dialogSessionRecord_->ClearDialogContext(dialogSessionId); - } - return ret; + return DialogSessionManager::GetInstance().SendDialogResult(want, dialogSessionId, isAllowed); } #endif // SUPPORT_SCREEN void AbilityManagerService::RemoveLauncherDeathRecipient(int32_t userId) @@ -11233,19 +11142,12 @@ int AbilityManagerService::StartUIAbilityByPreInstallInner(sptr ses TAG_LOGE(AAFwkTag::ABILITYMGR, "DoProcess failed or replaceWant not exist"); return result; } +#ifdef SUPPORT_SCREEN if (result != ERR_OK && isReplaceWantExist && callerBundleName != BUNDLE_NAME_DIALOG) { - std::string dialogSessionId; -#ifdef SUPPORT_SCREEN - std::vector dialogAppInfos(1); - if (GenerateDialogSessionRecord(abilityRequest, GetUserId(), dialogSessionId, dialogAppInfos, false)) { - TAG_LOGD(AAFwkTag::ABILITYMGR, "create dialog by ui extension"); - return CreateModalDialog(newWant, callerToken, dialogSessionId); - } -#endif // SUPPORT_SCREEN - TAG_LOGE(AAFwkTag::ABILITYMGR, "create dialog by ui extension failed"); - return INNER_ERR; + return DialogSessionManager::GetInstance().CreateJumpModalDialog(abilityRequest, GetUserId(), newWant); } +#endif // SUPPORT_SCREEN if (abilityInfo.type == AppExecFwk::AbilityType::SERVICE || abilityInfo.type == AppExecFwk::AbilityType::EXTENSION) { diff --git a/services/abilitymgr/src/ability_manager_stub.cpp b/services/abilitymgr/src/ability_manager_stub.cpp index 1d344c51f2..eb87cab39d 100644 --- a/services/abilitymgr/src/ability_manager_stub.cpp +++ b/services/abilitymgr/src/ability_manager_stub.cpp @@ -1449,9 +1449,7 @@ int AbilityManagerStub::StartAbilityAsCallerByTokenInner(MessageParcel &data, Me } int32_t userId = data.ReadInt32(); int requestCode = data.ReadInt32(); - bool isSendDialogResult = data.ReadBool(); - int32_t result = StartAbilityAsCaller(*want, callerToken, asCallerSourceToken, userId, requestCode, - isSendDialogResult); + int32_t result = StartAbilityAsCaller(*want, callerToken, asCallerSourceToken, userId, requestCode); reply.WriteInt32(result); return NO_ERROR; } diff --git a/services/abilitymgr/src/dialog_session_info.cpp b/services/abilitymgr/src/dialog_session/dialog_session_info.cpp similarity index 100% rename from services/abilitymgr/src/dialog_session_info.cpp rename to services/abilitymgr/src/dialog_session/dialog_session_info.cpp diff --git a/services/abilitymgr/src/dialog_session_record.cpp b/services/abilitymgr/src/dialog_session/dialog_session_manager.cpp similarity index 51% rename from services/abilitymgr/src/dialog_session_record.cpp rename to services/abilitymgr/src/dialog_session/dialog_session_manager.cpp index 591805f41d..aec0bc2e36 100644 --- a/services/abilitymgr/src/dialog_session_record.cpp +++ b/services/abilitymgr/src/dialog_session/dialog_session_manager.cpp @@ -13,17 +13,19 @@ * limitations under the License. */ -#include "dialog_session_record.h" +#include "dialog_session_manager.h" #include #include #include +#include "ability_manager_service.h" #include "ability_record.h" #include "ability_util.h" #include "hilog_tag_wrapper.h" #include "hilog_wrapper.h" #include "hitrace_meter.h" #include "int_wrapper.h" +#include "modal_system_ui_extension.h" #include "parameters.h" #include "string_wrapper.h" #include "want_params_wrapper.h" @@ -31,7 +33,17 @@ namespace OHOS { namespace AAFwk { using OHOS::AppExecFwk::BundleInfo; -std::string DialogSessionRecord::GenerateDialogSessionId() +namespace { +constexpr const char* UIEXTENSION_MODAL_TYPE = "ability.want.params.modalType"; +} + +DialogSessionManager &DialogSessionManager::GetInstance() +{ + static DialogSessionManager instance; + return instance; +} + +std::string DialogSessionManager::GenerateDialogSessionId() { auto timestamp = std::chrono::system_clock::now().time_since_epoch(); auto time = std::chrono::duration_cast(timestamp).count(); @@ -51,7 +63,7 @@ std::string DialogSessionRecord::GenerateDialogSessionId() return dialogSessionId; } -void DialogSessionRecord::SetDialogSessionInfo(const std::string dialogSessionId, +void DialogSessionManager::SetDialogSessionInfo(const std::string dialogSessionId, sptr &dilogSessionInfo, std::shared_ptr &dialogCallerInfo) { std::lock_guard guard(dialogSessionRecordLock_); @@ -59,7 +71,7 @@ void DialogSessionRecord::SetDialogSessionInfo(const std::string dialogSessionId dialogCallerInfoMap_[dialogSessionId] = dialogCallerInfo; } -sptr DialogSessionRecord::GetDialogSessionInfo(const std::string dialogSessionId) const +sptr DialogSessionManager::GetDialogSessionInfo(const std::string dialogSessionId) const { std::lock_guard guard(dialogSessionRecordLock_); auto it = dialogSessionInfoMap_.find(dialogSessionId); @@ -70,7 +82,7 @@ sptr DialogSessionRecord::GetDialogSessionInfo(const std::str return nullptr; } -std::shared_ptr DialogSessionRecord::GetDialogCallerInfo(const std::string dialogSessionId) const +std::shared_ptr DialogSessionManager::GetDialogCallerInfo(const std::string dialogSessionId) const { std::lock_guard guard(dialogSessionRecordLock_); auto it = dialogCallerInfoMap_.find(dialogSessionId); @@ -81,7 +93,7 @@ std::shared_ptr DialogSessionRecord::GetDialogCallerInfo(const return nullptr; } -void DialogSessionRecord::ClearDialogContext(const std::string dialogSessionId) +void DialogSessionManager::ClearDialogContext(const std::string dialogSessionId) { std::lock_guard guard(dialogSessionRecordLock_); auto it = dialogSessionInfoMap_.find(dialogSessionId); @@ -95,14 +107,14 @@ void DialogSessionRecord::ClearDialogContext(const std::string dialogSessionId) return; } -void DialogSessionRecord::ClearAllDialogContexts() +void DialogSessionManager::ClearAllDialogContexts() { std::lock_guard guard(dialogSessionRecordLock_); dialogSessionInfoMap_.clear(); dialogCallerInfoMap_.clear(); } -bool DialogSessionRecord::GenerateDialogSessionRecord(AbilityRequest &abilityRequest, int32_t userId, +bool DialogSessionManager::GenerateDialogSessionRecord(AbilityRequest &abilityRequest, int32_t userId, std::string &dialogSessionId, std::vector &dialogAppInfos, bool isSelector) { HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__); @@ -149,5 +161,106 @@ bool DialogSessionRecord::GenerateDialogSessionRecord(AbilityRequest &abilityReq SetDialogSessionInfo(dialogSessionId, dialogSessionInfo, dialogCallerInfo); return true; } + +int DialogSessionManager::SendDialogResult(const Want &want, const std::string &dialogSessionId, bool isAllowed) +{ + if (!isAllowed) { + TAG_LOGI(AAFwkTag::ABILITYMGR, "user refuse to jump"); + ClearDialogContext(dialogSessionId); + return ERR_OK; + } + std::shared_ptr dialogCallerInfo = GetDialogCallerInfo(dialogSessionId); + if (dialogCallerInfo == nullptr) { + TAG_LOGE(AAFwkTag::ABILITYMGR, "dialog caller info is nullptr"); + ClearDialogContext(dialogSessionId); + return ERR_INVALID_VALUE; + } + auto targetWant = dialogCallerInfo->targetWant; + targetWant.SetElement(want.GetElement()); + targetWant.SetParam("isSelector", dialogCallerInfo->isSelector); + targetWant.SetParam("dialogSessionId", dialogSessionId); + sptr callerToken = dialogCallerInfo->callerToken; + auto abilityMgr = DelayedSingleton::GetInstance(); + if (!abilityMgr) { + TAG_LOGE(AAFwkTag::ABILITYMGR, "abilityMgr is nullptr."); + return INNER_ERR; + } + int ret = abilityMgr->StartAbilityAsCaller(targetWant, callerToken, callerToken, dialogCallerInfo->userId, + dialogCallerInfo->requestCode); + if (ret == ERR_OK) { + ClearDialogContext(dialogSessionId); + } + return ret; +} + +int DialogSessionManager::CreateJumpModalDialog(AbilityRequest &abilityRequest, int32_t userId, + const Want &replaceWant) +{ + std::string dialogSessionId; + std::vector dialogAppInfos(1); + dialogAppInfos.front().bundleName = abilityRequest.abilityInfo.bundleName; + dialogAppInfos.front().moduleName = abilityRequest.abilityInfo.moduleName; + dialogAppInfos.front().abilityName = abilityRequest.abilityInfo.name; + dialogAppInfos.front().abilityIconId = abilityRequest.abilityInfo.iconId; + dialogAppInfos.front().abilityLabelId = abilityRequest.abilityInfo.labelId; + dialogAppInfos.front().bundleIconId = abilityRequest.abilityInfo.applicationInfo.iconId; + dialogAppInfos.front().bundleLabelId = abilityRequest.abilityInfo.applicationInfo.labelId; + if (!GenerateDialogSessionRecord(abilityRequest, userId, dialogSessionId, dialogAppInfos, false)) { + TAG_LOGE(AAFwkTag::ABILITYMGR, "generate dialog session record failed"); + return INNER_ERR; + } + return CreateModalDialogCommon(replaceWant, abilityRequest.callerToken, dialogSessionId); +} + +int DialogSessionManager::CreateSelectorModalDialog(AbilityRequest &abilityRequest, const Want &want, int32_t userId, + std::vector &dialogAppInfos) +{ + HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__); + std::string dialogSessionId; + if (!GenerateDialogSessionRecord(abilityRequest, userId, dialogSessionId, dialogAppInfos, true)) { + TAG_LOGE(AAFwkTag::ABILITYMGR, "generate dialog session record failed"); + return INNER_ERR; + } + return CreateModalDialogCommon(want, abilityRequest.callerToken, dialogSessionId); +} + +int DialogSessionManager::CreateModalDialogCommon(const Want &replaceWant, sptr callerToken, + std::string dialogSessionId) +{ + HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__); + (const_cast(replaceWant)).SetParam("dialogSessionId", dialogSessionId); + auto connection = std::make_shared(); + if (callerToken == nullptr) { + TAG_LOGD(AAFwkTag::ABILITYMGR, "create modal ui extension for system"); + (const_cast(replaceWant)).SetParam(UIEXTENSION_MODAL_TYPE, 1); + return connection->CreateModalUIExtension(replaceWant) ? ERR_OK : INNER_ERR; + } + auto callerRecord = Token::GetAbilityRecordByToken(callerToken); + if (!callerRecord) { + TAG_LOGE(AAFwkTag::ABILITYMGR, "callerRecord is nullptr."); + return ERR_INVALID_VALUE; + } + + sptr token; + auto abilityMgr = DelayedSingleton::GetInstance(); + if (!abilityMgr) { + TAG_LOGE(AAFwkTag::ABILITYMGR, "abilityMgr is nullptr."); + return INNER_ERR; + } + int ret = IN_PROCESS_CALL(abilityMgr->GetTopAbility(token)); + if (ret != ERR_OK || token == nullptr) { + TAG_LOGD(AAFwkTag::ABILITYMGR, "create modal ui extension for system"); + (const_cast(replaceWant)).SetParam(UIEXTENSION_MODAL_TYPE, 1); + return connection->CreateModalUIExtension(replaceWant) ? ERR_OK : INNER_ERR; + } + + if (callerRecord->GetAbilityInfo().type == AppExecFwk::AbilityType::PAGE && token == callerToken) { + TAG_LOGD(AAFwkTag::ABILITYMGR, "create modal ui extension for application"); + return callerRecord->CreateModalUIExtension(replaceWant); + } + TAG_LOGD(AAFwkTag::ABILITYMGR, "create modal ui extension for system"); + (const_cast(replaceWant)).SetParam(UIEXTENSION_MODAL_TYPE, 1); + return connection->CreateModalUIExtension(replaceWant) ? ERR_OK : INNER_ERR; +} } // namespace AAFwk } // namespace OHOS diff --git a/services/abilitymgr/src/implicit_start_processor.cpp b/services/abilitymgr/src/implicit_start_processor.cpp index ba492ea992..3eb42ed82a 100644 --- a/services/abilitymgr/src/implicit_start_processor.cpp +++ b/services/abilitymgr/src/implicit_start_processor.cpp @@ -21,6 +21,7 @@ #include "app_gallery_enable_util.h" #include "app_utils.h" #include "default_app_interface.h" +#include "dialog_session_manager.h" #include "errors.h" #include "ecological_rule/ability_ecological_rule_mgr_service.h" #include "event_report.h" @@ -138,7 +139,7 @@ int ImplicitStartProcessor::ImplicitStartAbility(AbilityRequest &request, int32_ } if (want.GetBoolParam("isCreateAppGallerySelector", false)) { want.RemoveParam("isCreateAppGallerySelector"); - NotifyCreateModalDialog(request, want, userId, dialogAppInfos); + DialogSessionManager::GetInstance().CreateSelectorModalDialog(request, want, userId, dialogAppInfos); return ERR_IMPLICIT_START_ABILITY_FAIL; } TAG_LOGE(AAFwkTag::ABILITYMGR, "implicit query ability infos failed, show tips dialog."); @@ -155,7 +156,7 @@ int ImplicitStartProcessor::ImplicitStartAbility(AbilityRequest &request, int32_ } if (want.GetBoolParam("isCreateAppGallerySelector", false)) { want.RemoveParam("isCreateAppGallerySelector"); - NotifyCreateModalDialog(request, want, userId, dialogAppInfos); + DialogSessionManager::GetInstance().CreateSelectorModalDialog(request, want, userId, dialogAppInfos); return ERR_IMPLICIT_START_ABILITY_FAIL; } std::vector dialogAllAppInfos; @@ -208,7 +209,7 @@ int ImplicitStartProcessor::ImplicitStartAbility(AbilityRequest &request, int32_ } if (want.GetBoolParam("isCreateAppGallerySelector", false)) { want.RemoveParam("isCreateAppGallerySelector"); - return NotifyCreateModalDialog(request, want, userId, dialogAppInfos); + return DialogSessionManager::GetInstance().CreateSelectorModalDialog(request, want, userId, dialogAppInfos); } ret = abilityMgr->ImplicitStartAbilityAsCaller(request.want, request.callerToken, nullptr); // reset calling indentity @@ -227,7 +228,7 @@ int ImplicitStartProcessor::ImplicitStartAbility(AbilityRequest &request, int32_ } if (want.GetBoolParam("isCreateAppGallerySelector", false)) { want.RemoveParam("isCreateAppGallerySelector"); - return NotifyCreateModalDialog(request, want, userId, dialogAppInfos); + return DialogSessionManager::GetInstance().CreateSelectorModalDialog(request, want, userId, dialogAppInfos); } ret = abilityMgr->ImplicitStartAbilityAsCaller(request.want, request.callerToken, nullptr); // reset calling indentity @@ -235,20 +236,6 @@ int ImplicitStartProcessor::ImplicitStartAbility(AbilityRequest &request, int32_ return ret; } -int ImplicitStartProcessor::NotifyCreateModalDialog(AbilityRequest &abilityRequest, const Want &want, int32_t userId, - std::vector &dialogAppInfos) -{ - HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__); - auto abilityMgr = DelayedSingleton::GetInstance(); - std::string dialogSessionId; - if (abilityMgr->GenerateDialogSessionRecord(abilityRequest, userId, dialogSessionId, dialogAppInfos, true)) { - TAG_LOGD(AAFwkTag::ABILITYMGR, "create dialog by ui extension"); - return abilityMgr->CreateModalDialog(want, abilityRequest.callerToken, dialogSessionId); - } - TAG_LOGE(AAFwkTag::ABILITYMGR, "create dialog by ui extension failed"); - return INNER_ERR; -} - std::string ImplicitStartProcessor::MatchTypeAndUri(const AAFwk::Want &want) { std::string type = want.GetType(); @@ -568,7 +555,7 @@ int32_t ImplicitStartProcessor::ImplicitStartAbilityInner(const Want &targetWant break; default: result = abilityMgr->StartAbilityWrap( - targetWant, request.callerToken, request.requestCode, userId, false, false, 0, false, true); + targetWant, request.callerToken, request.requestCode, userId, false, 0, false, true); break; } diff --git a/services/appmgr/src/app_mgr_service.cpp b/services/appmgr/src/app_mgr_service.cpp index 444cd42952..522a05a575 100644 --- a/services/appmgr/src/app_mgr_service.cpp +++ b/services/appmgr/src/app_mgr_service.cpp @@ -347,7 +347,7 @@ int32_t AppMgrService::ClearUpApplicationData(const std::string &bundleName, int AAFwk::PermissionConstants::PERMISSION_CLEAN_APPLICATION_DATA); if (!isCallingPerm) { TAG_LOGE(AAFwkTag::APPMGR, "Permission verification failed"); - return ERR_PERMISSION_DENIED; + return AAFwk::CHECK_PERMISSION_FAILED; } } pid_t pid = IPCSkeleton::GetCallingPid(); diff --git a/test/mock/frameworks_kits_ability_ability_runtime_test/AMS/mock_serviceability_manager_service.cpp b/test/mock/frameworks_kits_ability_ability_runtime_test/AMS/mock_serviceability_manager_service.cpp index ee4abcfddb..1b18573791 100644 --- a/test/mock/frameworks_kits_ability_ability_runtime_test/AMS/mock_serviceability_manager_service.cpp +++ b/test/mock/frameworks_kits_ability_ability_runtime_test/AMS/mock_serviceability_manager_service.cpp @@ -46,7 +46,7 @@ int MockServiceAbilityManagerService::StartAbility( int MockServiceAbilityManagerService::StartAbilityAsCaller( const Want& want, const sptr& callerToken, sptr asCallerSourceToken, - int32_t userId, int requestCode, bool isSendDialogResult) + int32_t userId, int requestCode) { return 0; } diff --git a/test/mock/frameworks_kits_ability_ability_runtime_test/AMS/mock_serviceability_manager_service.h b/test/mock/frameworks_kits_ability_ability_runtime_test/AMS/mock_serviceability_manager_service.h index 481cf938d2..04bc819ac9 100644 --- a/test/mock/frameworks_kits_ability_ability_runtime_test/AMS/mock_serviceability_manager_service.h +++ b/test/mock/frameworks_kits_ability_ability_runtime_test/AMS/mock_serviceability_manager_service.h @@ -55,8 +55,7 @@ public: const sptr& callerToken, sptr asCallerSourceToken, int32_t userId = DEFAULT_INVAL_VALUE, - int requestCode = DEFAULT_INVAL_VALUE, - bool isSendDialogResult = false) override; + int requestCode = DEFAULT_INVAL_VALUE) override; int StartAbilityAsCaller( const Want& want, const StartOptions& startOptions, diff --git a/test/mock/frameworks_kits_ability_native_test/include/mock_ability_manager_service.h b/test/mock/frameworks_kits_ability_native_test/include/mock_ability_manager_service.h index ed797114a4..8b74259d38 100644 --- a/test/mock/frameworks_kits_ability_native_test/include/mock_ability_manager_service.h +++ b/test/mock/frameworks_kits_ability_native_test/include/mock_ability_manager_service.h @@ -147,8 +147,8 @@ public: MOCK_METHOD4(StartAbilityByCall, int(const Want&, const sptr&, const sptr&, int32_t)); - MOCK_METHOD6(StartAbilityAsCaller, int(const Want& want, const sptr& callerToken, - sptr asCallerSourceToken, int32_t userId, int requestCode, bool isSendDialogResult)); + MOCK_METHOD5(StartAbilityAsCaller, int(const Want& want, const sptr& callerToken, + sptr asCallerSourceToken, int32_t userId, int requestCode)); MOCK_METHOD6(StartAbilityAsCaller, int(const Want &want, const StartOptions &startOptions, const sptr& callerToken, sptr asCallerSourceToken, int32_t userId, int requestCode)); diff --git a/test/mock/frameworks_kits_appkit_native_test/ability_delegator/mock_ability_delegator_stub.h b/test/mock/frameworks_kits_appkit_native_test/ability_delegator/mock_ability_delegator_stub.h index 89395299b4..d9a5d8cece 100644 --- a/test/mock/frameworks_kits_appkit_native_test/ability_delegator/mock_ability_delegator_stub.h +++ b/test/mock/frameworks_kits_appkit_native_test/ability_delegator/mock_ability_delegator_stub.h @@ -32,8 +32,8 @@ public: int requestCode = DEFAULT_INVAL_VALUE) override; MOCK_METHOD4(StartAbility, int(const Want& want, const sptr& callerToken, int32_t userId, int requestCode)); - MOCK_METHOD6(StartAbilityAsCaller, int(const Want& want, const sptr& callerToken, - sptr asCallerSourceToken, int32_t userId, int requestCode, bool isSendDialogResult)); + MOCK_METHOD5(StartAbilityAsCaller, int(const Want& want, const sptr& callerToken, + sptr asCallerSourceToken, int32_t userId, int requestCode)); MOCK_METHOD5(StartAbility, int(const Want& want, const AbilityStartSetting& abilityStartSetting, const sptr& callerToken, int32_t userId, int requestCode)); MOCK_METHOD4(StartAbilityByInsightIntent, int32_t(const Want& want, const sptr& callerToken, @@ -214,8 +214,8 @@ public: int StartAbility(const Want& want, int32_t userId = DEFAULT_INVAL_VALUE, int requestCode = -1) override; MOCK_METHOD4(StartAbility, int(const Want& want, const sptr& callerToken, int32_t userId, int requestCode)); - MOCK_METHOD6(StartAbilityAsCaller, int(const Want& want, const sptr& callerToken, - sptr asCallerSourceToken, int32_t userId, int requestCode, bool isSendDialogResult)); + MOCK_METHOD5(StartAbilityAsCaller, int(const Want& want, const sptr& callerToken, + sptr asCallerSourceToken, int32_t userId, int requestCode)); MOCK_METHOD5(StartAbility, int(const Want& want, const AbilityStartSetting& abilityStartSetting, const sptr& callerToken, int32_t userId, int requestCode)); MOCK_METHOD4(StartAbilityByInsightIntent, int32_t(const Want& want, const sptr& callerToken, diff --git a/test/mock/frameworks_kits_appkit_test/include/mock_ability_mgr_service.h b/test/mock/frameworks_kits_appkit_test/include/mock_ability_mgr_service.h index f4fc557896..db6b762be3 100644 --- a/test/mock/frameworks_kits_appkit_test/include/mock_ability_mgr_service.h +++ b/test/mock/frameworks_kits_appkit_test/include/mock_ability_mgr_service.h @@ -31,8 +31,8 @@ public: const sptr& callerToken, int32_t userId, int requestCode)); MOCK_METHOD4(StartAbilityByInsightIntent, int32_t(const Want& want, const sptr& callerToken, uint64_t intentId, int32_t userId)); - MOCK_METHOD6(StartAbilityAsCaller, int(const Want& want, const sptr& callerToken, - sptr asCallerSourceToken, int32_t userId, int requestCode, bool isSendDialogResult)); + MOCK_METHOD5(StartAbilityAsCaller, int(const Want& want, const sptr& callerToken, + sptr asCallerSourceToken, int32_t userId, int requestCode)); MOCK_METHOD6(StartAbilityAsCaller, int(const Want &want, const StartOptions &startOptions, const sptr &callerToken, sptr asCallerSourceToken, int32_t userId, int requestCode)); diff --git a/test/mock/frameworks_kits_test/AMS/mock_ability_manager_service.cpp b/test/mock/frameworks_kits_test/AMS/mock_ability_manager_service.cpp index aabeeff394..3939157b66 100644 --- a/test/mock/frameworks_kits_test/AMS/mock_ability_manager_service.cpp +++ b/test/mock/frameworks_kits_test/AMS/mock_ability_manager_service.cpp @@ -74,7 +74,7 @@ int MockAbilityManagerService::StartAbility(const Want& want, const sptr& callerToken, - sptr asCallerSourceToken, int32_t userId, int requestCode, bool isSendDialogResult) + sptr asCallerSourceToken, int32_t userId, int requestCode) { return 0; } diff --git a/test/mock/frameworks_kits_test/AMS/mock_ability_manager_service.h b/test/mock/frameworks_kits_test/AMS/mock_ability_manager_service.h index 4c0c53edeb..b97c37b73f 100644 --- a/test/mock/frameworks_kits_test/AMS/mock_ability_manager_service.h +++ b/test/mock/frameworks_kits_test/AMS/mock_ability_manager_service.h @@ -53,8 +53,7 @@ public: const sptr& callerToken, sptr asCallerSourceToken, int32_t userId = DEFAULT_INVAL_VALUE, - int requestCode = -1, - bool isSendDialogResult = false) override; + int requestCode = -1) override; int StartAbilityAsCaller( const Want& want, const StartOptions& startOptions, diff --git a/test/mock/frameworks_kits_test/AMS/mock_serviceability_manager_service.cpp b/test/mock/frameworks_kits_test/AMS/mock_serviceability_manager_service.cpp index 9c7b58d10e..c9396df81c 100644 --- a/test/mock/frameworks_kits_test/AMS/mock_serviceability_manager_service.cpp +++ b/test/mock/frameworks_kits_test/AMS/mock_serviceability_manager_service.cpp @@ -55,7 +55,7 @@ int MockServiceAbilityManagerService::StartAbility( int MockServiceAbilityManagerService::StartAbilityAsCaller( const Want& want, const sptr& callerToken, sptr asCallerSourceToken, - int32_t userId, int requestCode, bool isSendDialogResult) + int32_t userId, int requestCode) { return 0; } diff --git a/test/mock/frameworks_kits_test/AMS/mock_serviceability_manager_service.h b/test/mock/frameworks_kits_test/AMS/mock_serviceability_manager_service.h index 1179357ca6..93319db51a 100644 --- a/test/mock/frameworks_kits_test/AMS/mock_serviceability_manager_service.h +++ b/test/mock/frameworks_kits_test/AMS/mock_serviceability_manager_service.h @@ -57,8 +57,7 @@ public: const sptr& callerToken, const sptr asCallerSourceToken, int32_t userId = DEFAULT_INVAL_VALUE, - int requestCode = DEFAULT_INVAL_VALUE, - bool isSendDialogResult = false) override; + int requestCode = DEFAULT_INVAL_VALUE) override; int StartAbilityAsCaller( const Want& want, const StartOptions& startOptions, diff --git a/test/moduletest/mock/include/appmgr/mock_ability_mgr_host.h b/test/moduletest/mock/include/appmgr/mock_ability_mgr_host.h index 5527e22111..16c3af0a20 100644 --- a/test/moduletest/mock/include/appmgr/mock_ability_mgr_host.h +++ b/test/moduletest/mock/include/appmgr/mock_ability_mgr_host.h @@ -59,7 +59,7 @@ public: virtual int StartAbilityAsCaller(const Want& want, const sptr& callerToken, const sptr& asCallerSourceToken, int32_t userId = DEFAULT_INVAL_VALUE, - int requestCode = -1, bool isSendDialogResult = false) override + int requestCode = -1) override { return 0; } diff --git a/test/moduletest/mock/include/mock_ability_manager_proxy.h b/test/moduletest/mock/include/mock_ability_manager_proxy.h index 3bd86053c7..5a02957652 100644 --- a/test/moduletest/mock/include/mock_ability_manager_proxy.h +++ b/test/moduletest/mock/include/mock_ability_manager_proxy.h @@ -32,8 +32,8 @@ public: MOCK_METHOD2(StartAbility, int(const Want& want, int requestCode)); MOCK_METHOD3(StartAbility, int(const Want& want, const sptr& callerToken, int requestCode)); - MOCK_METHOD6(StartAbilityAsCaller, int(const Want& want, const sptr& callerToken, - sptr asCallerSourceToken, int32_t userId, int requestCode, bool isSendDialogResult)); + MOCK_METHOD5(StartAbilityAsCaller, int(const Want& want, const sptr& callerToken, + sptr asCallerSourceToken, int32_t userId, int requestCode)); MOCK_METHOD6(StartAbilityAsCaller, int(const Want &want, const StartOptions &startOptions, const sptr &callerToken, sptr asCallerSourceToken, int32_t userId, int requestCode)); diff --git a/test/moduletest/mock/include/mock_ability_mgr_service.h b/test/moduletest/mock/include/mock_ability_mgr_service.h index 2f0b700999..bdf9fa4195 100644 --- a/test/moduletest/mock/include/mock_ability_mgr_service.h +++ b/test/moduletest/mock/include/mock_ability_mgr_service.h @@ -27,8 +27,8 @@ public: MOCK_METHOD3(StartAbility, int(const Want& want, int32_t userId, int requestCode)); MOCK_METHOD4(StartAbility, int(const Want& want, const sptr& callerToken, int32_t userId, int requestCode)); - MOCK_METHOD6(StartAbilityAsCaller, int(const Want& want, const sptr& callerToken, - sptr asCallerSourceToken, int32_t userId, int requestCode, bool isSendDialogResult)); + MOCK_METHOD5(StartAbilityAsCaller, int(const Want& want, const sptr& callerToken, + sptr asCallerSourceToken, int32_t userId, int requestCode)); MOCK_METHOD6(StartAbilityAsCaller, int(const Want &want, const StartOptions &startOptions, const sptr &callerToken, sptr asCallerSourceToken, int32_t userId, int requestCode)); diff --git a/test/unittest/BUILD.gn b/test/unittest/BUILD.gn index afc3662ad6..e69da7041a 100644 --- a/test/unittest/BUILD.gn +++ b/test/unittest/BUILD.gn @@ -141,7 +141,7 @@ ohos_source_set("abilityms_test_source") { "${ability_runtime_services_path}/abilitymgr/src/data_ability_caller_recipient.cpp", "${ability_runtime_services_path}/abilitymgr/src/data_ability_manager.cpp", "${ability_runtime_services_path}/abilitymgr/src/data_ability_record.cpp", - "${ability_runtime_services_path}/abilitymgr/src/dialog_session_record.cpp", + "${ability_runtime_services_path}/abilitymgr/src/dialog_session/dialog_session_manager.cpp", "${ability_runtime_services_path}/abilitymgr/src/dlp_state_item.cpp", "${ability_runtime_services_path}/abilitymgr/src/ecological_rule/ability_ecological_rule_mgr_service.cpp", "${ability_runtime_services_path}/abilitymgr/src/ecological_rule/ability_ecological_rule_mgr_service_param.cpp", diff --git a/test/unittest/ability_manager_client_branch_test/ability_manager_stub_mock_test.h b/test/unittest/ability_manager_client_branch_test/ability_manager_stub_mock_test.h index 6fda08f8bf..d8af5cad48 100644 --- a/test/unittest/ability_manager_client_branch_test/ability_manager_stub_mock_test.h +++ b/test/unittest/ability_manager_client_branch_test/ability_manager_stub_mock_test.h @@ -300,8 +300,8 @@ public: int32_t userId, int requestCode)); MOCK_METHOD4(StartAbilityByInsightIntent, int32_t(const Want& want, const sptr& callerToken, uint64_t intentId, int32_t userId)); - MOCK_METHOD6(StartAbilityAsCaller, int(const Want& want, const sptr& callerToken, - sptr asCallerSourceToken, int32_t userId, int requestCode, bool isSendDialogResult)); + MOCK_METHOD5(StartAbilityAsCaller, int(const Want& want, const sptr& callerToken, + sptr asCallerSourceToken, int32_t userId, int requestCode)); MOCK_METHOD2( GetWantSender, sptr(const WantSenderInfo& wantSenderInfo, const sptr& callerToken)); MOCK_METHOD2(SendWantSender, int(sptr target, const SenderInfo& senderInfo)); diff --git a/test/unittest/ability_manager_proxy_test/ability_manager_stub_mock.h b/test/unittest/ability_manager_proxy_test/ability_manager_stub_mock.h index eca073e88d..3e9df7d2d9 100644 --- a/test/unittest/ability_manager_proxy_test/ability_manager_stub_mock.h +++ b/test/unittest/ability_manager_proxy_test/ability_manager_stub_mock.h @@ -312,8 +312,8 @@ public: int32_t userId, int requestCode)); MOCK_METHOD4(StartAbilityByInsightIntent, int32_t(const Want& want, const sptr& callerToken, uint64_t intentId, int32_t userId)); - MOCK_METHOD6(StartAbilityAsCaller, int(const Want &want, const sptr &callerToken, - sptr asCallerSourceToken, int32_t userId, int requestCode, bool isSendDialogResult)); + MOCK_METHOD5(StartAbilityAsCaller, int(const Want &want, const sptr &callerToken, + sptr asCallerSourceToken, int32_t userId, int requestCode)); MOCK_METHOD2( GetWantSender, sptr(const WantSenderInfo& wantSenderInfo, const sptr& callerToken)); MOCK_METHOD2(SendWantSender, int(sptr target, const SenderInfo& senderInfo)); diff --git a/test/unittest/ability_manager_service_third_test/ability_manager_service_third_test.cpp b/test/unittest/ability_manager_service_third_test/ability_manager_service_third_test.cpp index ad80d843ba..43fc226ceb 100644 --- a/test/unittest/ability_manager_service_third_test/ability_manager_service_third_test.cpp +++ b/test/unittest/ability_manager_service_third_test/ability_manager_service_third_test.cpp @@ -1717,9 +1717,8 @@ HWTEST_F(AbilityManagerServiceThirdTest, ImplicitStartAbilityAsCaller_001, TestS sptr asCallerSourceToken; int32_t userId = 0; int requestCode = 0; - bool isSendDialogResult = true; auto result = abilityMs->ImplicitStartAbilityAsCaller(want, callerToken, asCallerSourceToken, userId, - requestCode, isSendDialogResult); + requestCode); EXPECT_EQ(result, ERR_INVALID_VALUE); } @@ -1736,10 +1735,9 @@ HWTEST_F(AbilityManagerServiceThirdTest, StartAbilityAsCallerDetails_001, TestSi sptr asCallerSourceToken; int32_t userId = 0; int requestCode = 0; - bool isSendDialogResult = true; bool isImplicit = true; auto result = abilityMs->StartAbilityAsCallerDetails(want, callerToken, asCallerSourceToken, userId, - requestCode, isSendDialogResult, isImplicit); + requestCode, isImplicit); EXPECT_EQ(result, ERR_INVALID_VALUE); } @@ -1757,10 +1755,9 @@ HWTEST_F(AbilityManagerServiceThirdTest, StartAbilityAsCallerDetails_002, TestSi sptr asCallerSourceToken; int32_t userId = 0; int requestCode = 0; - bool isSendDialogResult = true; bool isImplicit = true; auto result = abilityMs->StartAbilityAsCallerDetails(want, callerToken, asCallerSourceToken, userId, - requestCode, isSendDialogResult, isImplicit); + requestCode, isImplicit); EXPECT_EQ(result, ERR_INVALID_CONTINUATION_FLAG); } @@ -1777,10 +1774,9 @@ HWTEST_F(AbilityManagerServiceThirdTest, StartAbilityAsCallerDetails_003, TestSi sptr asCallerSourceToken = new AbilityManagerStubTestMock(); int32_t userId = 0; int requestCode = 0; - bool isSendDialogResult = true; bool isImplicit = true; auto result = abilityMs->StartAbilityAsCallerDetails(want, callerToken, asCallerSourceToken, userId, - requestCode, isSendDialogResult, isImplicit); + requestCode, isImplicit); EXPECT_EQ(result, ERR_INVALID_VALUE); } @@ -1840,12 +1836,11 @@ HWTEST_F(AbilityManagerServiceThirdTest, StartAbilityWrap_001, TestSize.Level1) int requestCode = 0; int32_t userId = 0; bool isStartAsCaller = true; - bool isSendDialogResult = true; uint32_t specifyToken = 0; bool isForegroundToRestartApp = true; bool isImplicit = true; auto result = abilityMs->StartAbilityWrap(want, callerToken, requestCode, userId, isStartAsCaller, - isSendDialogResult, specifyToken, isForegroundToRestartApp, isImplicit); + specifyToken, isForegroundToRestartApp, isImplicit); EXPECT_EQ(result, ERR_INVALID_VALUE); } diff --git a/test/unittest/ability_manager_stub_test/ability_manager_stub_impl_mock.h b/test/unittest/ability_manager_stub_test/ability_manager_stub_impl_mock.h index fdc38da1b1..e390d6ebdd 100644 --- a/test/unittest/ability_manager_stub_test/ability_manager_stub_impl_mock.h +++ b/test/unittest/ability_manager_stub_test/ability_manager_stub_impl_mock.h @@ -40,8 +40,8 @@ public: int32_t userId, int requestCode)); MOCK_METHOD4(StartAbilityByInsightIntent, int32_t(const Want& want, const sptr& callerToken, uint64_t intentId, int32_t userId)); - MOCK_METHOD6(StartAbilityAsCaller, int(const Want &want, const sptr &callerToken, - sptr asCallerSourceToken, int32_t userId, int requestCode, bool isSendDialogResult)); + MOCK_METHOD5(StartAbilityAsCaller, int(const Want &want, const sptr &callerToken, + sptr asCallerSourceToken, int32_t userId, int requestCode)); MOCK_METHOD2( GetWantSender, sptr(const WantSenderInfo& wantSenderInfo, const sptr& callerToken)); MOCK_METHOD2(SendWantSender, int(sptr target, const SenderInfo& senderInfo)); diff --git a/test/unittest/ability_manager_test/ability_manager_stub_mock.h b/test/unittest/ability_manager_test/ability_manager_stub_mock.h index 3376c3cdb7..029f0bd121 100644 --- a/test/unittest/ability_manager_test/ability_manager_stub_mock.h +++ b/test/unittest/ability_manager_test/ability_manager_stub_mock.h @@ -305,8 +305,8 @@ public: int32_t userId, int requestCode)); MOCK_METHOD4(StartAbilityByInsightIntent, int32_t(const Want& want, const sptr& callerToken, uint64_t intentId, int32_t userId)); - MOCK_METHOD6(StartAbilityAsCaller, int(const Want& want, const sptr& callerToken, - sptr asCallerSourceToken, int32_t userId, int requestCode, bool isSendDialogResult)); + MOCK_METHOD5(StartAbilityAsCaller, int(const Want& want, const sptr& callerToken, + sptr asCallerSourceToken, int32_t userId, int requestCode)); MOCK_METHOD2( GetWantSender, sptr(const WantSenderInfo& wantSenderInfo, const sptr& callerToken)); MOCK_METHOD2(SendWantSender, int(sptr target, const SenderInfo& senderInfo)); diff --git a/test/unittest/service_extension_context_test/ability_manager_stub_mock.h b/test/unittest/service_extension_context_test/ability_manager_stub_mock.h index f4ce38b9e8..3d8955c194 100644 --- a/test/unittest/service_extension_context_test/ability_manager_stub_mock.h +++ b/test/unittest/service_extension_context_test/ability_manager_stub_mock.h @@ -276,8 +276,8 @@ public: int32_t userId, int requestCode)); MOCK_METHOD4(StartAbilityByInsightIntent, int32_t(const Want& want, const sptr& callerToken, uint64_t intentId, int32_t userId)); - MOCK_METHOD6(StartAbilityAsCaller, int(const Want& want, const sptr& callerToken, - sptr asCallerSourceToken, int32_t userId, int requestCode, bool isSendDialogResult)); + MOCK_METHOD5(StartAbilityAsCaller, int(const Want& want, const sptr& callerToken, + sptr asCallerSourceToken, int32_t userId, int requestCode)); MOCK_METHOD2( GetWantSender, sptr(const WantSenderInfo& wantSenderInfo, const sptr& callerToken)); MOCK_METHOD2(SendWantSender, int(sptr target, const SenderInfo& senderInfo)); diff --git a/test/unittest/sys_mgr_client_test/mock_ability_manager_service.h b/test/unittest/sys_mgr_client_test/mock_ability_manager_service.h index 63745ad7b1..493fe7e4d4 100644 --- a/test/unittest/sys_mgr_client_test/mock_ability_manager_service.h +++ b/test/unittest/sys_mgr_client_test/mock_ability_manager_service.h @@ -108,8 +108,8 @@ public: const sptr& callerToken, int32_t userId, int requestCode)); MOCK_METHOD4(StartAbilityByInsightIntent, int32_t(const Want& want, const sptr& callerToken, uint64_t intentId, int32_t userId)); - MOCK_METHOD6(StartAbilityAsCaller, int(const Want& want, const sptr& callerToken, - sptr asCallerSourceToken, int32_t userId, int requestCode, bool isSendDialogResult)); + MOCK_METHOD5(StartAbilityAsCaller, int(const Want& want, const sptr& callerToken, + sptr asCallerSourceToken, int32_t userId, int requestCode)); MOCK_METHOD6(StartAbilityAsCaller, int(const Want &want, const StartOptions &startOptions, const sptr &callerToken, sptr asCallerSourceToken, int32_t userId, int requestCode)); diff --git a/tools/test/mock/mock_ability_manager_stub.h b/tools/test/mock/mock_ability_manager_stub.h index 6ff1f4a035..54c0981875 100644 --- a/tools/test/mock/mock_ability_manager_stub.h +++ b/tools/test/mock/mock_ability_manager_stub.h @@ -31,8 +31,8 @@ public: MOCK_METHOD4(StartAbility, int(const Want& want, const sptr& callerToken, int32_t userId, int requestCode)); - MOCK_METHOD6(StartAbilityAsCaller, int(const Want &want, const sptr &callerToken, - sptr asCallerSourceToken, int32_t userId, int requestCode, bool isSendDialogResult)); + MOCK_METHOD5(StartAbilityAsCaller, int(const Want &want, const sptr &callerToken, + sptr asCallerSourceToken, int32_t userId, int requestCode)); MOCK_METHOD3(TerminateAbility, int(const sptr& token, int resultCode, const Want* resultWant)); MOCK_METHOD3(TerminateUIExtensionAbility, int(const sptr &extensionSessionInfo, int resultCode, const Want* resultWant));