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