new méthode avec l'activityInfo
continuous-integration/drone/push Build is passing Details

pull/4/head
Enzo 1 year ago
parent ab34c5884e
commit 795a26056f

@ -9,7 +9,7 @@ class Info extends StatelessWidget {
Widget build(BuildContext context) {
String distance = Provider.of<User>(context, listen: false)
.managerSelectedActivity
.getTotalDistance()
.getDistanceAllActivitySelected()
.toString();
return Row(

@ -10,7 +10,7 @@ class Stats extends StatelessWidget {
Widget build(BuildContext context) {
String calories = Provider.of<User>(context, listen: false)
.managerSelectedActivity
.getCalorie()
.getCalorieAllActivitySelected()
.toString();
String heartrate = Provider.of<User>(context, listen: false)
.managerSelectedActivity
@ -21,7 +21,7 @@ class Stats extends StatelessWidget {
.toString();
String time = Provider.of<User>(context, listen: false)
.managerSelectedActivity
.getTotalTime()
.getTimeAllActivitySelected()
.toString();
return Column(
children: [

@ -9,7 +9,7 @@ class Steps extends StatelessWidget {
Widget build(BuildContext context) {
String steps = Provider.of<User>(context, listen: false)
.managerSelectedActivity
.getTotalSteps()
.getTimeAllActivitySelected()
.toString();
return Padding(

@ -9,7 +9,9 @@ class ActivityInfo {
// -- Time -- // Ne pas calculer (Ligne session)
DateTime startTime = DateTime.now();
double timeOfActivity = 0.0;
double distance = 0.0;
int calories = 0;
int steps = 0;
// ----------- BPM ------------ //
int bpmMax = 0;
int bpmMin = 300;
@ -21,6 +23,14 @@ class ActivityInfo {
double altitudeMax = 0.0;
double altitudeMin = 30000.0;
double altitudeAvg = 0.0;
// ----------- Température --------- //
int temperatureMax = 0;
int temperatureMin = 3000;
int temperatureAvg = 0;
// ----------- Vitesse ------------- //
double vitesseMax = 0.0;
double vitesseMin = 999999.0;
double vitesseAvg = 0.0;
// ---------------------------------------------------------------------- //
@ -37,6 +47,12 @@ class ActivityInfo {
// -- Altitude -- //
double altitudeSomme = 0;
int alititudeNb = 0;
// -- Température -- //
int temperatureSomme = 0;
int temperatureNb = 0;
// -- Vitesse -- //
double vitesseSomme = 0.0;
int vitesseNb = 0;
// --- Boucle -- //
for (int i = 1; i < csv.length; i++) {
@ -76,12 +92,45 @@ class ActivityInfo {
altitudeSomme += value;
alititudeNb += 1;
}
// ------------------------ Température ----------------------- //
if (!isNull(
enteteCSV["Value_${managerFile.fieldTemperature}"]!, csv[i])) {
int value = int.parse(
csv[i][enteteCSV["Value_${managerFile.fieldTemperature}"]!]);
temperatureSomme += value;
temperatureNb += 1;
if (value > temperatureMax) {
temperatureMax = value;
}
if (value < temperatureMin) {
temperatureMin = value;
}
}
// ------------------------ Vitesse -----------------------------//
if (!isNull(enteteCSV["Value_${managerFile.fieldSpeed}"]!, csv[i])) {
double value =
double.parse(csv[i][enteteCSV["Value_${managerFile.fieldSpeed}"]!]);
vitesseSomme += value;
vitesseNb += 1;
if (value > vitesseMax) {
vitesseMax = value;
}
if (value < vitesseMin) {
vitesseMin = value;
}
}
}
// -- BPM -- //
bpmAvg = bpmSomme ~/ bpmNb;
// -- Atitude -- //
altitudeAvg = altitudeSomme / alititudeNb;
// -- Température -- //
temperatureAvg = temperatureSomme ~/ temperatureNb;
// -- Vitesse -- //
vitesseAvg = vitesseSomme / vitesseNb;
return this;
}
@ -120,6 +169,9 @@ class ActivityInfo {
// -- Ligne session -- //
startTime = DateTime.parse(map["startTime"]);
timeOfActivity = map["timeOfActivity"].toDouble();
distance = map["distance"].toDouble();
calories = map["calories"].toInt();
steps = map["steps"].toInt();
// -- BPM -- //
bpmAvg = map["bpmAvg"];
bpmMax = map["bpmMax"];
@ -131,6 +183,14 @@ class ActivityInfo {
altitudeMax = map["altitudeMax"].toDouble();
altitudeMin = map["altitudeMin"].toDouble();
altitudeAvg = map["altitudeAvg"].toDouble();
// -- Température -- //
temperatureMax = map["temperatureMax"].toInt();
temperatureMin = map["temperatureMin"].toInt();
temperatureAvg = map["temperatureAvg"].toInt();
// -- Vitesse -- //
vitesseMax = map["vitesseMax"].toDouble();
vitesseMin = map["vitesseMin"].toDouble();
vitesseAvg = map["vitesseAvg"].toDouble();
}
// -- Ecriture -- //
@ -147,9 +207,20 @@ class ActivityInfo {
'altitudeMax': altitudeMax,
'altitudeMin': altitudeMin,
'altitudeAvg': altitudeAvg,
// -- Température -- //
'temperatureMax': temperatureMax,
'temperatureMin': temperatureMin,
'temperatureAvg': temperatureAvg,
// -- Vitesse -- //
'vitesseMax': vitesseMax,
'vitesseMin': vitesseMin,
'vitesseAvg': vitesseAvg,
// Ligne session
'startTime': startTime.toString(),
'timeOfActivity': timeOfActivity,
'distance': distance,
'calories': calories,
'steps': steps
};
return jsonEncode(jsonMap);
}

@ -15,15 +15,16 @@ class ManagerFile {
final String _fieldBPM = "heart_rate";
final String _fieldSpeed = "speed";
final String _fieldAltitude = "altitude";
final String _fieldTotalStep = "total_strides";
final String _fieldTotalCalorie = "total_calories";
final String _fieldTemperature = "temperature";
// -- Not in CSV -- //
// -- Not in CSV (Ligne session) -- //
static const String _session = "session";
static const String _startTime = "start_time";
static const String _sport = "sport";
static const String _timeActivity = "total_elapsed_time";
static const String _totalDistance = "total_distance";
static const String _totalCalories = "total_calories";
static const String _totalStep = "total_strides";
// -- Getter field
String get fieldTimeStamp => _fieldTimestamp;
@ -33,8 +34,6 @@ class ManagerFile {
String get fielBPM => _fieldBPM;
String get fieldSpeed => _fieldSpeed;
String get fieldAltitude => _fieldAltitude;
String get fieldTotalStep => _fieldTotalStep;
String get fieldTotalCalories => _fieldTotalCalorie;
String get fieldTemperature => _fieldTemperature;
// -- Categorie -- //
@ -59,8 +58,6 @@ class ManagerFile {
_fieldBPM,
_fieldSpeed,
_fieldAltitude,
_fieldTotalStep,
_fieldTotalCalorie,
_fieldTemperature
];
@ -74,7 +71,6 @@ class ManagerFile {
_fieldBPM,
_fieldSpeed,
_fieldAltitude,
_fieldTotalCalorie,
_fieldTemperature
];
}
@ -144,6 +140,9 @@ class ManagerFile {
info.timeOfActivity =
double.parse(_getXfromListe(_timeActivity, ligneSession));
info.distance = double.parse(_getXfromListe(_totalDistance, ligneSession));
info.calories = int.parse(_getXfromListe(_totalCalories, ligneSession));
info.steps = int.parse(_getXfromListe(_totalStep, ligneSession));
// ----------------------------------------------------- //
return Tuple4(true, csvData, info.getData(csvData), categorie);

@ -93,7 +93,7 @@ class ManagerSelectedActivity {
}
int getBpmMinAllActivitieSelected() {
int min = 0;
int min = 999;
for (ActivityOfUser activityOfUser in activitySelected) {
if (activityOfUser.activityInfo.bpmMax < min) {
min = activityOfUser.activityInfo.bpmMin;
@ -123,7 +123,7 @@ class ManagerSelectedActivity {
}
double getMinAltitudeAllActivitySelected() {
double min = 0.0;
double min = 99999.0;
for (ActivityOfUser activityOfUser in activitySelected) {
if (activityOfUser.activityInfo.altitudeMax < min) {
min = activityOfUser.activityInfo.altitudeMin;
@ -141,232 +141,80 @@ class ManagerSelectedActivity {
}
// ------------------ Fin Altitude ------------------- //
// ----
double getAvgTemperature() {
double somme = 0;
int nb = 0;
for (int c = 0; c < activitySelected.length; c++) {
for (int i = 0; i < activitySelected[c].contentActivity.length; i++) {
if (_notNull(
c,
i,
activitySelected[c]
.enteteCSV["Value_${_managerFile.fieldTemperature}"]!)) {
somme += activitySelected[c].contentActivity[i][activitySelected[c]
.enteteCSV["Value_${_managerFile.fieldTemperature}"]!];
nb++;
}
}
// ------------------ Température -------------------- //
int getAvgTemperatureAllActivitySelected() {
int somme = 0;
for (ActivityOfUser activityOfUser in activitySelected) {
somme += activityOfUser.activityInfo.temperatureAvg;
}
double average = somme / nb;
return double.parse(average.toStringAsFixed(2));
return somme ~/ activitySelected.length;
}
double getMaxTemperature() {
double max = 0;
for (int c = 0; c < activitySelected.length; c++) {
for (int i = 0; i < activitySelected[c].contentActivity.length; i++) {
if (_notNull(
c,
i,
activitySelected[c]
.enteteCSV["Value_${_managerFile.fieldTemperature}"]!)) {
double valueTmp = activitySelected[c]
.contentActivity[i][activitySelected[c]
.enteteCSV["Value_${_managerFile.fieldTemperature}"]!]
.toDouble();
if (valueTmp > max) {
max = valueTmp;
}
}
int getMaxTemperatureAllActivitySelected() {
int max = 0;
for (ActivityOfUser activityOfUser in activitySelected) {
if (activityOfUser.activityInfo.temperatureMax > max) {
max = activityOfUser.activityInfo.temperatureMax;
}
}
return max;
}
double getMinTemperature() {
double min = 5000;
for (int c = 0; c < activitySelected.length; c++) {
for (int i = 0; i < activitySelected[c].contentActivity.length; i++) {
if (_notNull(
c,
i,
activitySelected[c]
.enteteCSV["Value_${_managerFile.fieldTemperature}"]!)) {
double valueTmp = activitySelected[c]
.contentActivity[i][activitySelected[c]
.enteteCSV["Value_${_managerFile.fieldTemperature}"]!]
.toDouble();
if (valueTmp < min) {
min = valueTmp;
}
}
int getMinTemperatureAllActivitySelected() {
int min = 0;
for (ActivityOfUser activityOfUser in activitySelected) {
if (activityOfUser.activityInfo.temperatureMin > min) {
min = activityOfUser.activityInfo.temperatureMin;
}
}
return min;
}
// -------------------------- FIN BPM ---------------------- //
// -------------------------- FIN Température ---------------------- //
// ---------------------- Distance ---------------------- //
double getTotalDistance() {
double max = 0;
for (int c = 0; c < activitySelected.length; c++) {
for (int i = activitySelected[c].contentActivity.length - 1;
i != 0;
i--) {
if (_notNull(
c,
i,
activitySelected[c]
.enteteCSV["Value_${_managerFile.fieldDistance}"]!)) {
double valueTmp = activitySelected[c]
.contentActivity[i][activitySelected[c]
.enteteCSV["Value_${_managerFile.fieldDistance}"]!]
.toDouble();
if (valueTmp > max) {
max = valueTmp;
}
}
}
double getDistanceAllActivitySelected() {
double somme = 0;
for (ActivityOfUser activityOfUser in activitySelected) {
somme += activityOfUser.activityInfo.distance;
}
return max;
return somme;
}
// ---------------------- FIN Distance ---------------------- //
// ---------------------- Calories ---------------------- //
int getCalorie() {
for (int c = 0; c < activitySelected.length; c++) {
for (int i = activitySelected[c].contentActivity.length - 1;
i != 0;
i--) {
if (_notNull(
c,
i,
activitySelected[c]
.enteteCSV["Value_${_managerFile.fieldTotalCalories}"]!)) {
return activitySelected[c].contentActivity[i][activitySelected[c]
.enteteCSV["Value_${_managerFile.fieldTotalCalories}"]!] as int;
}
}
int getCalorieAllActivitySelected() {
int somme = 0;
for (ActivityOfUser activityOfUser in activitySelected) {
somme += activityOfUser.activityInfo.calories;
}
return 0;
return somme;
}
// ---------------------- FIN Calories ---------------------- //
// ---------------------- Step ------------------------------//
int getTotalSteps() {
for (int c = 0; c < activitySelected.length; c++) {
for (int i = activitySelected[c].contentActivity.length - 1;
i != 0;
i--) {
if (_notNull(
c,
i,
activitySelected[c]
.enteteCSV["Value_${_managerFile.fieldTotalStep}"]!)) {
return activitySelected[c]
.contentActivity[i][activitySelected[c]
.enteteCSV["Value_${_managerFile.fieldTotalStep}"]!]
.toInt();
}
}
int getStepsAllActivitySelected() {
int somme = 0;
for (ActivityOfUser activityOfUser in activitySelected) {
somme += activityOfUser.activityInfo.steps;
}
return 0;
return somme;
}
// ----------------------- FIN Step ------------------------ //
// ------------------------- Time ----------------------------- //
double getTotalTime() {
int timestampMax = 0;
int timestampMin = 0;
for (int i = 0; i < activitySelected[0].contentActivity.length; i++) {
if (_notNull(
0,
i,
activitySelected[0]
.enteteCSV["Value_${_managerFile.fieldTimeStamp}"]!)) {
timestampMin = activitySelected[0].contentActivity[i][
activitySelected[0]
.enteteCSV["Value_${_managerFile.fieldTimeStamp}"]!];
break;
}
}
for (int i = activitySelected[0].contentActivity.length - 1; i != 0; i--) {
if (_notNull(
0,
i,
activitySelected[0]
.enteteCSV["Value_${_managerFile.fieldTimeStamp}"]!)) {
timestampMax = activitySelected[0].contentActivity[i][
activitySelected[0]
.enteteCSV["Value_${_managerFile.fieldTimeStamp}"]!];
break;
}
double getTimeAllActivitySelected() {
double somme = 0;
for (ActivityOfUser activityOfUser in activitySelected) {
somme += activityOfUser.activityInfo.timeOfActivity;
}
return (timestampMax - timestampMin) / 1000;
return somme;
}
// ---------------------------- FIN time -------------------- //
// ---------------------------------------- Altitude -------------------- //
/*
// --- Fichier CSV --- //
double getMaxAltitude() {
double max = 0;
for (int c = 0; c < activitySelected.length; c++) {
for (int i = 0; i < activitySelected[c].contentActivity.length; i++) {
if (_notNull(
c,
i,
activitySelected[c]
.enteteCSV["Value_${_managerFile.fieldAltitude}"]!)) {
double valueTmp = activitySelected[c]
.contentActivity[i][activitySelected[c]
.enteteCSV["Value_${_managerFile.fieldAltitude}"]!]
.toDouble();
if (valueTmp > max) {
max = valueTmp;
}
}
}
}
return max;
}*/
/*
// --- Fichier CSV --- //
double getMinAltitude() {
double min = 5000;
for (int c = 0; c < activitySelected.length; c++) {
for (int i = 0; i < activitySelected[c].contentActivity.length; i++) {
if (_notNull(
c,
i,
activitySelected[c]
.enteteCSV["Value_${_managerFile.fieldAltitude}"]!)) {
double valueTmp = activitySelected[c]
.contentActivity[i][activitySelected[c]
.enteteCSV["Value_${_managerFile.fieldAltitude}"]!]
.toDouble();
if (valueTmp < min) {
min = valueTmp;
}
}
}
}
return min;
}*/
// -------------------------- FIN altitude ---------------------- //
// -------------------------- Speed ---------------------- //
// -- CSV -- //
@ -408,73 +256,32 @@ class ManagerSelectedActivity {
return result;
}
// Retourne la Speed Max (Fichier CSV)
double getMaxSpeed() {
double getMaxSpeedAllActivitySelected() {
double max = 0.00;
for (int c = 0; c < activitySelected.length; c++) {
for (int i = 0; i < activitySelected[c].contentActivity.length; i++) {
if (_notNull(
c,
i,
activitySelected[c]
.enteteCSV["Value_${_managerFile.fieldSpeed}"]!)) {
double valueTmp = activitySelected[c]
.contentActivity[i][activitySelected[c]
.enteteCSV["Value_${_managerFile.fieldSpeed}"]!]
.toDouble();
if (valueTmp > max) {
max = valueTmp;
}
}
for (ActivityOfUser activityOfUser in activitySelected) {
if (activityOfUser.activityInfo.vitesseMax > max) {
max = activityOfUser.activityInfo.vitesseMax;
}
}
return max;
}
double getMinSpeed() {
double min = 5000;
for (int c = 0; c < activitySelected.length; c++) {
for (int i = 0; i < activitySelected[c].contentActivity.length; i++) {
if (_notNull(
c,
i,
activitySelected[c]
.enteteCSV["Value_${_managerFile.fieldSpeed}"]!)) {
double valueTmp = activitySelected[c]
.contentActivity[i][activitySelected[c]
.enteteCSV["Value_${_managerFile.fieldSpeed}"]!]
.toDouble();
if (valueTmp < min) {
min = valueTmp;
}
}
double getMinSpeedAllActivitySelected() {
double min = 99999.9;
for (ActivityOfUser activityOfUser in activitySelected) {
if (activityOfUser.activityInfo.vitesseMin < min) {
min = activityOfUser.activityInfo.vitesseMin;
}
}
return min;
}
// Retourne avg Max (Fichier CSV)
double getAvgSpeed() {
double somme = 0;
int nb = 0;
for (int c = 0; c < activitySelected.length; c++) {
for (int i = 0; i < activitySelected[c].contentActivity.length; i++) {
if (_notNull(
c,
i,
activitySelected[c]
.enteteCSV["Value_${_managerFile.fieldSpeed}"]!)) {
somme += activitySelected[c].contentActivity[i][activitySelected[c]
.enteteCSV["Value_${_managerFile.fieldSpeed}"]!];
nb++;
}
}
double getAvgSpeedAllActivitySelected() {
double somme = 0.0;
for (ActivityOfUser activityOfUser in activitySelected) {
somme += activityOfUser.activityInfo.vitesseAvg;
}
double average = somme / nb;
return double.parse(average.toStringAsFixed(2));
return somme / activitySelected.length;
}
// -------------------------- FIN Speed ---------------------- //

@ -45,8 +45,8 @@ class _MobileHomeView extends State<MobileHomeView> {
double avgAltitude =
managerSelectedActivity.activitySelected.first.activityInfo.altitudeAvg;
// -- Speed -- //
double maxSpeed = managerSelectedActivity.getMaxSpeed();
double avgSpeed = managerSelectedActivity.getAvgSpeed();
double maxSpeed = managerSelectedActivity.getMaxSpeedAllActivitySelected();
double avgSpeed = managerSelectedActivity.getAvgSpeedAllActivitySelected();
return Scaffold(
backgroundColor: TColor.white,

@ -38,29 +38,56 @@ class _StatAtivities extends State<StatAtivities> {
double avgAltitude =
managerSelectedActivity.getAvgAltitudeAllActivitySelected();
// ------
double getTotalDistance =
context.watch<User>().managerSelectedActivity.getTotalDistance();
int totalSteps =
context.watch<User>().managerSelectedActivity.getTotalSteps();
double totalTime =
context.watch<User>().managerSelectedActivity.getTotalTime();
int totalCalories =
context.watch<User>().managerSelectedActivity.getCalorie();
double avgSpeed =
context.watch<User>().managerSelectedActivity.getAvgSpeed();
// -- Température -- //
double avgTemperature = context
.watch<User>()
.managerSelectedActivity
.getAvgTemperatureAllActivitySelected()
.toDouble();
double maxTemperature = context
.watch<User>()
.managerSelectedActivity
.getMaxTemperatureAllActivitySelected()
.toDouble();
double minTemperature = context
.watch<User>()
.managerSelectedActivity
.getMinTemperatureAllActivitySelected()
.toDouble();
// ----- Distance ---- //
double getTotalDistance = context
.watch<User>()
.managerSelectedActivity
.getDistanceAllActivitySelected();
// ---- Calories --- //
int totalCalories = context
.watch<User>()
.managerSelectedActivity
.getCalorieAllActivitySelected();
// --- Steps --- //
int totalSteps = context
.watch<User>()
.managerSelectedActivity
.getStepsAllActivitySelected();
// -- Time -- //
double totalTime = context
.watch<User>()
.managerSelectedActivity
.getTimeAllActivitySelected();
double avgTemperature =
context.watch<User>().managerSelectedActivity.getAvgTemperature();
double maxTemperature =
context.watch<User>().managerSelectedActivity.getMaxTemperature();
double maxSpeed =
context.watch<User>().managerSelectedActivity.getMaxSpeed();
double minSpeed =
context.watch<User>().managerSelectedActivity.getMinSpeed();
double minTemperature =
context.watch<User>().managerSelectedActivity.getMinTemperature();
// -- Speed -- //
double avgSpeed = context
.watch<User>()
.managerSelectedActivity
.getAvgSpeedAllActivitySelected();
double maxSpeed = context
.watch<User>()
.managerSelectedActivity
.getMaxAltitudeAllActivitySelected();
double minSpeed = context
.watch<User>()
.managerSelectedActivity
.getMinAltitudeAllActivitySelected();
return Scaffold(
backgroundColor: TColor.white,

@ -43,16 +43,23 @@ class _WebHomeView extends State<WebHomeView> {
double avgAltitude =
managerSelectedActivity.activitySelected.first.activityInfo.altitudeAvg;
// -- Speed -- //
double maxSpeed =
context.watch<User>().managerSelectedActivity.getMaxSpeed();
double avgSpeed =
context.watch<User>().managerSelectedActivity.getAvgSpeed();
double maxSpeed = context
.watch<User>()
.managerSelectedActivity
.getMaxSpeedAllActivitySelected();
double avgSpeed = context
.watch<User>()
.managerSelectedActivity
.getAvgSpeedAllActivitySelected();
data = HomeViewUtil().initData(context);
data.maxBPM = maxBpm;
data.minBPM = minBpm;
data.maxSpeed = maxSpeed;
data.time = context.watch<User>().managerSelectedActivity.getTotalTime();
data.time = context
.watch<User>()
.managerSelectedActivity
.getTimeAllActivitySelected();
return Scaffold(
backgroundColor: TColor.white,
body: SingleChildScrollView(

Loading…
Cancel
Save