WT 1.1.26+3 bloc migration
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
import 'dart:async';
|
||||
import 'dart:collection';
|
||||
|
||||
import 'package:aitrainer_app/bloc/menu/menu_bloc.dart';
|
||||
@@ -30,7 +29,153 @@ class TestSetExecuteBloc extends Bloc<TestSetExecuteEvent, TestSetExecuteState>
|
||||
|
||||
List<ExercisePlanDetail>? exercisePlanDetails;
|
||||
|
||||
TestSetExecuteBloc() : super(TestSetExecuteInitial());
|
||||
TestSetExecuteBloc() : super(TestSetExecuteInitial()) {
|
||||
on<TestSetExecuteLoad>(_onLoad);
|
||||
on<TestSetExecuteDeleteActive>(_onDeleteActive);
|
||||
on<TestSetExecuteDeleteAllActive>(_onDeleteAllActive);
|
||||
on<TestSetExecuteExerciseFinished>(_onExerciseFinished);
|
||||
on<TestSetExecuteNewExercise>(_onNewExercise);
|
||||
on<TestSetExecuteDeleteExercise>(_onDeleteExercise);
|
||||
on<TestSetExecuteFinish>(_onFinish);
|
||||
}
|
||||
|
||||
void _onLoad(TestSetExecuteLoad event, Emitter<TestSetExecuteState> emit) {
|
||||
emit(TestSetExecuteLoading());
|
||||
initExercisePlan();
|
||||
if (exerciseTypeId != null) {
|
||||
int step = 0;
|
||||
if (exercisePlanDetails != null) {
|
||||
exercisePlanDetails!.forEach((element) {
|
||||
if (element.exerciseTypeId == this.exerciseTypeId) {
|
||||
scrollOffset = (step * 85).toDouble() + 10;
|
||||
}
|
||||
step++;
|
||||
});
|
||||
}
|
||||
}
|
||||
emit(TestSetExecuteReady());
|
||||
}
|
||||
|
||||
void _onDeleteActive(TestSetExecuteDeleteActive event, Emitter<TestSetExecuteState> emit) async {
|
||||
emit(TestSetExecuteLoading());
|
||||
print("Delete: ${exercisePlan!.type} paralellTest: $paralellTest");
|
||||
if (exercisePlan != null && ExerciseAbility.mini_test_set.equalsStringTo(exercisePlan!.type!)) {
|
||||
exercisePlan = null;
|
||||
if (exercisePlanDetails != null) {
|
||||
exercisePlanDetails!.removeRange(0, exercisePlanDetails!.length - 1);
|
||||
}
|
||||
await Cache().deleteActiveExercisePlan();
|
||||
}
|
||||
emit(TestSetExecuteReady());
|
||||
}
|
||||
|
||||
void _onDeleteAllActive(TestSetExecuteDeleteAllActive event, Emitter<TestSetExecuteState> emit) async {
|
||||
emit(TestSetExecuteLoading());
|
||||
if (exercisePlan != null) {
|
||||
print("DeleteAll Test Set: ${exercisePlan!.type}");
|
||||
exercisePlan = null;
|
||||
if (exercisePlanDetails != null) {
|
||||
exercisePlanDetails!.removeRange(0, exercisePlanDetails!.length - 1);
|
||||
}
|
||||
await Cache().deleteActiveExercisePlan();
|
||||
}
|
||||
emit(TestSetExecuteReady());
|
||||
}
|
||||
|
||||
void _onExerciseFinished(TestSetExecuteExerciseFinished event, Emitter<TestSetExecuteState> emit) {
|
||||
emit(TestSetExecuteLoading());
|
||||
exercisePlanDetails!.forEach((element) {
|
||||
if (element.exerciseTypeId == event.exerciseTypeId) {
|
||||
element.repeats = event.quantity.toInt();
|
||||
element.weightEquation = event.unitQuantity.toString();
|
||||
if (element.exercises == null) {
|
||||
element.exercises = [];
|
||||
}
|
||||
final Exercise exercise = Exercise();
|
||||
exercise.customerId = Cache().userLoggedIn!.customerId!;
|
||||
exercise.exerciseTypeId = event.exerciseTypeId;
|
||||
exercise.quantity = event.quantity;
|
||||
exercise.unit = element.exerciseType!.unit;
|
||||
exercise.unitQuantity = event.unitQuantity;
|
||||
exercise.dateAdd = DateTime.now();
|
||||
element.exercises!.add(exercise);
|
||||
setPlanDetailState(element);
|
||||
}
|
||||
});
|
||||
Cache().saveActiveExercisePlan(exercisePlan!, exercisePlanDetails!);
|
||||
if (this.isDone100Percent()) {
|
||||
add(TestSetExecuteFinish());
|
||||
} else {
|
||||
emit(TestSetExecuteReady());
|
||||
}
|
||||
emit(TestSetExecuteReady());
|
||||
}
|
||||
|
||||
void _onNewExercise(TestSetExecuteNewExercise event, Emitter<TestSetExecuteState> emit) async {
|
||||
emit(TestSetExecuteLoading());
|
||||
if (exercisePlan == null) {
|
||||
exercisePlan = ExercisePlan(Cache().userLoggedIn!.name! + " Custom Test", Cache().userLoggedIn!.customerId!);
|
||||
exercisePlan!.private = true;
|
||||
exercisePlan!.dateAdd = DateTime.now();
|
||||
exercisePlan!.type = ExerciseAbility.paralell_test.enumToString();
|
||||
ExercisePlan savedExercisePlan = await ExercisePlanApi().saveExercisePlan(exercisePlan!);
|
||||
exercisePlan = savedExercisePlan;
|
||||
exercisePlanDetails = [];
|
||||
}
|
||||
|
||||
if (!this.existsInPlanDetails(event.exerciseTypeId)) {
|
||||
ExercisePlanDetail exercisePlanDetail = ExercisePlanDetail(event.exerciseTypeId);
|
||||
if (exercisePlan!.exercisePlanId != null) {
|
||||
exercisePlanDetail.exercisePlanId = exercisePlan!.exercisePlanId!;
|
||||
}
|
||||
final ExerciseType exerciseType = Cache().getExerciseTypeById(event.exerciseTypeId)!;
|
||||
|
||||
exercisePlanDetail.serie = exerciseType.unitQuantityUnit == null ? 1 : 4;
|
||||
exercisePlanDetail.exerciseType = exerciseType;
|
||||
exercisePlanDetail.exerciseTypeId = event.exerciseTypeId;
|
||||
ExercisePlanDetail savedDetail = await ExercisePlanApi().saveExercisePlanDetail(exercisePlanDetail);
|
||||
exercisePlanDetail.exercisePlanDetailId = savedDetail.exercisePlanDetailId;
|
||||
exercisePlanDetail.state = ExercisePlanDetailState.start;
|
||||
exercisePlanDetail.exercises = [];
|
||||
if (exercisePlanDetails == null) {
|
||||
exercisePlanDetails = [];
|
||||
}
|
||||
exercisePlanDetails!.add(exercisePlanDetail);
|
||||
await Cache().saveActiveExercisePlan(exercisePlan!, exercisePlanDetails!);
|
||||
paralellTest = true;
|
||||
}
|
||||
emit(TestSetExecuteReady());
|
||||
}
|
||||
|
||||
void _onDeleteExercise(TestSetExecuteDeleteExercise event, Emitter<TestSetExecuteState> emit) {
|
||||
emit(TestSetExecuteLoading());
|
||||
ExercisePlanDetail? deleteDetail;
|
||||
if (exercisePlanDetails != null) {
|
||||
exercisePlanDetails!.forEach((element) {
|
||||
if (element.exerciseTypeId == event.exerciseTypeId) {
|
||||
deleteDetail = element;
|
||||
}
|
||||
});
|
||||
if (deleteDetail != null) {
|
||||
exercisePlanDetails!.remove(deleteDetail);
|
||||
if (exercisePlanDetails!.isEmpty) {
|
||||
exercisePlan = null;
|
||||
exercisePlanDetails = null;
|
||||
Cache().deleteActiveExercisePlan();
|
||||
}
|
||||
}
|
||||
}
|
||||
emit(TestSetExecuteReady());
|
||||
}
|
||||
|
||||
void _onFinish(TestSetExecuteFinish event, Emitter<TestSetExecuteState> emit) {
|
||||
emit(TestSetExecuteLoading());
|
||||
Cache().deleteActiveExercisePlan();
|
||||
isDone100 = isDone100Percent();
|
||||
// Animation
|
||||
// Home
|
||||
emit(TestSetExecuteReady());
|
||||
}
|
||||
|
||||
void setExerciseTypeId(int id) => exerciseTypeId = id;
|
||||
|
||||
@@ -59,135 +204,6 @@ class TestSetExecuteBloc extends Bloc<TestSetExecuteEvent, TestSetExecuteState>
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Stream<TestSetExecuteState> mapEventToState(
|
||||
TestSetExecuteEvent event,
|
||||
) async* {
|
||||
try {
|
||||
if (event is TestSetExecuteLoad) {
|
||||
yield TestSetExecuteLoading();
|
||||
initExercisePlan();
|
||||
if (exerciseTypeId != null) {
|
||||
int step = 0;
|
||||
if (exercisePlanDetails != null) {
|
||||
exercisePlanDetails!.forEach((element) {
|
||||
if (element.exerciseTypeId == this.exerciseTypeId) {
|
||||
scrollOffset = (step * 85).toDouble() + 10;
|
||||
}
|
||||
step++;
|
||||
});
|
||||
}
|
||||
}
|
||||
yield TestSetExecuteReady();
|
||||
} else if (event is TestSetExecuteDeleteActive) {
|
||||
print("Delete: ${exercisePlan!.type} paralellTest: $paralellTest");
|
||||
if (exercisePlan != null && ExerciseAbility.mini_test_set.equalsStringTo(exercisePlan!.type!)) {
|
||||
exercisePlan = null;
|
||||
if (exercisePlanDetails != null) {
|
||||
exercisePlanDetails!.removeRange(0, exercisePlanDetails!.length - 1);
|
||||
}
|
||||
await Cache().deleteActiveExercisePlan();
|
||||
}
|
||||
} else if (event is TestSetExecuteDeleteAllActive) {
|
||||
if (exercisePlan != null) {
|
||||
print("DeleteAll Test Set: ${exercisePlan!.type}");
|
||||
exercisePlan = null;
|
||||
if (exercisePlanDetails != null) {
|
||||
exercisePlanDetails!.removeRange(0, exercisePlanDetails!.length - 1);
|
||||
}
|
||||
await Cache().deleteActiveExercisePlan();
|
||||
}
|
||||
} else if (event is TestSetExecuteExerciseFinished) {
|
||||
yield TestSetExecuteLoading();
|
||||
exercisePlanDetails!.forEach((element) {
|
||||
if (element.exerciseTypeId == event.exerciseTypeId) {
|
||||
element.repeats = event.quantity.toInt();
|
||||
element.weightEquation = event.unitQuantity.toString();
|
||||
if (element.exercises == null) {
|
||||
element.exercises = [];
|
||||
}
|
||||
final Exercise exercise = Exercise();
|
||||
exercise.customerId = Cache().userLoggedIn!.customerId!;
|
||||
exercise.exerciseTypeId = event.exerciseTypeId;
|
||||
exercise.quantity = event.quantity;
|
||||
exercise.unit = element.exerciseType!.unit;
|
||||
exercise.unitQuantity = event.unitQuantity;
|
||||
exercise.dateAdd = DateTime.now();
|
||||
element.exercises!.add(exercise);
|
||||
setPlanDetailState(element);
|
||||
}
|
||||
});
|
||||
Cache().saveActiveExercisePlan(exercisePlan!, exercisePlanDetails!);
|
||||
if (this.isDone100Percent()) {
|
||||
add(TestSetExecuteFinish());
|
||||
} else {
|
||||
yield TestSetExecuteReady();
|
||||
}
|
||||
} else if (event is TestSetExecuteNewExercise) {
|
||||
yield TestSetExecuteLoading();
|
||||
if (exercisePlan == null) {
|
||||
exercisePlan = ExercisePlan(Cache().userLoggedIn!.name! + " Custom Test", Cache().userLoggedIn!.customerId!);
|
||||
exercisePlan!.private = true;
|
||||
exercisePlan!.dateAdd = DateTime.now();
|
||||
exercisePlan!.type = ExerciseAbility.paralell_test.enumToString();
|
||||
ExercisePlan savedExercisePlan = await ExercisePlanApi().saveExercisePlan(exercisePlan!);
|
||||
exercisePlan = savedExercisePlan;
|
||||
exercisePlanDetails = [];
|
||||
}
|
||||
|
||||
if (!this.existsInPlanDetails(event.exerciseTypeId)) {
|
||||
ExercisePlanDetail exercisePlanDetail = ExercisePlanDetail(event.exerciseTypeId);
|
||||
if (exercisePlan!.exercisePlanId != null) {
|
||||
exercisePlanDetail.exercisePlanId = exercisePlan!.exercisePlanId!;
|
||||
}
|
||||
final ExerciseType exerciseType = Cache().getExerciseTypeById(event.exerciseTypeId)!;
|
||||
|
||||
exercisePlanDetail.serie = exerciseType.unitQuantityUnit == null ? 1 : 4;
|
||||
exercisePlanDetail.exerciseType = exerciseType;
|
||||
exercisePlanDetail.exerciseTypeId = event.exerciseTypeId;
|
||||
ExercisePlanDetail savedDetail = await ExercisePlanApi().saveExercisePlanDetail(exercisePlanDetail);
|
||||
exercisePlanDetail.exercisePlanDetailId = savedDetail.exercisePlanDetailId;
|
||||
exercisePlanDetail.state = ExercisePlanDetailState.start;
|
||||
exercisePlanDetail.exercises = [];
|
||||
if (exercisePlanDetails == null) {
|
||||
exercisePlanDetails = [];
|
||||
}
|
||||
exercisePlanDetails!.add(exercisePlanDetail);
|
||||
await Cache().saveActiveExercisePlan(exercisePlan!, exercisePlanDetails!);
|
||||
paralellTest = true;
|
||||
}
|
||||
yield TestSetExecuteReady();
|
||||
} else if (event is TestSetExecuteDeleteExercise) {
|
||||
yield TestSetExecuteLoading();
|
||||
ExercisePlanDetail? deleteDetail;
|
||||
if (exercisePlanDetails != null) {
|
||||
exercisePlanDetails!.forEach((element) {
|
||||
if (element.exerciseTypeId == event.exerciseTypeId) {
|
||||
deleteDetail = element;
|
||||
}
|
||||
});
|
||||
if (deleteDetail != null) {
|
||||
exercisePlanDetails!.remove(deleteDetail);
|
||||
if (exercisePlanDetails!.isEmpty) {
|
||||
exercisePlan = null;
|
||||
exercisePlanDetails = null;
|
||||
Cache().deleteActiveExercisePlan();
|
||||
}
|
||||
}
|
||||
}
|
||||
yield TestSetExecuteReady();
|
||||
} else if (event is TestSetExecuteFinish) {
|
||||
Cache().deleteActiveExercisePlan();
|
||||
isDone100 = isDone100Percent();
|
||||
// Animation
|
||||
// Home
|
||||
yield TestSetExecuteFinished();
|
||||
}
|
||||
} on Exception catch (e) {
|
||||
yield TestSetExecuteError(message: e.toString());
|
||||
}
|
||||
}
|
||||
|
||||
bool hasBegun() {
|
||||
if (exercisePlanDetails == null ||
|
||||
exercisePlanDetails!.isEmpty ||
|
||||
|
||||
Reference in New Issue
Block a user