|
|
|
@ -2,32 +2,41 @@ import 'dart:convert';
|
|
|
|
|
|
|
|
|
|
import 'package:smartfit_app_mobile/modele/activity_info/activity_info.dart';
|
|
|
|
|
|
|
|
|
|
class ActivityInfoWalking implements ActivityInfo {
|
|
|
|
|
class ActivityInfoWalking extends ActivityInfo {
|
|
|
|
|
ActivityInfoWalking.fromJson(map) : super.fromJson(map) {
|
|
|
|
|
deniveleNegatif = map["deniveleNegatif"].toDouble();
|
|
|
|
|
denivelePositif = map["denivelePositif"].toDouble();
|
|
|
|
|
}
|
|
|
|
|
ActivityInfoWalking() : super.fromJson(null);
|
|
|
|
|
|
|
|
|
|
// ------- Ajout --------- //
|
|
|
|
|
|
|
|
|
|
// -- Denivelé -- //
|
|
|
|
|
double denivelePositif = 0.0;
|
|
|
|
|
double deniveleNegatif = 0.0;
|
|
|
|
|
|
|
|
|
|
// ------- Activity Info -------- //
|
|
|
|
|
@override
|
|
|
|
|
int bpmAvg = 0;
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
int bpmMax = 0;
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
int bpmMin = 0;
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
String startTime = "2000-01-01";
|
|
|
|
|
ActivityInfo getData(List<List<String>> csv) {
|
|
|
|
|
super.getData(csv);
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
double timeOfActivity = 0.0;
|
|
|
|
|
Map<String, int> enteteCSV = getEntete(csv.first);
|
|
|
|
|
// -- Denivelé -- //
|
|
|
|
|
double lastDenivele = 0.0;
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
ActivityInfo getData(List<List<String>> csv) {
|
|
|
|
|
for (int i = 0; i < csv.length; i++) {}
|
|
|
|
|
// -- Lecture du corps -- //
|
|
|
|
|
for (int i = 1; i < csv.length; i++) {
|
|
|
|
|
// -- Denivele -- //
|
|
|
|
|
if (!isNull(enteteCSV["Value_${managerFile.fieldAltitude}"]!, csv[i])) {
|
|
|
|
|
double value = double.parse(
|
|
|
|
|
csv[i][enteteCSV["Value_${managerFile.fieldAltitude}"]!]);
|
|
|
|
|
if (value > lastDenivele) {
|
|
|
|
|
denivelePositif += value - lastDenivele;
|
|
|
|
|
} else {
|
|
|
|
|
deniveleNegatif += (value - lastDenivele) * -1;
|
|
|
|
|
}
|
|
|
|
|
lastDenivele = value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -35,14 +44,25 @@ class ActivityInfoWalking implements ActivityInfo {
|
|
|
|
|
// Méthode pour convertir les attributs en JSON
|
|
|
|
|
String toJson() {
|
|
|
|
|
Map<String, dynamic> jsonMap = {
|
|
|
|
|
// Unique
|
|
|
|
|
'denivelePositif': denivelePositif,
|
|
|
|
|
'deniveleNegatif': deniveleNegatif,
|
|
|
|
|
// All
|
|
|
|
|
'bpmAvg': bpmAvg,
|
|
|
|
|
'bpmMax': bpmMax,
|
|
|
|
|
'bpmMin': bpmMin,
|
|
|
|
|
// Ligne session
|
|
|
|
|
'startTime': startTime,
|
|
|
|
|
'timeOfActivity': timeOfActivity,
|
|
|
|
|
};
|
|
|
|
|
return jsonEncode(jsonMap);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Map<String, dynamic> toMap() {
|
|
|
|
|
return {
|
|
|
|
|
"DenivelePositif": denivelePositif,
|
|
|
|
|
"DeniveleNegatif": denivelePositif
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|