From 37c08aed5f9e955316adf5fd824b0030d40ba7e1 Mon Sep 17 00:00:00 2001 From: cjw123qq Date: Thu, 11 Sep 2025 14:16:28 +0800 Subject: [PATCH] fix: adapt DISABLE_USER_ACTIVITY for refreshActivity Signed-off-by: cjw123qq --- .../native/src/wakeup/wakeup_controller.cpp | 8 ++- .../power_wakeup_controller_test.cpp | 60 +++++++++++++++++++ 2 files changed, 66 insertions(+), 2 deletions(-) diff --git a/services/native/src/wakeup/wakeup_controller.cpp b/services/native/src/wakeup/wakeup_controller.cpp index 2c802936..a361532f 100644 --- a/services/native/src/wakeup/wakeup_controller.cpp +++ b/services/native/src/wakeup/wakeup_controller.cpp @@ -655,7 +655,9 @@ void InputCallback::OnInputEvent(std::shared_ptr keyEvent) const return; } int64_t now = static_cast(time(nullptr)); - pms->RefreshActivityInner(now, UserActivityType::USER_ACTIVITY_TYPE_BUTTON, false); + if (!keyEvent->HasFlag(InputEvent::EVENT_FLAG_DISABLE_USER_ACTIVITY)) { + pms->RefreshActivityInner(now, UserActivityType::USER_ACTIVITY_TYPE_BUTTON, false); + } PowerState state = pms->GetState(); if (state == PowerState::AWAKE || state == PowerState::FREEZE) { return; @@ -744,7 +746,9 @@ void InputCallback::OnInputEvent(std::shared_ptr pointerEvent) con return; } int64_t now = static_cast(time(nullptr)); - pms->RefreshActivityInner(now, UserActivityType::USER_ACTIVITY_TYPE_TOUCH, false); + if (!pointerEvent->HasFlag(InputEvent::EVENT_FLAG_DISABLE_USER_ACTIVITY)) { + pms->RefreshActivityInner(now, UserActivityType::USER_ACTIVITY_TYPE_TOUCH, false); + } PowerState state = pms->GetState(); if (TouchEventAfterScreenOn(pointerEvent, state)) { return; diff --git a/test/unittest/src/interface_test/power_wakeup_controller_test.cpp b/test/unittest/src/interface_test/power_wakeup_controller_test.cpp index 47053b47..a7ab7cfa 100644 --- a/test/unittest/src/interface_test/power_wakeup_controller_test.cpp +++ b/test/unittest/src/interface_test/power_wakeup_controller_test.cpp @@ -743,4 +743,64 @@ HWTEST_F(PowerWakeupControllerTest, PowerWakeupControllerTest022, TestSize.Level POWER_HILOGI(LABEL_TEST, "PowerWakeupControllerTest022 function end!"); } #endif + +/** + * @tc.name: PowerWakeupControllerTest023 + * @tc.desc: test OnInputEvent(keyEvent) + * @tc.type: FUNC + * @tc.require: issueICXI8K + */ +#ifdef HAS_MULTIMODALINPUT_INPUT_PART +HWTEST_F(PowerWakeupControllerTest, PowerWakeupControllerTest023, TestSize.Level0) +{ + POWER_HILOGI(LABEL_TEST, "PowerWakeupControllerTest023 function start!"); + GTEST_LOG_(INFO) << "PowerWakeupControllerTest023: start"; + PowerMgrClient::GetInstance().SuspendDevice(); + std::shared_ptr keyEvent = OHOS::MMI::KeyEvent::Create(); + InputCallback callback; + keyEvent->AddFlag(InputEvent::EVENT_FLAG_DISABLE_USER_ACTIVITY); + auto powerStateMachine = g_service->GetPowerStateMachine(); + powerStateMachine->mDeviceState_.lastRefreshActivityTime = 0; + callback.OnInputEvent(keyEvent); + int64_t time = powerStateMachine->GetLastRefreshActivityTime(); + EXPECT_TRUE(time == 0); + keyEvent->ClearFlag(); + powerStateMachine->mDeviceState_.lastRefreshActivityTime = 0; + callback.OnInputEvent(keyEvent); + time = powerStateMachine->GetLastRefreshActivityTime(); + EXPECT_TRUE(time != 0); + GTEST_LOG_(INFO) << "PowerWakeupControllerTest023: end"; + POWER_HILOGI(LABEL_TEST, "PowerWakeupControllerTest023 function end!"); +} +#endif + +/** + * @tc.name: PowerWakeupControllerTest024 + * @tc.desc: test OnInputEvent(pointerEvent) + * @tc.type: FUNC + * @tc.require: issueICXI8K + */ +#ifdef HAS_MULTIMODALINPUT_INPUT_PART +HWTEST_F(PowerWakeupControllerTest, PowerWakeupControllerTest024, TestSize.Level0) +{ + POWER_HILOGI(LABEL_TEST, "PowerWakeupControllerTest024 function start!"); + GTEST_LOG_(INFO) << "PowerWakeupControllerTest024: start"; + PowerMgrClient::GetInstance().SuspendDevice(); + std::shared_ptr pointerEvent = MMI::PointerEvent::Create(); + InputCallback callback; + pointerEvent->AddFlag(InputEvent::EVENT_FLAG_DISABLE_USER_ACTIVITY); + auto powerStateMachine = g_service->GetPowerStateMachine(); + powerStateMachine->mDeviceState_.lastRefreshActivityTime = 0; + callback.OnInputEvent(pointerEvent); + int64_t time = powerStateMachine->GetLastRefreshActivityTime(); + EXPECT_TRUE(time == 0); + pointerEvent->ClearFlag(); + powerStateMachine->mDeviceState_.lastRefreshActivityTime = 0; + callback.OnInputEvent(pointerEvent); + time = powerStateMachine->GetLastRefreshActivityTime(); + EXPECT_TRUE(time != 0); + GTEST_LOG_(INFO) << "PowerWakeupControllerTest024: end"; + POWER_HILOGI(LABEL_TEST, "PowerWakeupControllerTest024 function end!"); +} +#endif } // namespace \ No newline at end of file -- Gitee