WT1.1.3 logo change, error fixes
This commit is contained in:
@@ -1,11 +1,13 @@
|
||||
import 'dart:async';
|
||||
import 'package:aitrainer_app/bloc/menu/menu_bloc.dart';
|
||||
import 'package:aitrainer_app/model/cache.dart';
|
||||
import 'package:aitrainer_app/model/exercise_ability.dart';
|
||||
import 'package:aitrainer_app/model/property.dart';
|
||||
import 'package:aitrainer_app/model/exercise_type.dart';
|
||||
import 'package:aitrainer_app/model/fitness_state.dart';
|
||||
import 'package:aitrainer_app/repository/customer_repository.dart';
|
||||
import 'package:aitrainer_app/repository/exercise_repository.dart';
|
||||
import 'package:aitrainer_app/service/logging.dart';
|
||||
import 'package:bloc/bloc.dart';
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:flurry/flurry.dart';
|
||||
@@ -18,7 +20,7 @@ import 'package:stop_watch_timer/stop_watch_timer.dart';
|
||||
part 'exercise_new_event.dart';
|
||||
part 'exercise_new_state.dart';
|
||||
|
||||
class ExerciseNewBloc extends Bloc<ExerciseNewEvent, ExerciseNewState> {
|
||||
class ExerciseNewBloc extends Bloc<ExerciseNewEvent, ExerciseNewState> with Logging {
|
||||
final ExerciseRepository exerciseRepository;
|
||||
final CustomerRepository customerRepository;
|
||||
final MenuBloc menuBloc;
|
||||
@@ -45,6 +47,7 @@ class ExerciseNewBloc extends Bloc<ExerciseNewEvent, ExerciseNewState> {
|
||||
double mediaWidth = 0;
|
||||
double mediaHeight = 0;
|
||||
bool isMan = true;
|
||||
String exerciseTask = "";
|
||||
|
||||
final StopWatchTimer stopWatchTimer = StopWatchTimer(
|
||||
isLapHours: false,
|
||||
@@ -54,8 +57,8 @@ class ExerciseNewBloc extends Bloc<ExerciseNewEvent, ExerciseNewState> {
|
||||
@override
|
||||
ExerciseNewBloc({this.exerciseRepository, this.menuBloc, this.customerRepository, ExerciseType exerciseType})
|
||||
: super(ExerciseNewInitial()) {
|
||||
exerciseRepository.exerciseType = exerciseType;
|
||||
exerciseRepository.setUnit(exerciseType.unit);
|
||||
exerciseRepository.setQuantity(quantity);
|
||||
exerciseRepository.setUnitQuantity(unitQuantity);
|
||||
exerciseRepository.exercise.exercisePlanDetailId = 0;
|
||||
exerciseRepository.start = DateTime.now();
|
||||
@@ -66,7 +69,38 @@ class ExerciseNewBloc extends Bloc<ExerciseNewEvent, ExerciseNewState> {
|
||||
fitnessLevel = customerRepository.customer.fitnessLevel;
|
||||
this.isMan = (customerRepository.customer.sex == "m");
|
||||
}
|
||||
stopWatchTimer.rawTime.listen((value) => timerValue = value);
|
||||
if (exerciseType.unit == "second") {
|
||||
stopWatchTimer.rawTime.listen((value) => {timerValue = value, this.setQuantity((value / 1000).toDouble())});
|
||||
}
|
||||
this.setExerciseTask(init: true);
|
||||
}
|
||||
|
||||
String setExerciseTask({bool init = false}) {
|
||||
if (this.exerciseRepository.exerciseType == null) {
|
||||
print("WTF, exerciseType is null");
|
||||
return "";
|
||||
}
|
||||
if (this.exerciseRepository.exerciseType.unit != "second") {
|
||||
if (menuBloc.ability.toString() == ExerciseAbility.oneRepMax.toString()) {
|
||||
this.exerciseTask = "Please take a relative bigger weight and repeat 12-20 times";
|
||||
if (init) {
|
||||
this.setQuantity(12);
|
||||
}
|
||||
} else if (this.exerciseRepository.exerciseType.isEndurance() &&
|
||||
menuBloc.ability.toString() == ExerciseAbility.endurance.toString() &&
|
||||
exerciseRepository.exerciseType.unitQuantity == "1") {
|
||||
this.exerciseTask = "Please take a medium weight and repeat 20-30 times";
|
||||
if (init) {
|
||||
this.setQuantity(20);
|
||||
}
|
||||
}
|
||||
}
|
||||
return this.exerciseTask;
|
||||
}
|
||||
|
||||
void setQuantity(double quantity) {
|
||||
this.quantity = quantity;
|
||||
exerciseRepository.setQuantity(quantity);
|
||||
}
|
||||
|
||||
void setMediaDimensions(double width, double height) {
|
||||
@@ -213,6 +247,37 @@ class ExerciseNewBloc extends Bloc<ExerciseNewEvent, ExerciseNewState> {
|
||||
}
|
||||
}
|
||||
|
||||
int getWeightCoordinate(isMan, {isTop = false, isLeft = false}) {
|
||||
int value = 0;
|
||||
this.manSizes.forEach((element) {
|
||||
if (element.propertyName == "Weight") {
|
||||
if (isTop == true) {
|
||||
value = element.top;
|
||||
} else if (isLeft == true) {
|
||||
value = element.left;
|
||||
}
|
||||
}
|
||||
});
|
||||
return value;
|
||||
}
|
||||
|
||||
Property getPropertyByName(String propertyName) {
|
||||
Property property;
|
||||
List<Property> sizes;
|
||||
if (customerRepository.sex == "Man") {
|
||||
sizes = this.manSizes;
|
||||
} else {
|
||||
sizes = this.womanSizes;
|
||||
}
|
||||
|
||||
sizes.forEach((element) {
|
||||
if (element.propertyName == propertyName) {
|
||||
property = element;
|
||||
}
|
||||
});
|
||||
return property;
|
||||
}
|
||||
|
||||
void updateSizes(String propertyName, double value) {
|
||||
List<Property> sizes;
|
||||
if (customerRepository.sex == "Man") {
|
||||
@@ -236,8 +301,8 @@ class ExerciseNewBloc extends Bloc<ExerciseNewEvent, ExerciseNewState> {
|
||||
yield ExerciseNewReady();
|
||||
} else if (event is ExerciseNewQuantityChange) {
|
||||
yield ExerciseNewLoading();
|
||||
exerciseRepository.setQuantity(event.quantity);
|
||||
quantity = event.quantity;
|
||||
log("Event quantity " + event.quantity.toStringAsFixed(0));
|
||||
this.setQuantity(event.quantity);
|
||||
yield ExerciseNewReady();
|
||||
} else if (event is ExerciseNewQuantityUnitChange) {
|
||||
yield ExerciseNewLoading();
|
||||
@@ -288,6 +353,7 @@ class ExerciseNewBloc extends Bloc<ExerciseNewEvent, ExerciseNewState> {
|
||||
menuBloc.add(MenuTreeDown(parent: 0));
|
||||
Cache().initBadges();
|
||||
Flurry.logEvent("newExercise");
|
||||
Flurry.logEvent("newExercise " + exerciseRepository.exerciseType.name);
|
||||
yield ExerciseNewReady();
|
||||
} else if (event is ExerciseNewBMIAnimate) {
|
||||
yield ExerciseNewLoading();
|
||||
@@ -342,19 +408,32 @@ class ExerciseNewBloc extends Bloc<ExerciseNewEvent, ExerciseNewState> {
|
||||
getBMI();
|
||||
}
|
||||
final double distortionWidth = mediaWidth / baseWidth;
|
||||
final double distortionHeight = mediaHeight / baseHeight;
|
||||
final double distortionHeight = distortionWidth - 0.02; //mediaHeight / baseHeight;
|
||||
/* log("Width: " +
|
||||
mediaWidth.toStringAsFixed(0) +
|
||||
" Height: " +
|
||||
mediaHeight.toStringAsFixed(0) +
|
||||
" BaseW: " +
|
||||
baseWidth.toStringAsFixed(0) +
|
||||
" BaseH: " +
|
||||
baseHeight.toStringAsFixed(0) +
|
||||
" DistW: " +
|
||||
distortionWidth.toStringAsFixed(2) +
|
||||
" DistH: " +
|
||||
distortionHeight.toStringAsFixed(2)); */
|
||||
|
||||
this.bmiAngle = (bmi * 90 / 25) - 90;
|
||||
if (bmi < 18.5) {
|
||||
goalBMI = 19;
|
||||
this.bmiTop = 99 * distortionHeight;
|
||||
this.bmiLeft = 77 * distortionWidth;
|
||||
bmiAngle = -62;
|
||||
} else if (bmi < 25 && 18.5 < bmi) {
|
||||
goalBMI = 27;
|
||||
} else if (bmi > 18.5 && bmi < 25) {
|
||||
goalBMI = this.bmi;
|
||||
this.bmiTop = 48 * distortionHeight;
|
||||
this.bmiLeft = 130 * distortionWidth;
|
||||
bmiAngle = -23;
|
||||
} else if (bmi < 30 && 24.9 < bmi) {
|
||||
} else if (bmi < 30 && bmi > 24.9) {
|
||||
goalBMI = 24;
|
||||
this.bmiTop = 40.0 * distortionHeight;
|
||||
this.bmiLeft = 184.0 * distortionWidth;
|
||||
@@ -376,9 +455,4 @@ class ExerciseNewBloc extends Bloc<ExerciseNewEvent, ExerciseNewState> {
|
||||
|
||||
return goalBMI;
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() async {
|
||||
await stopWatchTimer.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user