WT 1.1.11+4 bug fixes

This commit is contained in:
bossanyit
2021-04-12 18:51:50 +02:00
parent 10c8a0a2d8
commit db103a1015
12 changed files with 79 additions and 25 deletions
@@ -9,6 +9,14 @@ part 'exercise_control_event.dart';
part 'exercise_control_state.dart';
enum ExerciseTypeLocal { oneRepMax, endurance }
extension ExerciseTypeLocalExt on ExerciseTypeLocal {
String toStr() => this.toString().split(".").last;
bool equalsTo(ExerciseTypeLocal type) => this.toString() == type.toString();
bool equalsStringTo(String type) => this.toStr() == type;
}
class ExerciseControlBloc extends Bloc<ExerciseControlEvent, ExerciseControlState> {
final TimerBloc timerBloc;
final ExerciseRepository exerciseRepository;
@@ -26,16 +34,25 @@ class ExerciseControlBloc extends Bloc<ExerciseControlEvent, ExerciseControlStat
double? firstUnitQuantity; // unit quantity of the first test
double scrollOffset = 0;
late ExerciseTypeLocal exerciseTypeLocal;
@override
ExerciseControlBloc({required this.exerciseRepository, required this.readonly, required this.timerBloc})
: super(ExerciseControlInitial()) {
print("Exercise ${exerciseRepository.exercise!.toJson()}");
exerciseTypeLocal = ExerciseTypeLocal.oneRepMax;
oneRepQuantity = exerciseRepository.exercise!.quantity!;
if (oneRepQuantity > 25) {
exerciseTypeLocal = ExerciseTypeLocal.endurance;
}
oneRepUnitQuantity = exerciseRepository.exercise!.unitQuantity!;
initialRM = this.calculate1RM(percent75: false);
unitQuantity = this.calculate1RM(percent75: true).roundToDouble();
quantity = 12;
if (oneRepQuantity > 25) {
quantity = 35;
}
origQuantity = quantity;
exerciseRepository.setUnitQuantity(unitQuantity);
@@ -47,11 +64,12 @@ class ExerciseControlBloc extends Bloc<ExerciseControlEvent, ExerciseControlStat
@override
Stream<ExerciseControlState> mapEventToState(ExerciseControlEvent event) async* {
try {
if (event is ExerciseControlLoad) {
/* if (event is ExerciseControlLoad) {
yield ExerciseControlLoading();
step = 1;
yield ExerciseControlReady();
} else if (event is ExerciseControlQuantityChange) {
} else */
if (event is ExerciseControlQuantityChange) {
//yield ExerciseControlLoading();
if (event.step == step) {
exerciseRepository.setQuantity(event.quantity);
@@ -60,7 +78,7 @@ class ExerciseControlBloc extends Bloc<ExerciseControlEvent, ExerciseControlStat
//yield ExerciseControlReady();
} 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);
@@ -108,7 +126,12 @@ class ExerciseControlBloc extends Bloc<ExerciseControlEvent, ExerciseControlStat
print("Weight: $weight repeat: $repeat, $rmWendler, Oconner: $rmOconner");
double average = (rmWendler + rmOconner) / 2;
return percent75 ? average * 0.75 : average;
double serieQuantity = 0.75;
if (exerciseTypeLocal.equalsTo(ExerciseTypeLocal.endurance)) {
serieQuantity = 0.5;
}
return percent75 ? average * serieQuantity : average;
}
int calculateQuantityByUnitQuantity() {