execute method
Called when it executes the action in a flow file.
Implementation
@override
Future<bool> execute(Tester tester) async {
final node = await tester.find(within);
if (node == null) {
return false;
}
final Offset scrollDelta;
switch (direction) {
case AxisDirection.up:
scrollDelta = Offset(0, -speed);
break;
case AxisDirection.right:
scrollDelta = Offset(speed, 0);
break;
case AxisDirection.down:
scrollDelta = Offset(0, speed);
break;
case AxisDirection.left:
scrollDelta = Offset(-speed, 0);
break;
}
final end = clock.now().add(timeout);
while ((await tester.find(until, timeout: Duration.zero)) == null) {
tester.emitPointerEvent(
PointerScrollEvent(
position: node.center,
scrollDelta: scrollDelta,
),
);
await tester.pump();
if (clock.now().isAfter(end)) {
return false;
}
}
return true;
}