WT 1.1.26+3 bloc migration
This commit is contained in:
@@ -1,6 +1,4 @@
|
||||
import 'dart:async';
|
||||
import 'dart:collection';
|
||||
|
||||
import 'package:aitrainer_app/bloc/menu/menu_bloc.dart';
|
||||
import 'package:aitrainer_app/model/cache.dart';
|
||||
import 'package:aitrainer_app/model/exercise_ability.dart';
|
||||
@@ -32,9 +30,16 @@ class TestSetEditBloc extends Bloc<TestSetEditEvent, TestSetEditState> {
|
||||
final HashMap<int, List<ExerciseType>?> _displayPlanDetails = HashMap();
|
||||
int? sliderIndex;
|
||||
|
||||
TestSetEditBloc(
|
||||
{required this.templateName, required this.templateNameTranslation, required this.workoutTreeRepository, required this.menuBloc})
|
||||
TestSetEditBloc({required this.templateName, required this.templateNameTranslation, required this.workoutTreeRepository, required this.menuBloc})
|
||||
: super(TestSetEditInitial()) {
|
||||
this._init();
|
||||
on<TestSetEditChangeExerciseType>(_onChangeExerciseType);
|
||||
on<TestSetEditDeleteExerciseType>(_onDeleteExerciseType);
|
||||
on<TestSetEditAddExerciseType>(_onAddExerciseType);
|
||||
on<TestSetEditSubmit>(_onSubmit);
|
||||
}
|
||||
|
||||
void _init() {
|
||||
if (Cache().exercisePlanTemplates.isNotEmpty) {
|
||||
Cache().exercisePlanTemplates.forEach((element) {
|
||||
final ExercisePlanTemplate template = element as ExercisePlanTemplate;
|
||||
@@ -65,60 +70,56 @@ class TestSetEditBloc extends Bloc<TestSetEditEvent, TestSetEditState> {
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Stream<TestSetEditState> mapEventToState(TestSetEditEvent event) async* {
|
||||
try {
|
||||
if (event is TestSetEditChangeExerciseType) {
|
||||
yield TestSetEditLoading();
|
||||
ExerciseType? exerciseType;
|
||||
if (_exercisePlanDetails[event.indexKey] == null) {
|
||||
exerciseType = displayPlanDetails[event.indexKey][0];
|
||||
} else {
|
||||
exerciseType = displayPlanDetails[event.indexKey][event.index];
|
||||
}
|
||||
_exercisePlanDetails[event.indexKey] = exerciseType;
|
||||
this.sliderIndex = event.index;
|
||||
yield TestSetEditReady();
|
||||
} else if (event is TestSetEditDeleteExerciseType) {
|
||||
yield TestSetEditLoading();
|
||||
_exercisePlanDetails[event.indexKey] = null;
|
||||
|
||||
yield TestSetEditReady();
|
||||
} else if (event is TestSetEditAddExerciseType) {
|
||||
yield TestSetEditLoading();
|
||||
ExerciseType exerciseType = displayPlanDetails[event.indexKey][0];
|
||||
_exercisePlanDetails[event.indexKey] = exerciseType;
|
||||
yield TestSetEditReady();
|
||||
} else if (event is TestSetEditSubmit) {
|
||||
yield TestSetEditLoading();
|
||||
ExercisePlan exercisePlan = ExercisePlan(templateNameTranslation, Cache().userLoggedIn!.customerId!);
|
||||
exercisePlan.private = true;
|
||||
exercisePlan.type = ExerciseAbility.mini_test_set.enumToString();
|
||||
exercisePlan.dateAdd = DateTime.now();
|
||||
ExercisePlan savedExercisePlan = await ExercisePlanApi().saveExercisePlan(exercisePlan);
|
||||
|
||||
List<ExercisePlanDetail> details = [];
|
||||
for (var entry in _exercisePlanDetails.entries) {
|
||||
if (entry.value != null) {
|
||||
ExercisePlanDetail exercisePlanDetail = ExercisePlanDetail(entry.value!.exerciseTypeId);
|
||||
exercisePlanDetail.exercisePlanId = savedExercisePlan.exercisePlanId!;
|
||||
exercisePlanDetail.serie = 1;
|
||||
|
||||
ExercisePlanDetail savedDetail = await ExercisePlanApi().saveExercisePlanDetail(exercisePlanDetail);
|
||||
exercisePlanDetail.exercisePlanDetailId = savedDetail.exercisePlanDetailId;
|
||||
exercisePlanDetail.exercises = [];
|
||||
details.add(exercisePlanDetail);
|
||||
}
|
||||
}
|
||||
Cache().saveActiveExercisePlan(exercisePlan, details);
|
||||
Track().track(TrackingEvent.test_set_edit, eventValue: templateName);
|
||||
yield TestSetEditSaved();
|
||||
} else if (event is TestSetEditAddError) {
|
||||
yield TestSetEditError(message: event.message);
|
||||
}
|
||||
} on Exception catch (e) {
|
||||
yield TestSetEditError(message: e.toString());
|
||||
void _onChangeExerciseType(TestSetEditChangeExerciseType event, Emitter<TestSetEditState> emit) {
|
||||
emit(TestSetEditLoading());
|
||||
ExerciseType? exerciseType;
|
||||
if (_exercisePlanDetails[event.indexKey] == null) {
|
||||
exerciseType = displayPlanDetails[event.indexKey][0];
|
||||
} else {
|
||||
exerciseType = displayPlanDetails[event.indexKey][event.index];
|
||||
}
|
||||
_exercisePlanDetails[event.indexKey] = exerciseType;
|
||||
this.sliderIndex = event.index;
|
||||
emit(TestSetEditReady());
|
||||
}
|
||||
|
||||
void _onDeleteExerciseType(TestSetEditDeleteExerciseType event, Emitter<TestSetEditState> emit) {
|
||||
emit(TestSetEditLoading());
|
||||
_exercisePlanDetails[event.indexKey] = null;
|
||||
emit(TestSetEditReady());
|
||||
}
|
||||
|
||||
void _onAddExerciseType(TestSetEditAddExerciseType event, Emitter<TestSetEditState> emit) {
|
||||
emit(TestSetEditLoading());
|
||||
ExerciseType exerciseType = displayPlanDetails[event.indexKey][0];
|
||||
_exercisePlanDetails[event.indexKey] = exerciseType;
|
||||
emit(TestSetEditReady());
|
||||
}
|
||||
|
||||
void _onSubmit(TestSetEditSubmit event, Emitter<TestSetEditState> emit) async {
|
||||
emit(TestSetEditLoading());
|
||||
ExercisePlan exercisePlan = ExercisePlan(templateNameTranslation, Cache().userLoggedIn!.customerId!);
|
||||
exercisePlan.private = true;
|
||||
exercisePlan.type = ExerciseAbility.mini_test_set.enumToString();
|
||||
exercisePlan.dateAdd = DateTime.now();
|
||||
ExercisePlan savedExercisePlan = await ExercisePlanApi().saveExercisePlan(exercisePlan);
|
||||
|
||||
List<ExercisePlanDetail> details = [];
|
||||
for (var entry in _exercisePlanDetails.entries) {
|
||||
if (entry.value != null) {
|
||||
ExercisePlanDetail exercisePlanDetail = ExercisePlanDetail(entry.value!.exerciseTypeId);
|
||||
exercisePlanDetail.exercisePlanId = savedExercisePlan.exercisePlanId!;
|
||||
exercisePlanDetail.serie = 1;
|
||||
|
||||
ExercisePlanDetail savedDetail = await ExercisePlanApi().saveExercisePlanDetail(exercisePlanDetail);
|
||||
exercisePlanDetail.exercisePlanDetailId = savedDetail.exercisePlanDetailId;
|
||||
exercisePlanDetail.exercises = [];
|
||||
details.add(exercisePlanDetail);
|
||||
}
|
||||
}
|
||||
Cache().saveActiveExercisePlan(exercisePlan, details);
|
||||
Track().track(TrackingEvent.test_set_edit, eventValue: templateName);
|
||||
emit(TestSetEditSaved());
|
||||
}
|
||||
|
||||
List get exerciseTypes => this._exerciseTypes;
|
||||
|
||||
Reference in New Issue
Block a user