From 2a8c737d1af68d156f70f2f134561c430daad02a Mon Sep 17 00:00:00 2001 From: yuwenze Date: Wed, 10 May 2023 07:32:15 +0000 Subject: [PATCH] delete uiWindow Signed-off-by: yuwenze Change-Id: Idbf32bec25045b321f62ffcd19e4691211766b3d --- frameworks/native/ability/native/BUILD.gn | 2 +- frameworks/native/ability/native/ability.cpp | 26 +------ .../native/ability/native/ability_impl.cpp | 69 +------------------ .../native/ability_runtime/js_ability.cpp | 30 ++------ .../kits/native/ability/native/ability.h | 23 +------ .../kits/native/ability/native/ability_impl.h | 15 ---- 6 files changed, 13 insertions(+), 152 deletions(-) diff --git a/frameworks/native/ability/native/BUILD.gn b/frameworks/native/ability/native/BUILD.gn index 8a7499a1e98..8696c4e8c51 100644 --- a/frameworks/native/ability/native/BUILD.gn +++ b/frameworks/native/ability/native/BUILD.gn @@ -246,6 +246,7 @@ ohos_shared_library("abilitykit_native") { external_deps = [ "ability_base:base", "ability_base:configuration", + "ability_base:session_info", "ability_base:want", "ability_base:zuri", "ability_runtime:ability_context_native", @@ -271,7 +272,6 @@ ohos_shared_library("abilitykit_native") { "resource_management:global_resmgr", "samgr:samgr_proxy", "window_manager:libwsutils", - "window_manager:scene_session", ] defines = [] diff --git a/frameworks/native/ability/native/ability.cpp b/frameworks/native/ability/native/ability.cpp index e4d8d1b2e93..5ff475e9050 100644 --- a/frameworks/native/ability/native/ability.cpp +++ b/frameworks/native/ability/native/ability.cpp @@ -42,7 +42,6 @@ #include "reverse_continuation_scheduler_replica_handler_interface.h" #include "runtime.h" #include "scene_board_judgement.h" -#include "session_info.h" #include "system_ability_definition.h" #include "task_handler_client.h" #include "values_bucket.h" @@ -55,7 +54,6 @@ #ifdef SUPPORT_GRAPHICS #include "display_type.h" #include "key_event.h" -#include "ui_window.h" #endif namespace OHOS { @@ -173,18 +171,9 @@ void Ability::OnStart(const Want &want, sptr sessionInfo) securityFlag_ = want.GetBoolParam(DLP_PARAMS_SECURITY_FLAG, false); (const_cast(want)).RemoveParam(DLP_PARAMS_SECURITY_FLAG); SetWant(want); + sessionInfo_ = sessionInfo; HILOG_INFO("%{public}s begin, ability is %{public}s.", __func__, abilityInfo_->name.c_str()); #ifdef SUPPORT_GRAPHICS - if (Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) { - HILOG_INFO("sessionInfo is%{public}s null", sessionInfo == nullptr ? "" : " not"); - if (sessionInfo) { - uiWindow_ = Ace::NG::UIWindow::CreateWindowScene(abilityContext_, sessionInfo->sessionToken); - if (uiWindow_ != nullptr) { - uiWindow_->RegisterSessionStageStateListener(sceneSessionStageListener_); - uiWindow_->Connect(); - } - } - } if (abilityInfo_->type == AppExecFwk::AbilityType::PAGE) { int defualtDisplayId = Rosen::WindowScene::DEFAULT_DISPLAY_ID; int displayId = want.GetIntParam(Want::PARAM_RESV_DISPLAY_ID, defualtDisplayId); @@ -275,10 +264,6 @@ void Ability::OnStop() scene_->GoDestroy(); onSceneDestroyed(); } - if (uiWindow_) { - HILOG_DEBUG("UIWindow do disconnect."); - uiWindow_->Disconnect(); - } #endif if (abilityLifecycleExecutor_ == nullptr) { HILOG_ERROR("Ability::OnStop error. abilityLifecycleExecutor_ == nullptr."); @@ -1571,10 +1556,6 @@ void Ability::OnBackground() HILOG_DEBUG("GoBackground sceneFlag:%{public}d.", sceneFlag_); scene_->GoBackground(sceneFlag_); } - if (uiWindow_ != nullptr) { - HILOG_DEBUG("%{public}s DoBackground.", abilityInfo_->bundleName.c_str()); - uiWindow_->Background(); - } if (abilityRecovery_ != nullptr) { abilityRecovery_->ScheduleSaveAbilityState(StateReason::LIFECYCLE); } @@ -1752,11 +1733,6 @@ void Ability::SetSceneListener(const sptr &listener) sceneListener_ = listener; } -void Ability::SetSceneSessionStageListener(const std::shared_ptr &listener) -{ - sceneSessionStageListener_ = listener; -} - sptr Ability::GetWindowOption(const Want &want) { sptr option = new Rosen::WindowOption(); diff --git a/frameworks/native/ability/native/ability_impl.cpp b/frameworks/native/ability/native/ability_impl.cpp index 91d15cd9bab..2b6797bfa84 100644 --- a/frameworks/native/ability/native/ability_impl.cpp +++ b/frameworks/native/ability/native/ability_impl.cpp @@ -52,13 +52,7 @@ void AbilityImpl::Init(std::shared_ptr &application, const std: isStageBasedModel_ = info && info->isStageBasedModel; #ifdef SUPPORT_GRAPHICS if (info && info->type == AbilityType::PAGE) { - if (Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) { - ability_->SetSceneSessionStageListener( - std::make_shared(token_, shared_from_this())); - } else { - ability_->SetSceneListener( - sptr(new WindowLifeCycleImpl(token_, shared_from_this()))); - } + ability_->SetSceneListener(sptr(new WindowLifeCycleImpl(token_, shared_from_this()))); } #endif ability_->Init(record->GetAbilityInfo(), application, handler, token); @@ -701,67 +695,6 @@ void AbilityImpl::WindowLifeCycleImpl::ForegroundFailed(int32_t type) } } -void AbilityImpl::SessionStateLifeCycleImpl::AfterForeground() -{ - HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__); - HILOG_INFO("Call."); - auto owner = owner_.lock(); - if (owner == nullptr || !owner->IsStageBasedModel()) { - HILOG_ERROR("Not stage mode ability or abilityImpl is nullptr."); - return; - } - bool needNotifyAMS = false; - { - std::lock_guard lock(owner->notifyForegroundLock_); - if (owner->notifyForegroundByAbility_) { - owner->notifyForegroundByAbility_ = false; - needNotifyAMS = true; - } else { - HILOG_DEBUG("Notify foreground invalid mode by window, but client's foreground is running."); - owner->notifyForegroundByWindow_ = true; - } - } - if (needNotifyAMS) { - HILOG_DEBUG("Stage mode ability, window after foreground, notify ability manager service."); - PacMap restoreData; - AbilityManagerClient::GetInstance()->AbilityTransitionDone(token_, - AbilityLifeCycleState::ABILITY_STATE_FOREGROUND_NEW, restoreData); - } -} - -void AbilityImpl::SessionStateLifeCycleImpl::AfterBackground() -{ - HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__); - HILOG_DEBUG("Call."); - auto owner = owner_.lock(); - if (owner && !owner->IsStageBasedModel()) { - return; - } - - HILOG_DEBUG("new version ability, window after background."); - PacMap restoreData; - AbilityManagerClient::GetInstance()->AbilityTransitionDone(token_, - AbilityLifeCycleState::ABILITY_STATE_BACKGROUND_NEW, restoreData); -} - -void AbilityImpl::SessionStateLifeCycleImpl::AfterActive() -{ - HILOG_DEBUG("Call."); - auto owner = owner_.lock(); - if (owner) { - owner->AfterFocused(); - } -} - -void AbilityImpl::SessionStateLifeCycleImpl::AfterInactive() -{ - HILOG_DEBUG("Call."); - auto owner = owner_.lock(); - if (owner) { - owner->AfterUnFocused(); - } -} - void AbilityImpl::Foreground(const Want &want) { HILOG_DEBUG("%{public}s begin.", __func__); diff --git a/frameworks/native/ability/native/ability_runtime/js_ability.cpp b/frameworks/native/ability/native/ability_runtime/js_ability.cpp index 85a651d38aa..97f075adeea 100644 --- a/frameworks/native/ability/native/ability_runtime/js_ability.cpp +++ b/frameworks/native/ability/native/ability_runtime/js_ability.cpp @@ -36,7 +36,6 @@ #endif #include "napi_common_want.h" #include "napi_remote_object.h" -#include "session_info.h" #include "scene_board_judgement.h" #include "string_wrapper.h" #include "context/context.h" @@ -230,10 +229,6 @@ void JsAbility::OnStart(const Want &want, sptr sessionInfo) obj->SetProperty("launchWant", jsWant); obj->SetProperty("lastRequestWant", jsWant); - if (Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) { - AbilityContinuationOrRecover(want); - } - NativeValue *argv[] = { jsWant, CreateJsLaunchParam(nativeEngine, GetLaunchParam()), @@ -504,7 +499,7 @@ std::unique_ptr JsAbility::CreateAppWindowStage() { HandleScope handleScope(jsRuntime_); auto &engine = jsRuntime_.GetNativeEngine(); - NativeValue *jsWindowStage = Rosen::CreateJsWindowStage(engine, GetScene(), uiWindow_); + NativeValue *jsWindowStage = Rosen::CreateJsWindowStage(engine, GetScene()); if (jsWindowStage == nullptr) { HILOG_ERROR("Failed to create jsWindowSatge object"); return nullptr; @@ -567,13 +562,6 @@ void JsAbility::AbilityContinuationOrRecover(const Want &want) void JsAbility::DoOnForeground(const Want &want) { - if (Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) { - if (uiWindow_) { - HILOG_DEBUG("%{public}s DoForeground.", abilityInfo_->bundleName.c_str()); - uiWindow_->Foreground(); - } - return; - } if (scene_ == nullptr) { if ((abilityContext_ == nullptr) || (sceneListener_ == nullptr)) { HILOG_ERROR("Ability::OnForeground error. abilityContext_ or sceneListener_ is nullptr!"); @@ -596,7 +584,12 @@ void JsAbility::DoOnForeground(const Want &want) } } auto option = GetWindowOption(want); - Rosen::WMError ret = scene_->Init(displayId, abilityContext_, sceneListener_, option); + Rosen::WMError ret = Rosen::WMError::WM_OK; + if (Rosen::SceneBoardJudgement::IsSceneBoardEnabled() && sessionInfo_ != nullptr) { + ret = scene_->Init(displayId, abilityContext_, sceneListener_, option, sessionInfo_->sessionToken); + } else { + ret = scene_->Init(displayId, abilityContext_, sceneListener_, option); + } if (ret != Rosen::WMError::WM_OK) { HILOG_ERROR("%{public}s error. failed to init window scene!", __func__); return; @@ -632,12 +625,6 @@ void JsAbility::DoOnForeground(const Want &want) void JsAbility::RequestFocus(const Want &want) { HILOG_DEBUG("%{public}s called.", __func__); - if (Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) { - if (uiWindow_ != nullptr) { - HILOG_DEBUG("%{public}s Foreground.", abilityInfo_->bundleName.c_str()); - uiWindow_->Foreground(); - } - } if (scene_ == nullptr) { return; } @@ -821,9 +808,6 @@ void JsAbility::OnNewWant(const Want &want) if (scene_) { scene_->OnNewWant(want); } - if (uiWindow_ != nullptr) { - // waiting for UIWindow to provide OnNewWant - } #endif HandleScope handleScope(jsRuntime_); diff --git a/interfaces/kits/native/ability/native/ability.h b/interfaces/kits/native/ability/native/ability.h index bb337a2ae2f..6ad8995a3e9 100644 --- a/interfaces/kits/native/ability/native/ability.h +++ b/interfaces/kits/native/ability/native/ability.h @@ -47,7 +47,7 @@ #include "form_state_info.h" #include "foundation/multimodalinput/input/interfaces/native/innerkits/event/include/key_event.h" #include "foundation/multimodalinput/input/interfaces/native/innerkits/event/include/pointer_event.h" -#include "session/container/include/session_stage.h" +#include "session_info.h" #include "window_option.h" #include "window_scene.h" #include "wm_common.h" @@ -58,21 +58,12 @@ namespace NativeRdb { class AbsSharedResultSet; class DataAbilityPredicates; class ValuesBucket; -} // namespace NativeRdb +} // namespace NativeRdb namespace AbilityRuntime { class Runtime; } -namespace AAFwk { -class SessionInfo; -} // namespace AAFwk #ifdef SUPPORT_GRAPHICS class KeyEvent; -namespace Ace::NG { -class UIWindow; -} // namespace Ace::NG -namespace Rosen { -class ISessionStageStateListener; -} // namespace Rosen #endif namespace AppExecFwk { using FeatureAbilityTask = std::function; @@ -1088,13 +1079,6 @@ public: */ void SetSceneListener(const sptr &listener); - /** - * @brief Set SessionStageState listener - * - * @param listener SessionStageState listener - */ - void SetSceneSessionStageListener(const std::shared_ptr &listener); - /** * @brief Called back at ability context. * @@ -1213,7 +1197,6 @@ protected: std::shared_ptr scene_ = nullptr; sptr sceneListener_ = nullptr; - std::shared_ptr sceneSessionStageListener_ = nullptr; sptr abilityDisplayListener_ = nullptr; sptr abilityDisplayMoveListener_ = nullptr; #endif @@ -1254,7 +1237,7 @@ protected: LaunchParam launchParam_; int32_t appIndex_ = 0; bool securityFlag_ = false; - std::shared_ptr uiWindow_; + sptr sessionInfo_ = nullptr; private: std::shared_ptr ParsePredictionArgsReference( diff --git a/interfaces/kits/native/ability/native/ability_impl.h b/interfaces/kits/native/ability/native/ability_impl.h index ee8a9e8e0ac..1ef04b4c2a7 100644 --- a/interfaces/kits/native/ability/native/ability_impl.h +++ b/interfaces/kits/native/ability/native/ability_impl.h @@ -24,7 +24,6 @@ #include "ability_handler.h" #include "ability_manager_client.h" #include "ability_manager_interface.h" -#include "session_info.h" #ifdef SUPPORT_GRAPHICS #include "foundation/multimodalinput/input/interfaces/native/innerkits/event/include/i_input_event_consumer.h" #endif @@ -517,20 +516,6 @@ private: std::weak_ptr owner_; }; -class SessionStateLifeCycleImpl : public Rosen::ISessionStageStateListener { -public: - SessionStateLifeCycleImpl(const sptr& token, const std::shared_ptr& owner) - : token_(token), owner_(owner) {} - virtual ~SessionStateLifeCycleImpl() = default; - void AfterForeground() override; - void AfterBackground() override; - void AfterActive() override; - void AfterInactive() override; -private: - sptr token_ = nullptr; - std::weak_ptr owner_; -}; - class InputEventConsumerImpl : public MMI::IInputEventConsumer { public: explicit InputEventConsumerImpl(const std::shared_ptr& abilityImpl) : abilityImpl_(abilityImpl) {} -- Gitee