startCapturing function

Future<void> startCapturing({
  1. required Dummy dummy,
  2. required Future<String> callback(),
  3. required dynamic refreshContent(),
  4. required dynamic onStartCapturing(),
  5. required dynamic onFinishCapturing(),
})

Implementation

Future<void> startCapturing({
  required Dummy dummy,
  required Future<String> Function() callback,
  required Function() refreshContent,
  required Function() onStartCapturing,
  required Function() onFinishCapturing,
}) async {
  onStartCapturing();
  if (dummy.screenshot.locales.isNotEmpty) {
    await Future.delayed(const Duration(seconds: 1));
    for (final locale in dummy.screenshot.locales) {
      final outputFolder =
          await dummy.screenshot.outputFolder?.call(locale) ?? '';
      await Catalog().beforeCapture(locale);
      await Future.delayed(const Duration(seconds: 1));
      refreshContent();
      await Future.delayed(const Duration(seconds: 1));

      for (final ss in dummy.screenshot.screenshots) {
        ss.setLocale(locale);
        await _processScreenshot(
          mode: dummy.screenshot.background.toStringName(),
          outputFolder: outputFolder,
          fileName: ss.fileName,
          callback: callback,
          height: ss.size.height,
          width: ss.size.width,
        );
      }
    }
  } else {
    final outputFolder = await dummy.screenshot.outputFolder?.call(null) ?? '';
    if (dummy.screenshot.screenshots.isNotEmpty) {
      for (final ss in dummy.screenshot.screenshots) {
        await _processScreenshot(
          mode: dummy.screenshot.background.toStringName(),
          outputFolder: outputFolder,
          fileName: ss.fileName,
          callback: callback,
          height: ss.size.height,
          width: ss.size.width,
        );
      }
    } else {
      await _processScreenshot(
        mode: dummy.screenshot.background.toStringName(),
        outputFolder: outputFolder,
        fileName: '${DateTime.now().millisecondsSinceEpoch}.png',
        callback: callback,
        height: 0.0,
        width: 0.0,
      );
    }
  }
  onFinishCapturing();
}