correction ActivityInfo
continuous-integration/drone/push Build is passing Details

pull/4/head
Enzo 2 years ago
parent 6388591ee0
commit a4f387e3cd

@ -1,6 +1,8 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:smartfit_app_mobile/common_widget/container/workout_row.dart'; import 'package:smartfit_app_mobile/common_widget/container/workout_row.dart';
import 'package:smartfit_app_mobile/modele/activity.dart';
import 'package:smartfit_app_mobile/modele/manager_file.dart';
import 'package:smartfit_app_mobile/modele/user.dart'; import 'package:smartfit_app_mobile/modele/user.dart';
import 'package:smartfit_app_mobile/modele/utile/list_activity/list_activity_utile.dart'; import 'package:smartfit_app_mobile/modele/utile/list_activity/list_activity_utile.dart';
import 'package:tuple/tuple.dart'; import 'package:tuple/tuple.dart';
@ -14,6 +16,7 @@ class ListActivityWidget extends StatefulWidget {
class _ListActivityWidget extends State<ListActivityWidget> { class _ListActivityWidget extends State<ListActivityWidget> {
final ListActivityUtile _utile = ListActivityUtile(); final ListActivityUtile _utile = ListActivityUtile();
final ManagerFile managerFile = ManagerFile();
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -25,9 +28,16 @@ class _ListActivityWidget extends State<ListActivityWidget> {
shrinkWrap: true, shrinkWrap: true,
itemCount: Provider.of<User>(context, listen: true).listActivity.length, itemCount: Provider.of<User>(context, listen: true).listActivity.length,
itemBuilder: (context, index) { itemBuilder: (context, index) {
var activityObj = ActivityOfUser activityObj =
Provider.of<User>(context, listen: true).listActivity[index]; Provider.of<User>(context, listen: true).listActivity[index];
var activityMap = activityObj.toMap(); Map<String, dynamic> activityMap;
// -- Si categorie == marche
if (activityObj.category == managerFile.marche) {
activityMap = activityObj.toMapWalking();
} else {
// -- Default -- //
activityMap = activityObj.toMapGeneric();
}
return InkWell( return InkWell(
onTap: () {}, onTap: () {},

@ -20,10 +20,22 @@ class MobileGraphAltitudeByTime extends StatefulWidget {
class _MobileGraphAltitudeByTime extends State<MobileGraphAltitudeByTime> { class _MobileGraphAltitudeByTime extends State<MobileGraphAltitudeByTime> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final double maxY = final double maxY = context
context.watch<User>().managerSelectedActivity.getMaxAltitude() + 2; .watch<User>()
final double minY = .managerSelectedActivity
context.watch<User>().managerSelectedActivity.getMinAltitude() - 2; .activitySelected
.first
.activityInfo
.altitudeMax +
2;
final double minY = context
.watch<User>()
.managerSelectedActivity
.activitySelected
.first
.activityInfo
.altitudeMin -
2;
final lineBarsData = [ final lineBarsData = [
LineChartBarData( LineChartBarData(

@ -19,10 +19,22 @@ class WebGraphAltitudeByTime extends StatefulWidget {
class _WebGraphAltitudeByTime extends State<WebGraphAltitudeByTime> { class _WebGraphAltitudeByTime extends State<WebGraphAltitudeByTime> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final double maxY = final double maxY = context
context.watch<User>().managerSelectedActivity.getMaxAltitude() + 2; .watch<User>()
final double minY = .managerSelectedActivity
context.watch<User>().managerSelectedActivity.getMinAltitude() - 2; .activitySelected
.first
.activityInfo
.altitudeMax +
2;
final double minY = context
.watch<User>()
.managerSelectedActivity
.activitySelected
.first
.activityInfo
.altitudeMin -
2;
final lineBarsData = [ final lineBarsData = [
LineChartBarData( LineChartBarData(

@ -41,15 +41,19 @@ class ActivityOfUser {
// -------------------------- FIN Localisation ---------------------- // // -------------------------- FIN Localisation ---------------------- //
Map<String, dynamic> toMap() { Map<String, dynamic> toMapGeneric() {
Map<String, dynamic> map = { Map<String, dynamic> map = {
'categorie': _categorie, 'categorie': _categorie,
'image': _imageName, 'image': _imageName,
'date': _activityInfo.startTime, 'date': _activityInfo.startTime,
'time': _activityInfo.timeOfActivity, 'time': _activityInfo.timeOfActivity,
}; };
map.addAll(_activityInfo.toMap()); return map;
}
Map<String, dynamic> toMapWalking() {
Map<String, dynamic> map = toMapGeneric();
map.addAll(activityInfo.toMapWalking());
return map; return map;
} }
} }

@ -1,25 +1,47 @@
import 'dart:convert';
import 'package:smartfit_app_mobile/modele/manager_file.dart'; import 'package:smartfit_app_mobile/modele/manager_file.dart';
abstract class ActivityInfo { class ActivityInfo {
ManagerFile managerFile = ManagerFile(); ManagerFile managerFile = ManagerFile();
ActivityInfo();
// -- Time -- // Ne pas calculer (Ligne session) // -- Time -- // Ne pas calculer (Ligne session)
String startTime = "2000-01-01"; String startTime = "2000-01-01";
double timeOfActivity = 0.0; double timeOfActivity = 0.0;
// -- BPM -- // // ----------- BPM ------------ //
int bpmMax = 0; int bpmMax = 0;
int bpmMin = 300; int bpmMin = 300;
int bpmAvg = 0; int bpmAvg = 0;
// ----------- Denivelé ------------ //
double denivelePositif = 0.0;
double deniveleNegatif = 0.0;
// ----------- Altitude ------------ //
double altitudeMax = 0.0;
double altitudeMin = 30000.0;
double altitudeAvg = 0.0;
// ---------------------------------------------------------------------- //
// -- Fonction pour lire le csv et remplir la classe -- // // -- Fonction pour lire le csv et remplir la classe -- //
ActivityInfo getData(List<List<String>> csv) { ActivityInfo getData(List<List<String>> csv) {
// - Entete - //
Map<String, int> enteteCSV = getEntete(csv.first);
// ------------- Var tmp ---------- //
// -- BPM -- // // -- BPM -- //
int bpmSomme = 0; int bpmSomme = 0;
int bpmNb = 0; int bpmNb = 0;
Map<String, int> enteteCSV = getEntete(csv.first); // -- Denivelé -- //
double lastDenivele = 0.0;
// -- Altitude -- //
double altitudeSomme = 0;
int alititudeNb = 0;
// --- Boucle -- //
for (int i = 1; i < csv.length; i++) { for (int i = 1; i < csv.length; i++) {
// -- BPM -- // //
// ---------------------- BPM ---------------------- //
if (!isNull(enteteCSV["Value_${managerFile.fielBPM}"]!, csv[i])) { if (!isNull(enteteCSV["Value_${managerFile.fielBPM}"]!, csv[i])) {
int value = int value =
int.parse(csv[i][enteteCSV["Value_${managerFile.fielBPM}"]!]); int.parse(csv[i][enteteCSV["Value_${managerFile.fielBPM}"]!]);
@ -32,13 +54,38 @@ abstract class ActivityInfo {
bpmMin = value; bpmMin = value;
} }
} }
/// ------------------ Denivele et Altitude --------------- //
if (!isNull(enteteCSV["Value_${managerFile.fieldAltitude}"]!, csv[i])) {
double value = double.parse(
csv[i][enteteCSV["Value_${managerFile.fieldAltitude}"]!]);
// -- Denivelé -- //
if (value > lastDenivele) {
denivelePositif += value - lastDenivele;
} else {
deniveleNegatif += (value - lastDenivele) * -1;
}
lastDenivele = value;
// -- Altitude -- //
if (value > altitudeMax) {
altitudeMax = value;
}
if (value < altitudeMin) {
altitudeMin = value;
}
altitudeSomme += value;
alititudeNb += 1;
}
} }
// -- BPM -- // // -- BPM -- //
bpmAvg = bpmSomme ~/ bpmNb; bpmAvg = bpmSomme ~/ bpmNb;
// -- Atitude -- //
altitudeAvg = altitudeSomme / alititudeNb;
return this; return this;
} }
// ------------ Fonction utile ------------------- //
Map<String, int> getEntete(List<dynamic> content) { Map<String, int> getEntete(List<dynamic> content) {
Map<String, int> enteteCSV = {}; Map<String, int> enteteCSV = {};
for (int i = 0; i < content.length; i++) { for (int i = 0; i < content.length; i++) {
@ -51,16 +98,59 @@ abstract class ActivityInfo {
return ligne[colonne] == "null"; return ligne[colonne] == "null";
} }
String toJson(); // ------------- Pour print ----------------- //
Map<String, dynamic> toMap(); Map<String, dynamic> toMapWalking() {
return {
// -- Denivelé -- //
"DenivelePositif": denivelePositif,
"DeniveleNegatif": denivelePositif,
// -- Altitude -- //
"AltitudeMax": altitudeMax,
"AltitudeMin": altitudeMin,
"AltitudeAvg": altitudeAvg
};
}
// --------------- JSON --------- //
// -- Lecture -- //
ActivityInfo.fromJson(Map<String, dynamic>? map) { ActivityInfo.fromJson(Map<String, dynamic>? map) {
if (map == null) { if (map == null) {
return; return;
} }
// -- Ligne session -- //
startTime = map["startTime"]; startTime = map["startTime"];
timeOfActivity = map["timeOfActivity"].toDouble(); timeOfActivity = map["timeOfActivity"].toDouble();
// -- BPM -- //
bpmAvg = map["bpmAvg"]; bpmAvg = map["bpmAvg"];
bpmMax = map["bpmMax"]; bpmMax = map["bpmMax"];
bpmMin = map["bpmMin"]; bpmMin = map["bpmMin"];
// -- Denivelé -- //
deniveleNegatif = map["deniveleNegatif"].toDouble();
denivelePositif = map["denivelePositif"].toDouble();
// -- Altitude -- //
altitudeMax = map["altitudeMax"].toDouble();
altitudeMin = map["altitudeMin"].toDouble();
altitudeAvg = map["altitudeAvg"].toDouble();
}
// -- Ecriture -- //
String toJson() {
Map<String, dynamic> jsonMap = {
// -- BPM -- //
'bpmAvg': bpmAvg,
'bpmMax': bpmMax,
'bpmMin': bpmMin,
// -- Denivelé -- //
'denivelePositif': denivelePositif,
'deniveleNegatif': deniveleNegatif,
// -- Altitude -- //
'altitudeMax': altitudeMax,
'altitudeMin': altitudeMin,
'altitudeAvg': altitudeAvg,
// Ligne session
'startTime': startTime,
'timeOfActivity': timeOfActivity,
};
return jsonEncode(jsonMap);
} }
} }

@ -1,35 +0,0 @@
import 'dart:convert';
import 'package:smartfit_app_mobile/modele/activity_info/activity_info.dart';
class ActivityInfoGeneric extends ActivityInfo {
ActivityInfoGeneric.fromJson(super.map) : super.fromJson();
ActivityInfoGeneric() : super.fromJson(null);
// ------- Ajout --------- //
// ------- Activity Info -------- //
@override
ActivityInfo getData(List<List<String>> csv) {
super.getData(csv);
return this;
}
@override
// Méthode pour convertir les attributs en JSON
String toJson() {
Map<String, dynamic> jsonMap = {
'bpmAvg': bpmAvg,
'bpmMax': bpmMax,
'bpmMin': bpmMin,
'startTime': startTime,
'timeOfActivity': timeOfActivity,
};
return jsonEncode(jsonMap);
}
@override
Map<String, dynamic> toMap() {
return {};
}
}

@ -1,68 +0,0 @@
import 'dart:convert';
import 'package:smartfit_app_mobile/modele/activity_info/activity_info.dart';
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;
@override
ActivityInfo getData(List<List<String>> csv) {
super.getData(csv);
Map<String, int> enteteCSV = getEntete(csv.first);
// -- Denivelé -- //
double lastDenivele = 0.0;
// -- 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;
}
@override
// 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
};
}
}

@ -4,8 +4,6 @@ import 'package:csv/csv.dart';
import 'package:fit_tool/fit_tool.dart'; import 'package:fit_tool/fit_tool.dart';
import 'package:path_provider/path_provider.dart'; import 'package:path_provider/path_provider.dart';
import 'package:smartfit_app_mobile/modele/activity_info/activity_info.dart'; import 'package:smartfit_app_mobile/modele/activity_info/activity_info.dart';
import 'package:smartfit_app_mobile/modele/activity_info/activity_info_generic.dart';
import 'package:smartfit_app_mobile/modele/activity_info/activity_info_walking.dart';
import 'package:tuple/tuple.dart'; import 'package:tuple/tuple.dart';
class ManagerFile { class ManagerFile {
@ -25,7 +23,7 @@ class ManagerFile {
static const String _session = "session"; static const String _session = "session";
static const String _startTime = "start_time"; static const String _startTime = "start_time";
static const String _sport = "sport"; static const String _sport = "sport";
//static const String _timeActivity = "total_elapsed_time"; static const String _timeActivity = "total_elapsed_time";
// -- Getter field // -- Getter field
String get fieldTimeStamp => _fieldTimestamp; String get fieldTimeStamp => _fieldTimestamp;
@ -44,6 +42,10 @@ class ManagerFile {
static const String _velo = "cycling"; static const String _velo = "cycling";
static const String _marche = "walking"; static const String _marche = "walking";
// -- Getter categorie
String get marche => _marche;
String get generic => _generic;
List<String> allowedFieldWalking = List.empty(growable: true); List<String> allowedFieldWalking = List.empty(growable: true);
List<String> allowedFieldGeneric = List.empty(growable: true); List<String> allowedFieldGeneric = List.empty(growable: true);
List<String> allowedFieldCycling = List.empty(growable: true); List<String> allowedFieldCycling = List.empty(growable: true);
@ -106,11 +108,11 @@ class ManagerFile {
List<Record> fitFile = FitFile.fromBytes(bytes).records; List<Record> fitFile = FitFile.fromBytes(bytes).records;
String categorie; String categorie;
List<String> fieldAllowed = []; List<String> fieldAllowed = [];
ActivityInfo info; ActivityInfo info = ActivityInfo();
// -- Chercher ligne session -- // // -- Chercher ligne session -- //
List<dynamic> ligneSession = _getLigneSession(fitFile); List<dynamic> ligneSession = _getLigneSession(fitFile);
if (ligneSession.isEmpty) { if (ligneSession.isEmpty) {
return Tuple4(false, List.empty(), ActivityInfoGeneric(), ""); return Tuple4(false, List.empty(), ActivityInfo(), "");
} }
categorie = categorie =
_getCategoryById(int.parse(_getXfromListe(_sport, ligneSession))); _getCategoryById(int.parse(_getXfromListe(_sport, ligneSession)));
@ -119,11 +121,9 @@ class ManagerFile {
switch (categorie) { switch (categorie) {
case (_marche): case (_marche):
fieldAllowed = allowedFieldWalking; fieldAllowed = allowedFieldWalking;
info = ActivityInfoWalking();
break; break;
case (_generic): case (_generic):
fieldAllowed = allowedFieldGeneric; fieldAllowed = allowedFieldGeneric;
info = ActivityInfoGeneric();
break; break;
default: default:
// A REMETRE EN GENERIC // A REMETRE EN GENERIC
@ -131,15 +131,20 @@ class ManagerFile {
//info = ActivityInfoGeneric(); //info = ActivityInfoGeneric();
//categorie = _generic; //categorie = _generic;
fieldAllowed = allowedFieldWalking; fieldAllowed = allowedFieldWalking;
info = ActivityInfoWalking();
break; break;
} }
// -------- Transformation en CSV ----------- //
List<List<String>> csvData = transformDataMapIntoCSV( List<List<String>> csvData = transformDataMapIntoCSV(
getDataOfListeOfRecord(fitFile, fieldAllowed), fieldAllowed); getDataOfListeOfRecord(fitFile, fieldAllowed), fieldAllowed);
// Remplir info avec la ligne session
// ------ Remplir info avec la ligne session --------- //
info.startTime = DateTime.fromMillisecondsSinceEpoch( info.startTime = DateTime.fromMillisecondsSinceEpoch(
int.parse(_getXfromListe(_startTime, ligneSession))) int.parse(_getXfromListe(_startTime, ligneSession)))
.toIso8601String(); .toIso8601String();
info.timeOfActivity =
double.parse(_getXfromListe(_timeActivity, ligneSession));
// ----------------------------------------------------- //
return Tuple4(true, csvData, info.getData(csvData), categorie); return Tuple4(true, csvData, info.getData(csvData), categorie);
} }

@ -99,6 +99,26 @@ class ManagerSelectedActivity {
return max; return max;
}*/ }*/
int getBpmMaxAllActivitieSelected() {
int max = 0;
for (ActivityOfUser activityOfUser in activitySelected) {
if (activityOfUser.activityInfo.bpmMax > max) {
max = activityOfUser.activityInfo.bpmMax;
}
}
return max;
}
int getBpmMinAllActivitieSelected() {
int min = 0;
for (ActivityOfUser activityOfUser in activitySelected) {
if (activityOfUser.activityInfo.bpmMax < min) {
min = activityOfUser.activityInfo.bpmMin;
}
}
return min;
}
/* /*
// Retourne le BPM Min (Fichier CSV) // Retourne le BPM Min (Fichier CSV)
int getMinBpm() { int getMinBpm() {
@ -119,6 +139,7 @@ class ManagerSelectedActivity {
return min; return min;
} }
// Retourne le BPM avg (Fichier CSV) // Retourne le BPM avg (Fichier CSV)
int getAvgBpm() { int getAvgBpm() {
int somme = 0; int somme = 0;
@ -135,7 +156,7 @@ class ManagerSelectedActivity {
} }
return somme ~/ nb; return somme ~/ nb;
}*/ }*/
/*
double getAvgAltitude() { double getAvgAltitude() {
double somme = 0; double somme = 0;
int nb = 0; int nb = 0;
@ -154,7 +175,7 @@ class ManagerSelectedActivity {
} }
double average = somme / nb; double average = somme / nb;
return double.parse(average.toStringAsFixed(2)); return double.parse(average.toStringAsFixed(2));
} }*/
double getAvgTemperature() { double getAvgTemperature() {
double somme = 0; double somme = 0;
@ -332,7 +353,7 @@ class ManagerSelectedActivity {
// ---------------------------- FIN time -------------------- // // ---------------------------- FIN time -------------------- //
// ---------------------------------------- Altitude -------------------- // // ---------------------------------------- Altitude -------------------- //
/*
// --- Fichier CSV --- // // --- Fichier CSV --- //
double getMaxAltitude() { double getMaxAltitude() {
double max = 0; double max = 0;
@ -354,8 +375,28 @@ class ManagerSelectedActivity {
} }
} }
return max; return max;
}*/
double getMaxAltitudeAllActivitySelected() {
double max = 0.0;
for (ActivityOfUser activityOfUser in activitySelected) {
if (activityOfUser.activityInfo.altitudeMax > max) {
max = activityOfUser.activityInfo.altitudeMax;
}
}
return max;
} }
double getMinAltitudeAllActivitySelected() {
double min = 0.0;
for (ActivityOfUser activityOfUser in activitySelected) {
if (activityOfUser.activityInfo.altitudeMax < min) {
min = activityOfUser.activityInfo.altitudeMin;
}
}
return min;
}
/*
// --- Fichier CSV --- // // --- Fichier CSV --- //
double getMinAltitude() { double getMinAltitude() {
double min = 5000; double min = 5000;
@ -377,7 +418,7 @@ class ManagerSelectedActivity {
} }
} }
return min; return min;
} }*/
// -------------------------- FIN altitude ---------------------- // // -------------------------- FIN altitude ---------------------- //

@ -1,6 +1,5 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:smartfit_app_mobile/modele/activity.dart'; import 'package:smartfit_app_mobile/modele/activity.dart';
import 'package:smartfit_app_mobile/modele/activity_info/activity_info_walking.dart';
import 'package:smartfit_app_mobile/modele/manager_selected_activity.dart'; import 'package:smartfit_app_mobile/modele/manager_selected_activity.dart';
class User extends ChangeNotifier { class User extends ChangeNotifier {
@ -27,7 +26,7 @@ class User extends ChangeNotifier {
} }
// ------------ Fonction Calcul -------- // // ------------ Fonction Calcul -------- //
// --- Time --- //
double getTotalTimeAllActivity() { double getTotalTimeAllActivity() {
double totalTime = 0.0; double totalTime = 0.0;
for (ActivityOfUser activity in listActivity) { for (ActivityOfUser activity in listActivity) {
@ -36,15 +35,12 @@ class User extends ChangeNotifier {
return totalTime; return totalTime;
} }
// ------------ Walking -------------- //
// ---- Denivelé ---- //
double getTotalDenivelePositif() { double getTotalDenivelePositif() {
double totalDevPos = 0.0; double totalDevPos = 0.0;
for (ActivityOfUser activity in listActivity) { for (ActivityOfUser activity in listActivity) {
try { totalDevPos += activity.activityInfo.denivelePositif;
totalDevPos +=
(activity.activityInfo as ActivityInfoWalking).denivelePositif;
} catch (e) {
//print(e);
}
} }
return totalDevPos; return totalDevPos;
} }
@ -52,12 +48,7 @@ class User extends ChangeNotifier {
double getTotalDeniveleNegatif() { double getTotalDeniveleNegatif() {
double totalDevNeg = 0.0; double totalDevNeg = 0.0;
for (ActivityOfUser activity in listActivity) { for (ActivityOfUser activity in listActivity) {
try { totalDevNeg += activity.activityInfo.deniveleNegatif;
totalDevNeg +=
(activity.activityInfo as ActivityInfoWalking).deniveleNegatif;
} catch (e) {
//print(e);
}
} }
return totalDevNeg; return totalDevNeg;
} }

@ -6,7 +6,6 @@ import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:smartfit_app_mobile/modele/activity.dart'; import 'package:smartfit_app_mobile/modele/activity.dart';
import 'package:smartfit_app_mobile/modele/activity_info/activity_info.dart'; import 'package:smartfit_app_mobile/modele/activity_info/activity_info.dart';
import 'package:smartfit_app_mobile/modele/activity_info/activity_info_walking.dart';
import 'package:smartfit_app_mobile/modele/api/i_data_strategy.dart'; import 'package:smartfit_app_mobile/modele/api/i_data_strategy.dart';
import 'package:smartfit_app_mobile/modele/api/request_api.dart'; import 'package:smartfit_app_mobile/modele/api/request_api.dart';
import 'package:smartfit_app_mobile/modele/manager_file.dart'; import 'package:smartfit_app_mobile/modele/manager_file.dart';
@ -54,7 +53,7 @@ class ListActivityUtile {
// -- connaitre le type de categorie pour changer le type d'info -- // // -- connaitre le type de categorie pour changer le type d'info -- //
Provider.of<User>(context, listen: false).addActivity(ActivityOfUser( Provider.of<User>(context, listen: false).addActivity(ActivityOfUser(
ActivityInfoWalking.fromJson(element["info"]), ActivityInfo.fromJson(element["info"]),
element["category"].toString(), element["category"].toString(),
element["uuid"].toString(), element["uuid"].toString(),
element["filename"].toString())); element["filename"].toString()));
@ -100,6 +99,7 @@ class ListActivityUtile {
return true; return true;
} }
// --- Ne marche pas sous window !! Jsp linux (mettre en format mobile) -- //
void addFileWeb(Uint8List? bytes, String token, String filename, void addFileWeb(Uint8List? bytes, String token, String filename,
BuildContext context) async { BuildContext context) async {
if (bytes == null) { if (bytes == null) {

@ -38,9 +38,12 @@ class _MobileHomeView extends State<MobileHomeView> {
managerSelectedActivity.activitySelected.first.activityInfo.bpmAvg; managerSelectedActivity.activitySelected.first.activityInfo.bpmAvg;
// -- Altitude -- // // -- Altitude -- //
double minAltitude = managerSelectedActivity.getMinAltitude(); double minAltitude =
double maxAltitude = managerSelectedActivity.getMaxAltitude(); managerSelectedActivity.activitySelected.first.activityInfo.altitudeMin;
double avgAltitude = (maxAltitude + minAltitude) / 2; double maxAltitude =
managerSelectedActivity.activitySelected.first.activityInfo.altitudeMax;
double avgAltitude =
managerSelectedActivity.activitySelected.first.activityInfo.altitudeAvg;
// -- Speed -- // // -- Speed -- //
double maxSpeed = managerSelectedActivity.getMaxSpeed(); double maxSpeed = managerSelectedActivity.getMaxSpeed();
double avgSpeed = managerSelectedActivity.getAvgSpeed(); double avgSpeed = managerSelectedActivity.getAvgSpeed();

@ -3,6 +3,7 @@ import 'package:provider/provider.dart';
import 'package:smartfit_app_mobile/common_widget/container/container_stats_activities.dart'; import 'package:smartfit_app_mobile/common_widget/container/container_stats_activities.dart';
import 'package:smartfit_app_mobile/common_widget/other/entete_home_view.dart'; import 'package:smartfit_app_mobile/common_widget/other/entete_home_view.dart';
import 'package:smartfit_app_mobile/common/colo_extension.dart'; import 'package:smartfit_app_mobile/common/colo_extension.dart';
import 'package:smartfit_app_mobile/modele/manager_selected_activity.dart';
import 'package:smartfit_app_mobile/modele/user.dart'; import 'package:smartfit_app_mobile/modele/user.dart';
import 'package:smartfit_app_mobile/modele/utile/home_view/data_home_view.dart'; import 'package:smartfit_app_mobile/modele/utile/home_view/data_home_view.dart';
import 'package:smartfit_app_mobile/modele/utile/home_view/home_view_util.dart'; import 'package:smartfit_app_mobile/modele/utile/home_view/home_view_util.dart';
@ -22,27 +23,20 @@ class _StatAtivities extends State<StatAtivities> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
var media = MediaQuery.of(context).size; var media = MediaQuery.of(context).size;
data = HomeViewUtil().initData(context); data = HomeViewUtil().initData(context);
int maxBpm = context ManagerSelectedActivity managerSelectedActivity =
.watch<User>() context.watch<User>().managerSelectedActivity;
.managerSelectedActivity
.activitySelected // -- BPM -- //
.first int maxBpm = managerSelectedActivity.getBpmMaxAllActivitieSelected();
.activityInfo int minBpm = managerSelectedActivity.getBpmMinAllActivitieSelected();
.bpmMax; int avgBpm = (minBpm + maxBpm) ~/ 2;
int minBpm = context // -- Altitude -- //
.watch<User>() double maxAltitude =
.managerSelectedActivity managerSelectedActivity.getMaxAltitudeAllActivitySelected();
.activitySelected double minAltitude =
.first managerSelectedActivity.getMinAltitudeAllActivitySelected();
.activityInfo double avgAltitude = (minAltitude + maxAltitude) / 2;
.bpmMin;
int avgBpm = context
.watch<User>()
.managerSelectedActivity
.activitySelected
.first
.activityInfo
.bpmAvg;
double getTotalDistance = double getTotalDistance =
context.watch<User>().managerSelectedActivity.getTotalDistance(); context.watch<User>().managerSelectedActivity.getTotalDistance();
int totalSteps = int totalSteps =
@ -53,14 +47,9 @@ class _StatAtivities extends State<StatAtivities> {
context.watch<User>().managerSelectedActivity.getCalorie(); context.watch<User>().managerSelectedActivity.getCalorie();
double avgSpeed = double avgSpeed =
context.watch<User>().managerSelectedActivity.getAvgSpeed(); context.watch<User>().managerSelectedActivity.getAvgSpeed();
double avgAltitude =
context.watch<User>().managerSelectedActivity.getAvgAltitude();
double avgTemperature = double avgTemperature =
context.watch<User>().managerSelectedActivity.getAvgTemperature(); context.watch<User>().managerSelectedActivity.getAvgTemperature();
double maxAltitude =
context.watch<User>().managerSelectedActivity.getMaxAltitude();
double maxTemperature = double maxTemperature =
context.watch<User>().managerSelectedActivity.getMaxTemperature(); context.watch<User>().managerSelectedActivity.getMaxTemperature();
@ -68,8 +57,6 @@ class _StatAtivities extends State<StatAtivities> {
context.watch<User>().managerSelectedActivity.getMaxSpeed(); context.watch<User>().managerSelectedActivity.getMaxSpeed();
double minSpeed = double minSpeed =
context.watch<User>().managerSelectedActivity.getMinSpeed(); context.watch<User>().managerSelectedActivity.getMinSpeed();
double minAltitude =
context.watch<User>().managerSelectedActivity.getMinAltitude();
double minTemperature = double minTemperature =
context.watch<User>().managerSelectedActivity.getMinTemperature(); context.watch<User>().managerSelectedActivity.getMinTemperature();

@ -6,6 +6,7 @@ import 'package:smartfit_app_mobile/common_widget/graph/bpm_and_speed_by_time.da
import 'package:smartfit_app_mobile/common_widget/graph/bpm_by_time.dart'; import 'package:smartfit_app_mobile/common_widget/graph/bpm_by_time.dart';
import 'package:smartfit_app_mobile/common_widget/other/entete_home_view.dart'; import 'package:smartfit_app_mobile/common_widget/other/entete_home_view.dart';
import 'package:smartfit_app_mobile/common/colo_extension.dart'; import 'package:smartfit_app_mobile/common/colo_extension.dart';
import 'package:smartfit_app_mobile/modele/manager_selected_activity.dart';
import 'package:smartfit_app_mobile/modele/user.dart'; import 'package:smartfit_app_mobile/modele/user.dart';
import 'package:smartfit_app_mobile/modele/utile/home_view/data_home_view.dart'; import 'package:smartfit_app_mobile/modele/utile/home_view/data_home_view.dart';
import 'package:smartfit_app_mobile/modele/utile/home_view/home_view_util.dart'; import 'package:smartfit_app_mobile/modele/utile/home_view/home_view_util.dart';
@ -24,34 +25,23 @@ class _WebHomeView extends State<WebHomeView> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
var media = MediaQuery.of(context).size; var media = MediaQuery.of(context).size;
ManagerSelectedActivity managerSelectedActivity =
context.watch<User>().managerSelectedActivity;
// -- BPM -- // // -- BPM -- //
int maxBpm = context int maxBpm =
.watch<User>() managerSelectedActivity.activitySelected.first.activityInfo.bpmMax;
.managerSelectedActivity int minBpm =
.activitySelected managerSelectedActivity.activitySelected.first.activityInfo.bpmMin;
.first int avgBpm =
.activityInfo managerSelectedActivity.activitySelected.first.activityInfo.bpmAvg;
.bpmMax;
int minBpm = context
.watch<User>()
.managerSelectedActivity
.activitySelected
.first
.activityInfo
.bpmMin;
int avgBpm = context
.watch<User>()
.managerSelectedActivity
.activitySelected
.first
.activityInfo
.bpmAvg;
// -- Altitude -- // // -- Altitude -- //
double minAltitude = double minAltitude =
context.watch<User>().managerSelectedActivity.getMinAltitude(); managerSelectedActivity.activitySelected.first.activityInfo.altitudeMin;
double maxAltitude = double maxAltitude =
context.watch<User>().managerSelectedActivity.getMaxAltitude(); managerSelectedActivity.activitySelected.first.activityInfo.altitudeMax;
double avgAltitude = (maxAltitude + minAltitude) / 2; double avgAltitude =
managerSelectedActivity.activitySelected.first.activityInfo.altitudeAvg;
// -- Speed -- // // -- Speed -- //
double maxSpeed = double maxSpeed =
context.watch<User>().managerSelectedActivity.getMaxSpeed(); context.watch<User>().managerSelectedActivity.getMaxSpeed();

Loading…
Cancel
Save