WT 1.1.7+2 SearchBar, Timer for ExerciseControl

This commit is contained in:
bossanyit
2021-02-28 17:03:47 +01:00
parent cf348cebb0
commit 6bea5e70e1
77 changed files with 1581 additions and 1008 deletions
@@ -1,4 +1,5 @@
import 'dart:async';
import 'package:aitrainer_app/bloc/timer/timer_bloc.dart';
import 'package:aitrainer_app/repository/exercise_repository.dart';
import 'package:bloc/bloc.dart';
import 'package:equatable/equatable.dart';
@@ -9,6 +10,7 @@ part 'exercise_control_event.dart';
part 'exercise_control_state.dart';
class ExerciseControlBloc extends Bloc<ExerciseControlEvent, ExerciseControlState> {
final TimerBloc timerBloc;
final ExerciseRepository exerciseRepository;
final bool readonly;
final double percentToCalculate;
@@ -25,7 +27,8 @@ class ExerciseControlBloc extends Bloc<ExerciseControlEvent, ExerciseControlStat
double scrollOffset = 0;
@override
ExerciseControlBloc({this.exerciseRepository, this.readonly, this.percentToCalculate}) : super(ExerciseControlInitial()) {
ExerciseControlBloc({this.exerciseRepository, this.readonly, this.percentToCalculate, @required this.timerBloc})
: super(ExerciseControlInitial()) {
initialRM = this.calculate1RM(percent75: false);
unitQuantity = this.calculate1RM(percent75: true).roundToDouble();
quantity = percentToCalculate == 0.75 ? 12 : 30;
@@ -34,6 +37,7 @@ class ExerciseControlBloc extends Bloc<ExerciseControlEvent, ExerciseControlStat
exerciseRepository.setUnitQuantity(unitQuantity);
exerciseRepository.setQuantity(quantity);
print("init quantity: " + quantity.toString());
timerBloc.add(TimerStart(duration: 300));
}
@override
@@ -78,6 +82,7 @@ class ExerciseControlBloc extends Bloc<ExerciseControlEvent, ExerciseControlStat
exerciseRepository.setQuantity(quantity);
exerciseRepository.exercise.exerciseId = null;
step <= 3 ? timerBloc.add(TimerStart(duration: 300)) : timerBloc.add(TimerEnd());
}
yield ExerciseControlReady();
}
@@ -109,12 +114,7 @@ class ExerciseControlBloc extends Bloc<ExerciseControlEvent, ExerciseControlStat
final double weight = exerciseRepository.exercise.unitQuantity;
final double repeatWendler = (rmWendler - weight) / 0.0333 / weight;
final double repeatOconner = (rmOconner / weight - 1) * 40;
print("Weight: " +
weight.toString() +
" repeatWendler: " +
repeatWendler.toStringAsFixed(0) +
" repeat Oconner: " +
repeatOconner.toStringAsFixed(0));
return repeatWendler;
print("Weight: $weight repeatWendler: $repeatWendler repeat Oconner: $repeatOconner");
return unitQuantity > 100 ? (repeatOconner + repeatWendler) / 2 : repeatWendler;
}
}