WT1.1.0+40 Premium feature settings
This commit is contained in:
@@ -4,6 +4,7 @@ import 'package:aitrainer_app/model/cache.dart';
|
||||
import 'package:aitrainer_app/model/result.dart';
|
||||
import 'package:aitrainer_app/repository/exercise_repository.dart';
|
||||
import 'package:aitrainer_app/repository/exercise_result_repository.dart';
|
||||
import 'package:aitrainer_app/service/logging.dart';
|
||||
import 'package:bloc/bloc.dart';
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:flutter_form_bloc/flutter_form_bloc.dart';
|
||||
@@ -12,7 +13,7 @@ import 'package:health/health.dart';
|
||||
part 'result_event.dart';
|
||||
part 'result_state.dart';
|
||||
|
||||
class ResultBloc extends Bloc<ResultEvent, ResultState> {
|
||||
class ResultBloc extends Bloc<ResultEvent, ResultState> with Logging {
|
||||
final ExerciseResultRepository resultRepository;
|
||||
final ExerciseRepository exerciseRepository;
|
||||
List<HealthDataPoint> _healthDataList = List();
|
||||
@@ -46,6 +47,7 @@ class ResultBloc extends Bloc<ResultEvent, ResultState> {
|
||||
|
||||
await _fetchHealthData();
|
||||
_matchExerciseData();
|
||||
await resultRepository.saveExerciseResults();
|
||||
yield ResultReady();
|
||||
}
|
||||
} on Exception catch (ex) {
|
||||
@@ -55,25 +57,28 @@ class ResultBloc extends Bloc<ResultEvent, ResultState> {
|
||||
|
||||
void _matchExerciseData() {
|
||||
resultRepository.getResults().forEach((element) {
|
||||
element.dateFrom = startTime;
|
||||
element.dateTo = endTime;
|
||||
element.exerciseId = exerciseRepository.actualExerciseList[0].exerciseId;
|
||||
switch (element.item) {
|
||||
case ResultItem.bpm_avg:
|
||||
element.data = _gethHealthDataPointValueAvg(HealthDataType.HEART_RATE).toStringAsFixed(0);
|
||||
element.data = _gethHealthDataPointValueAvg(HealthDataType.HEART_RATE);
|
||||
break;
|
||||
case ResultItem.bpm_min:
|
||||
element.data = element.data = _gethHealthDataPointValueMin(HealthDataType.HEART_RATE).toStringAsFixed(0);
|
||||
element.data = element.data = _gethHealthDataPointValueMin(HealthDataType.HEART_RATE);
|
||||
break;
|
||||
case ResultItem.bpm_max:
|
||||
element.data = element.data = _gethHealthDataPointValueMax(HealthDataType.HEART_RATE).toStringAsFixed(0);
|
||||
element.data = element.data = _gethHealthDataPointValueMax(HealthDataType.HEART_RATE);
|
||||
break;
|
||||
case ResultItem.calorie:
|
||||
element.data = _gethHealthDataPointValueSum(HealthDataType.ACTIVE_ENERGY_BURNED).toStringAsFixed(0);
|
||||
element.data = _gethHealthDataPointValueSum(HealthDataType.ACTIVE_ENERGY_BURNED);
|
||||
break;
|
||||
case ResultItem.development_percent_bodypart:
|
||||
// TODO: Handle this case.
|
||||
break;
|
||||
case ResultItem.distance:
|
||||
if (exerciseRepository.exerciseType.unit == "meter") {
|
||||
element.data = exerciseRepository.exercise.quantity.toStringAsFixed(0);
|
||||
element.data = exerciseRepository.exercise.quantity;
|
||||
}
|
||||
break;
|
||||
case ResultItem.fatburn_percent:
|
||||
@@ -92,9 +97,9 @@ class ResultBloc extends Bloc<ResultEvent, ResultState> {
|
||||
}
|
||||
});
|
||||
if (counter > 0) {
|
||||
element.data = (burnCounter / counter * 100).toStringAsFixed(2);
|
||||
element.data = (burnCounter / counter * 100);
|
||||
} else {
|
||||
element.data = "0";
|
||||
element.data = 0;
|
||||
}
|
||||
break;
|
||||
case ResultItem.speed_max:
|
||||
@@ -106,11 +111,11 @@ class ResultBloc extends Bloc<ResultEvent, ResultState> {
|
||||
exerciseRepository.actualExerciseList.forEach((element) {
|
||||
value += element.quantity;
|
||||
});
|
||||
element.data = value.toStringAsFixed(0);
|
||||
element.data = value;
|
||||
}
|
||||
break;
|
||||
case ResultItem.steps:
|
||||
element.data = _gethHealthDataPointValueSum(HealthDataType.STEPS).toStringAsFixed(0);
|
||||
element.data = _gethHealthDataPointValueSum(HealthDataType.STEPS);
|
||||
break;
|
||||
/* case ResultItem.time:
|
||||
final Duration duration = this.endTime.difference(this.startTime);
|
||||
@@ -122,7 +127,7 @@ class ResultBloc extends Bloc<ResultEvent, ResultState> {
|
||||
exerciseRepository.actualExerciseList.forEach((element) {
|
||||
value += element.quantity * element.unitQuantity;
|
||||
});
|
||||
element.data = value.toStringAsFixed(0);
|
||||
element.data = value;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -195,13 +200,13 @@ class ResultBloc extends Bloc<ResultEvent, ResultState> {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
print("Get Health data between " + startTime.toString() + " AND " + endTime.toString());
|
||||
log("Get Health data between " + startTime.toString() + " AND " + endTime.toString());
|
||||
_healthDataList = await health.getHealthDataFromTypes(this.startTime, this.endTime, types);
|
||||
_healthDataList.forEach((element) {
|
||||
print(element.toString());
|
||||
log(element.toString());
|
||||
});
|
||||
} on Exception catch (e) {
|
||||
print("Caught exception in getHealthDataFromTypes: $e");
|
||||
log("Caught exception in getHealthDataFromTypes: $e");
|
||||
throw Exception(e);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user