WT 1.1.26+3 bloc migration

This commit is contained in:
Tibor Bossanyi (Freelancer)
2022-04-15 08:47:32 +02:00
parent 60df0bcf2d
commit 225172f950
47 changed files with 1527 additions and 1620 deletions
+129 -103
View File
@@ -1,4 +1,3 @@
import 'dart:async';
import 'package:aitrainer_app/repository/mautic_repository.dart';
import 'package:intl/intl.dart';
import 'package:aitrainer_app/main.dart';
@@ -56,11 +55,28 @@ class ExerciseNewBloc extends Bloc<ExerciseNewEvent, ExerciseNewState> with Logg
);
late int timerValue;
late ExerciseType exerciseType;
@override
ExerciseNewBloc(
{required this.exerciseRepository, required this.menuBloc, required this.customerRepository, required ExerciseType exerciseType})
ExerciseNewBloc({required this.exerciseRepository, required this.menuBloc, required this.customerRepository, required this.exerciseType})
: super(ExerciseNewInitial()) {
exerciseRepository.exerciseType = exerciseType;
this._load();
on<ExerciseNewQuantityChange>(_onQuantityChange);
on<ExerciseNewQuantityUnitChange>(_onQuantityUnitChange);
on<ExerciseNewWeightChange>(_onWeightChange);
on<ExerciseNewFitnessLevelChange>(_onFitnessLevelChange);
on<ExerciseNewBirthyearChange>(_onBirthyearChange);
on<ExerciseNewHeightChange>(_onHeightChange);
on<ExerciseNewSaveWeight>(_onSaveWeight);
on<ExerciseNewSizeChange>(_onSizeChange);
on<ExerciseNewSubmit>(_onSubmit);
on<ExerciseNewSubmitNoRegistration>(_onSubmitNoRegistration);
on<ExerciseNewBMIAnimate>(_onBMIAnimate);
on<ExerciseNewAddError>(_onAddError);
}
void _load() {
exerciseRepository.exerciseType = this.exerciseType;
exerciseRepository.setUnit(exerciseType.unit);
exerciseRepository.setUnitQuantity(unitQuantity);
exerciseRepository.setQuantity(quantity);
@@ -78,110 +94,120 @@ class ExerciseNewBloc extends Bloc<ExerciseNewEvent, ExerciseNewState> with Logg
}
}
void _onQuantityChange(ExerciseNewQuantityChange event, Emitter<ExerciseNewState> emit) {
emit(ExerciseNewLoading());
log("Event quantity " + event.quantity.toStringAsFixed(0));
this.setQuantity(event.quantity);
emit(ExerciseNewReady());
}
void _onQuantityUnitChange(ExerciseNewQuantityUnitChange event, Emitter<ExerciseNewState> emit) {
emit(ExerciseNewLoading());
log("Event quantityUnit " + event.quantity.toStringAsFixed(0));
exerciseRepository.setUnitQuantity(event.quantity);
unitQuantity = event.quantity;
emit(ExerciseNewReady());
}
void _onWeightChange(ExerciseNewWeightChange event, Emitter<ExerciseNewState> emit) {
emit(ExerciseNewLoading());
customerRepository.setWeight(event.value);
changedWeight = true;
weight = event.value;
getBMI();
getGoalBMI();
getBMR();
emit(ExerciseNewReady());
}
void _onFitnessLevelChange(ExerciseNewFitnessLevelChange event, Emitter<ExerciseNewState> emit) {
emit(ExerciseNewLoading());
customerRepository.setFitnessLevel(event.value);
fitnessLevel = event.value;
changedWeight = true;
getBMR();
emit(ExerciseNewReady());
}
void _onBirthyearChange(ExerciseNewBirthyearChange event, Emitter<ExerciseNewState> emit) {
emit(ExerciseNewLoading());
changedWeight = true;
customerRepository.setBirthYear(event.value.toInt());
birthYear = event.value;
emit(ExerciseNewReady());
}
void _onHeightChange(ExerciseNewHeightChange event, Emitter<ExerciseNewState> emit) {
emit(ExerciseNewLoading());
customerRepository.setHeight(event.value.toInt());
changedWeight = true;
height = event.value;
getBMI();
getGoalBMI();
getBMR();
emit(ExerciseNewReady());
}
void _onSaveWeight(ExerciseNewSaveWeight event, Emitter<ExerciseNewState> emit) {
emit(ExerciseNewLoading());
customerRepository.saveCustomer();
changedWeight = false;
this.changedSizes = false;
Cache().initBadges();
Track().track(TrackingEvent.sizes);
emit(ExerciseNewReady());
}
void _onSizeChange(ExerciseNewSizeChange event, Emitter<ExerciseNewState> emit) {
emit(ExerciseNewLoading());
this.changedSizes = true;
this.customerRepository.updateSizes(event.propertyName, event.value);
customerRepository.setCustomerProperty(event.propertyName, event.value);
emit(ExerciseNewReady());
}
void _onSubmit(ExerciseNewSubmit event, Emitter<ExerciseNewState> emit) async {
emit(ExerciseNewLoading());
if (quantity == -1 || unitQuantity == -1) {
emit(ExerciseNewReady());
throw Exception("Please type in a real number");
}
exerciseRepository.end = DateTime.now();
await exerciseRepository.addExercise();
if (!isInDebugMode) {
MauticRepository mauticRepository = MauticRepository(customerRepository: customerRepository);
await mauticRepository.sendMauticExercise();
}
menuBloc.add(MenuTreeDown(parent: 0));
Cache().initBadges();
Track().track(TrackingEvent.exercise_new, eventValue: exerciseRepository.exerciseType!.name);
emit(ExerciseNewReady());
}
void _onSubmitNoRegistration(ExerciseNewSubmitNoRegistration event, Emitter<ExerciseNewState> emit) async {
emit(ExerciseNewLoading());
exerciseRepository.addExerciseNoRegistration();
menuBloc.add(MenuTreeDown(parent: 0));
Track().track(TrackingEvent.exercise_new_no_registration, eventValue: exerciseRepository.exerciseType!.name);
emit(ExerciseNewReady());
}
void _onBMIAnimate(ExerciseNewBMIAnimate event, Emitter<ExerciseNewState> emit) async {
emit(ExerciseNewLoading());
emit(ExerciseNewReady());
}
void _onAddError(ExerciseNewAddError event, Emitter<ExerciseNewState> emit) async {
emit(ExerciseNewLoading());
emit(ExerciseNewReady());
}
void setQuantity(double quantity) {
this.quantity = quantity;
exerciseRepository.setQuantity(quantity);
}
@override
Stream<ExerciseNewState> mapEventToState(ExerciseNewEvent event) async* {
try {
if (event is ExerciseNewLoad) {
yield ExerciseNewLoading();
yield ExerciseNewReady();
} else if (event is ExerciseNewQuantityChange) {
yield ExerciseNewLoading();
log("Event quantity " + event.quantity.toStringAsFixed(0));
this.setQuantity(event.quantity);
yield ExerciseNewReady();
} else if (event is ExerciseNewQuantityUnitChange) {
yield ExerciseNewLoading();
log("Event quantityUnit " + event.quantity.toStringAsFixed(0));
exerciseRepository.setUnitQuantity(event.quantity);
unitQuantity = event.quantity;
yield ExerciseNewReady();
} else if (event is ExerciseNewWeightChange) {
yield ExerciseNewLoading();
customerRepository.setWeight(event.value);
changedWeight = true;
weight = event.value;
getBMI();
getGoalBMI();
getBMR();
yield ExerciseNewReady();
} else if (event is ExerciseNewFitnessLevelChange) {
yield ExerciseNewLoading();
customerRepository.setFitnessLevel(event.value);
fitnessLevel = event.value;
changedWeight = true;
getBMR();
yield ExerciseNewReady();
} else if (event is ExerciseNewBirthyearChange) {
yield ExerciseNewLoading();
changedWeight = true;
customerRepository.setBirthYear(event.value.toInt());
birthYear = event.value;
getBMR();
yield ExerciseNewReady();
} else if (event is ExerciseNewHeightChange) {
yield ExerciseNewLoading();
customerRepository.setHeight(event.value.toInt());
changedWeight = true;
height = event.value;
getBMI();
getGoalBMI();
getBMR();
yield ExerciseNewReady();
} else if (event is ExerciseNewSaveWeight) {
yield ExerciseNewLoading();
customerRepository.saveCustomer();
changedWeight = false;
this.changedSizes = false;
Cache().initBadges();
Track().track(TrackingEvent.sizes);
yield ExerciseNewReady();
} else if (event is ExerciseNewSizeChange) {
yield ExerciseNewLoading();
this.changedSizes = true;
this.customerRepository.updateSizes(event.propertyName, event.value);
customerRepository.setCustomerProperty(event.propertyName, event.value);
yield ExerciseNewReady();
} else if (event is ExerciseNewSubmit) {
yield ExerciseNewLoading();
if (quantity == -1 || unitQuantity == -1) {
yield ExerciseNewReady();
throw Exception("Please type in a real number");
}
exerciseRepository.end = DateTime.now();
await exerciseRepository.addExercise();
if (!isInDebugMode) {
MauticRepository mauticRepository = MauticRepository(customerRepository: customerRepository);
await mauticRepository.sendMauticExercise();
}
// exerciseRepository.initExercise();
menuBloc.add(MenuTreeDown(parent: 0));
Cache().initBadges();
Track().track(TrackingEvent.exercise_new, eventValue: exerciseRepository.exerciseType!.name);
yield ExerciseNewSaved();
} else if (event is ExerciseNewSubmitNoRegistration) {
yield ExerciseNewLoading();
exerciseRepository.addExerciseNoRegistration();
menuBloc.add(MenuTreeDown(parent: 0));
Track().track(TrackingEvent.exercise_new_no_registration, eventValue: exerciseRepository.exerciseType!.name);
yield ExerciseNewSaved();
} else if (event is ExerciseNewBMIAnimate) {
yield ExerciseNewLoading();
yield ExerciseNewReady();
} else if (event is ExerciseNewAddError) {
yield ExerciseNewLoading();
yield ExerciseNewError(message: event.message);
}
} on Exception catch (e) {
yield ExerciseNewError(message: e.toString());
}
}
double getBMI() {
if (weight == null || height == null || height == 0 || weight == 0) {
this.bmi = 0;