You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
140 lines
4.1 KiB
140 lines
4.1 KiB
import 'package:fl_chart/fl_chart.dart';
|
|
|
|
class ActivityOfUser {
|
|
late String _nomActivite;
|
|
late String _imageName;
|
|
late List<dynamic> _contentActivity;
|
|
|
|
List<dynamic> get contentActivity => _contentActivity;
|
|
|
|
ActivityOfUser(String nom, List<dynamic> listeDynamic) {
|
|
_nomActivite = nom;
|
|
_imageName = "assets/img/workout1.svg";
|
|
_contentActivity = listeDynamic;
|
|
}
|
|
|
|
List<FlSpot> getHeartRateWithTime() {
|
|
List<FlSpot> result = List.empty(growable: true);
|
|
int firtTimeStamp = 0;
|
|
|
|
for (List<dynamic> ligne in _contentActivity) {
|
|
if (ligne[0] == "Data") {
|
|
if (ligne.length >= 10 && ligne[9] == "heart_rate") {
|
|
if (firtTimeStamp == 0) {
|
|
firtTimeStamp = ligne[4];
|
|
}
|
|
//result.add([(ligne[4] - firtTimeStamp) ~/ 100, ligne[10]]);
|
|
result.add(
|
|
FlSpot((ligne[4] - firtTimeStamp) / 100, ligne[10].toDouble()));
|
|
} else if (ligne.length >= 16 && ligne[15] == "heart_rate") {
|
|
if (firtTimeStamp == 0) {
|
|
firtTimeStamp = ligne[4];
|
|
}
|
|
//result.add([(ligne[4] - firtTimeStamp) ~/ 100, ligne[17]]);
|
|
result.add(
|
|
FlSpot((ligne[4] - firtTimeStamp) / 100, ligne[16].toDouble()));
|
|
}
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
|
|
List<FlSpot> getDistanceWithTime() {
|
|
List<FlSpot> result = List.empty(growable: true);
|
|
int firtTimeStamp = 0;
|
|
|
|
for (List<dynamic> ligne in _contentActivity) {
|
|
if (ligne.length >= 8 && ligne[0] == "Data" && ligne[6] == "distance") {
|
|
if (firtTimeStamp == 0) {
|
|
firtTimeStamp = ligne[4];
|
|
}
|
|
//result.add([(ligne[4] - firtTimeStamp) ~/ 100, ligne[7].toInt()]);
|
|
result
|
|
.add(FlSpot((ligne[4] - firtTimeStamp) / 100, ligne[7].toDouble()));
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
List<FlSpot> getCalories() {
|
|
List<FlSpot> result = List.empty(growable: true);
|
|
int firtTimeStamp = 0;
|
|
print("enzo");
|
|
print(_contentActivity.length);
|
|
for (List<dynamic> ligne in _contentActivity) {
|
|
|
|
if (ligne.length >= 39 && ligne[0] == "Data" && ligne[39] == "total_calories") {
|
|
print("enzo");
|
|
print(ligne[39]);
|
|
if (firtTimeStamp == 0) {
|
|
firtTimeStamp = ligne[4];
|
|
}
|
|
//result.add([(ligne[4] - firtTimeStamp) ~/ 100, ligne[7].toInt()]);
|
|
result
|
|
.add(FlSpot((ligne[4] - firtTimeStamp) / 100, ligne[40].toDouble()));
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
|
|
List<FlSpot> getAltitudeWithTime() {
|
|
List<FlSpot> result = List.empty(growable: true);
|
|
int firtTimeStamp = 0;
|
|
|
|
for (List<dynamic> ligne in _contentActivity) {
|
|
if (ligne.length >= 14 && ligne[0] == "Data" && ligne[12] == "altitude") {
|
|
if (firtTimeStamp == 0) {
|
|
firtTimeStamp = ligne[4];
|
|
}
|
|
//result.add([(ligne[4] - firtTimeStamp) ~/ 100, ligne[13].toInt()]);
|
|
result.add(
|
|
FlSpot((ligne[4] - firtTimeStamp) / 100, ligne[13].toDouble()));
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
|
|
double getDistance() {
|
|
double result = 0.0;
|
|
for (int i = _contentActivity.length - 1; i >= 0; i--) {
|
|
if (_contentActivity[i].length >= 8 &&
|
|
_contentActivity[i][0] == "Data" &&
|
|
_contentActivity[i][6] == "distance") {
|
|
if (_contentActivity[i][7] > result) {
|
|
result = _contentActivity[i][7].toDouble();
|
|
}
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
|
|
List<FlSpot> getSpeedWithTime() {
|
|
List<FlSpot> result = List.empty(growable: true);
|
|
int firtTimeStamp = 0;
|
|
|
|
for (List<dynamic> ligne in _contentActivity) {
|
|
if (ligne[0] == "Data" && ligne[1] == 1) {
|
|
if (firtTimeStamp == 0) {
|
|
firtTimeStamp = ligne[4];
|
|
}
|
|
result.add(
|
|
FlSpot((ligne[4] - firtTimeStamp) / 100, ligne[19].toDouble()));
|
|
}
|
|
if (ligne[0] == "Data" && ligne[1] == 2) {
|
|
if (firtTimeStamp == 0) {
|
|
firtTimeStamp = ligne[4];
|
|
}
|
|
result.add(
|
|
FlSpot((ligne[4] - firtTimeStamp) / 100, ligne[25].toDouble()));
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
|
|
Map<String, dynamic> toMap() {
|
|
return {
|
|
'nomActivite': _nomActivite,
|
|
'image': _imageName,
|
|
};
|
|
}
|
|
}
|