From 48828ffb3a7f4beb679f3eadcfbfc6ca7166a090 Mon Sep 17 00:00:00 2001 From: hejunfei Date: Thu, 4 Sep 2025 10:57:00 +0800 Subject: [PATCH 1/5] clear agent Signed-off-by: hejunfei --- dm_lite/src/display_manager_lite.cpp | 36 +++++++++++++++++++ .../unittest/display_manager_lite_test.cpp | 33 +++++++++++++++++ 2 files changed, 69 insertions(+) diff --git a/dm_lite/src/display_manager_lite.cpp b/dm_lite/src/display_manager_lite.cpp index 9fb5363bd7..eb083dad37 100644 --- a/dm_lite/src/display_manager_lite.cpp +++ b/dm_lite/src/display_manager_lite.cpp @@ -66,6 +66,8 @@ private: */ void NotifyDisplayStateChanged(DisplayId id, DisplayState state); void ClearDisplayStateCallback(); + void ClearFoldStatusCallback(); + void ClearDisplayModeCallback(); void Clear(); std::map> displayMap_; @@ -236,6 +238,8 @@ void DisplayManagerLite::Impl::Clear() TLOGW(WmsLogTag::DMS, "UnregisterDisplayManagerAgent DISPLAY_EVENT_LISTENER failed"); } ClearDisplayStateCallback(); + ClearFoldStatusCallback(); + ClearDisplayModeCallback(); } DisplayManagerLite::Impl::~Impl() @@ -578,6 +582,8 @@ void DisplayManagerLite::Impl::OnRemoteDied() TLOGI(WmsLogTag::DMS, "dms is died"); std::lock_guard lock(mutex_); displayManagerListener_ = nullptr; + foldStatusListenerAgent_ = nullptr; + displayModeListenerAgent_ = nullptr; } void DisplayManagerLite::OnRemoteDied() @@ -716,6 +722,36 @@ void DisplayManagerLite::Impl::ClearDisplayStateCallback() } } +void DisplayManagerLite::Impl::ClearFoldStatusCallback() +{ + DMError res = DMError::DM_OK; + std::lock_guard lock(mutex_); + if (foldStatusListenerAgent_ != nullptr) { + res = SingletonContainer::Get().UnregisterDisplayManagerAgent(foldStatusListenerAgent_, + DisplayManagerAgentType::FOLD_STATUS_CHANGED_LISTENER); + foldStatusListenerAgent_ = nullptr; + TLOGI(WmsLogTag::DMS, "foldStatusListenerAgent_ is nullptr !"); + } + if (res != DMError::DM_OK) { + TLOGW(WmsLogTag::DMS, "UnregisterDisplayManagerAgent FOLD_STATUS_CHANGED_LISTENER failed !"); + } +} + +void DisplayManagerLite::Impl::ClearDisplayModeCallback() +{ + DMError res = DMError::DM_OK; + std::lock_guard lock(mutex_); + if (displayModeListenerAgent_ != nullptr) { + res = SingletonContainer::Get().UnregisterDisplayManagerAgent(displayModeListenerAgent_, + DisplayManagerAgentType::DISPLAY_MODE_CHANGED_LISTENER); + displayModeListenerAgent_ = nullptr; + TLOGI(WmsLogTag::DMS, "ClearDisplayModAgent displayModeListenerAgent_ is nullptr !"); + } + if (res != DMError::DM_OK) { + TLOGW(WmsLogTag::DMS, "UnregisterDisplayManagerAgent DISPLAY_MODE_CHANGED_LISTENER failed !"); + } +} + DMError DisplayManagerLite::RegisterScreenMagneticStateListener(sptr listener) { if (listener == nullptr) { diff --git a/dm_lite/test/unittest/display_manager_lite_test.cpp b/dm_lite/test/unittest/display_manager_lite_test.cpp index 74418c67c3..b3cb9c7de7 100644 --- a/dm_lite/test/unittest/display_manager_lite_test.cpp +++ b/dm_lite/test/unittest/display_manager_lite_test.cpp @@ -735,6 +735,39 @@ HWTEST_F(DisplayManagerTest, SetSystemKeyboardStatus02, TestSize.Level1) auto ret = DisplayManagerLite::GetInstance().SetSystemKeyboardStatus(false); ASSERT_NE(ret, DMError::DM_OK); } + +/** + * @tc.name: ClearDisplayStateCallbackLite01 + * @tc.desc: ClearDisplayStateCallbackLite01 test + * @tc.type: FUNC + */ +HWTEST_F(DisplayManagerTest, ClearDisplayStateCallbackLite01, TestSize.Level1) +{ + DisplayManagerLite::GetInstance().pImpl_->ClearDisplayStateCallback(); + ASSERT_TRUE(DisplayManagerLite::GetInstance().pImpl_->displayStateAgent_ == nullptr); +} + +/** + * @tc.name: ClearFoldStatusCallbackLite01 + * @tc.desc: ClearFoldStatusCallbackLite01 test + * @tc.type: FUNC + */ +HWTEST_F(DisplayManagerTest, ClearFoldStatusCallbackLite01, TestSize.Level1) +{ + DisplayManagerLite::GetInstance().pImpl_->ClearFoldStatusCallback(); + ASSERT_TRUE(DisplayManagerLite::GetInstance().pImpl_->foldStatusListenerAgent_ == nullptr); +} + +/** + * @tc.name: ClearDisplayModeCallbackLite01 + * @tc.desc: ClearDisplayModeCallbackLite01 test + * @tc.type: FUNC + */ +HWTEST_F(DisplayManagerTest, ClearDisplayModeCallbackLite01, TestSize.Level1) +{ + DisplayManagerLite::GetInstance().pImpl_->ClearDisplayModeCallbackLite01(); + ASSERT_TRUE(DisplayManagerLite::GetInstance().pImpl_->displayModeListenerAgent_ == nullptr); +} } } // namespace Rosen } // namespace OHOS \ No newline at end of file -- Gitee From 2fa44f5d418adf99ed88fdf146a021cb6261c6a6 Mon Sep 17 00:00:00 2001 From: hejunfei Date: Thu, 4 Sep 2025 15:05:18 +0800 Subject: [PATCH 2/5] clear agent Signed-off-by: hejunfei --- dm_lite/src/display_manager_lite.cpp | 6 +++--- dm_lite/test/unittest/display_manager_lite_test.cpp | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dm_lite/src/display_manager_lite.cpp b/dm_lite/src/display_manager_lite.cpp index eb083dad37..478f91f353 100644 --- a/dm_lite/src/display_manager_lite.cpp +++ b/dm_lite/src/display_manager_lite.cpp @@ -727,7 +727,7 @@ void DisplayManagerLite::Impl::ClearFoldStatusCallback() DMError res = DMError::DM_OK; std::lock_guard lock(mutex_); if (foldStatusListenerAgent_ != nullptr) { - res = SingletonContainer::Get().UnregisterDisplayManagerAgent(foldStatusListenerAgent_, + res = SingletonContainer::Get().UnregisterDisplayManagerAgent(foldStatusListenerAgent_, DisplayManagerAgentType::FOLD_STATUS_CHANGED_LISTENER); foldStatusListenerAgent_ = nullptr; TLOGI(WmsLogTag::DMS, "foldStatusListenerAgent_ is nullptr !"); @@ -742,10 +742,10 @@ void DisplayManagerLite::Impl::ClearDisplayModeCallback() DMError res = DMError::DM_OK; std::lock_guard lock(mutex_); if (displayModeListenerAgent_ != nullptr) { - res = SingletonContainer::Get().UnregisterDisplayManagerAgent(displayModeListenerAgent_, + res = SingletonContainer::Get().UnregisterDisplayManagerAgent(displayModeListenerAgent_, DisplayManagerAgentType::DISPLAY_MODE_CHANGED_LISTENER); displayModeListenerAgent_ = nullptr; - TLOGI(WmsLogTag::DMS, "ClearDisplayModAgent displayModeListenerAgent_ is nullptr !"); + TLOGI(WmsLogTag::DMS, "displayModeListenerAgent_ is nullptr !"); } if (res != DMError::DM_OK) { TLOGW(WmsLogTag::DMS, "UnregisterDisplayManagerAgent DISPLAY_MODE_CHANGED_LISTENER failed !"); diff --git a/dm_lite/test/unittest/display_manager_lite_test.cpp b/dm_lite/test/unittest/display_manager_lite_test.cpp index b3cb9c7de7..4c0631329c 100644 --- a/dm_lite/test/unittest/display_manager_lite_test.cpp +++ b/dm_lite/test/unittest/display_manager_lite_test.cpp @@ -765,7 +765,7 @@ HWTEST_F(DisplayManagerTest, ClearFoldStatusCallbackLite01, TestSize.Level1) */ HWTEST_F(DisplayManagerTest, ClearDisplayModeCallbackLite01, TestSize.Level1) { - DisplayManagerLite::GetInstance().pImpl_->ClearDisplayModeCallbackLite01(); + DisplayManagerLite::GetInstance().pImpl_->ClearDisplayModeCallback(); ASSERT_TRUE(DisplayManagerLite::GetInstance().pImpl_->displayModeListenerAgent_ == nullptr); } } -- Gitee From 00a70ce3487366fffd3d7288b9ef87a4e4ed82ef Mon Sep 17 00:00:00 2001 From: hejunfei Date: Thu, 4 Sep 2025 16:29:33 +0800 Subject: [PATCH 3/5] modify 120 Signed-off-by: hejunfei --- dm_lite/src/display_manager_lite.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/dm_lite/src/display_manager_lite.cpp b/dm_lite/src/display_manager_lite.cpp index 478f91f353..90967df20b 100644 --- a/dm_lite/src/display_manager_lite.cpp +++ b/dm_lite/src/display_manager_lite.cpp @@ -727,7 +727,8 @@ void DisplayManagerLite::Impl::ClearFoldStatusCallback() DMError res = DMError::DM_OK; std::lock_guard lock(mutex_); if (foldStatusListenerAgent_ != nullptr) { - res = SingletonContainer::Get().UnregisterDisplayManagerAgent(foldStatusListenerAgent_, + res = SingletonContainer::Get().UnregisterDisplayManagerAgent( + foldStatusListenerAgent_, DisplayManagerAgentType::FOLD_STATUS_CHANGED_LISTENER); foldStatusListenerAgent_ = nullptr; TLOGI(WmsLogTag::DMS, "foldStatusListenerAgent_ is nullptr !"); @@ -742,7 +743,8 @@ void DisplayManagerLite::Impl::ClearDisplayModeCallback() DMError res = DMError::DM_OK; std::lock_guard lock(mutex_); if (displayModeListenerAgent_ != nullptr) { - res = SingletonContainer::Get().UnregisterDisplayManagerAgent(displayModeListenerAgent_, + res = SingletonContainer::Get().UnregisterDisplayManagerAgent( + displayModeListenerAgent_, DisplayManagerAgentType::DISPLAY_MODE_CHANGED_LISTENER); displayModeListenerAgent_ = nullptr; TLOGI(WmsLogTag::DMS, "displayModeListenerAgent_ is nullptr !"); -- Gitee From ed844e8ec7d9b4848d500be6456a5795af88231e Mon Sep 17 00:00:00 2001 From: hejunfei Date: Thu, 4 Sep 2025 19:07:59 +0800 Subject: [PATCH 4/5] add comment Signed-off-by: hejunfei --- dm_lite/src/display_manager_lite.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/dm_lite/src/display_manager_lite.cpp b/dm_lite/src/display_manager_lite.cpp index 90967df20b..e5984fa373 100644 --- a/dm_lite/src/display_manager_lite.cpp +++ b/dm_lite/src/display_manager_lite.cpp @@ -724,33 +724,33 @@ void DisplayManagerLite::Impl::ClearDisplayStateCallback() void DisplayManagerLite::Impl::ClearFoldStatusCallback() { - DMError res = DMError::DM_OK; + DMError ret = DMError::DM_OK; std::lock_guard lock(mutex_); if (foldStatusListenerAgent_ != nullptr) { - res = SingletonContainer::Get().UnregisterDisplayManagerAgent( + ret = SingletonContainer::Get().UnregisterDisplayManagerAgent( foldStatusListenerAgent_, DisplayManagerAgentType::FOLD_STATUS_CHANGED_LISTENER); foldStatusListenerAgent_ = nullptr; TLOGI(WmsLogTag::DMS, "foldStatusListenerAgent_ is nullptr !"); } - if (res != DMError::DM_OK) { - TLOGW(WmsLogTag::DMS, "UnregisterDisplayManagerAgent FOLD_STATUS_CHANGED_LISTENER failed !"); + if (ret != DMError::DM_OK) { + TLOGW(WmsLogTag::DMS, "Unregister failed! Error code: %{public}d", ret); } } void DisplayManagerLite::Impl::ClearDisplayModeCallback() { - DMError res = DMError::DM_OK; + DMError ret = DMError::DM_OK; std::lock_guard lock(mutex_); if (displayModeListenerAgent_ != nullptr) { - res = SingletonContainer::Get().UnregisterDisplayManagerAgent( + ret = SingletonContainer::Get().UnregisterDisplayManagerAgent( displayModeListenerAgent_, DisplayManagerAgentType::DISPLAY_MODE_CHANGED_LISTENER); displayModeListenerAgent_ = nullptr; TLOGI(WmsLogTag::DMS, "displayModeListenerAgent_ is nullptr !"); } - if (res != DMError::DM_OK) { - TLOGW(WmsLogTag::DMS, "UnregisterDisplayManagerAgent DISPLAY_MODE_CHANGED_LISTENER failed !"); + if (ret != DMError::DM_OK) { + TLOGW(WmsLogTag::DMS, "Unregister failed! Error code: %{public}d", ret); } } -- Gitee From a143c0ae5c449960ccfa43af24eb4c5e0037f592 Mon Sep 17 00:00:00 2001 From: hejunfei Date: Thu, 4 Sep 2025 20:03:06 +0800 Subject: [PATCH 5/5] modify test Signed-off-by: hejunfei --- dm_lite/test/unittest/display_manager_lite_test.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dm_lite/test/unittest/display_manager_lite_test.cpp b/dm_lite/test/unittest/display_manager_lite_test.cpp index 4c0631329c..6e5dcd90d0 100644 --- a/dm_lite/test/unittest/display_manager_lite_test.cpp +++ b/dm_lite/test/unittest/display_manager_lite_test.cpp @@ -744,7 +744,7 @@ HWTEST_F(DisplayManagerTest, SetSystemKeyboardStatus02, TestSize.Level1) HWTEST_F(DisplayManagerTest, ClearDisplayStateCallbackLite01, TestSize.Level1) { DisplayManagerLite::GetInstance().pImpl_->ClearDisplayStateCallback(); - ASSERT_TRUE(DisplayManagerLite::GetInstance().pImpl_->displayStateAgent_ == nullptr); + EXPECT_TRUE(DisplayManagerLite::GetInstance().pImpl_->displayStateAgent_ == nullptr); } /** @@ -755,7 +755,7 @@ HWTEST_F(DisplayManagerTest, ClearDisplayStateCallbackLite01, TestSize.Level1) HWTEST_F(DisplayManagerTest, ClearFoldStatusCallbackLite01, TestSize.Level1) { DisplayManagerLite::GetInstance().pImpl_->ClearFoldStatusCallback(); - ASSERT_TRUE(DisplayManagerLite::GetInstance().pImpl_->foldStatusListenerAgent_ == nullptr); + EXPECT_TRUE(DisplayManagerLite::GetInstance().pImpl_->foldStatusListenerAgent_ == nullptr); } /** @@ -766,7 +766,7 @@ HWTEST_F(DisplayManagerTest, ClearFoldStatusCallbackLite01, TestSize.Level1) HWTEST_F(DisplayManagerTest, ClearDisplayModeCallbackLite01, TestSize.Level1) { DisplayManagerLite::GetInstance().pImpl_->ClearDisplayModeCallback(); - ASSERT_TRUE(DisplayManagerLite::GetInstance().pImpl_->displayModeListenerAgent_ == nullptr); + EXPECT_TRUE(DisplayManagerLite::GetInstance().pImpl_->displayModeListenerAgent_ == nullptr); } } } // namespace Rosen -- Gitee