pointerMove function

Future<void> pointerMove(
  1. double startX,
  2. double startY,
  3. double endX,
  4. double endY,
  5. int steps,
  6. Duration duration,
)

Implementation

Future<void> pointerMove(double startX, double startY, double endX,
    double endY, int steps, Duration duration) async {
  double deltaX = (endX - startX) / steps;
  double deltaY = (endY - startY) / steps;
  final Duration delay = duration ~/ steps;

  for (int i = 1; i <= steps; i++) {
    final double moveX = startX + deltaX * i;
    final double moveY = startY + deltaY * i;

    final PointerMoveEvent moveEvent = PointerMoveEvent(
      position: Offset(moveX, moveY),
      delta: Offset(deltaX, deltaY),
      kind: PointerDeviceKind.touch,
    );

    GestureBinding.instance.handlePointerEvent(moveEvent);

    // Delay to simulate time between each move event
    await Future.delayed(delay);
  }
}