From 6dd3872e1ffd73768896fd497f700728279aa758 Mon Sep 17 00:00:00 2001 From: fangzhiyuan Date: Mon, 11 Aug 2025 22:36:55 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90ArkTS=E6=BC=94=E8=BF=9B=E3=80=91SetFra?= =?UTF-8?q?meCallbackImpl=E5=8F=96=E6=B6=88=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: fangzhiyuan Change-Id: If07b677263e89cc2c3a36e38d741cadba88cb372 --- .../implementation/system_ops_accessor.cpp | 27 ++++++++++--------- .../pipeline/pipeline_context_test_ng_two.cpp | 9 +++++++ 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/frameworks/core/interfaces/native/implementation/system_ops_accessor.cpp b/frameworks/core/interfaces/native/implementation/system_ops_accessor.cpp index 777c76bce4c..027b0f5a95d 100644 --- a/frameworks/core/interfaces/native/implementation/system_ops_accessor.cpp +++ b/frameworks/core/interfaces/native/implementation/system_ops_accessor.cpp @@ -75,19 +75,20 @@ void SetFrameCallbackImpl(const Callback_Number_Void* onFrameCallback, const Callback_Number_Void* onIdleCallback, const Ark_Number* delayTime) { - // CHECK_NULL_VOID(delayTime); - // auto delayTimeInt = Converter::Convert(*delayTime); - // auto context = PipelineContext::GetCurrentContext(); - // CHECK_NULL_VOID(context); - // auto onFrameCallbackFunc = [callback = CallbackHelper(*onFrameCallback)](double delayTimeInt) -> void { - // auto delayTime = Converter::ArkValue(delayTimeInt); - // callback.Invoke(delayTime); - // }; - // auto onIdleCallbackFunc = [callback = CallbackHelper(*onIdleCallback)](double delayTimeInt) -> void { - // auto delayTime = Converter::ArkValue(delayTimeInt); - // callback.Invoke(delayTime); - // }; - // context->AddFrameCallback(std::move(onFrameCallbackFunc), std::move(onIdleCallbackFunc), delayTimeInt); + CHECK_NULL_VOID(delayTime); + auto delayTimeInt = Converter::Convert(*delayTime); + auto context = PipelineContext::GetCurrentContext(); + CHECK_NULL_VOID(context); + auto onFrameCallbackFunc = [callback = CallbackHelper(*onFrameCallback)](double delayTimeInt) -> void { + auto delayTime = Converter::ArkValue(delayTimeInt); + callback.Invoke(delayTime); + }; + auto onIdleCallbackFunc = [callback = CallbackHelper(*onIdleCallback)]( + double delayTimeInt, uint32_t frameCount) -> void { + auto delayTime = Converter::ArkValue(delayTimeInt); + callback.Invoke(delayTime); + }; + context->AddFrameCallback(std::move(onFrameCallbackFunc), std::move(onIdleCallbackFunc), delayTimeInt); } } // namespace SystemOpsAccessor const GENERATED_ArkUISystemOpsAccessor* GetSystemOpsAccessor() diff --git a/test/unittest/core/pipeline/pipeline_context_test_ng_two.cpp b/test/unittest/core/pipeline/pipeline_context_test_ng_two.cpp index 8c5a2e36ecd..517d07f7e1a 100644 --- a/test/unittest/core/pipeline/pipeline_context_test_ng_two.cpp +++ b/test/unittest/core/pipeline/pipeline_context_test_ng_two.cpp @@ -2011,6 +2011,15 @@ HWTEST_F(PipelineContextTestNg, PipelineContextTestNg190, TestSize.Level1) context_->frameCallbackFuncs_.clear(); context_->AddFrameCallback(std::move(frameCallbackFunc2), std::move(idleCallbackFunc2), delayMillis); EXPECT_TRUE(context_->frameCallbackFuncs_.empty()); + + /** + * @tc.steps5: + * Test the parameters frameCallbackFunc and idleCallbackFunc are not nullptr, and delayMillis is granter than 0. + * @tc.expected: The member frameCallbackFuncs_ is not empty + */ + context_->frameCallbackFuncs_.clear(); + context_->AddFrameCallback(std::move(frameCallbackFunc), std::move(idleCallbackFunc), delayMillis); + EXPECT_FALSE(context_->frameCallbackFuncs_.empty()); } /** -- Gitee