updateCurrentTime method
- 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();
}
}