WT1.1.10 compact test, paralell test
This commit is contained in:
@@ -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];
|
||||
}
|
||||
Reference in New Issue
Block a user