diff --git a/frameworks/kits/ability/native/BUILD.gn b/frameworks/kits/ability/native/BUILD.gn index d02d2c1d4eb29a12c4cbf6bc3eeb0dc8c00c2690..63007ba61fd737e0af4720ce1d7f65a00ea8d088 100755 --- a/frameworks/kits/ability/native/BUILD.gn +++ b/frameworks/kits/ability/native/BUILD.gn @@ -130,7 +130,7 @@ ohos_shared_library("abilitykit_native") { public_deps = [ "//base/global/resmgr_standard/frameworks/resmgr:global_resmgr", "//foundation/distributedschedule/dmsfwk/services/dtbschedmgr:distributedschedsvr", - "//foundation/graphic/standard:libwms_client", + "//foundation/graphic/standard:libwmclient", ] subsystem_name = "aafwk" diff --git a/frameworks/kits/ability/native/include/ability.h b/frameworks/kits/ability/native/include/ability.h index 6d0e03b258654dbb9febb38fa97ad5db09f3fa4d..53f92b7ed41ab56d0831c28822d1d44fa5611404 100644 --- a/frameworks/kits/ability/native/include/ability.h +++ b/frameworks/kits/ability/native/include/ability.h @@ -39,7 +39,6 @@ #include "ability_lifecycle_interface.h" #include "ability_lifecycle_executor.h" -#define WMS_COMPILE using Uri = OHOS::Uri; namespace OHOS { @@ -310,21 +309,19 @@ public: */ virtual void OnTopActiveAbilityChanged(bool topActive); -#ifdef WMS_COMPILE /** * @brief Inflates UI controls by using WindowConfig. * * @param config Indicates the window config defined by the user. */ - virtual void SetUIContent(const WindowConfig &config); + virtual void SetUIContent(const sptr &config); /** * @brief Get the window belong to the ability. * * @return Returns a Window object pointer. */ - virtual const std::unique_ptr &GetWindow(); -#endif // WMS_COMPILE + virtual const sptr &GetWindow(); /** * @brief Checks whether the main window of this ability has window focus. diff --git a/frameworks/kits/ability/native/include/ability_window.h b/frameworks/kits/ability/native/include/ability_window.h index 851d01c4864613887506fe8f610366875d8bb3c8..57c79fd8cff532c24dac8e6f7392462c3468ec8d 100644 --- a/frameworks/kits/ability/native/include/ability_window.h +++ b/frameworks/kits/ability/native/include/ability_window.h @@ -16,11 +16,7 @@ #ifndef OHOS_ABILITY_WINDOW_H #define OHOS_ABILITY_WINDOW_H -#define WMS_COMPILE - -#ifdef WMS_COMPILE #include "window_manager.h" -#endif // WMS_COMPILE #include #include "nocopyable.h" @@ -34,7 +30,7 @@ class AbilityWindow : public NoCopyable { public: AbilityWindow(); virtual ~AbilityWindow(); -#ifdef WMS_COMPILE + /** * @brief Init the AbilityWindow object. * @@ -47,7 +43,7 @@ public: * * @param config Indicates window config. */ - bool SetWindowConfig(const WindowConfig &config); + bool SetWindowConfig(const sptr &config); /** * @brief Called when the KeyEvent sent. @@ -68,7 +64,7 @@ public: * */ bool OnBackPressed(std::shared_ptr &ability); -#endif // WMS_COMPILE + /** * @brief Called when this ability is started. * @@ -110,17 +106,13 @@ public: * * @return Returns a Window object pointer. */ -#ifdef WMS_COMPILE - const std::unique_ptr &GetWindow(); -#endif // WMS_COMPILE + const sptr &GetWindow(); private: -#ifdef WMS_COMPILE std::shared_ptr handler_ = nullptr; std::weak_ptr ability_; - std::unique_ptr window_; -#endif // WMS_COMPILE + sptr windowNew_; bool isWindowAttached = false; }; } // namespace AppExecFwk } // namespace OHOS -#endif // OHOS_ABILITY_WINDOW_H \ No newline at end of file +#endif // OHOS_ABILITY_WINDOW_H diff --git a/frameworks/kits/ability/native/src/ability.cpp b/frameworks/kits/ability/native/src/ability.cpp index 8a0555cac7a73974602beab9a4f531a1e392d93b..ba9977f6e9491d43574336b3ff14e429a5107efe 100644 --- a/frameworks/kits/ability/native/src/ability.cpp +++ b/frameworks/kits/ability/native/src/ability.cpp @@ -41,11 +41,9 @@ void Ability::Init(const std::shared_ptr &abilityInfo, const std::s // page ability only. if (abilityInfo_->type == AbilityType::PAGE) { abilityWindow_ = std::make_shared(); -#ifdef WMS_COMPILE if (abilityWindow_ != nullptr) { abilityWindow_->Init(handler_, shared_from_this()); } -#endif } lifecycle_ = std::make_shared(); abilityLifecycleExecutor_ = std::make_shared(); @@ -70,36 +68,33 @@ std::shared_ptr Ability::GetResourceManager() void Ability::OnStart(const Want &want) { APP_LOGI("Ability::OnStart called."); -#ifdef WMS_COMPILE if (abilityInfo_ == nullptr) { APP_LOGE("Ability::OnStart falied abilityInfo_ is nullptr."); return; } if (abilityInfo_->type == AppExecFwk::AbilityType::PAGE) { - WindowConfig config = {}; // should called in ace ability onStart methord. - config.height = WindowManager::GetInstance()->GetMaxHeight(); - config.width = WindowManager::GetInstance()->GetMaxWidth(); - config.format = PIXEL_FMT_RGBA_8888; - config.pos_x = 0; - config.pos_y = 0; - + sptr config = WindowOption::Get(); + OHOS::WindowType winType = OHOS::WindowType::WINDOW_TYPE_NORMAL; if (abilityInfo_->bundleName == SYSTEM_UI) { if (abilityInfo_->name == STATUS_BAR) { - config.type = OHOS::WindowType::WINDOW_TYPE_STATUS_BAR; + winType = OHOS::WindowType::WINDOW_TYPE_STATUS_BAR; } if (abilityInfo_->name == NAVIGATION_BAR) { - config.type = OHOS::WindowType::WINDOW_TYPE_NAVI_BAR; + winType = OHOS::WindowType::WINDOW_TYPE_NAVI_BAR; } } if (abilityInfo_->bundleName == OHOS_REQUEST_PERMISSION_BUNDLENAME && abilityInfo_->name == OHOS_REQUEST_PERMISSION_ABILITY_NAME) { - config.type = OHOS::WindowType::WINDOW_TYPE_ALARM_SCREEN; + winType = OHOS::WindowType::WINDOW_TYPE_ALARM_SCREEN; } + + config->SetWindowType(winType); APP_LOGI("Ability::OnStart bundleName:%{public}s abilityName:%{public}s: set config.type = %{public}d", abilityInfo_->bundleName.c_str(), abilityInfo_->name.c_str(), - config.type); + winType); + SetUIContent(config); if (abilityWindow_ != nullptr) { @@ -107,7 +102,6 @@ void Ability::OnStart(const Want &want) } } // should called in ace ability onStart methord. -#endif // WMS_COMPILE SetWant(want); if (abilityLifecycleExecutor_ == nullptr) { @@ -447,13 +441,12 @@ void Ability::SetUIContent( void Ability::SetUIContent(int layoutRes, std::shared_ptr &context, int typeFlag) {} -#ifdef WMS_COMPILE /** * @brief Inflates UI controls by using WindowConfig. * * @param config Indicates the window config defined by the user. */ -void Ability::SetUIContent(const WindowConfig &config) +void Ability::SetUIContent(const sptr &config) { if (abilityInfo_ == nullptr) { APP_LOGE("Ability::SetUIContent abilityWindow_ is nullptr"); @@ -469,11 +462,10 @@ void Ability::SetUIContent(const WindowConfig &config) * * @return Returns a IWindowsManager object pointer. */ -const std::unique_ptr &Ability::GetWindow() +const sptr &Ability::GetWindow() { return abilityWindow_->GetWindow(); } -#endif // WMS_COMPILE /** * @brief Obtains the type of audio whose volume is adjusted by the volume button. @@ -1296,6 +1288,5 @@ void Ability::TerminateAndRemoveMission() } AbilityContext::TerminateAndRemoveMission(); } - } // namespace AppExecFwk } // namespace OHOS diff --git a/frameworks/kits/ability/native/src/ability_window.cpp b/frameworks/kits/ability/native/src/ability_window.cpp index b6d9b13d8aaa9029642752acc46032816a3dd21a..eb7d4cf3f2b9ad1b0d340fd92b939e3a19cb7569 100755 --- a/frameworks/kits/ability/native/src/ability_window.cpp +++ b/frameworks/kits/ability/native/src/ability_window.cpp @@ -26,7 +26,6 @@ AbilityWindow::AbilityWindow() AbilityWindow::~AbilityWindow() {} -#ifdef WMS_COMPILE /** * @brief Init the AbilityWindow object. * @@ -37,6 +36,18 @@ void AbilityWindow::Init(std::shared_ptr &handler, std::shared_p APP_LOGI("AbilityWindow::Init called."); handler_ = handler; ability_ = std::weak_ptr(ability); + + auto wmi = WindowManager::GetInstance(); + if (wmi == nullptr) { + APP_LOGE("AbilityWindow::Init WindowManager::GetInstance() is nullptr."); + return; + } + + auto wret = wmi->Init(); + if (wret != WM_OK) { + APP_LOGE("AbilityWindow::Init WindowManager::Init() return %d", wret); + return; + } } /** @@ -44,27 +55,40 @@ void AbilityWindow::Init(std::shared_ptr &handler, std::shared_p * * @param config Indicates window config. */ -bool AbilityWindow::SetWindowConfig(const WindowConfig &config) +bool AbilityWindow::SetWindowConfig(const sptr &config) { APP_LOGI("AbilityWindow::SetWindowConfig called."); - APP_LOGI("config format = %{public}d, width = %{public}d, height = %{public}d.", - config.format, - config.width, - config.height); - APP_LOGI("config pos_x = %{public}d, pos_y = %{public}d, stride = %{public}d, type = %{public}d.", - config.pos_x, - config.pos_y, - config.stride, - config.type); - window_ = (WindowManager::GetInstance()->CreateWindow(const_cast(&config))); - if (window_.get() == nullptr) { + APP_LOGI("config width = %{public}d, height = %{public}d.", config->GetWidth(), config->GetHeight()); + APP_LOGI("config pos_x = %{public}d, pos_y = %{public}d, type = %{public}d.", + config->GetX(), config->GetY(), config->GetWindowType()); + + auto wmi = WindowManager::GetInstance(); + if (wmi == nullptr) { + APP_LOGE("AbilityWindow::Init WindowManager::GetInstance() is nullptr."); + return false; + } + + APP_LOGI("%{public}s begin wms->CreateWindow.", __func__); + auto retvalCreate = wmi->CreateWindow(windowNew_, config); + APP_LOGI("%{public}s end wms->CreateWindow.", __func__); + if (retvalCreate != WM_OK) { + APP_LOGE("AbilityWindow::SetWindowConfig WindowManager::CreateWindow() return %d", retvalCreate); + return false; + } + if (windowNew_ == nullptr) { APP_LOGE("AbilityWindow::SetWindowConfig the window is nullptr."); return false; } auto callback = [abilityWindow = this](KeyEvent event) -> bool { return abilityWindow->OnKeyEvent(event); }; - window_->RegistOnKeyCb(callback); + APP_LOGI("%{public}s begin windowNew_->RegistOnKeyCb.", __func__); + auto retvalKeyboardKey = windowNew_->OnKey(callback); + APP_LOGI("%{public}s end windowNew_->RegistOnKeyCb.", __func__); + if (retvalKeyboardKey != WM_OK) { + APP_LOGE("AbilityWindow::SetWindowConfig WindowManager::OnKey() return %d", retvalKeyboardKey); + return false; + } isWindowAttached = true; APP_LOGI("AbilityWindow::SetWindowConfig end."); @@ -123,7 +147,6 @@ bool AbilityWindow::OnBackPressed(std::shared_ptr &ability) handler_->PostTask(task); return true; } -#endif // WMS_COMPILE /** * @brief Called when this ability is started. @@ -137,12 +160,12 @@ void AbilityWindow::OnPostAbilityStart() return; } -#ifdef WMS_COMPILE - if (window_ != nullptr) { - APP_LOGI("AbilityWindow::widow::Hide called."); - window_->Hide(); + if (windowNew_ != nullptr) { + APP_LOGI("%{public}s begin windowNew_->Hide.", __func__); + windowNew_->Hide(); + APP_LOGI("%{public}s end windowNew_->Hide.", __func__); } -#endif // WMS_COMPILE + APP_LOGI("AbilityWindow::OnPostAbilityStart end."); } @@ -158,14 +181,15 @@ void AbilityWindow::OnPostAbilityActive() return; } -#ifdef WMS_COMPILE - if (window_ != nullptr) { - APP_LOGI("AbilityWindow::widow::SwitchTop called."); - window_->SwitchTop(); - APP_LOGI("AbilityWindow::widow::Show called."); - window_->Show(); + if (windowNew_ != nullptr) { + APP_LOGI("%{public}s begin windowNew_->SwitchTop.", __func__); + windowNew_->SwitchTop(); + APP_LOGI("%{public}s end windowNew_->SwitchTop.", __func__); + APP_LOGI("%{public}s begin windowNew_->Show.", __func__); + windowNew_->Show(); + APP_LOGI("%{public}s end windowNew_->Show.", __func__); } -#endif // WMS_COMPILE + APP_LOGI("AbilityWindow::OnPostAbilityActive end."); } @@ -181,12 +205,12 @@ void AbilityWindow::OnPostAbilityInactive() return; } -#ifdef WMS_COMPILE - if (window_ != nullptr) { - APP_LOGI("AbilityWindow::widow::Hide called."); - window_->Hide(); + if (windowNew_ != nullptr) { + APP_LOGI("%{public}s begin windowNew_->Hide.", __func__); + windowNew_->Hide(); + APP_LOGI("%{public}s end windowNew_->Hide.", __func__); } -#endif // WMS_COMPILE + APP_LOGI("AbilityWindow::OnPostAbilityInactive end."); } @@ -202,12 +226,12 @@ void AbilityWindow::OnPostAbilityBackground() return; } -#ifdef WMS_COMPILE - if (window_ != nullptr) { - APP_LOGI("AbilityWindow::widow::Hide called."); - window_->Hide(); + if (windowNew_ != nullptr) { + APP_LOGI("%{public}s begin windowNew_->Hide.", __func__); + windowNew_->Hide(); + APP_LOGI("%{public}s end windowNew_->Hide.", __func__); } -#endif // WMS_COMPILE + APP_LOGI("AbilityWindow::OnPostAbilityBackground end."); } @@ -223,12 +247,12 @@ void AbilityWindow::OnPostAbilityForeground() return; } -#ifdef WMS_COMPILE - if (window_ != nullptr) { - APP_LOGI("AbilityWindow::widow::Show called."); - window_->Show(); + if (windowNew_ != nullptr) { + APP_LOGI("%{public}s begin windowNew_->Show.", __func__); + windowNew_->Show(); + APP_LOGI("%{public}s end windowNew_->Show.", __func__); } -#endif // WMS_COMPILE + APP_LOGI("AbilityWindow::OnPostAbilityForeground end."); } @@ -244,33 +268,34 @@ void AbilityWindow::OnPostAbilityStop() return; } -#ifdef WMS_COMPILE - if (window_ != nullptr) { - int32_t windowID = window_->GetWindowID(); - APP_LOGI("AbilityWindow::widow::DestroyWindow called windowID=%{public}d.", windowID); - WindowManager::GetInstance()->DestroyWindow(windowID); + if (windowNew_ != nullptr) { + int32_t windowID = windowNew_->GetID(); + APP_LOGI("AbilityWindow::widow::DestroyWindow called windowID=%{public}d begin.", windowID); + windowNew_->Destroy(); + APP_LOGI("AbilityWindow::widow::DestroyWindow called windowID=%{public}d end.", windowID); + windowNew_ = nullptr; + APP_LOGI("AbilityWindow::widow:: windowNew_ release end."); } -#endif // WMS_COMPILE + isWindowAttached = false; APP_LOGI("AbilityWindow::OnPostAbilityStop end."); } -#ifdef WMS_COMPILE + /** * @brief Get the window belong to the ability. * * @return Returns a Window object pointer. */ -const std::unique_ptr &AbilityWindow::GetWindow() +const sptr &AbilityWindow::GetWindow() { if (!isWindowAttached) { APP_LOGE("AbilityWindow::GetWindow window not attached."); } - if (window_.get() == nullptr) { + if (windowNew_ == nullptr) { APP_LOGE("AbilityWindow::GetWindow the window is nullptr."); } - return window_; + return windowNew_; } -#endif // WMS_COMPILE } // namespace AppExecFwk -} // namespace OHOS \ No newline at end of file +} // namespace OHOS diff --git a/frameworks/kits/ability/native/test/BUILD.gn b/frameworks/kits/ability/native/test/BUILD.gn index 229430987b57033ceff59b8663564a7736e62a7a..2f172931786bd84f3e2e1e65e1228d30c2a9c421 100755 --- a/frameworks/kits/ability/native/test/BUILD.gn +++ b/frameworks/kits/ability/native/test/BUILD.gn @@ -75,9 +75,6 @@ config("module_ability_context_config") { "//third_party/libuv/include", "//foundation/aafwk/standard/interfaces/innerkits/base/include/ohos/aafwk/base", "//base/global/resmgr_standard/interfaces/innerkits/include", - "//foundation/graphic/standard/interfaces/innerkits/wm", - "//foundation/graphic/standard/interfaces/innerkits/surface", - "//foundation/graphic/standard/utils/include", ] cflags = [] if (target_cpu == "arm") { @@ -114,7 +111,7 @@ ohos_unittest("ability_test") { "//foundation/appexecfwk/standard/interfaces/innerkits/task_dispatcher:appkit_dispatcher_td", "//foundation/appexecfwk/standard/interfaces/innerkits/task_dispatcher:appkit_dispatcher_td", "//foundation/distributedschedule/samgr/interfaces/innerkits/samgr_proxy:samgr_proxy", - "//foundation/graphic/standard:libwms_client", + "//foundation/graphic/standard:libwmclient", "//foundation/multimodalinput/input/interfaces/native/innerkits/event:mmi_event", "//third_party/googletest:gtest_main", "//utils/native/base:utils", @@ -515,7 +512,7 @@ ohos_unittest("ability_thread_test") { "//foundation/appexecfwk/standard/kits:appkit_native", "//foundation/distributedschedule/dmsfwk/interfaces/innerkits/uri:zuri", "//foundation/distributedschedule/samgr/interfaces/innerkits/samgr_proxy:samgr_proxy", - "//foundation/graphic/standard:libwms_client", + "//foundation/graphic/standard:libwmclient", "//foundation/multimodalinput/input/interfaces/native/innerkits/event:mmi_event", "//third_party/googletest:gtest_main", "//utils/native/base:utils", @@ -557,7 +554,7 @@ ohos_unittest("data_ability_impl_test") { "//foundation/appexecfwk/standard/kits:appkit_native", "//foundation/distributedschedule/dmsfwk/interfaces/innerkits/uri:zuri", "//foundation/distributedschedule/samgr/interfaces/innerkits/samgr_proxy:samgr_proxy", - "//foundation/graphic/standard:libwms_client", + "//foundation/graphic/standard:libwmclient", "//foundation/multimodalinput/input/interfaces/native/innerkits/event:mmi_event", "//third_party/googletest:gtest_main", "//utils/native/base:utils", @@ -599,7 +596,7 @@ ohos_unittest("data_ability_impl_file_secondpart_test") { "//foundation/appexecfwk/standard/kits:appkit_native", "//foundation/distributedschedule/dmsfwk/interfaces/innerkits/uri:zuri", "//foundation/distributedschedule/samgr/interfaces/innerkits/samgr_proxy:samgr_proxy", - "//foundation/graphic/standard:libwms_client", + "//foundation/graphic/standard:libwmclient", "//foundation/multimodalinput/input/interfaces/native/innerkits/event:mmi_event", "//third_party/googletest:gtest_main", "//utils/native/base:utils", @@ -641,7 +638,7 @@ ohos_unittest("data_ability_impl_file_test") { "//foundation/appexecfwk/standard/kits:appkit_native", "//foundation/distributedschedule/dmsfwk/interfaces/innerkits/uri:zuri", "//foundation/distributedschedule/samgr/interfaces/innerkits/samgr_proxy:samgr_proxy", - "//foundation/graphic/standard:libwms_client", + "//foundation/graphic/standard:libwmclient", "//foundation/multimodalinput/input/interfaces/native/innerkits/event:mmi_event", "//third_party/googletest:gtest_main", "//utils/native/base:utils", @@ -686,7 +683,7 @@ ohos_unittest("ability_thread_dataability_test") { "//foundation/appexecfwk/standard/kits:appkit_native", "//foundation/distributedschedule/dmsfwk/interfaces/innerkits/uri:zuri", "//foundation/distributedschedule/samgr/interfaces/innerkits/samgr_proxy:samgr_proxy", - "//foundation/graphic/standard:libwms_client", + "//foundation/graphic/standard:libwmclient", "//foundation/multimodalinput/input/interfaces/native/innerkits/event:mmi_event", "//third_party/googletest:gtest_main", "//utils/native/base:utils", diff --git a/frameworks/kits/ability/native/test/mock/include/mock_ability.cpp b/frameworks/kits/ability/native/test/mock/include/mock_ability.cpp index 40a7c007c21fca9fac3321b02ebd997134a375d3..92c253298eeaa0fc5733bf0312a450d778b59924 100644 --- a/frameworks/kits/ability/native/test/mock/include/mock_ability.cpp +++ b/frameworks/kits/ability/native/test/mock/include/mock_ability.cpp @@ -135,7 +135,6 @@ void Ability::SetUIContent(int layoutRes, std::shared_ptr &context, int return; } -#ifdef WMS_COMPILE /** * @brief Inflates UI controls by using WindowConfig. * @@ -163,7 +162,6 @@ std::unique_ptr &Ability::GetWindow(int windowID) return abilityWindow_->GetWindow(windowID); } -#endif // WMS_COMPILE int Ability::GetVolumeTypeAdjustedByKey() { diff --git a/frameworks/kits/ability/native/test/unittest/ability_test.cpp b/frameworks/kits/ability/native/test/unittest/ability_test.cpp index f6e2b2c2c76bd93c280dcdf6fcc5645aa3f47669..714e9f6c3c2d64cb8216cf8460a15b963ff59128 100755 --- a/frameworks/kits/ability/native/test/unittest/ability_test.cpp +++ b/frameworks/kits/ability/native/test/unittest/ability_test.cpp @@ -409,7 +409,6 @@ HWTEST_F(AbilityBaseTest, AaFwk_Ability_TerminateAbility_0100, Function | Medium GTEST_LOG_(INFO) << "AaFwk_Ability_TerminateAbility_0100 end"; } -#ifdef WMS_COMPILE HWTEST_F(AbilityBaseTest, AaFwk_Ability_GetWindow_001, Function | MediumTest | Level1) { std::shared_ptr abilityInfo = std::make_shared(); @@ -420,7 +419,6 @@ HWTEST_F(AbilityBaseTest, AaFwk_Ability_GetWindow_001, Function | MediumTest | L sptr token = nullptr; ability_->Init(abilityInfo, application, handler, token); } -#endif // WMS_COMPILE /** * @tc.number: AaFwk_Ability_OnStart_0100