WT 1.1.26+3 bloc migration

This commit is contained in:
Tibor Bossanyi (Freelancer)
2022-04-15 08:47:32 +02:00
parent 60df0bcf2d
commit 225172f950
47 changed files with 1527 additions and 1620 deletions
@@ -1,4 +1,3 @@
import 'dart:async';
import 'package:aitrainer_app/bloc/timer/timer_bloc.dart';
import 'package:aitrainer_app/model/exercise.dart';
import 'package:aitrainer_app/repository/exercise_repository.dart';
@@ -39,8 +38,14 @@ class ExerciseControlBloc extends Bloc<ExerciseControlEvent, ExerciseControlStat
List<Exercise> controlList = [];
@override
ExerciseControlBloc({required this.exerciseRepository, required this.readonly, required this.timerBloc})
: super(ExerciseControlInitial()) {
ExerciseControlBloc({required this.exerciseRepository, required this.readonly, required this.timerBloc}) : super(ExerciseControlInitial()) {
_load();
on<ExerciseControlQuantityChange>(_onQuantityChange);
on<ExerciseControlUnitQuantityChange>(_onQuantityUnitChange);
on<ExerciseControlSubmit>(_onSubmit);
}
void _load() {
print("Exercise ${exerciseRepository.exercise!.toJson()}");
exerciseTypeLocal = ExerciseTypeLocal.oneRepMax;
@@ -69,47 +74,46 @@ class ExerciseControlBloc extends Bloc<ExerciseControlEvent, ExerciseControlStat
timerBloc.add(TimerStart(duration: 300));
}
@override
Stream<ExerciseControlState> mapEventToState(ExerciseControlEvent event) async* {
try {
if (event is ExerciseControlQuantityChange) {
if (event.step == step) {
exerciseRepository.setQuantity(event.quantity);
quantity = event.quantity;
controlList[step - 1].quantity = quantity;
}
} else if (event is ExerciseControlUnitQuantityChange) {
yield ExerciseControlLoading();
print("event step ${event.step} quantity ${event.quantity}");
if (event.step == step) {
this.unitQuantity = event.quantity;
exerciseRepository.setUnitQuantity(event.quantity);
unitQuantity = event.quantity;
quantity = calculateQuantityByUnitQuantity().toDouble();
exerciseRepository.setQuantity(quantity);
controlList[step - 1].unitQuantity = event.quantity;
controlList[step - 1].quantity = quantity;
}
yield ExerciseControlReady();
} else if (event is ExerciseControlSubmit) {
yield ExerciseControlLoading();
if (event.step == step) {
step++;
scrollOffset = step * 400.0;
if (exerciseRepository.exercise!.quantity == null) {
exerciseRepository.setQuantity(quantity);
}
exerciseRepository.end = DateTime.now();
await exerciseRepository.addExercise();
step <= 3 ? timerBloc.add(TimerStart(duration: 300)) : timerBloc.add(TimerEnd(duration: 300));
}
yield ExerciseControlReady();
}
} on Exception catch (e) {
yield ExerciseControlError(message: e.toString());
void _onQuantityChange(ExerciseControlQuantityChange event, Emitter<ExerciseControlState> emit) {
emit(ExerciseControlLoading());
if (event.step == step) {
exerciseRepository.setQuantity(event.quantity);
quantity = event.quantity;
controlList[step - 1].quantity = quantity;
}
emit(ExerciseControlReady());
}
void _onQuantityUnitChange(ExerciseControlUnitQuantityChange event, Emitter<ExerciseControlState> emit) {
emit(ExerciseControlLoading());
print("event step ${event.step} quantity ${event.quantity}");
if (event.step == step) {
this.unitQuantity = event.quantity;
exerciseRepository.setUnitQuantity(event.quantity);
unitQuantity = event.quantity;
quantity = calculateQuantityByUnitQuantity().toDouble();
exerciseRepository.setQuantity(quantity);
controlList[step - 1].unitQuantity = event.quantity;
controlList[step - 1].quantity = quantity;
}
emit(ExerciseControlReady());
}
void _onSubmit(ExerciseControlSubmit event, Emitter<ExerciseControlState> emit) async {
emit(ExerciseControlLoading());
if (event.step == step) {
step++;
scrollOffset = step * 400.0;
if (exerciseRepository.exercise!.quantity == null) {
exerciseRepository.setQuantity(quantity);
}
exerciseRepository.end = DateTime.now();
await exerciseRepository.addExercise();
step <= 3 ? timerBloc.add(TimerStart(duration: 300)) : timerBloc.add(TimerEnd(duration: 300));
}
emit(ExerciseControlReady());
}
double calculate1RM({bool percent75 = true}) {