updateCurrentTime method

void updateCurrentTime(
  1. BuildContext context
)

Actualiza el tiempo actual si se ha aplicado una penalización.

Este método se ejecuta cuando comienza un nuevo tiempo y se ha seleccionado alguna penalización (+2 o DNF). Si es así, busca el tiempo en la base de datos y lo actualiza con la penalización correspondiente.

Características:

  • Verifica si el usuario ha seleccionado alguna penalización.
  • Crea una nueva instancia de TimeTraining con la penalización aplicada.
  • Actualiza el tiempo en la base de datos.

Parámetros:

  • context (BuildContext): Contexto actual de la aplicación, necesario para mostrar alertas.

Implementation

void updateCurrentTime(BuildContext context) async {
  // CUANDO EMPIECE UN TIEMPO NUEVO, SI HA PULSADO ALGUNA PENALIZACION, SE ACTUALIZA EL TIEMPO
  if (isPlusTwoChoose || isDnfChoose) {
    int idTime = await _timeTrainingDaoSb.getIdByTime(
        _timeTraining!.scramble, _timeTraining!.idSession);

    if (idTime == -1) {
      AlertUtil.showSnackBarError(context, "time_saved_error");
      return;
    } // VALIDAR QUE EL IDTIME NO DE ERROR

    //              ACTUALIZAR ESTADO GLOBAL
    // TIEMPO A ACTUALIZAR
    TimeTraining updateTime = TimeTraining(
      idSession: _timeTraining!.idSession,
      scramble: _timeTraining!.scramble,
      comments: _timeTraining!.comments,
      timeInSeconds: isPlusTwoChoose
          ? (_timeTraining!.timeInSeconds + 2)
          : _timeTraining!.timeInSeconds,
      penalty: isDnfChoose ? "DNF" : (isPlusTwoChoose ? "+2" : ""),
    );

    _timeTraining! == updateTime;

    // ACTUALIZAR EL TIEMPO
    if (await _timeTrainingDaoSb.updateTime(idTime, _timeTraining!) == false) {
      AlertUtil.showSnackBarError(context, "time_saved_error");
    } // SI FALLA, SE MUESTRA UN ERROR

    notifyListeners();
  }
}