WT 1.1.26+3 bloc migration
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user