import 'dart:async'; import 'package:aitrainer_app/model/exercise.dart'; import 'package:aitrainer_app/repository/exercise_repository.dart'; import 'package:bloc/bloc.dart'; import 'package:equatable/equatable.dart'; import 'package:flurry/flurry.dart'; import 'package:meta/meta.dart'; part 'exercise_log_event.dart'; part 'exercise_log_state.dart'; class ExerciseLogBloc extends Bloc { final ExerciseRepository exerciseRepository; @override ExerciseLogBloc({this.exerciseRepository}) : super(ExerciseLogInitial()); @override Stream mapEventToState(ExerciseLogEvent event) async* { try { if (event is ExerciseLogLoad) { yield ExerciseLogLoading(); Flurry.logEvent("exerciseLog"); yield ExerciseLogReady(); } else if (event is ExerciseLogDelete) { yield ExerciseLogLoading(); exerciseRepository.exerciseList.remove(event.exercise); await exerciseRepository.deleteExercise(event.exercise); Flurry.logEvent("exerciseDelete"); yield ExerciseLogReady(); } else if (event is ExerciseResult) { yield ExerciseLogLoading(); Flurry.logEvent("exerciseResult"); yield ExerciseLogReady(); } } on Exception catch (e) { yield ExerciseLogError(message: e.toString()); } } }