WT1.1.0+40 Premium feature settings

This commit is contained in:
bossanyit
2020-12-28 14:39:54 +01:00
parent 5c7a3d67e8
commit 9755cc764a
84 changed files with 2069 additions and 1192 deletions
+19 -14
View File
@@ -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);
}
}