From b4afec80f77bb5a8adca01d04352ee0d32a26ab9 Mon Sep 17 00:00:00 2001 From: chenqinxin Date: Tue, 8 Feb 2022 10:27:14 +0800 Subject: [PATCH] =?UTF-8?q?windowscene=E5=89=8D=E5=90=8E=E5=8F=B0=E5=88=87?= =?UTF-8?q?=E6=8D=A2=E5=A2=9E=E5=8A=A0=E5=85=A5=E5=8F=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: chenqinxin Change-Id: If2ac37772fd8a826072159d813538ef1db456afc --- dmserver/src/display_power_controller.cpp | 2 +- interfaces/innerkits/wm/window_scene.h | 4 +-- utils/include/wm_common_inner.h | 1 + wm/src/window_scene.cpp | 32 ++++++++++++++++++++--- 4 files changed, 32 insertions(+), 7 deletions(-) diff --git a/dmserver/src/display_power_controller.cpp b/dmserver/src/display_power_controller.cpp index a38d9515..8de8b397 100644 --- a/dmserver/src/display_power_controller.cpp +++ b/dmserver/src/display_power_controller.cpp @@ -68,8 +68,8 @@ DisplayState DisplayPowerController::GetDisplayState(DisplayId displayId) void DisplayPowerController::NotifyDisplayEvent(DisplayEvent event) { + WLOGFI("DisplayEvent:%{public}u", event); if (event == DisplayEvent::UNLOCK) { - WLOGFI("DisplayEvent UNLOCK"); DisplayManagerService::GetInstance().NotifyDisplayStateChange(DisplayStateChangeType::BEFORE_UNLOCK); DisplayManagerAgentController::GetInstance().NotifyDisplayPowerEvent(DisplayPowerEvent::DESKTOP_READY, EventStatus::BEGIN); diff --git a/interfaces/innerkits/wm/window_scene.h b/interfaces/innerkits/wm/window_scene.h index ec59f9ea..fef7287b 100644 --- a/interfaces/innerkits/wm/window_scene.h +++ b/interfaces/innerkits/wm/window_scene.h @@ -43,8 +43,8 @@ public: const sptr& GetMainWindow() const; - WMError GoForeground(); - WMError GoBackground() const; + WMError GoForeground(uint32_t reason = 0); + WMError GoBackground(uint32_t reason = 0); WMError RequestFocus() const; void UpdateConfiguration(const std::shared_ptr& configuration); diff --git a/utils/include/wm_common_inner.h b/utils/include/wm_common_inner.h index f6cc79dc..d967fcad 100644 --- a/utils/include/wm_common_inner.h +++ b/utils/include/wm_common_inner.h @@ -32,6 +32,7 @@ enum class WindowState : uint32_t { }; enum class WindowStateChangeReason : uint32_t { + NORMAL, KEYGUARD, }; } diff --git a/wm/src/window_scene.cpp b/wm/src/window_scene.cpp index 96077bd3..6692fae4 100644 --- a/wm/src/window_scene.cpp +++ b/wm/src/window_scene.cpp @@ -83,20 +83,44 @@ const sptr& WindowScene::GetMainWindow() const return mainWindow_; } -WMError WindowScene::GoForeground() +WMError WindowScene::GoForeground(uint32_t reason) { + WLOGFI("GoForeground reason:%{public}u", reason); if (mainWindow_ == nullptr) { return WMError::WM_ERROR_NULLPTR; } - return mainWindow_->Show(); + auto changeReason = static_cast(reason); + switch (changeReason) { + case WindowStateChangeReason::NORMAL: { + return mainWindow_->Show(); + } + case WindowStateChangeReason::KEYGUARD: { + return WMError::WM_OK; + } + default: { + return WMError::WM_ERROR_INVALID_PARAM; + } + } } -WMError WindowScene::GoBackground() const +WMError WindowScene::GoBackground(uint32_t reason) { + WLOGFI("GoBackground reason:%{public}u", reason); if (mainWindow_ == nullptr) { return WMError::WM_ERROR_NULLPTR; } - return mainWindow_->Hide(); + auto changeReason = static_cast(reason); + switch (changeReason) { + case WindowStateChangeReason::NORMAL: { + return mainWindow_->Hide(); + } + case WindowStateChangeReason::KEYGUARD: { + return WMError::WM_OK; + } + default: { + return WMError::WM_ERROR_INVALID_PARAM; + } + } } WMError WindowScene::SetSystemBarProperty(WindowType type, const SystemBarProperty& property) const