mirror of
https://github.com/openharmony/ace_ace_engine.git
synced 2026-07-20 15:14:04 -04:00
use pipeline in animator finish callback to get right task execute thread
Signed-off-by: zcdqs <junfeng.lijunfeng@huawei.com> Change-Id: Ib2906bb73c6f67dbf6e4c29d84086647533b5304
This commit is contained in:
@@ -3175,6 +3175,14 @@ void PipelineContext::OpenImplicitAnimation(
|
||||
pendingImplicitLayout_.push(false);
|
||||
FlushLayout();
|
||||
|
||||
auto wrapFinishCallback = [weak = AceType::WeakClaim(this), finishCallback]() {
|
||||
auto context = weak.Upgrade();
|
||||
if (!context) {
|
||||
return;
|
||||
}
|
||||
context->GetTaskExecutor()->PostTask([finishCallback]() { finishCallback(); }, TaskExecutor::TaskType::UI);
|
||||
};
|
||||
|
||||
Rosen::RSAnimationTimingProtocol timingProtocol;
|
||||
timingProtocol.SetDuration(option.GetDuration());
|
||||
timingProtocol.SetStartDelay(option.GetDelay());
|
||||
@@ -3184,7 +3192,7 @@ void PipelineContext::OpenImplicitAnimation(
|
||||
option.GetAnimationDirection() == AnimationDirection::ALTERNATE);
|
||||
timingProtocol.SetAutoReverse(option.GetAnimationDirection() == AnimationDirection::ALTERNATE ||
|
||||
option.GetAnimationDirection() == AnimationDirection::ALTERNATE_REVERSE);
|
||||
RSNode::OpenImplicitAnimation(timingProtocol, NativeCurveHelper::ToNativeCurve(curve), finishCallback);
|
||||
RSNode::OpenImplicitAnimation(timingProtocol, NativeCurveHelper::ToNativeCurve(curve), wrapFinishCallback);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user