call method

  1. @override
Future<void> call(
  1. BuildContext context,
  2. int deviceId
)
override

Implementation

@override
Future<void> call(BuildContext context, int deviceId) async {
  // Use findAncestorStateOfType to avoid creating a dependency on
  // Scaffold messenger, since we're just using it to send a snackbar message
  final scaffold = context.findAncestorStateOfType<ScaffoldMessengerState>();

  final startExercise = context.read(startExerciseProvider);
  await startExercise(context: context, id: deviceId, mode: mode);

  if (!context.mounted) return;

  notifyExercisePending(
    context,
    deviceId,
    mode,
    onTimeout: () {
      if (scaffold?.mounted == true) {
        scaffold?.showSnackBar(
          SnackBar(content: Text(context.sharedL10n.runningExerciseFailed)),
        );
      }
    },
  );

  await fullRefreshGeneratorDetails(
    context,
    deviceId,
    awaitDeviceListRefresh: true,
  );
}