WT1.1.10 compact test, paralell test

This commit is contained in:
bossanyit
2021-03-25 21:54:18 +01:00
parent 2e0d7fc37d
commit f724737ea3
65 changed files with 5250 additions and 749 deletions
@@ -0,0 +1,69 @@
import 'dart:async';
import 'package:aitrainer_app/bloc/test_set_execute/test_set_execute_bloc.dart';
import 'package:aitrainer_app/model/cache.dart';
import 'package:aitrainer_app/model/exercise.dart';
import 'package:aitrainer_app/model/exercise_plan_detail.dart';
import 'package:aitrainer_app/model/exercise_type.dart';
import 'package:aitrainer_app/repository/exercise_repository.dart';
import 'package:bloc/bloc.dart';
import 'package:equatable/equatable.dart';
part 'test_set_control_event.dart';
part 'test_set_control_state.dart';
class TestSetControlBloc extends Bloc<TestSetControlEvent, TestSetControlState> {
final ExercisePlanDetail exercisePlanDetail;
final TestSetExecuteBloc executeBloc;
final ExerciseType exerciseType;
final ExerciseRepository exerciseRepository = ExerciseRepository();
TestSetControlBloc({this.exercisePlanDetail, this.executeBloc, this.exerciseType}) : super(TestSetControlInitial()) {
initBloc();
}
void initBloc() {
if (exercisePlanDetail.exerciseType.unitQuantity != null) {
oneRepMax = executeBloc.calculate1RM(exercisePlanDetail.exercises.last.unitQuantity, exercisePlanDetail.exercises.last.quantity);
initQuantity = 12;
quantity = initQuantity;
initUnitQuantity = oneRepMax * 0.75;
unitQuantity = initUnitQuantity;
}
step = exercisePlanDetail.exercises.length;
exerciseRepository.customer = Cache().userLoggedIn;
exerciseRepository.exerciseType = exerciseType;
}
double initQuantity;
double initUnitQuantity;
double quantity;
double unitQuantity;
double oneRepMax;
int step;
@override
Stream<TestSetControlState> mapEventToState(
TestSetControlEvent event,
) async* {
try {
if (event is TestSetControlQuantityChange) {
quantity = event.quantity;
} else if (event is TestSetControlUnitQuantityChange) {
unitQuantity = event.quantity;
} else if (event is TestSetControlSubmit) {
final Exercise exercise = Exercise();
exercise.quantity = quantity;
exercise.unit = exerciseType.unit;
exercise.unitQuantity = unitQuantity;
exercise.dateAdd = DateTime.now();
exerciseRepository.exercise = exercise;
await exerciseRepository.addExercise();
executeBloc.add(
TestSetExecuteExerciseFinished(exerciseTypeId: exerciseType.exerciseTypeId, quantity: quantity, unitQuantity: unitQuantity));
}
} on Exception catch (e) {
yield TestSetControlError(message: e.toString());
}
}
}
@@ -0,0 +1,32 @@
part of 'test_set_control_bloc.dart';
abstract class TestSetControlEvent extends Equatable {
const TestSetControlEvent();
@override
List<Object> get props => [];
}
class TestSetControlLoad extends TestSetControlEvent {
const TestSetControlLoad();
}
class TestSetControlQuantityChange extends TestSetControlEvent {
final double quantity;
const TestSetControlQuantityChange({this.quantity});
@override
List<Object> get props => [quantity];
}
class TestSetControlUnitQuantityChange extends TestSetControlEvent {
final double quantity;
const TestSetControlUnitQuantityChange({this.quantity});
@override
List<Object> get props => [quantity];
}
class TestSetControlSubmit extends TestSetControlEvent {
const TestSetControlSubmit();
}
@@ -0,0 +1,28 @@
part of 'test_set_control_bloc.dart';
abstract class TestSetControlState extends Equatable {
const TestSetControlState();
@override
List<Object> get props => [];
}
class TestSetControlInitial extends TestSetControlState {
const TestSetControlInitial();
}
class TestSetControlLoading extends TestSetControlState {
const TestSetControlLoading();
}
class TestSetControlReady extends TestSetControlState {
const TestSetControlReady();
}
class TestSetControlError extends TestSetControlState {
final String message;
const TestSetControlError({this.message});
@override
List<Object> get props => [message];
}