From af53c468312d7e1038ae30158b740a3fa6fc1a09 Mon Sep 17 00:00:00 2001 From: hejunfei Date: Fri, 27 Dec 2024 14:45:16 +0800 Subject: [PATCH 01/26] =?UTF-8?q?=E5=A2=9E=E5=8A=A0doze=5Fsuspend=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: hejunfei --- .../src/screen_session_manager.cpp | 15 ++++++--------- .../src/session_display_power_controller.cpp | 1 + 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/window_scene/screen_session_manager/src/screen_session_manager.cpp b/window_scene/screen_session_manager/src/screen_session_manager.cpp index aeca889d78..9ebb05d801 100644 --- a/window_scene/screen_session_manager/src/screen_session_manager.cpp +++ b/window_scene/screen_session_manager/src/screen_session_manager.cpp @@ -2438,7 +2438,7 @@ void ScreenSessionManager::TryToRecoverFoldDisplayMode(ScreenPowerStatus status) } if (status == ScreenPowerStatus::POWER_STATUS_OFF || status == ScreenPowerStatus::POWER_STATUS_OFF_ADVANCED || status == ScreenPowerStatus::POWER_STATUS_OFF_FAKE || status == ScreenPowerStatus::POWER_STATUS_SUSPEND || - status == ScreenPowerStatus::POWER_STATUS_DOZE) { + status == ScreenPowerStatus::POWER_STATUS_DOZE || status == ScreenPowerStatus::POWER_STATUS_DOZE_SUSPEND) { foldScreenController_->RecoverDisplayMode(); } } @@ -2451,9 +2451,10 @@ bool ScreenSessionManager::SetScreenPower(ScreenPowerStatus status, PowerStateCh TLOGI(WmsLogTag::DMS, "[UL_POWER] screenIds empty"); return false; } + bool isOffScreen = ((status == ScreenPowerStatus::POWER_STATUS_OFF) || (status == ScreenPowerStatus::POWER_STATUS_SUSPEND) || + (status == ScreenPowerStatus::POWER_STATUS_DOZE) || (status == ScreenPowerStatus::POWER_STATUS_DOZE_SUSPEND)); - if (status == ScreenPowerStatus::POWER_STATUS_OFF || status == ScreenPowerStatus::POWER_STATUS_SUSPEND || - status == ScreenPowerStatus::POWER_STATUS_DOZE) { + if (isOffScreen) { ExitCoordination("Press PowerKey"); } DisplayPowerEvent notifyEvent = DisplayPowerEvent::DISPLAY_OFF; @@ -2461,9 +2462,7 @@ bool ScreenSessionManager::SetScreenPower(ScreenPowerStatus status, PowerStateCh if (iter != SCREEN_STATUS_POWER_EVENT_MAP.end()) { notifyEvent = iter->second; } - if (((status == ScreenPowerStatus::POWER_STATUS_OFF || status == ScreenPowerStatus::POWER_STATUS_SUSPEND || - status == ScreenPowerStatus::POWER_STATUS_DOZE) && - gotScreenlockFingerprint_ == true) && + if (isOffScreen && gotScreenlockFingerprint_ && prePowerStateChangeReason_ != PowerStateChangeReason::STATE_CHANGE_REASON_SHUT_DOWN) { gotScreenlockFingerprint_ = false; TLOGI(WmsLogTag::DMS, "[UL_POWER] screenlockFingerprint or shutdown"); @@ -2483,9 +2482,7 @@ bool ScreenSessionManager::SetScreenPower(ScreenPowerStatus status, PowerStateCh if (reason == PowerStateChangeReason::STATE_CHANGE_REASON_COLLABORATION) { return true; } - if ((status == ScreenPowerStatus::POWER_STATUS_OFF || status == ScreenPowerStatus::POWER_STATUS_SUSPEND || - status == ScreenPowerStatus::POWER_STATUS_DOZE) && - gotScreenlockFingerprint_ == true) { + if (isOffScreen && gotScreenlockFingerprint_) { gotScreenlockFingerprint_ = false; } diff --git a/window_scene/screen_session_manager/src/session_display_power_controller.cpp b/window_scene/screen_session_manager/src/session_display_power_controller.cpp index 47a1a8df89..31e1be0978 100644 --- a/window_scene/screen_session_manager/src/session_display_power_controller.cpp +++ b/window_scene/screen_session_manager/src/session_display_power_controller.cpp @@ -48,6 +48,7 @@ bool SessionDisplayPowerController::HandleSetDisplayStateOff(DisplayState& state if (needCancelNotify_) { TLOGI(WmsLogTag::DMS, "[UL_POWER]SetDisplayState to OFF is canceled successfully before notify"); needCancelNotify_ = false; + isSuspendBegin_ = false; displayState_ = lastState; ScreenSessionManager::GetInstance().NotifyDisplayStateChanged(DISPLAY_ID_INVALID, DisplayState::UNKNOWN); -- Gitee From 9c180578a94bd903c52f53f422541a43b6eb4b7c Mon Sep 17 00:00:00 2001 From: hejunfei Date: Fri, 3 Jan 2025 14:22:46 +0800 Subject: [PATCH 02/26] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=B6=85=E9=95=BF?= =?UTF-8?q?=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: hejunfei --- .../screen_session_manager/src/screen_session_manager.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/window_scene/screen_session_manager/src/screen_session_manager.cpp b/window_scene/screen_session_manager/src/screen_session_manager.cpp index 9ebb05d801..14f7314472 100644 --- a/window_scene/screen_session_manager/src/screen_session_manager.cpp +++ b/window_scene/screen_session_manager/src/screen_session_manager.cpp @@ -2451,7 +2451,8 @@ bool ScreenSessionManager::SetScreenPower(ScreenPowerStatus status, PowerStateCh TLOGI(WmsLogTag::DMS, "[UL_POWER] screenIds empty"); return false; } - bool isOffScreen = ((status == ScreenPowerStatus::POWER_STATUS_OFF) || (status == ScreenPowerStatus::POWER_STATUS_SUSPEND) || + bool isOffScreen = ((status == ScreenPowerStatus::POWER_STATUS_OFF) || + (status == ScreenPowerStatus::POWER_STATUS_SUSPEND) || (status == ScreenPowerStatus::POWER_STATUS_DOZE) || (status == ScreenPowerStatus::POWER_STATUS_DOZE_SUSPEND)); if (isOffScreen) { -- Gitee From 7c8dd911ab7be0410b2d7fc6d46403d04efce530 Mon Sep 17 00:00:00 2001 From: hejunfei Date: Fri, 11 Apr 2025 16:36:08 +0800 Subject: [PATCH 03/26] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E9=80=9A=E7=9F=A5sensor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: hejunfei --- dm/include/display_manager_adapter.h | 1 + dm/src/display_manager.cpp | 12 ++++++ dm/src/display_manager_adapter.cpp | 6 +++ dm/test/unittest/display_manager_test.cpp | 11 ++++++ dmserver/include/display_manager_interface.h | 5 +++ .../include/display_manager_interface_code.h | 1 + interfaces/innerkits/dm/display_manager.h | 8 +++- interfaces/innerkits/dm/dm_common.h | 11 ++++++ .../fold_screen_controller.h | 1 + .../sensor_fold_state_manager.h | 1 + .../include/screen_session_manager.h | 1 + .../zidl/screen_session_manager_proxy.h | 1 + .../fold_screen_controller.cpp | 9 +++++ .../secondary_display_fold_policy.cpp | 9 +++++ .../sensor_fold_state_manager.cpp | 5 +++ ...splay_sensor_pocket_fold_state_manager.cpp | 13 +++++++ .../single_display_pocket_fold_policy.cpp | 9 +++++ .../src/screen_session_manager.cpp | 37 +++++++++++++++++++ .../src/zidl/screen_session_manager_proxy.cpp | 25 +++++++++++++ .../src/zidl/screen_session_manager_stub.cpp | 4 ++ 20 files changed, 169 insertions(+), 1 deletion(-) diff --git a/dm/include/display_manager_adapter.h b/dm/include/display_manager_adapter.h index 86a70323b2..96abf36216 100644 --- a/dm/include/display_manager_adapter.h +++ b/dm/include/display_manager_adapter.h @@ -110,6 +110,7 @@ public: virtual std::shared_ptr GetDisplaySnapshotWithOption(const CaptureOption& captureOption, DmErrorCode* errorCode = nullptr); virtual sptr GetPrimaryDisplayInfo(); + virtual uint32_t GetDeviceStatus(); private: static inline SingletonDelegator delegator; diff --git a/dm/src/display_manager.cpp b/dm/src/display_manager.cpp index a44495f16e..9b8b62d3d3 100644 --- a/dm/src/display_manager.cpp +++ b/dm/src/display_manager.cpp @@ -101,6 +101,7 @@ public: DMError SetVirtualScreenSecurityExemption(ScreenId screenId, uint32_t pid, std::vector& windowIdList); sptr GetPrimaryDisplaySync(); void OnRemoteDied(); + uint32_t GetDeviceStatus(); sptr GetCutoutInfoWithRotation(Rotation rotation); private: @@ -2118,6 +2119,11 @@ std::string DisplayManager::Impl::GetDisplayInfoSrting(sptr display return oss.str(); } +uint32_t DisplayManager::impl::GetDeviceStatus() +{ + return SingletonContainer::Get().GetDeviceStatus(); +} + bool DisplayManager::WakeUpBegin(PowerStateChangeReason reason) { WLOGFD("[UL_POWER]WakeUpBegin start, reason:%{public}u", reason); @@ -2485,5 +2491,11 @@ sptr DisplayManager::Impl::GetCutoutInfoWithRotation(Rotation rotati auto displayId = displayInfo->GetDisplayId(); return SingletonContainer::Get().GetCutoutInfoWithRotation(displayId, rotationNum); } + +uint32_t DisplayManager::GetDeviceStatus() +{ + return pImpl_->GetDeviceStatus(); +} + } // namespace OHOS::Rosen diff --git a/dm/src/display_manager_adapter.cpp b/dm/src/display_manager_adapter.cpp index 1f8eb1999a..807ed5d676 100644 --- a/dm/src/display_manager_adapter.cpp +++ b/dm/src/display_manager_adapter.cpp @@ -970,6 +970,12 @@ sptr DisplayManagerAdapter::GetPrimaryDisplayInfo() } } +uint32_t DisplayManagerAdapter::GetDeviceStatus() +{ + INIT_PROXY_CHECK_RETURN(0); + return displayManagerServiceProxy_->GetDeviceStatus(); +} + std::shared_ptr DisplayManagerAdapter::GetDisplaySnapshotWithOption(const CaptureOption& captureOption, DmErrorCode* errorCode) { diff --git a/dm/test/unittest/display_manager_test.cpp b/dm/test/unittest/display_manager_test.cpp index 71744ff264..c16e72c926 100644 --- a/dm/test/unittest/display_manager_test.cpp +++ b/dm/test/unittest/display_manager_test.cpp @@ -1760,6 +1760,17 @@ HWTEST_F(DisplayManagerTest, GetCutoutInfoWithRotation, Function | SmallTest | L sptr info = DisplayManager::GetInstance().GetCutoutInfoWithRotation(rotation); ASSERT_NE(nullptr, info); } + +/** + * @tc.name: GetDeviceStatus + * @tc.desc: GetDeviceStatus test + * @tc.type: FUNC + */ +HWTEST_F(DisplayManagerTest, GetDeviceStatus, Function | SmallTest | Level1) +{ + uint32_t status = DisplayManager::GetInstance().GetDeviceStatus(); + ASSERT_EQ(status, 0); +} } } // namespace Rosen } // namespace OHOS \ No newline at end of file diff --git a/dmserver/include/display_manager_interface.h b/dmserver/include/display_manager_interface.h index d7b2d7b921..76b2c0c77e 100644 --- a/dmserver/include/display_manager_interface.h +++ b/dmserver/include/display_manager_interface.h @@ -304,6 +304,11 @@ public: { return DMError::DM_ERROR_DEVICE_NOT_SUPPORT; } + + virtual uint32_t GetDeviceStatus() + { + return 0; + } }; } // namespace OHOS::Rosen diff --git a/dmserver/include/display_manager_interface_code.h b/dmserver/include/display_manager_interface_code.h index c3a2e047db..bb1fb8e74e 100644 --- a/dmserver/include/display_manager_interface_code.h +++ b/dmserver/include/display_manager_interface_code.h @@ -163,6 +163,7 @@ enum class DisplayManagerMessage : unsigned int { TRANS_ID_GET_DISPLAY_CAPABILITY, TRANS_ID_SET_SYSTEM_KEYBOARD_STATUS, TRANS_ID_SET_VIRTUAL_DISPLAY_MUTE_FLAG, + TRANS_ID_GET_DEVICE_STATUS, }; } #endif // FOUNDATION_DMSERVER_DISPLAY_MANAGER_INTERFACE_CODE_H diff --git a/interfaces/innerkits/dm/display_manager.h b/interfaces/innerkits/dm/display_manager.h index 43ea11ba94..0f7ef40ffb 100644 --- a/interfaces/innerkits/dm/display_manager.h +++ b/interfaces/innerkits/dm/display_manager.h @@ -844,7 +844,13 @@ public: * @return CutoutInfo object of default screen. */ sptr GetCutoutInfoWithRotation(Rotation rotation); - + + /** + * @brief Get device status. + * + * @return Device status. + */ + uint32_t GetDeviceStatus(); private: DisplayManager(); ~DisplayManager(); diff --git a/interfaces/innerkits/dm/dm_common.h b/interfaces/innerkits/dm/dm_common.h index 74c2e03e52..412816b355 100644 --- a/interfaces/innerkits/dm/dm_common.h +++ b/interfaces/innerkits/dm/dm_common.h @@ -606,6 +606,17 @@ struct SessionOption { std::string innerName_; ScreenId screenId_; }; + +/** + * @brief Device state + */ +enum class DMDeviceStatus: uint32_t { + UNKNOWN = 0, + STATUS_FOLDED, + STATUS_TENT_HOVER, + STATUS_TENT, + STATUS_GLOBAL_FULL +}; } } #endif // OHOS_ROSEN_DM_COMMON_H diff --git a/window_scene/screen_session_manager/include/fold_screen_controller/fold_screen_controller.h b/window_scene/screen_session_manager/include/fold_screen_controller/fold_screen_controller.h index 160a35f9ab..10420e5fdc 100644 --- a/window_scene/screen_session_manager/include/fold_screen_controller/fold_screen_controller.h +++ b/window_scene/screen_session_manager/include/fold_screen_controller/fold_screen_controller.h @@ -46,6 +46,7 @@ public: bool IsFoldable(); FoldStatus GetFoldStatus(); bool GetTentMode(); + int GetCurrentTentMode(); FoldDisplayMode GetModeMatchStatus(); void SetFoldStatus(FoldStatus foldStatus); void OnTentModeChanged(int tentType, int32_t hall = -1); diff --git a/window_scene/screen_session_manager/include/fold_screen_controller/sensor_fold_state_manager/sensor_fold_state_manager.h b/window_scene/screen_session_manager/include/fold_screen_controller/sensor_fold_state_manager/sensor_fold_state_manager.h index 2588475017..5228c4d773 100644 --- a/window_scene/screen_session_manager/include/fold_screen_controller/sensor_fold_state_manager/sensor_fold_state_manager.h +++ b/window_scene/screen_session_manager/include/fold_screen_controller/sensor_fold_state_manager/sensor_fold_state_manager.h @@ -38,6 +38,7 @@ public: virtual bool IsCameraMode(); void ClearState(sptr foldScreenPolicy); bool IsTentMode(); + int GetTentMode(); protected: void HandleSensorChange(FoldStatus nextState, float angle, sptr foldScreenPolicy); diff --git a/window_scene/screen_session_manager/include/screen_session_manager.h b/window_scene/screen_session_manager/include/screen_session_manager.h index 861be2bcce..6b0c8ba726 100644 --- a/window_scene/screen_session_manager/include/screen_session_manager.h +++ b/window_scene/screen_session_manager/include/screen_session_manager.h @@ -422,6 +422,7 @@ public: SessionOption GetSessionOption(sptr screenSession); SessionOption GetSessionOption(sptr screenSession, ScreenId screenId); virtual DMError SetSystemKeyboardStatus(bool isTpKeyboardOn = false) override; + uint32_t GetDeviceStatus() override; protected: ScreenSessionManager(); diff --git a/window_scene/screen_session_manager/include/zidl/screen_session_manager_proxy.h b/window_scene/screen_session_manager/include/zidl/screen_session_manager_proxy.h index 2741971239..f8c4b00985 100644 --- a/window_scene/screen_session_manager/include/zidl/screen_session_manager_proxy.h +++ b/window_scene/screen_session_manager/include/zidl/screen_session_manager_proxy.h @@ -220,6 +220,7 @@ public: ScreenCombination GetScreenCombination(ScreenId screenId) override; DMError SetScreenSkipProtectedWindow(const std::vector& screenIds, bool isEnable) override; bool GetIsRealScreen(ScreenId screenId) override; + uint32_t GetDeviceStatus() override; private: static inline BrokerDelegator delegator_; diff --git a/window_scene/screen_session_manager/src/fold_screen_controller/fold_screen_controller.cpp b/window_scene/screen_session_manager/src/fold_screen_controller/fold_screen_controller.cpp index 56035725a9..e9277c68e1 100644 --- a/window_scene/screen_session_manager/src/fold_screen_controller/fold_screen_controller.cpp +++ b/window_scene/screen_session_manager/src/fold_screen_controller/fold_screen_controller.cpp @@ -198,6 +198,15 @@ bool FoldScreenController::GetCameraMode() return sensorFoldStateManager_->IsCameraMode(); } +int FoldScreenController::GetCurrentTentMode() +{ + if (sensorFoldStateManager_ == nullptr) { + TLOGW(WmsLogTag::DMS, "GetCurrentTentMode: sensorFoldStateManager_ is null"); + return 0; + } + return sensorFoldStateManager_->GetTentMode(); +} + void FoldScreenController::OnTentModeChanged(int tentType, int32_t hall) { if (sensorFoldStateManager_ == nullptr) { diff --git a/window_scene/screen_session_manager/src/fold_screen_controller/secondary_display_fold_policy.cpp b/window_scene/screen_session_manager/src/fold_screen_controller/secondary_display_fold_policy.cpp index 81f34c63d3..ecd21b9676 100644 --- a/window_scene/screen_session_manager/src/fold_screen_controller/secondary_display_fold_policy.cpp +++ b/window_scene/screen_session_manager/src/fold_screen_controller/secondary_display_fold_policy.cpp @@ -19,6 +19,8 @@ #include "session/screen/include/screen_session.h" #include "screen_session_manager.h" #include "screen_scene_config.h" +#include "sensor_agent.h" +#include "sensor_agent_type.h" #include "window_manager_hilog.h" @@ -108,6 +110,13 @@ void SecondaryDisplayFoldPolicy::ChangeScreenDisplayMode(FoldDisplayMode display currentDisplayMode_ = displayMode; lastDisplayMode_ = displayMode; } + if (displayMode == FoldDisplayMode::GLOBAL_FULL) { + TLOGW(WmsLogTag::DMS, "Set device status to STATUS_GLOBAL_FULL"); + SetDeviceStatus(static_cast(DMDeviceStatus::STATUS_GLOBAL_FULL)); + } else { + TLOGW(WmsLogTag::DMS, "Set device status to UNKNOWN"); + SetDeviceStatus(static_cast(DMDeviceStatus::UNKNOWN)); + } ScreenSessionManager::GetInstance().NotifyDisplayModeChanged(displayMode); } diff --git a/window_scene/screen_session_manager/src/fold_screen_controller/sensor_fold_state_manager/sensor_fold_state_manager.cpp b/window_scene/screen_session_manager/src/fold_screen_controller/sensor_fold_state_manager/sensor_fold_state_manager.cpp index 432548acc7..16a71405cb 100644 --- a/window_scene/screen_session_manager/src/fold_screen_controller/sensor_fold_state_manager/sensor_fold_state_manager.cpp +++ b/window_scene/screen_session_manager/src/fold_screen_controller/sensor_fold_state_manager/sensor_fold_state_manager.cpp @@ -189,4 +189,9 @@ void SensorFoldStateManager::SetTentMode(int tentType) TLOGI(WmsLogTag::DMS, "tent mode changing: %{public}d -> %{public}d", tentModeType_, tentType); tentModeType_ = tentType; } + +int SensorFoldStateManager::GetTentMode() +{ + return tentModeType_; +} } // namespace OHOS::Rosen \ No newline at end of file diff --git a/window_scene/screen_session_manager/src/fold_screen_controller/sensor_fold_state_manager/single_display_sensor_pocket_fold_state_manager.cpp b/window_scene/screen_session_manager/src/fold_screen_controller/sensor_fold_state_manager/single_display_sensor_pocket_fold_state_manager.cpp index 56353927de..f3cbf860b2 100644 --- a/window_scene/screen_session_manager/src/fold_screen_controller/sensor_fold_state_manager/single_display_sensor_pocket_fold_state_manager.cpp +++ b/window_scene/screen_session_manager/src/fold_screen_controller/sensor_fold_state_manager/single_display_sensor_pocket_fold_state_manager.cpp @@ -26,6 +26,8 @@ #include "app_mgr_client.h" #include "screen_session_manager/include/screen_rotation_property.h" #include "screen_session_manager.h" +#include "sensor_agent.h" +#include "sensor_agent_type.h" #ifdef POWER_MANAGER_ENABLE #include @@ -180,8 +182,12 @@ void SingleDisplaySensorPocketFoldStateManager::HandleTentChange(int tentType, HandleSensorChange(FoldStatus::FOLDED, currentAngle, foldScreenPolicy); foldScreenPolicy->ChangeOnTentMode(FoldStatus::FOLDED); if (tentType == TENT_MODE_ON) { + TLOGI(WmsLogTag::DMS, "Set device status to STATUS_TENT"); + SetDeviceStatus(static_cast(DeviceStatus::STATUS_TENT)); ScreenRotationProperty::HandleHoverStatusEventInput(DeviceHoverStatus::TENT_STATUS); } else if (tentType == TENT_MODE_HOVER_ON) { + TLOGI(WmsLogTag::DMS, "Set device status to STATUS_TENT_HOVER"); + SetDeviceStatus(static_cast(DeviceStatus::STATUS_TENT_HOVER)); ScreenRotationProperty::HandleHoverStatusEventInput(DeviceHoverStatus::TENT_STATUS_HOVER); } } else { @@ -194,6 +200,13 @@ void SingleDisplaySensorPocketFoldStateManager::HandleTentChange(int tentType, } else { nextState = GetNextFoldState(currentAngle, hall); } + if (nextState == FoldStatus::FOLDED) { + TLOGI(WmsLogTag::DMS, "Set device status to STATUS_FOLDED"); + SetDeviceStatus(static_cast(DeviceStatus::STATUS_FOLDED)); + } else { + TLOGI(WmsLogTag::DMS, "Set device status to UNKNOWN"); + SetDeviceStatus(static_cast(DeviceStatus::UNKNOWN)); + } HandleSensorChange(nextState, currentAngle, foldScreenPolicy); ReportTentStatusChange(ReportTentModeStatus::NORMAL_EXIT_TENT_MODE); foldScreenPolicy->ChangeOffTentMode(); diff --git a/window_scene/screen_session_manager/src/fold_screen_controller/single_display_pocket_fold_policy.cpp b/window_scene/screen_session_manager/src/fold_screen_controller/single_display_pocket_fold_policy.cpp index 437c390c6d..8db4c14c2e 100644 --- a/window_scene/screen_session_manager/src/fold_screen_controller/single_display_pocket_fold_policy.cpp +++ b/window_scene/screen_session_manager/src/fold_screen_controller/single_display_pocket_fold_policy.cpp @@ -118,6 +118,15 @@ void SingleDisplayPocketFoldPolicy::ChangeScreenDisplayMode(FoldDisplayMode disp std::lock_guard lock_mode(displayModeMutex_); lastDisplayMode_ = displayMode; } + if (!ScreenSessionManager::GetInstance().GetTentMode()) { + if (displayMode == FoldDisplayMode::MAIN) { + TLOGI(WmsLogTag::DMS, "Set device status to STATUS_FOLDED"); + SetDeviceStatus(static_cast(DMDeviceStatus::STATUS_FOLDED)); + } else { + TLOGI(WmsLogTag::DMS, "Set device status to UNKNOWN"); + SetDeviceStatus(static_cast(DMDeviceStatus::UNKNOWN)); + } + } ChangeScreenDisplayModeProc(screenSession, displayMode, reason); { std::lock_guard lock_mode(displayModeMutex_); diff --git a/window_scene/screen_session_manager/src/screen_session_manager.cpp b/window_scene/screen_session_manager/src/screen_session_manager.cpp index 572bdb8ee2..47e449fc4b 100644 --- a/window_scene/screen_session_manager/src/screen_session_manager.cpp +++ b/window_scene/screen_session_manager/src/screen_session_manager.cpp @@ -144,6 +144,8 @@ const uint32_t MAX_INTERVAL_US = 1800000000; // 30分钟 const int32_t MAP_SIZE = 300; const std::string NO_EXIST_BUNDLE_MANE = "null"; ScreenCache g_uidVersionMap(MAP_SIZE, NO_EXIST_BUNDLE_MANE); +constexpr int32_t MOTION_ACTION_TENT_MODE_ON = 1; +constexpr int32_t MOTION_ACTION_TENT_MODE_HOVER = 2; const std::string SCREEN_UNKNOWN = "unknown"; #ifdef WM_MULTI_SCREEN_ENABLE @@ -9025,4 +9027,39 @@ void ScreenSessionManager::SetExtendScreenDpi() SetExtendPixelRatio(dpi * g_extendScreenDpiCoef_); TLOGI(WmsLogTag::DMS, "get setting extend screen dpi is : %{public}f", g_extendScreenDpiCoef_); } + +uint32_t ScreenSessionManager::GetDeviceStatus() +{ + if (foldScreenController_ == nullptr) { + return 0; + } + + DMDeviceStatus status = DMDeviceStatus::UNKNOWN; + + if (FoldScreenStateInternel::IsSingleDisplayPocketFoldDevice()) { + int tentMode = foldScreenController_->GetCurrentTentMode(); + if (tentMode == MOTION_ACTION_TENT_MODE_HOVER) { + status = DMDeviceStatus::STATUS_TENT_HOVER; + } else if (tentMode == MOTION_ACTION_TENT_MODE_ON) { + status = DMDeviceStatus::STATUS_TENT; + } else { + FoldDisplayMode displayMode = foldScreenController_->GetModeMatchStatus(); + if (displayMode == FoldDisplayMode::MAIN) { + status = DMDeviceStatus::STATUS_FOLDED; + } + TLOGI(WmsLogTag::DMS, "Get device status for pocket, display mode: %{public}u", static_cast(displayMode)); + } + TLOGI(WmsLogTag::DMS, "Get device status for pocket, tent mode: %{public}d status: %{public}u", + tentMode, static_cast(status)); + } else if (FoldScreenStateInternel::IsSecondaryDisplayFoldDevice()) { + FoldDisplayMode displayMode = foldScreenController_->GetModeMatchStatus(); + if (displayMode == FoldDisplayMode::GLOBAL_FULL) { + status = DMDeviceStatus::STATUS_GLOBAL_FULL; + } + TLOGI(WmsLogTag::DMS, "Get device status, display mode: %{public}u status: %{public}u", + static_cast(displayMode), static_cast(status)); + } + + return static_cast(status); +} } // namespace OHOS::Rosen diff --git a/window_scene/screen_session_manager/src/zidl/screen_session_manager_proxy.cpp b/window_scene/screen_session_manager/src/zidl/screen_session_manager_proxy.cpp index f629087283..c2400237fe 100644 --- a/window_scene/screen_session_manager/src/zidl/screen_session_manager_proxy.cpp +++ b/window_scene/screen_session_manager/src/zidl/screen_session_manager_proxy.cpp @@ -4107,4 +4107,29 @@ bool ScreenSessionManagerProxy::GetIsRealScreen(ScreenId screenId) } return reply.ReadBool(); } + +uint32_t ScreenSessionManagerProxy::GetDeviceStatus() +{ + sptr remote = Remote(); + if (remote == nullptr) { + WLOGFW("ScreenSessionManagerProxy::GetDeviceStatus: remote is nullptr"); + return 0; + } + + MessageOption data; + MessageParcel reply; + MessageOption option; + if (!data.WriteInterfaceToken(GetDescriptor())) { + WLOGFE("ScreenSessionManagerProxy::GetDeviceStatus: WriteInterfaceToken failed"); + return 0; + } + + if (remote->SendRequest(static_cast(DisplayManagerMessage::TRANS_ID_GET_DEVICE_STATUS), + data, reply, option) != ERR_NONE) { + WLOGFE("ScreenSessionManagerProxy::GetDeviceStatus: SendRequest failed"); + return 0; + } + + return reply.ReadUint32(); +} } // namespace OHOS::Rosen diff --git a/window_scene/screen_session_manager/src/zidl/screen_session_manager_stub.cpp b/window_scene/screen_session_manager/src/zidl/screen_session_manager_stub.cpp index 4d7d3d3945..e5ab2edf50 100644 --- a/window_scene/screen_session_manager/src/zidl/screen_session_manager_stub.cpp +++ b/window_scene/screen_session_manager/src/zidl/screen_session_manager_stub.cpp @@ -1135,6 +1135,10 @@ int32_t ScreenSessionManagerStub::OnRemoteRequest(uint32_t code, MessageParcel& SetVirtualDisplayMuteFlag(screenId, muteFlag); break; } + case DisplayManagerMessage::TRANS_ID_GET_DEVICE_STATUS: { + reply.WriteInt32(GetDeviceStatus()); + break; + } default: WLOGFW("unknown transaction code"); return IPCObjectStub::OnRemoteRequest(code, data, reply, option); -- Gitee From 9b81641ae7a7ea50402e335b32f54dc12f1bf91f Mon Sep 17 00:00:00 2001 From: hejunfei Date: Fri, 11 Apr 2025 16:42:47 +0800 Subject: [PATCH 04/26] =?UTF-8?q?=E5=8F=91=E9=80=81=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E7=BB=99sensor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: hejunfei --- .../src/session_display_power_controller.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/window_scene/screen_session_manager/src/session_display_power_controller.cpp b/window_scene/screen_session_manager/src/session_display_power_controller.cpp index 31e1be0978..47a1a8df89 100644 --- a/window_scene/screen_session_manager/src/session_display_power_controller.cpp +++ b/window_scene/screen_session_manager/src/session_display_power_controller.cpp @@ -48,7 +48,6 @@ bool SessionDisplayPowerController::HandleSetDisplayStateOff(DisplayState& state if (needCancelNotify_) { TLOGI(WmsLogTag::DMS, "[UL_POWER]SetDisplayState to OFF is canceled successfully before notify"); needCancelNotify_ = false; - isSuspendBegin_ = false; displayState_ = lastState; ScreenSessionManager::GetInstance().NotifyDisplayStateChanged(DISPLAY_ID_INVALID, DisplayState::UNKNOWN); -- Gitee From 362bc09169758901626e8acd84da918caf1194b3 Mon Sep 17 00:00:00 2001 From: hejunfei Date: Fri, 11 Apr 2025 17:02:16 +0800 Subject: [PATCH 05/26] =?UTF-8?q?=E5=8F=91=E9=80=81=E5=B1=8F=E5=B9=95?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E7=BB=99sensor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: hejunfei --- ..._display_sensor_pocket_fold_state_manager.cpp | 8 ++++---- .../src/screen_session_manager.cpp | 16 +++++++++------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/window_scene/screen_session_manager/src/fold_screen_controller/sensor_fold_state_manager/single_display_sensor_pocket_fold_state_manager.cpp b/window_scene/screen_session_manager/src/fold_screen_controller/sensor_fold_state_manager/single_display_sensor_pocket_fold_state_manager.cpp index f3cbf860b2..acb6933acc 100644 --- a/window_scene/screen_session_manager/src/fold_screen_controller/sensor_fold_state_manager/single_display_sensor_pocket_fold_state_manager.cpp +++ b/window_scene/screen_session_manager/src/fold_screen_controller/sensor_fold_state_manager/single_display_sensor_pocket_fold_state_manager.cpp @@ -183,11 +183,11 @@ void SingleDisplaySensorPocketFoldStateManager::HandleTentChange(int tentType, foldScreenPolicy->ChangeOnTentMode(FoldStatus::FOLDED); if (tentType == TENT_MODE_ON) { TLOGI(WmsLogTag::DMS, "Set device status to STATUS_TENT"); - SetDeviceStatus(static_cast(DeviceStatus::STATUS_TENT)); + SetDeviceStatus(static_cast(DMDeviceStatus::STATUS_TENT)); ScreenRotationProperty::HandleHoverStatusEventInput(DeviceHoverStatus::TENT_STATUS); } else if (tentType == TENT_MODE_HOVER_ON) { TLOGI(WmsLogTag::DMS, "Set device status to STATUS_TENT_HOVER"); - SetDeviceStatus(static_cast(DeviceStatus::STATUS_TENT_HOVER)); + SetDeviceStatus(static_cast(DMDeviceStatus::STATUS_TENT_HOVER)); ScreenRotationProperty::HandleHoverStatusEventInput(DeviceHoverStatus::TENT_STATUS_HOVER); } } else { @@ -202,10 +202,10 @@ void SingleDisplaySensorPocketFoldStateManager::HandleTentChange(int tentType, } if (nextState == FoldStatus::FOLDED) { TLOGI(WmsLogTag::DMS, "Set device status to STATUS_FOLDED"); - SetDeviceStatus(static_cast(DeviceStatus::STATUS_FOLDED)); + SetDeviceStatus(static_cast(DMDeviceStatus::STATUS_FOLDED)); } else { TLOGI(WmsLogTag::DMS, "Set device status to UNKNOWN"); - SetDeviceStatus(static_cast(DeviceStatus::UNKNOWN)); + SetDeviceStatus(static_cast(DMDeviceStatus::UNKNOWN)); } HandleSensorChange(nextState, currentAngle, foldScreenPolicy); ReportTentStatusChange(ReportTentModeStatus::NORMAL_EXIT_TENT_MODE); diff --git a/window_scene/screen_session_manager/src/screen_session_manager.cpp b/window_scene/screen_session_manager/src/screen_session_manager.cpp index 47e449fc4b..e018e9f56d 100644 --- a/window_scene/screen_session_manager/src/screen_session_manager.cpp +++ b/window_scene/screen_session_manager/src/screen_session_manager.cpp @@ -3086,7 +3086,7 @@ void ScreenSessionManager::TryToRecoverFoldDisplayMode(ScreenPowerStatus status) } if (status == ScreenPowerStatus::POWER_STATUS_OFF || status == ScreenPowerStatus::POWER_STATUS_OFF_ADVANCED || status == ScreenPowerStatus::POWER_STATUS_OFF_FAKE || status == ScreenPowerStatus::POWER_STATUS_SUSPEND || - status == ScreenPowerStatus::POWER_STATUS_DOZE || status == ScreenPowerStatus::POWER_STATUS_DOZE_SUSPEND) { + status == ScreenPowerStatus::POWER_STATUS_DOZE) { foldScreenController_->RecoverDisplayMode(); } #endif @@ -3100,11 +3100,9 @@ bool ScreenSessionManager::SetScreenPower(ScreenPowerStatus status, PowerStateCh TLOGI(WmsLogTag::DMS, "[UL_POWER] screenIds empty"); return false; } - bool isOffScreen = ((status == ScreenPowerStatus::POWER_STATUS_OFF) || - (status == ScreenPowerStatus::POWER_STATUS_SUSPEND) || - (status == ScreenPowerStatus::POWER_STATUS_DOZE) || (status == ScreenPowerStatus::POWER_STATUS_DOZE_SUSPEND)); - if (isOffScreen) { + if (status == ScreenPowerStatus::POWER_STATUS_OFF || status == ScreenPowerStatus::POWER_STATUS_SUSPEND || + status == ScreenPowerStatus::POWER_STATUS_DOZE) { ExitCoordination("Press PowerKey"); } DisplayPowerEvent notifyEvent = DisplayPowerEvent::DISPLAY_OFF; @@ -3112,7 +3110,9 @@ bool ScreenSessionManager::SetScreenPower(ScreenPowerStatus status, PowerStateCh if (iter != SCREEN_STATUS_POWER_EVENT_MAP.end()) { notifyEvent = iter->second; } - if (isOffScreen && gotScreenlockFingerprint_ && + if (((status == ScreenPowerStatus::POWER_STATUS_OFF || status == ScreenPowerStatus::POWER_STATUS_SUSPEND || + status == ScreenPowerStatus::POWER_STATUS_DOZE) && + gotScreenlockFingerprint_ == true) && prePowerStateChangeReason_ != PowerStateChangeReason::STATE_CHANGE_REASON_SHUT_DOWN) { gotScreenlockFingerprint_ = false; TLOGI(WmsLogTag::DMS, "[UL_POWER] screenlockFingerprint or shutdown"); @@ -3133,7 +3133,9 @@ bool ScreenSessionManager::SetScreenPower(ScreenPowerStatus status, PowerStateCh if (reason == PowerStateChangeReason::STATE_CHANGE_REASON_COLLABORATION) { return true; } - if (isOffScreen && gotScreenlockFingerprint_) { + if ((status == ScreenPowerStatus::POWER_STATUS_OFF || status == ScreenPowerStatus::POWER_STATUS_SUSPEND || + status == ScreenPowerStatus::POWER_STATUS_DOZE) && + gotScreenlockFingerprint_ == true) { gotScreenlockFingerprint_ = false; } -- Gitee From 97228ab6d1f7d68445dfa915f52a8ad1541333ac Mon Sep 17 00:00:00 2001 From: hejunfei Date: Fri, 11 Apr 2025 17:30:22 +0800 Subject: [PATCH 06/26] =?UTF-8?q?=E4=BC=A0=E9=80=92=E5=B1=8F=E5=B9=95?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E7=BB=99sensor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: hejunfei --- .../screen_session_manager/src/screen_session_manager.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/window_scene/screen_session_manager/src/screen_session_manager.cpp b/window_scene/screen_session_manager/src/screen_session_manager.cpp index e018e9f56d..53c971330b 100644 --- a/window_scene/screen_session_manager/src/screen_session_manager.cpp +++ b/window_scene/screen_session_manager/src/screen_session_manager.cpp @@ -9049,7 +9049,8 @@ uint32_t ScreenSessionManager::GetDeviceStatus() if (displayMode == FoldDisplayMode::MAIN) { status = DMDeviceStatus::STATUS_FOLDED; } - TLOGI(WmsLogTag::DMS, "Get device status for pocket, display mode: %{public}u", static_cast(displayMode)); + TLOGI(WmsLogTag::DMS, "Get device status for pocket, display mode: %{public}u", + static_cast(displayMode)); } TLOGI(WmsLogTag::DMS, "Get device status for pocket, tent mode: %{public}d status: %{public}u", tentMode, static_cast(status)); -- Gitee From fbe75e72820256dea73c840519b58f7d13f722de Mon Sep 17 00:00:00 2001 From: hejunfei Date: Fri, 11 Apr 2025 18:32:29 +0800 Subject: [PATCH 07/26] =?UTF-8?q?=E5=8F=91=E9=80=81=E5=B1=8F=E5=B9=95?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E7=BB=99sensor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: hejunfei --- dm/src/display_manager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dm/src/display_manager.cpp b/dm/src/display_manager.cpp index 9b8b62d3d3..14f280cac7 100644 --- a/dm/src/display_manager.cpp +++ b/dm/src/display_manager.cpp @@ -2119,7 +2119,7 @@ std::string DisplayManager::Impl::GetDisplayInfoSrting(sptr display return oss.str(); } -uint32_t DisplayManager::impl::GetDeviceStatus() +uint32_t DisplayManager::Impl::GetDeviceStatus() { return SingletonContainer::Get().GetDeviceStatus(); } -- Gitee From d57b205d01494c1efaa191a3acbe7d6092653255 Mon Sep 17 00:00:00 2001 From: hejunfei Date: Fri, 11 Apr 2025 18:37:35 +0800 Subject: [PATCH 08/26] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: hejunfei --- .../src/zidl/screen_session_manager_proxy.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/window_scene/screen_session_manager/src/zidl/screen_session_manager_proxy.cpp b/window_scene/screen_session_manager/src/zidl/screen_session_manager_proxy.cpp index c2400237fe..f2ce5e9879 100644 --- a/window_scene/screen_session_manager/src/zidl/screen_session_manager_proxy.cpp +++ b/window_scene/screen_session_manager/src/zidl/screen_session_manager_proxy.cpp @@ -4116,7 +4116,7 @@ uint32_t ScreenSessionManagerProxy::GetDeviceStatus() return 0; } - MessageOption data; + MessageParcel data; MessageParcel reply; MessageOption option; if (!data.WriteInterfaceToken(GetDescriptor())) { -- Gitee From 1ba5a7d338b33a34dd3844f36eddc93e8e4774a5 Mon Sep 17 00:00:00 2001 From: hejunfei Date: Fri, 11 Apr 2025 20:07:01 +0800 Subject: [PATCH 09/26] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A3=80=E8=A7=86?= =?UTF-8?q?=E6=84=8F=E8=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: hejunfei --- dm/include/display_manager_adapter.h | 2 +- dmserver/include/display_manager_interface.h | 2 +- .../fold_screen_controller/fold_screen_controller.h | 2 +- .../sensor_fold_state_manager/sensor_fold_state_manager.h | 2 +- .../src/zidl/screen_session_manager_proxy.cpp | 8 +++++++- .../src/zidl/screen_session_manager_stub.cpp | 5 ++++- 6 files changed, 15 insertions(+), 6 deletions(-) diff --git a/dm/include/display_manager_adapter.h b/dm/include/display_manager_adapter.h index 96abf36216..7f8e184685 100644 --- a/dm/include/display_manager_adapter.h +++ b/dm/include/display_manager_adapter.h @@ -110,7 +110,7 @@ public: virtual std::shared_ptr GetDisplaySnapshotWithOption(const CaptureOption& captureOption, DmErrorCode* errorCode = nullptr); virtual sptr GetPrimaryDisplayInfo(); - virtual uint32_t GetDeviceStatus(); + virtual uint32_t GetDeviceStatus() const; private: static inline SingletonDelegator delegator; diff --git a/dmserver/include/display_manager_interface.h b/dmserver/include/display_manager_interface.h index 76b2c0c77e..35f48cd445 100644 --- a/dmserver/include/display_manager_interface.h +++ b/dmserver/include/display_manager_interface.h @@ -305,7 +305,7 @@ public: return DMError::DM_ERROR_DEVICE_NOT_SUPPORT; } - virtual uint32_t GetDeviceStatus() + virtual uint32_t GetDeviceStatus() const { return 0; } diff --git a/window_scene/screen_session_manager/include/fold_screen_controller/fold_screen_controller.h b/window_scene/screen_session_manager/include/fold_screen_controller/fold_screen_controller.h index 10420e5fdc..29c6ce7f1b 100644 --- a/window_scene/screen_session_manager/include/fold_screen_controller/fold_screen_controller.h +++ b/window_scene/screen_session_manager/include/fold_screen_controller/fold_screen_controller.h @@ -46,7 +46,7 @@ public: bool IsFoldable(); FoldStatus GetFoldStatus(); bool GetTentMode(); - int GetCurrentTentMode(); + int GetCurrentTentMode() const; FoldDisplayMode GetModeMatchStatus(); void SetFoldStatus(FoldStatus foldStatus); void OnTentModeChanged(int tentType, int32_t hall = -1); diff --git a/window_scene/screen_session_manager/include/fold_screen_controller/sensor_fold_state_manager/sensor_fold_state_manager.h b/window_scene/screen_session_manager/include/fold_screen_controller/sensor_fold_state_manager/sensor_fold_state_manager.h index 5228c4d773..e00d633772 100644 --- a/window_scene/screen_session_manager/include/fold_screen_controller/sensor_fold_state_manager/sensor_fold_state_manager.h +++ b/window_scene/screen_session_manager/include/fold_screen_controller/sensor_fold_state_manager/sensor_fold_state_manager.h @@ -38,7 +38,7 @@ public: virtual bool IsCameraMode(); void ClearState(sptr foldScreenPolicy); bool IsTentMode(); - int GetTentMode(); + int GetTentMode() const; protected: void HandleSensorChange(FoldStatus nextState, float angle, sptr foldScreenPolicy); diff --git a/window_scene/screen_session_manager/src/zidl/screen_session_manager_proxy.cpp b/window_scene/screen_session_manager/src/zidl/screen_session_manager_proxy.cpp index f2ce5e9879..ed757d527c 100644 --- a/window_scene/screen_session_manager/src/zidl/screen_session_manager_proxy.cpp +++ b/window_scene/screen_session_manager/src/zidl/screen_session_manager_proxy.cpp @@ -4130,6 +4130,12 @@ uint32_t ScreenSessionManagerProxy::GetDeviceStatus() return 0; } - return reply.ReadUint32(); + uint32_t status = 0; + if (!reply.ReadUint32(status)) { + WLOGFE("ScreenSessionManagerProxy::GetDeviceStatus: ReadUint32 failed"); + return 0; + } + + return status; } } // namespace OHOS::Rosen diff --git a/window_scene/screen_session_manager/src/zidl/screen_session_manager_stub.cpp b/window_scene/screen_session_manager/src/zidl/screen_session_manager_stub.cpp index e5ab2edf50..56b37d8aa9 100644 --- a/window_scene/screen_session_manager/src/zidl/screen_session_manager_stub.cpp +++ b/window_scene/screen_session_manager/src/zidl/screen_session_manager_stub.cpp @@ -1136,7 +1136,10 @@ int32_t ScreenSessionManagerStub::OnRemoteRequest(uint32_t code, MessageParcel& break; } case DisplayManagerMessage::TRANS_ID_GET_DEVICE_STATUS: { - reply.WriteInt32(GetDeviceStatus()); + if (!reply.WriteInt32(GetDeviceStatus())) { + TLOGE(WmsLogTag::DMS, "Write device status failed"); + return ERR_INVALID_DATA; + } break; } default: -- Gitee From 0a82b510e1dd3cf1c0c0a08a381ae6ca81fb9496 Mon Sep 17 00:00:00 2001 From: hejunfei Date: Fri, 11 Apr 2025 20:11:59 +0800 Subject: [PATCH 10/26] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A3=80=E8=A7=86?= =?UTF-8?q?=E6=84=8F=E8=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: hejunfei --- dm/src/display_manager.cpp | 2 +- interfaces/innerkits/dm/display_manager.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dm/src/display_manager.cpp b/dm/src/display_manager.cpp index 14f280cac7..9dcc9f7a55 100644 --- a/dm/src/display_manager.cpp +++ b/dm/src/display_manager.cpp @@ -101,7 +101,7 @@ public: DMError SetVirtualScreenSecurityExemption(ScreenId screenId, uint32_t pid, std::vector& windowIdList); sptr GetPrimaryDisplaySync(); void OnRemoteDied(); - uint32_t GetDeviceStatus(); + uint32_t GetDeviceStatus() const; sptr GetCutoutInfoWithRotation(Rotation rotation); private: diff --git a/interfaces/innerkits/dm/display_manager.h b/interfaces/innerkits/dm/display_manager.h index 0f7ef40ffb..bf03160e4d 100644 --- a/interfaces/innerkits/dm/display_manager.h +++ b/interfaces/innerkits/dm/display_manager.h @@ -850,7 +850,7 @@ public: * * @return Device status. */ - uint32_t GetDeviceStatus(); + uint32_t GetDeviceStatus() const; private: DisplayManager(); ~DisplayManager(); -- Gitee From 59f55e24930a30b282e08090ab9926d2a9d7dbe1 Mon Sep 17 00:00:00 2001 From: hejunfei Date: Sat, 12 Apr 2025 10:11:34 +0000 Subject: [PATCH 11/26] update window_scene/screen_session_manager/src/fold_screen_controller/fold_screen_controller.cpp. Signed-off-by: hejunfei --- .../src/fold_screen_controller/fold_screen_controller.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/window_scene/screen_session_manager/src/fold_screen_controller/fold_screen_controller.cpp b/window_scene/screen_session_manager/src/fold_screen_controller/fold_screen_controller.cpp index e9277c68e1..348c58408e 100644 --- a/window_scene/screen_session_manager/src/fold_screen_controller/fold_screen_controller.cpp +++ b/window_scene/screen_session_manager/src/fold_screen_controller/fold_screen_controller.cpp @@ -180,7 +180,7 @@ FoldDisplayMode FoldScreenController::GetModeMatchStatus() return foldScreenPolicy_->GetModeMatchStatus(); } -bool FoldScreenController::GetTentMode() +bool FoldScreenController::GetTentMode() const { if (sensorFoldStateManager_ == nullptr) { TLOGW(WmsLogTag::DMS, "GetTentMode: sensorFoldStateManager_ is null"); -- Gitee From 2ded115de9222664b3f2db953ceb20a736378555 Mon Sep 17 00:00:00 2001 From: hejunfei Date: Sat, 12 Apr 2025 10:14:55 +0000 Subject: [PATCH 12/26] update dm/src/display_manager.cpp. Signed-off-by: hejunfei --- dm/src/display_manager.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dm/src/display_manager.cpp b/dm/src/display_manager.cpp index 9dcc9f7a55..ce6485be94 100644 --- a/dm/src/display_manager.cpp +++ b/dm/src/display_manager.cpp @@ -2119,7 +2119,7 @@ std::string DisplayManager::Impl::GetDisplayInfoSrting(sptr display return oss.str(); } -uint32_t DisplayManager::Impl::GetDeviceStatus() +uint32_t DisplayManager::Impl::GetDeviceStatus() const { return SingletonContainer::Get().GetDeviceStatus(); } @@ -2492,7 +2492,7 @@ sptr DisplayManager::Impl::GetCutoutInfoWithRotation(Rotation rotati return SingletonContainer::Get().GetCutoutInfoWithRotation(displayId, rotationNum); } -uint32_t DisplayManager::GetDeviceStatus() +uint32_t DisplayManager::GetDeviceStatus() const { return pImpl_->GetDeviceStatus(); } -- Gitee From 4d4796a65cdb994fcfa7030c2edfabc4a59e1401 Mon Sep 17 00:00:00 2001 From: hejunfei Date: Sat, 12 Apr 2025 10:15:40 +0000 Subject: [PATCH 13/26] update dm/src/display_manager_adapter.cpp. Signed-off-by: hejunfei --- dm/src/display_manager_adapter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dm/src/display_manager_adapter.cpp b/dm/src/display_manager_adapter.cpp index 807ed5d676..4044e4fd06 100644 --- a/dm/src/display_manager_adapter.cpp +++ b/dm/src/display_manager_adapter.cpp @@ -970,7 +970,7 @@ sptr DisplayManagerAdapter::GetPrimaryDisplayInfo() } } -uint32_t DisplayManagerAdapter::GetDeviceStatus() +uint32_t DisplayManagerAdapter::GetDeviceStatus() const { INIT_PROXY_CHECK_RETURN(0); return displayManagerServiceProxy_->GetDeviceStatus(); -- Gitee From 9240b8c930daeb5a6b0bf4ce58448cb6a65124ea Mon Sep 17 00:00:00 2001 From: hejunfei Date: Sat, 12 Apr 2025 10:18:54 +0000 Subject: [PATCH 14/26] update window_scene/screen_session_manager/src/fold_screen_controller/fold_screen_controller.cpp. Signed-off-by: hejunfei --- .../src/fold_screen_controller/fold_screen_controller.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/window_scene/screen_session_manager/src/fold_screen_controller/fold_screen_controller.cpp b/window_scene/screen_session_manager/src/fold_screen_controller/fold_screen_controller.cpp index 348c58408e..cd5de28fe4 100644 --- a/window_scene/screen_session_manager/src/fold_screen_controller/fold_screen_controller.cpp +++ b/window_scene/screen_session_manager/src/fold_screen_controller/fold_screen_controller.cpp @@ -180,7 +180,7 @@ FoldDisplayMode FoldScreenController::GetModeMatchStatus() return foldScreenPolicy_->GetModeMatchStatus(); } -bool FoldScreenController::GetTentMode() const +bool FoldScreenController::GetTentMode() { if (sensorFoldStateManager_ == nullptr) { TLOGW(WmsLogTag::DMS, "GetTentMode: sensorFoldStateManager_ is null"); @@ -198,7 +198,7 @@ bool FoldScreenController::GetCameraMode() return sensorFoldStateManager_->IsCameraMode(); } -int FoldScreenController::GetCurrentTentMode() +int FoldScreenController::GetCurrentTentMode() const { if (sensorFoldStateManager_ == nullptr) { TLOGW(WmsLogTag::DMS, "GetCurrentTentMode: sensorFoldStateManager_ is null"); -- Gitee From 7347b5d0d09f67e3d13bede37a7dc65fba8b566a Mon Sep 17 00:00:00 2001 From: hejunfei Date: Sat, 12 Apr 2025 10:19:43 +0000 Subject: [PATCH 15/26] update const Signed-off-by: hejunfei --- .../sensor_fold_state_manager/sensor_fold_state_manager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/window_scene/screen_session_manager/src/fold_screen_controller/sensor_fold_state_manager/sensor_fold_state_manager.cpp b/window_scene/screen_session_manager/src/fold_screen_controller/sensor_fold_state_manager/sensor_fold_state_manager.cpp index 16a71405cb..93ab47a63d 100644 --- a/window_scene/screen_session_manager/src/fold_screen_controller/sensor_fold_state_manager/sensor_fold_state_manager.cpp +++ b/window_scene/screen_session_manager/src/fold_screen_controller/sensor_fold_state_manager/sensor_fold_state_manager.cpp @@ -190,7 +190,7 @@ void SensorFoldStateManager::SetTentMode(int tentType) tentModeType_ = tentType; } -int SensorFoldStateManager::GetTentMode() +int SensorFoldStateManager::GetTentMode() const { return tentModeType_; } -- Gitee From 75cc026276a872469cc7ba2b853da4f0fa929291 Mon Sep 17 00:00:00 2001 From: hejunfei Date: Sat, 12 Apr 2025 10:29:01 +0000 Subject: [PATCH 16/26] update window_scene/screen_session_manager/include/screen_session_manager.h. Signed-off-by: hejunfei --- .../screen_session_manager/include/screen_session_manager.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/window_scene/screen_session_manager/include/screen_session_manager.h b/window_scene/screen_session_manager/include/screen_session_manager.h index 6b0c8ba726..58169a1000 100644 --- a/window_scene/screen_session_manager/include/screen_session_manager.h +++ b/window_scene/screen_session_manager/include/screen_session_manager.h @@ -422,7 +422,7 @@ public: SessionOption GetSessionOption(sptr screenSession); SessionOption GetSessionOption(sptr screenSession, ScreenId screenId); virtual DMError SetSystemKeyboardStatus(bool isTpKeyboardOn = false) override; - uint32_t GetDeviceStatus() override; + uint32_t GetDeviceStatus() const override; protected: ScreenSessionManager(); -- Gitee From 717f1a0819c658020123176e7409a536d25d4e57 Mon Sep 17 00:00:00 2001 From: hejunfei Date: Sat, 12 Apr 2025 10:29:34 +0000 Subject: [PATCH 17/26] update const Signed-off-by: hejunfei --- .../include/zidl/screen_session_manager_proxy.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/window_scene/screen_session_manager/include/zidl/screen_session_manager_proxy.h b/window_scene/screen_session_manager/include/zidl/screen_session_manager_proxy.h index f8c4b00985..58bcc37fa9 100644 --- a/window_scene/screen_session_manager/include/zidl/screen_session_manager_proxy.h +++ b/window_scene/screen_session_manager/include/zidl/screen_session_manager_proxy.h @@ -220,7 +220,7 @@ public: ScreenCombination GetScreenCombination(ScreenId screenId) override; DMError SetScreenSkipProtectedWindow(const std::vector& screenIds, bool isEnable) override; bool GetIsRealScreen(ScreenId screenId) override; - uint32_t GetDeviceStatus() override; + uint32_t GetDeviceStatus() const override; private: static inline BrokerDelegator delegator_; -- Gitee From bd980357f011cf2268f4daa295c25e4941b889a7 Mon Sep 17 00:00:00 2001 From: hejunfei Date: Sat, 12 Apr 2025 10:30:06 +0000 Subject: [PATCH 18/26] update window_scene/screen_session_manager/src/screen_session_manager.cpp. Signed-off-by: hejunfei --- .../screen_session_manager/src/screen_session_manager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/window_scene/screen_session_manager/src/screen_session_manager.cpp b/window_scene/screen_session_manager/src/screen_session_manager.cpp index 53c971330b..1f41b2bc5f 100644 --- a/window_scene/screen_session_manager/src/screen_session_manager.cpp +++ b/window_scene/screen_session_manager/src/screen_session_manager.cpp @@ -9030,7 +9030,7 @@ void ScreenSessionManager::SetExtendScreenDpi() TLOGI(WmsLogTag::DMS, "get setting extend screen dpi is : %{public}f", g_extendScreenDpiCoef_); } -uint32_t ScreenSessionManager::GetDeviceStatus() +uint32_t ScreenSessionManager::GetDeviceStatus() const { if (foldScreenController_ == nullptr) { return 0; -- Gitee From 48da9fecf4a9a53dc61c3738e94fd1f33fc09b4b Mon Sep 17 00:00:00 2001 From: hejunfei Date: Sat, 12 Apr 2025 10:30:37 +0000 Subject: [PATCH 19/26] update const Signed-off-by: hejunfei --- .../src/zidl/screen_session_manager_proxy.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/window_scene/screen_session_manager/src/zidl/screen_session_manager_proxy.cpp b/window_scene/screen_session_manager/src/zidl/screen_session_manager_proxy.cpp index ed757d527c..59b9c6cb59 100644 --- a/window_scene/screen_session_manager/src/zidl/screen_session_manager_proxy.cpp +++ b/window_scene/screen_session_manager/src/zidl/screen_session_manager_proxy.cpp @@ -4108,7 +4108,7 @@ bool ScreenSessionManagerProxy::GetIsRealScreen(ScreenId screenId) return reply.ReadBool(); } -uint32_t ScreenSessionManagerProxy::GetDeviceStatus() +uint32_t ScreenSessionManagerProxy::GetDeviceStatus() const { sptr remote = Remote(); if (remote == nullptr) { -- Gitee From 28e531024c4b161b886ebab1003229be0f0932f5 Mon Sep 17 00:00:00 2001 From: hejunfei Date: Sat, 12 Apr 2025 11:17:08 +0000 Subject: [PATCH 20/26] update dm/include/display_manager_adapter.h. Signed-off-by: hejunfei --- dm/include/display_manager_adapter.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dm/include/display_manager_adapter.h b/dm/include/display_manager_adapter.h index 7f8e184685..96abf36216 100644 --- a/dm/include/display_manager_adapter.h +++ b/dm/include/display_manager_adapter.h @@ -110,7 +110,7 @@ public: virtual std::shared_ptr GetDisplaySnapshotWithOption(const CaptureOption& captureOption, DmErrorCode* errorCode = nullptr); virtual sptr GetPrimaryDisplayInfo(); - virtual uint32_t GetDeviceStatus() const; + virtual uint32_t GetDeviceStatus(); private: static inline SingletonDelegator delegator; -- Gitee From eec230ed678463c74f9cb930592c7c4d3871022b Mon Sep 17 00:00:00 2001 From: hejunfei Date: Sat, 12 Apr 2025 11:17:26 +0000 Subject: [PATCH 21/26] update dm/src/display_manager_adapter.cpp. Signed-off-by: hejunfei --- dm/src/display_manager_adapter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dm/src/display_manager_adapter.cpp b/dm/src/display_manager_adapter.cpp index 4044e4fd06..807ed5d676 100644 --- a/dm/src/display_manager_adapter.cpp +++ b/dm/src/display_manager_adapter.cpp @@ -970,7 +970,7 @@ sptr DisplayManagerAdapter::GetPrimaryDisplayInfo() } } -uint32_t DisplayManagerAdapter::GetDeviceStatus() const +uint32_t DisplayManagerAdapter::GetDeviceStatus() { INIT_PROXY_CHECK_RETURN(0); return displayManagerServiceProxy_->GetDeviceStatus(); -- Gitee From 70caf6601c19cf3f44d249ae8c7e7873b7baf3ba Mon Sep 17 00:00:00 2001 From: hejunfei Date: Sat, 12 Apr 2025 11:17:43 +0000 Subject: [PATCH 22/26] update dmserver/include/display_manager_interface.h. Signed-off-by: hejunfei --- dmserver/include/display_manager_interface.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dmserver/include/display_manager_interface.h b/dmserver/include/display_manager_interface.h index 35f48cd445..76b2c0c77e 100644 --- a/dmserver/include/display_manager_interface.h +++ b/dmserver/include/display_manager_interface.h @@ -305,7 +305,7 @@ public: return DMError::DM_ERROR_DEVICE_NOT_SUPPORT; } - virtual uint32_t GetDeviceStatus() const + virtual uint32_t GetDeviceStatus() { return 0; } -- Gitee From f0d3c63714fe5fbeb0f2a35bf6a679b030c5623d Mon Sep 17 00:00:00 2001 From: hejunfei Date: Sat, 12 Apr 2025 11:19:19 +0000 Subject: [PATCH 23/26] update const Signed-off-by: hejunfei --- .../screen_session_manager/include/screen_session_manager.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/window_scene/screen_session_manager/include/screen_session_manager.h b/window_scene/screen_session_manager/include/screen_session_manager.h index 58169a1000..6b0c8ba726 100644 --- a/window_scene/screen_session_manager/include/screen_session_manager.h +++ b/window_scene/screen_session_manager/include/screen_session_manager.h @@ -422,7 +422,7 @@ public: SessionOption GetSessionOption(sptr screenSession); SessionOption GetSessionOption(sptr screenSession, ScreenId screenId); virtual DMError SetSystemKeyboardStatus(bool isTpKeyboardOn = false) override; - uint32_t GetDeviceStatus() const override; + uint32_t GetDeviceStatus() override; protected: ScreenSessionManager(); -- Gitee From 86913575d5ea275a18250d2eed4d9c538c83886b Mon Sep 17 00:00:00 2001 From: hejunfei Date: Sat, 12 Apr 2025 11:19:31 +0000 Subject: [PATCH 24/26] update const Signed-off-by: hejunfei --- .../include/zidl/screen_session_manager_proxy.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/window_scene/screen_session_manager/include/zidl/screen_session_manager_proxy.h b/window_scene/screen_session_manager/include/zidl/screen_session_manager_proxy.h index 58bcc37fa9..f8c4b00985 100644 --- a/window_scene/screen_session_manager/include/zidl/screen_session_manager_proxy.h +++ b/window_scene/screen_session_manager/include/zidl/screen_session_manager_proxy.h @@ -220,7 +220,7 @@ public: ScreenCombination GetScreenCombination(ScreenId screenId) override; DMError SetScreenSkipProtectedWindow(const std::vector& screenIds, bool isEnable) override; bool GetIsRealScreen(ScreenId screenId) override; - uint32_t GetDeviceStatus() const override; + uint32_t GetDeviceStatus() override; private: static inline BrokerDelegator delegator_; -- Gitee From 3b0fc7d101bd3a30af3c11feb3528246b2ba0087 Mon Sep 17 00:00:00 2001 From: hejunfei Date: Sat, 12 Apr 2025 11:19:51 +0000 Subject: [PATCH 25/26] update wconst Signed-off-by: hejunfei --- .../screen_session_manager/src/screen_session_manager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/window_scene/screen_session_manager/src/screen_session_manager.cpp b/window_scene/screen_session_manager/src/screen_session_manager.cpp index 1f41b2bc5f..53c971330b 100644 --- a/window_scene/screen_session_manager/src/screen_session_manager.cpp +++ b/window_scene/screen_session_manager/src/screen_session_manager.cpp @@ -9030,7 +9030,7 @@ void ScreenSessionManager::SetExtendScreenDpi() TLOGI(WmsLogTag::DMS, "get setting extend screen dpi is : %{public}f", g_extendScreenDpiCoef_); } -uint32_t ScreenSessionManager::GetDeviceStatus() const +uint32_t ScreenSessionManager::GetDeviceStatus() { if (foldScreenController_ == nullptr) { return 0; -- Gitee From b54a543bd63e180455cfa82418748a67a95fc631 Mon Sep 17 00:00:00 2001 From: hejunfei Date: Sat, 12 Apr 2025 11:20:23 +0000 Subject: [PATCH 26/26] update window_scene/screen_session_manager/src/zidl/screen_session_manager_proxy.cpp. Signed-off-by: hejunfei --- .../src/zidl/screen_session_manager_proxy.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/window_scene/screen_session_manager/src/zidl/screen_session_manager_proxy.cpp b/window_scene/screen_session_manager/src/zidl/screen_session_manager_proxy.cpp index 59b9c6cb59..ed757d527c 100644 --- a/window_scene/screen_session_manager/src/zidl/screen_session_manager_proxy.cpp +++ b/window_scene/screen_session_manager/src/zidl/screen_session_manager_proxy.cpp @@ -4108,7 +4108,7 @@ bool ScreenSessionManagerProxy::GetIsRealScreen(ScreenId screenId) return reply.ReadBool(); } -uint32_t ScreenSessionManagerProxy::GetDeviceStatus() const +uint32_t ScreenSessionManagerProxy::GetDeviceStatus() { sptr remote = Remote(); if (remote == nullptr) { -- Gitee