diff --git a/services/native/src/wakeup/wakeup_controller.cpp b/services/native/src/wakeup/wakeup_controller.cpp index 2c80293624fd63c95c0a084a8ed0ac3de1ef51e1..a361532fab42aad931cba66aadb474c409a8182b 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 47053b47901e854dba9a507f650ab221e65535ac..a7ab7cfa9250d3beaa752397a2b2be264f5ccdb7 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