From 65c61749ba854998e0d103a393d5a838cdf1b055 Mon Sep 17 00:00:00 2001 From: lfSeanDragon <18309220525@163.com> Date: Fri, 30 May 2025 03:35:52 +0000 Subject: [PATCH 1/4] =?UTF-8?q?fix:=20=E6=B7=BB=E5=8A=A0=E8=93=9D=E7=89=99?= =?UTF-8?q?=E6=9D=A5=E7=94=B5=E5=81=87=E4=BA=AE=E5=B1=8F=E5=9C=BA=E6=99=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: lfSeanDragon <18309220525@163.com> --- .../native/include/power_state_machine_info.h | 2 ++ services/native/src/power_state_machine.cpp | 23 +++++++++++++++++-- .../customized_screen_event_rules.cpp | 13 +++++++---- .../customized_screen_event_rules.h | 3 ++- .../include/power_ext_intf_wrapper.h | 3 ++- .../src/power_ext_intf_wrapper.cpp | 8 ++++--- utils/native/src/power_utils.cpp | 4 ++++ 7 files changed, 45 insertions(+), 11 deletions(-) diff --git a/interfaces/inner_api/native/include/power_state_machine_info.h b/interfaces/inner_api/native/include/power_state_machine_info.h index 00924d3f..294b4666 100644 --- a/interfaces/inner_api/native/include/power_state_machine_info.h +++ b/interfaces/inner_api/native/include/power_state_machine_info.h @@ -167,6 +167,7 @@ enum class WakeupDeviceType : uint32_t { WAKEUP_DEVICE_PLUG_CHANGE = 31, WAKEUP_DEVICE_TENT_MODE_CHANGE = 32, WAKEUP_DEVICE_END_DREAM = 33, + WAKEUP_DEVICE_BLUETOOTH_INCOMING_CALL = 34, WAKEUP_DEVICE_MAX }; @@ -246,6 +247,7 @@ enum class StateChangeReason : uint32_t { STATE_CHANGE_REASON_TENT_MODE = 49, STATE_CHANGE_REASON_START_DREAM = 50, STATE_CHANGE_REASON_END_DREAM = 51, + STATE_CHANGE_REASON_BLUETOOTH_INCOMING_CALL = 52, STATE_CHANGE_REASON_REMOTE = 100, STATE_CHANGE_REASON_TIMEOUT_NO_SCREEN_LOCK = 101, STATE_CHANGE_REASON_EXIT_SYSTEM_STR = 102, diff --git a/services/native/src/power_state_machine.cpp b/services/native/src/power_state_machine.cpp index c09fb3b9..5c6df4a6 100644 --- a/services/native/src/power_state_machine.cpp +++ b/services/native/src/power_state_machine.cpp @@ -70,6 +70,18 @@ std::atomic_bool g_prepareResult = true; pid_t g_callSetForceTimingOutPid = 0; pid_t g_callSetForceTimingOutUid = 0; const std::string LID_STATUS_SCENE_NAME = "lid_status"; +#ifdef POWER_MANAGER_ENABLE_WATCH_CUSTOMIZED_SCREEN_COMMON_EVENT_RULES +const std::vector WATCH_CUSTOMIZED_STATE_CHANGE_REASONS{ + StateChangeReason::STATE_CHANGE_REASON_PICK, + StateChangeReason::STATE_CHANGE_REASON_INCOMING_CALL, + StateChangeReason::STATE_CHANGE_REASON_BLUETOOTH_INCOMING_CALL +}; +const std::vector WATCH_CUSTOMIZED_WAKEUP_DEVICE_TYPES{ + WakeupDeviceType::WAKEUP_DEVICE_PICKUP, + WakeupDeviceType::WAKEUP_DEVICE_INCOMING_CALL, + WakeupDeviceType::WAKEUP_DEVICE_BLUETOOTH_INCOMING_CALL +}; +#endif } PowerStateMachine::PowerStateMachine(const wptr& pms, const std::shared_ptr& ffrtTimer) : pms_(pms), ffrtTimer_(ffrtTimer), currentState_(PowerState::UNKNOWN) @@ -656,8 +668,12 @@ void PowerStateMachine::WakeupDeviceInner( // Call legacy wakeup, Check the screen state auto pms = DelayedSpSingleton::GetInstance(); #ifdef POWER_MANAGER_ENABLE_WATCH_CUSTOMIZED_SCREEN_COMMON_EVENT_RULES - if (!pms->IsScreenOn() && GetReasonByWakeType(type) == StateChangeReason::STATE_CHANGE_REASON_PICKUP) { - DelayedSingleton::GetInstance()->SetScreenOnEventRules(GetReasonByWakeType(type)); + if (!pms->IsScreenOn() && !WATCH_CUSTOMIZED_STATE_CHANGE_REASONS.empty() && + std::find(WATCH_CUSTOMIZED_STATE_CHANGE_REASONS.begin(), + WATCH_CUSTOMIZED_STATE_CHANGE_REASONS.end(), + GetReasonByWakeType()) != WATCH_CUSTOMIZED_STATE_CHANGE_REASONS.end()) { + DelayedSingleton::GetInstance()->SetScreenOnEventRules( + GetReasonByWakeType(type), WATCH_CUSTOMIZED_STATE_CHANGE_REASONS, WATCH_CUSTOMIZED_WAKEUP_DEVICE_TYPES); } #endif @@ -2156,6 +2172,9 @@ StateChangeReason PowerStateMachine::GetReasonByWakeType(WakeupDeviceType type) case WakeupDeviceType::WAKEUP_DEVICE_END_DREAM: ret = StateChangeReason::STATE_CHANGE_REASON_END_DREAM; break; + case WakeupDeviceType::WAKEUP_DEVICE_BLUETOOTH_INCOMING_CALL: + ret = StateChangeReason::STATE_CHANGE_REASON_BLUETOOTH_INCOMING_CALL; + break; case WakeupDeviceType::WAKEUP_DEVICE_UNKNOWN: // fall through default: break; diff --git a/services/native/src/watch_customized_screen_common_event/customized_screen_event_rules.cpp b/services/native/src/watch_customized_screen_common_event/customized_screen_event_rules.cpp index 15b28b76..d90b9507 100644 --- a/services/native/src/watch_customized_screen_common_event/customized_screen_event_rules.cpp +++ b/services/native/src/watch_customized_screen_common_event/customized_screen_event_rules.cpp @@ -24,7 +24,7 @@ namespace PowerMgr { #ifdef POWER_MANAGER_ENABLE_WATCH_CUSTOMIZED_SCREEN_COMMON_EVENT_RULES static std::vector bundleNames{}; static StateChangeReason defaultReason = StateChangeReason::STATE_CHANGE_REASON_POWER_KEY; - +static std::vector g_watchCurrentScreenStateChangeReason; std::vector CustomizedScreenEventRules::GetForegroundBundleNames() { @@ -42,15 +42,20 @@ std::vector CustomizedScreenEventRules::GetForegroundBundleNames() return bundleNames; } -void CustomizedScreenEventRules::SetScreenOnEventRules(StateChangeReason reason) +void CustomizedScreenEventRules::SetScreenOnEventRules(StateChangeReason reason, + const std::vector &stateChangeReason, const std::vector &wakeupDeviceTypes) { defaultReason = reason; - PowerExtIntfWrapper::Instance().SetScreenOnEventRules(reason); + g_watchCurrentScreenStateChangeReason = stateChangeReason; + PowerExtIntfWrapper::Instance().SetScreenOnEventRules(reason, stateChangeReason, wakeupDeviceTypes); } void CustomizedScreenEventRules::PublishCustomizedScreenEvent(PowerState state) { - if (defaultReason == StateChangeReason::STATE_CHANGE_REASON_PICKUP) { + if (!g_watchCurrentScreenStateChangeReason.empty() && + std::find(g_watchCurrentScreenStateChangeReason.begin(), + g_watchCurrentScreenStateChangeReason.end(), + defaultReason) != g_watchCurrentScreenStateChangeReason.end()) { PowerExtIntfWrapper::Instance().PublishCustomizedScreenEvent(state, GetForegroundBundleNames()); } else { PowerExtIntfWrapper::Instance().PublishCustomizedScreenEvent(state, bundleNames); diff --git a/services/native/src/watch_customized_screen_common_event/customized_screen_event_rules.h b/services/native/src/watch_customized_screen_common_event/customized_screen_event_rules.h index 19185e94..f7b9349f 100644 --- a/services/native/src/watch_customized_screen_common_event/customized_screen_event_rules.h +++ b/services/native/src/watch_customized_screen_common_event/customized_screen_event_rules.h @@ -34,7 +34,8 @@ class CustomizedScreenEventRules : public DelayedSingleton &stateChangeReason, + const std::vector &wakeupDeviceTypes); static void PublishCustomizedScreenEvent(PowerState state); static bool NotifyScreenOnEventAgain(WakeupDeviceType reason); static void NotifyOperateEventAfterScreenOn(); diff --git a/utils/intf_wrapper/include/power_ext_intf_wrapper.h b/utils/intf_wrapper/include/power_ext_intf_wrapper.h index d2e6c3ba..7758cfb0 100644 --- a/utils/intf_wrapper/include/power_ext_intf_wrapper.h +++ b/utils/intf_wrapper/include/power_ext_intf_wrapper.h @@ -54,7 +54,8 @@ public: ErrCode BlockHibernateUntilScrLckReady() const; void OnHibernateEnd(bool hibernateResult); #ifdef POWER_MANAGER_ENABLE_WATCH_CUSTOMIZED_SCREEN_COMMON_EVENT_RULES - void SetScreenOnEventRules(StateChangeReason reason); + void SetScreenOnEventRules(StateChangeReason reason, const std::vector &stateChangeReason, + const std::vector &wakeupDeviceTypes); void PublishCustomizedScreenEvent(PowerState state, std::vector bundleNames); bool NotifyScreenOnEventAgain(WakeupDeviceType reason, std::vector bundleNames); void NotifyOperateEventAfterScreenOn(std::vector bundleNames); diff --git a/utils/intf_wrapper/src/power_ext_intf_wrapper.cpp b/utils/intf_wrapper/src/power_ext_intf_wrapper.cpp index e7b0b061..bc65e5e1 100644 --- a/utils/intf_wrapper/src/power_ext_intf_wrapper.cpp +++ b/utils/intf_wrapper/src/power_ext_intf_wrapper.cpp @@ -102,14 +102,16 @@ void PowerExtIntfWrapper::OnHibernateEnd(bool hibernateResult) } #ifdef POWER_MANAGER_ENABLE_WATCH_CUSTOMIZED_SCREEN_COMMON_EVENT_RULES -void PowerExtIntfWrapper::SetScreenOnEventRules(StateChangeReason reason) +void PowerExtIntfWrapper::SetScreenOnEventRules(StateChangeReason reason, + const std::vector &stateChangeReason, const std::vector &wakeupDeviceTypes) { void *funcPtr = intfLoader_.QueryInterface("SetScreenOnEventRules"); if (funcPtr == nullptr) { return; } - auto setScreenOnEventRulesFunc = reinterpret_cast(funcPtr); - setScreenOnEventRulesFunc(reason); + auto setScreenOnEventRulesFunc = reinterpret_cast &, const std::vector &)>(funcPtr); + setScreenOnEventRulesFunc(reason, stateChangeReason, wakeupDeviceTypes); } void PowerExtIntfWrapper::PublishCustomizedScreenEvent(PowerState state, std::vector bundleNames) diff --git a/utils/native/src/power_utils.cpp b/utils/native/src/power_utils.cpp index 1d0cb916..aadab8d9 100644 --- a/utils/native/src/power_utils.cpp +++ b/utils/native/src/power_utils.cpp @@ -111,6 +111,8 @@ const std::string PowerUtils::GetReasonTypeString(StateChangeReason type) return std::string("ROLLBACK_HIBERNATE"); case StateChangeReason::STATE_CHANGE_REASON_PLUG_CHANGE: return std::string("PLUG_CHANGE"); + case StateChangeReason::STATECHANGE_REASON_BLUETOOTH_INCOMING_CALL: + return std::string("BLUETOOTH_INCOMING_CALL"); case StateChangeReason::STATE_CHANGE_REASON_UNKNOWN: return std::string("UNKNOWN"); default: @@ -302,6 +304,8 @@ WakeupDeviceType PowerUtils::ParseWakeupDeviceType(const std::string& details) parsedType = WakeupDeviceType::WAKEUP_DEVICE_SHELL; } else if (strcmp(details.c_str(), "end_dream") == 0) { parsedType = WakeupDeviceType::WAKEUP_DEVICE_END_DREAM; + } else if (strcmp(details.c_str(), "wake up screen:receive bluetooth call") == 0) { + parsedType = WakeupDeviceType::WAKEUP_DEVICE_BLUETOOTH_INCOMING_CALL; } if (parsedType != WakeupDeviceType::WAKEUP_DEVICE_APPLICATION) { -- Gitee From fb2bd9150d24508851d78942af555b0320bea209 Mon Sep 17 00:00:00 2001 From: lfSeanDragon <18309220525@163.com> Date: Fri, 30 May 2025 06:28:11 +0000 Subject: [PATCH 2/4] =?UTF-8?q?fix:=20=E6=89=8B=E8=A1=A8=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E8=93=9D=E7=89=99=E6=9D=A5=E7=94=B5=E5=81=87=E4=BA=AE=E5=B1=8F?= =?UTF-8?q?=E5=9C=BA=E6=99=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: lfSeanDragon <18309220525@163.com> --- utils/native/src/power_utils.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/native/src/power_utils.cpp b/utils/native/src/power_utils.cpp index aadab8d9..b80b5ac6 100644 --- a/utils/native/src/power_utils.cpp +++ b/utils/native/src/power_utils.cpp @@ -111,7 +111,7 @@ const std::string PowerUtils::GetReasonTypeString(StateChangeReason type) return std::string("ROLLBACK_HIBERNATE"); case StateChangeReason::STATE_CHANGE_REASON_PLUG_CHANGE: return std::string("PLUG_CHANGE"); - case StateChangeReason::STATECHANGE_REASON_BLUETOOTH_INCOMING_CALL: + case StateChangeReason::STATE_CHANGE_REASON_BLUETOOTH_INCOMING_CALL: return std::string("BLUETOOTH_INCOMING_CALL"); case StateChangeReason::STATE_CHANGE_REASON_UNKNOWN: return std::string("UNKNOWN"); -- Gitee From 8d469727b2b670179913c5ec9602d16dd44662c1 Mon Sep 17 00:00:00 2001 From: lfSeanDragon <18309220525@163.com> Date: Fri, 30 May 2025 07:21:28 +0000 Subject: [PATCH 3/4] fix: add bluetooth incoming call screen on Signed-off-by: lfSeanDragon <18309220525@163.com> --- services/native/src/power_state_machine.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/native/src/power_state_machine.cpp b/services/native/src/power_state_machine.cpp index 5c6df4a6..63716f04 100644 --- a/services/native/src/power_state_machine.cpp +++ b/services/native/src/power_state_machine.cpp @@ -72,7 +72,7 @@ pid_t g_callSetForceTimingOutUid = 0; const std::string LID_STATUS_SCENE_NAME = "lid_status"; #ifdef POWER_MANAGER_ENABLE_WATCH_CUSTOMIZED_SCREEN_COMMON_EVENT_RULES const std::vector WATCH_CUSTOMIZED_STATE_CHANGE_REASONS{ - StateChangeReason::STATE_CHANGE_REASON_PICK, + StateChangeReason::STATE_CHANGE_REASON_PICKUP, StateChangeReason::STATE_CHANGE_REASON_INCOMING_CALL, StateChangeReason::STATE_CHANGE_REASON_BLUETOOTH_INCOMING_CALL }; @@ -671,7 +671,7 @@ void PowerStateMachine::WakeupDeviceInner( if (!pms->IsScreenOn() && !WATCH_CUSTOMIZED_STATE_CHANGE_REASONS.empty() && std::find(WATCH_CUSTOMIZED_STATE_CHANGE_REASONS.begin(), WATCH_CUSTOMIZED_STATE_CHANGE_REASONS.end(), - GetReasonByWakeType()) != WATCH_CUSTOMIZED_STATE_CHANGE_REASONS.end()) { + GetReasonByWakeType(type)) != WATCH_CUSTOMIZED_STATE_CHANGE_REASONS.end()) { DelayedSingleton::GetInstance()->SetScreenOnEventRules( GetReasonByWakeType(type), WATCH_CUSTOMIZED_STATE_CHANGE_REASONS, WATCH_CUSTOMIZED_WAKEUP_DEVICE_TYPES); } -- Gitee From c804f8d79d27abcbde46038d813b24638aff8f56 Mon Sep 17 00:00:00 2001 From: lfSeanDragon <18309220525@163.com> Date: Tue, 3 Jun 2025 09:40:27 +0000 Subject: [PATCH 4/4] fix: add bluetooth incoming call screen on Signed-off-by: lfSeanDragon <18309220525@163.com> --- .../interface_test/power_mgr_service_test.cpp | 6 +++++ .../src/native_power_state_machine_test.cpp | 4 +++ .../src/power_ext_intf_wrapper_test.cpp | 26 +++++++++++++++++++ .../include/power_ext_intf_wrapper.h | 2 +- .../src/power_ext_intf_wrapper.cpp | 4 +-- 5 files changed, 39 insertions(+), 3 deletions(-) diff --git a/test/unittest/src/interface_test/power_mgr_service_test.cpp b/test/unittest/src/interface_test/power_mgr_service_test.cpp index d7f38306..3a4ba47c 100644 --- a/test/unittest/src/interface_test/power_mgr_service_test.cpp +++ b/test/unittest/src/interface_test/power_mgr_service_test.cpp @@ -631,6 +631,10 @@ HWTEST_F(PowerMgrServiceTest, PowerMgrService025, TestSize.Level2) StateChangeReason::STATE_CHANGE_REASON_INCOMING_CALL); EXPECT_EQ(stateMaschine_->GetReasonByWakeType(WakeupDeviceType::WAKEUP_DEVICE_SHELL), StateChangeReason::STATE_CHANGE_REASON_SHELL); + EXPECT_EQ(stateMaschine_->GetReasonByWakeType(WakeupDeviceType::WAKEUP_DEVICE_BLUETOOTH_INCOMING_CALL), + StateChangeReason::STATE_CHANGE_REASON_BLUETOOTH_INCOMING_CALL); + EXPECT_EQ(stateMaschine_->GetReasonByWakeType(WakeupDeviceType::WAKEUP_DEVICE_PICKUP), + StateChangeReason::STATE_CHANGE_REASON_PICKUP); pmsTest_->OnStop(); POWER_HILOGI(LABEL_TEST, "PowerMgrServiceTest::PowerMgrService025 function end!"); } @@ -657,6 +661,8 @@ HWTEST_F(PowerMgrServiceTest, PowerMgrService026, TestSize.Level2) WakeupDeviceType::WAKEUP_DEVICE_PRE_BRIGHT_AUTH_FAIL_SCREEN_ON); EXPECT_EQ(PowerUtils::ParseWakeupDeviceType("pre_bright_auth_fail_screen_off"), WakeupDeviceType::WAKEUP_DEVICE_PRE_BRIGHT_AUTH_FAIL_SCREEN_OFF); + EXPECT_EQ(PowerUtils::ParseWakeupDeviceType("wake up screen:receive bluetooth call"), + WakeupDeviceType::WAKEUP_DEVICE_BLUETOOTH_INCOMING_CALL); pmsTest_->OnStop(); POWER_HILOGI(LABEL_TEST, "PowerMgrServiceTest::PowerMgrService026 function end!"); diff --git a/test/unittest/src/native_power_state_machine_test.cpp b/test/unittest/src/native_power_state_machine_test.cpp index 0ed16e71..452b36cd 100644 --- a/test/unittest/src/native_power_state_machine_test.cpp +++ b/test/unittest/src/native_power_state_machine_test.cpp @@ -233,6 +233,10 @@ HWTEST_F(NativePowerStateMachineTest, NativePowerStateMachine004, TestSize.Level stateMachine->WakeupDeviceInner(PID, CALLTIMEMS, type, "7", "7"); type = WakeupDeviceType::WAKEUP_DEVICE_MOUSE; stateMachine->WakeupDeviceInner(PID, CALLTIMEMS, type, "7", "7"); + type = WakeupDeviceType::WAKEUP_DEVICE_BLUETOOTH_INCOMING_CALL; + stateMachine->WakeupDeviceInner(PID, CALLTIMEMS, type, "7", "7"); + type = WakeupDeviceType::WAKEUP_DEVICE_PICKUP; + stateMachine->WakeupDeviceInner(PID, CALLTIMEMS, type, "7", "7"); type = WakeupDeviceType::WAKEUP_DEVICE_UNKNOWN; stateMachine->WakeupDeviceInner(PID, CALLTIMEMS, type, "7", "7"); stateMachine->WakeupDeviceInner(PID, CALLTIMEMS, static_cast(MAXTYPE), "7", "7"); diff --git a/test/unittest/src/power_ext_intf_wrapper_test.cpp b/test/unittest/src/power_ext_intf_wrapper_test.cpp index 3037bf6c..e5fa1361 100644 --- a/test/unittest/src/power_ext_intf_wrapper_test.cpp +++ b/test/unittest/src/power_ext_intf_wrapper_test.cpp @@ -16,6 +16,9 @@ #include "power_ext_intf_wrapper_test.h" #include "power_ext_intf_wrapper.h" #include "power_log.h" +#ifdef POWER_MANAGER_ENABLE_WATCH_CUSTOMIZED_SCREEN_COMMON_EVENT_RULES +#include "power_state_machine_info.h" +#endif namespace OHOS { namespace PowerMgr { @@ -68,5 +71,28 @@ HWTEST_F(PowerExtIntfWrapperTest, BlockHibernateUntilScrLckReadyTest, TestSize.L EXPECT_TRUE(code == PowerExtIntfWrapper::ErrCode::ERR_NOT_FOUND || code == PowerExtIntfWrapper::ErrCode::ERR_OK); POWER_HILOGI(LABEL_TEST, "BlockHibernateUntilScrLckReadyTest function end!"); } + +/** + * @tc.name: SetScreenOnEventRulesTest + * @tc.desc: test SetScreenOnEventRules + * @tc.type: FUNC + */ +#ifdef POWER_MANAGER_ENABLE_WATCH_CUSTOMIZED_SCREEN_COMMON_EVENT_RULES +HWTEST_F(PowerExtIntfWrapperTest, SetScreenOnEventRulesTest, TestSize.Level0) +{ + POWER_HILOGI(LABEL_TEST, "SetScreenOnEventRulesTest function start!"); + StateChangeReason reason = StateChangeReason::STATE_CHANGE_REASON_PICKUP; + std::vector WATCH_CUSTOMIZED_STATE_CHANGE_REASONS{StateChangeReason::STATE_CHANGE_REASON_PICKUP, + StateChangeReason::STATE_CHANGE_REASON_INCOMING_CALL, + StateChangeReason::STATE_CHANGE_REASON_BLUETOOTH_INCOMING_CALL}; + std::vector WATCH_CUSTOMIZED_WAKEUP_DEVICE_TYPES{WakeupDeviceType::WAKEUP_DEVICE_PICKUP, + WakeupDeviceType::WAKEUP_DEVICE_INCOMING_CALL, + WakeupDeviceType::WAKEUP_DEVICE_BLUETOOTH_INCOMING_CALL}; + PowerExtIntfWrapper::ErrCode code = PowerExtIntfWrapper::Instance().SetScreenOnEventRules( + reason, WATCH_CUSTOMIZED_STATE_CHANGE_REASONS, WATCH_CUSTOMIZED_WAKEUP_DEVICE_TYPES); + EXPECT_TRUE(code == PowerExtIntfWrapper::ErrCode::ERR_NOT_FOUND || code == PowerExtIntfWrapper::ErrCode::ERR_OK); + POWER_HILOGI(LABEL_TEST, "SetScreenOnEventRulesTest function end!"); +} +#endif } // PowerMgr } // OHOS \ No newline at end of file diff --git a/utils/intf_wrapper/include/power_ext_intf_wrapper.h b/utils/intf_wrapper/include/power_ext_intf_wrapper.h index 7758cfb0..a1629daf 100644 --- a/utils/intf_wrapper/include/power_ext_intf_wrapper.h +++ b/utils/intf_wrapper/include/power_ext_intf_wrapper.h @@ -54,7 +54,7 @@ public: ErrCode BlockHibernateUntilScrLckReady() const; void OnHibernateEnd(bool hibernateResult); #ifdef POWER_MANAGER_ENABLE_WATCH_CUSTOMIZED_SCREEN_COMMON_EVENT_RULES - void SetScreenOnEventRules(StateChangeReason reason, const std::vector &stateChangeReason, + ErrCode SetScreenOnEventRules(StateChangeReason reason, const std::vector &stateChangeReason, const std::vector &wakeupDeviceTypes); void PublishCustomizedScreenEvent(PowerState state, std::vector bundleNames); bool NotifyScreenOnEventAgain(WakeupDeviceType reason, std::vector bundleNames); diff --git a/utils/intf_wrapper/src/power_ext_intf_wrapper.cpp b/utils/intf_wrapper/src/power_ext_intf_wrapper.cpp index bc65e5e1..75165d2b 100644 --- a/utils/intf_wrapper/src/power_ext_intf_wrapper.cpp +++ b/utils/intf_wrapper/src/power_ext_intf_wrapper.cpp @@ -102,12 +102,12 @@ void PowerExtIntfWrapper::OnHibernateEnd(bool hibernateResult) } #ifdef POWER_MANAGER_ENABLE_WATCH_CUSTOMIZED_SCREEN_COMMON_EVENT_RULES -void PowerExtIntfWrapper::SetScreenOnEventRules(StateChangeReason reason, +PowerExtIntfWrapper::ErrCode PowerExtIntfWrapper::SetScreenOnEventRules(StateChangeReason reason, const std::vector &stateChangeReason, const std::vector &wakeupDeviceTypes) { void *funcPtr = intfLoader_.QueryInterface("SetScreenOnEventRules"); if (funcPtr == nullptr) { - return; + return PowerExtIntfWrapper::ErrCode::ERR_NOT_FOUND; } auto setScreenOnEventRulesFunc = reinterpret_cast &, const std::vector &)>(funcPtr); -- Gitee