removeSetFromExercise method

Future<bool> removeSetFromExercise(
  1. int exerciseIndex,
  2. int setIndex
)

Implementation

Future<bool> removeSetFromExercise(int exerciseIndex, int setIndex) async {
  if (_plan == null) return false;
  if (exerciseIndex < 0 || exerciseIndex >= (_plan!.exercises.length))
    return false;
  final ex = _plan!.exercises[exerciseIndex];
  if (setIndex < 0 || setIndex >= ex.sets.length) return false;
  if (getPerformedSet(exerciseIndex, setIndex) != null) return false;
  final updatedSets = [
    for (var i = 0; i < ex.sets.length; i++)
      if (i != setIndex) ex.sets[i],
  ];
  final updatedExercise = ex.copyWith(sets: updatedSets);
  final updatedExercises = [..._plan!.exercises];
  updatedExercises[exerciseIndex] = updatedExercise;
  _plan = WorkoutPlan(
    id: _plan!.id,
    name: _plan!.name,
    exercises: updatedExercises,
  );
  await _storage.savePlan(json: _plan!.toJson());
  notifyListeners();
  return true;
}