diff --git a/lib/common_widget/container/list/list_activity_widget.dart b/lib/common_widget/container/list/list_activity_widget.dart index 2205ea2..bcaaba8 100644 --- a/lib/common_widget/container/list/list_activity_widget.dart +++ b/lib/common_widget/container/list/list_activity_widget.dart @@ -1,6 +1,8 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.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/utile/list_activity/list_activity_utile.dart'; import 'package:tuple/tuple.dart'; @@ -14,6 +16,7 @@ class ListActivityWidget extends StatefulWidget { class _ListActivityWidget extends State { final ListActivityUtile _utile = ListActivityUtile(); + final ManagerFile managerFile = ManagerFile(); @override Widget build(BuildContext context) { @@ -25,9 +28,16 @@ class _ListActivityWidget extends State { shrinkWrap: true, itemCount: Provider.of(context, listen: true).listActivity.length, itemBuilder: (context, index) { - var activityObj = + ActivityOfUser activityObj = Provider.of(context, listen: true).listActivity[index]; - var activityMap = activityObj.toMap(); + Map activityMap; + // -- Si categorie == marche + if (activityObj.category == managerFile.marche) { + activityMap = activityObj.toMapWalking(); + } else { + // -- Default -- // + activityMap = activityObj.toMapGeneric(); + } return InkWell( onTap: () {}, diff --git a/lib/common_widget/graph/mobile/mobile_altitude_by_time.dart b/lib/common_widget/graph/mobile/mobile_altitude_by_time.dart index cc5bc31..e37bee9 100644 --- a/lib/common_widget/graph/mobile/mobile_altitude_by_time.dart +++ b/lib/common_widget/graph/mobile/mobile_altitude_by_time.dart @@ -20,10 +20,22 @@ class MobileGraphAltitudeByTime extends StatefulWidget { class _MobileGraphAltitudeByTime extends State { @override Widget build(BuildContext context) { - final double maxY = - context.watch().managerSelectedActivity.getMaxAltitude() + 2; - final double minY = - context.watch().managerSelectedActivity.getMinAltitude() - 2; + final double maxY = context + .watch() + .managerSelectedActivity + .activitySelected + .first + .activityInfo + .altitudeMax + + 2; + final double minY = context + .watch() + .managerSelectedActivity + .activitySelected + .first + .activityInfo + .altitudeMin - + 2; final lineBarsData = [ LineChartBarData( diff --git a/lib/common_widget/graph/web/web_altitude_by_time.dart b/lib/common_widget/graph/web/web_altitude_by_time.dart index 0368c88..8868894 100644 --- a/lib/common_widget/graph/web/web_altitude_by_time.dart +++ b/lib/common_widget/graph/web/web_altitude_by_time.dart @@ -19,10 +19,22 @@ class WebGraphAltitudeByTime extends StatefulWidget { class _WebGraphAltitudeByTime extends State { @override Widget build(BuildContext context) { - final double maxY = - context.watch().managerSelectedActivity.getMaxAltitude() + 2; - final double minY = - context.watch().managerSelectedActivity.getMinAltitude() - 2; + final double maxY = context + .watch() + .managerSelectedActivity + .activitySelected + .first + .activityInfo + .altitudeMax + + 2; + final double minY = context + .watch() + .managerSelectedActivity + .activitySelected + .first + .activityInfo + .altitudeMin - + 2; final lineBarsData = [ LineChartBarData( diff --git a/lib/modele/activity.dart b/lib/modele/activity.dart index 131e018..57b36f1 100644 --- a/lib/modele/activity.dart +++ b/lib/modele/activity.dart @@ -41,15 +41,19 @@ class ActivityOfUser { // -------------------------- FIN Localisation ---------------------- // - Map toMap() { + Map toMapGeneric() { Map map = { 'categorie': _categorie, 'image': _imageName, 'date': _activityInfo.startTime, 'time': _activityInfo.timeOfActivity, }; - map.addAll(_activityInfo.toMap()); + return map; + } + Map toMapWalking() { + Map map = toMapGeneric(); + map.addAll(activityInfo.toMapWalking()); return map; } } diff --git a/lib/modele/activity_info/activity_info.dart b/lib/modele/activity_info/activity_info.dart index 3f759da..2c0f38b 100644 --- a/lib/modele/activity_info/activity_info.dart +++ b/lib/modele/activity_info/activity_info.dart @@ -1,25 +1,47 @@ +import 'dart:convert'; + import 'package:smartfit_app_mobile/modele/manager_file.dart'; -abstract class ActivityInfo { +class ActivityInfo { ManagerFile managerFile = ManagerFile(); + ActivityInfo(); // -- Time -- // Ne pas calculer (Ligne session) String startTime = "2000-01-01"; double timeOfActivity = 0.0; - // -- BPM -- // + // ----------- BPM ------------ // int bpmMax = 0; int bpmMin = 300; 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 -- // ActivityInfo getData(List> csv) { + // - Entete - // + Map enteteCSV = getEntete(csv.first); + // ------------- Var tmp ---------- // // -- BPM -- // int bpmSomme = 0; int bpmNb = 0; - Map 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++) { - // -- BPM -- // + // + // ---------------------- BPM ---------------------- // if (!isNull(enteteCSV["Value_${managerFile.fielBPM}"]!, csv[i])) { int value = int.parse(csv[i][enteteCSV["Value_${managerFile.fielBPM}"]!]); @@ -32,13 +54,38 @@ abstract class ActivityInfo { 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 -- // bpmAvg = bpmSomme ~/ bpmNb; + // -- Atitude -- // + altitudeAvg = altitudeSomme / alititudeNb; return this; } + // ------------ Fonction utile ------------------- // Map getEntete(List content) { Map enteteCSV = {}; for (int i = 0; i < content.length; i++) { @@ -51,16 +98,59 @@ abstract class ActivityInfo { return ligne[colonne] == "null"; } - String toJson(); - Map toMap(); + // ------------- Pour print ----------------- // + Map toMapWalking() { + return { + // -- Denivelé -- // + "DenivelePositif": denivelePositif, + "DeniveleNegatif": denivelePositif, + // -- Altitude -- // + "AltitudeMax": altitudeMax, + "AltitudeMin": altitudeMin, + "AltitudeAvg": altitudeAvg + }; + } + + // --------------- JSON --------- // + // -- Lecture -- // ActivityInfo.fromJson(Map? map) { if (map == null) { return; } + // -- Ligne session -- // startTime = map["startTime"]; timeOfActivity = map["timeOfActivity"].toDouble(); + // -- BPM -- // bpmAvg = map["bpmAvg"]; bpmMax = map["bpmMax"]; 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 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); } } diff --git a/lib/modele/activity_info/activity_info_generic.dart b/lib/modele/activity_info/activity_info_generic.dart deleted file mode 100644 index 3b42b53..0000000 --- a/lib/modele/activity_info/activity_info_generic.dart +++ /dev/null @@ -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> csv) { - super.getData(csv); - return this; - } - - @override - // Méthode pour convertir les attributs en JSON - String toJson() { - Map jsonMap = { - 'bpmAvg': bpmAvg, - 'bpmMax': bpmMax, - 'bpmMin': bpmMin, - 'startTime': startTime, - 'timeOfActivity': timeOfActivity, - }; - return jsonEncode(jsonMap); - } - - @override - Map toMap() { - return {}; - } -} diff --git a/lib/modele/activity_info/activity_info_walking.dart b/lib/modele/activity_info/activity_info_walking.dart deleted file mode 100644 index 104ac30..0000000 --- a/lib/modele/activity_info/activity_info_walking.dart +++ /dev/null @@ -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> csv) { - super.getData(csv); - - Map 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 jsonMap = { - // Unique - 'denivelePositif': denivelePositif, - 'deniveleNegatif': deniveleNegatif, - // All - 'bpmAvg': bpmAvg, - 'bpmMax': bpmMax, - 'bpmMin': bpmMin, - // Ligne session - 'startTime': startTime, - 'timeOfActivity': timeOfActivity, - }; - return jsonEncode(jsonMap); - } - - @override - Map toMap() { - return { - "DenivelePositif": denivelePositif, - "DeniveleNegatif": denivelePositif - }; - } -} diff --git a/lib/modele/manager_file.dart b/lib/modele/manager_file.dart index 6dcebe0..937dc96 100644 --- a/lib/modele/manager_file.dart +++ b/lib/modele/manager_file.dart @@ -4,8 +4,6 @@ import 'package:csv/csv.dart'; import 'package:fit_tool/fit_tool.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_generic.dart'; -import 'package:smartfit_app_mobile/modele/activity_info/activity_info_walking.dart'; import 'package:tuple/tuple.dart'; class ManagerFile { @@ -25,7 +23,7 @@ class ManagerFile { 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 _timeActivity = "total_elapsed_time"; // -- Getter field String get fieldTimeStamp => _fieldTimestamp; @@ -44,6 +42,10 @@ class ManagerFile { static const String _velo = "cycling"; static const String _marche = "walking"; + // -- Getter categorie + String get marche => _marche; + String get generic => _generic; + List allowedFieldWalking = List.empty(growable: true); List allowedFieldGeneric = List.empty(growable: true); List allowedFieldCycling = List.empty(growable: true); @@ -106,11 +108,11 @@ class ManagerFile { List fitFile = FitFile.fromBytes(bytes).records; String categorie; List fieldAllowed = []; - ActivityInfo info; + ActivityInfo info = ActivityInfo(); // -- Chercher ligne session -- // List ligneSession = _getLigneSession(fitFile); if (ligneSession.isEmpty) { - return Tuple4(false, List.empty(), ActivityInfoGeneric(), ""); + return Tuple4(false, List.empty(), ActivityInfo(), ""); } categorie = _getCategoryById(int.parse(_getXfromListe(_sport, ligneSession))); @@ -119,11 +121,9 @@ class ManagerFile { switch (categorie) { case (_marche): fieldAllowed = allowedFieldWalking; - info = ActivityInfoWalking(); break; case (_generic): fieldAllowed = allowedFieldGeneric; - info = ActivityInfoGeneric(); break; default: // A REMETRE EN GENERIC @@ -131,15 +131,20 @@ class ManagerFile { //info = ActivityInfoGeneric(); //categorie = _generic; fieldAllowed = allowedFieldWalking; - info = ActivityInfoWalking(); break; } + + // -------- Transformation en CSV ----------- // List> csvData = transformDataMapIntoCSV( getDataOfListeOfRecord(fitFile, fieldAllowed), fieldAllowed); - // Remplir info avec la ligne session + + // ------ Remplir info avec la ligne session --------- // info.startTime = DateTime.fromMillisecondsSinceEpoch( int.parse(_getXfromListe(_startTime, ligneSession))) .toIso8601String(); + info.timeOfActivity = + double.parse(_getXfromListe(_timeActivity, ligneSession)); + // ----------------------------------------------------- // return Tuple4(true, csvData, info.getData(csvData), categorie); } diff --git a/lib/modele/manager_selected_activity.dart b/lib/modele/manager_selected_activity.dart index b8fdec0..a0ed413 100644 --- a/lib/modele/manager_selected_activity.dart +++ b/lib/modele/manager_selected_activity.dart @@ -99,6 +99,26 @@ class ManagerSelectedActivity { 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) int getMinBpm() { @@ -118,6 +138,7 @@ class ManagerSelectedActivity { } return min; } + // Retourne le BPM avg (Fichier CSV) int getAvgBpm() { @@ -135,7 +156,7 @@ class ManagerSelectedActivity { } return somme ~/ nb; }*/ - + /* double getAvgAltitude() { double somme = 0; int nb = 0; @@ -154,7 +175,7 @@ class ManagerSelectedActivity { } double average = somme / nb; return double.parse(average.toStringAsFixed(2)); - } + }*/ double getAvgTemperature() { double somme = 0; @@ -332,7 +353,7 @@ class ManagerSelectedActivity { // ---------------------------- FIN time -------------------- // // ---------------------------------------- Altitude -------------------- // - + /* // --- Fichier CSV --- // double getMaxAltitude() { double max = 0; @@ -354,8 +375,28 @@ class ManagerSelectedActivity { } } 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 --- // double getMinAltitude() { double min = 5000; @@ -377,7 +418,7 @@ class ManagerSelectedActivity { } } return min; - } + }*/ // -------------------------- FIN altitude ---------------------- // diff --git a/lib/modele/user.dart b/lib/modele/user.dart index 1a891a8..5320f97 100644 --- a/lib/modele/user.dart +++ b/lib/modele/user.dart @@ -1,6 +1,5 @@ import 'package:flutter/material.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'; class User extends ChangeNotifier { @@ -27,7 +26,7 @@ class User extends ChangeNotifier { } // ------------ Fonction Calcul -------- // - + // --- Time --- // double getTotalTimeAllActivity() { double totalTime = 0.0; for (ActivityOfUser activity in listActivity) { @@ -36,15 +35,12 @@ class User extends ChangeNotifier { return totalTime; } + // ------------ Walking -------------- // + // ---- Denivelé ---- // double getTotalDenivelePositif() { double totalDevPos = 0.0; for (ActivityOfUser activity in listActivity) { - try { - totalDevPos += - (activity.activityInfo as ActivityInfoWalking).denivelePositif; - } catch (e) { - //print(e); - } + totalDevPos += activity.activityInfo.denivelePositif; } return totalDevPos; } @@ -52,12 +48,7 @@ class User extends ChangeNotifier { double getTotalDeniveleNegatif() { double totalDevNeg = 0.0; for (ActivityOfUser activity in listActivity) { - try { - totalDevNeg += - (activity.activityInfo as ActivityInfoWalking).deniveleNegatif; - } catch (e) { - //print(e); - } + totalDevNeg += activity.activityInfo.deniveleNegatif; } return totalDevNeg; } diff --git a/lib/modele/utile/list_activity/list_activity_utile.dart b/lib/modele/utile/list_activity/list_activity_utile.dart index b5b7d0c..7deadc9 100644 --- a/lib/modele/utile/list_activity/list_activity_utile.dart +++ b/lib/modele/utile/list_activity/list_activity_utile.dart @@ -6,7 +6,6 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.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_walking.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/manager_file.dart'; @@ -54,7 +53,7 @@ class ListActivityUtile { // -- connaitre le type de categorie pour changer le type d'info -- // Provider.of(context, listen: false).addActivity(ActivityOfUser( - ActivityInfoWalking.fromJson(element["info"]), + ActivityInfo.fromJson(element["info"]), element["category"].toString(), element["uuid"].toString(), element["filename"].toString())); @@ -100,6 +99,7 @@ class ListActivityUtile { return true; } + // --- Ne marche pas sous window !! Jsp linux (mettre en format mobile) -- // void addFileWeb(Uint8List? bytes, String token, String filename, BuildContext context) async { if (bytes == null) { diff --git a/lib/view/home/mobile/mobile_homeview.dart b/lib/view/home/mobile/mobile_homeview.dart index 8e74649..852e7c7 100644 --- a/lib/view/home/mobile/mobile_homeview.dart +++ b/lib/view/home/mobile/mobile_homeview.dart @@ -38,9 +38,12 @@ class _MobileHomeView extends State { managerSelectedActivity.activitySelected.first.activityInfo.bpmAvg; // -- Altitude -- // - double minAltitude = managerSelectedActivity.getMinAltitude(); - double maxAltitude = managerSelectedActivity.getMaxAltitude(); - double avgAltitude = (maxAltitude + minAltitude) / 2; + double minAltitude = + managerSelectedActivity.activitySelected.first.activityInfo.altitudeMin; + double maxAltitude = + managerSelectedActivity.activitySelected.first.activityInfo.altitudeMax; + double avgAltitude = + managerSelectedActivity.activitySelected.first.activityInfo.altitudeAvg; // -- Speed -- // double maxSpeed = managerSelectedActivity.getMaxSpeed(); double avgSpeed = managerSelectedActivity.getAvgSpeed(); diff --git a/lib/view/home/stats_activities_view.dart b/lib/view/home/stats_activities_view.dart index ab49b87..ad4df11 100644 --- a/lib/view/home/stats_activities_view.dart +++ b/lib/view/home/stats_activities_view.dart @@ -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/other/entete_home_view.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/utile/home_view/data_home_view.dart'; import 'package:smartfit_app_mobile/modele/utile/home_view/home_view_util.dart'; @@ -22,27 +23,20 @@ class _StatAtivities extends State { Widget build(BuildContext context) { var media = MediaQuery.of(context).size; data = HomeViewUtil().initData(context); - int maxBpm = context - .watch() - .managerSelectedActivity - .activitySelected - .first - .activityInfo - .bpmMax; - int minBpm = context - .watch() - .managerSelectedActivity - .activitySelected - .first - .activityInfo - .bpmMin; - int avgBpm = context - .watch() - .managerSelectedActivity - .activitySelected - .first - .activityInfo - .bpmAvg; + ManagerSelectedActivity managerSelectedActivity = + context.watch().managerSelectedActivity; + + // -- BPM -- // + int maxBpm = managerSelectedActivity.getBpmMaxAllActivitieSelected(); + int minBpm = managerSelectedActivity.getBpmMinAllActivitieSelected(); + int avgBpm = (minBpm + maxBpm) ~/ 2; + // -- Altitude -- // + double maxAltitude = + managerSelectedActivity.getMaxAltitudeAllActivitySelected(); + double minAltitude = + managerSelectedActivity.getMinAltitudeAllActivitySelected(); + double avgAltitude = (minAltitude + maxAltitude) / 2; + double getTotalDistance = context.watch().managerSelectedActivity.getTotalDistance(); int totalSteps = @@ -53,14 +47,9 @@ class _StatAtivities extends State { context.watch().managerSelectedActivity.getCalorie(); double avgSpeed = context.watch().managerSelectedActivity.getAvgSpeed(); - double avgAltitude = - context.watch().managerSelectedActivity.getAvgAltitude(); double avgTemperature = context.watch().managerSelectedActivity.getAvgTemperature(); - double maxAltitude = - context.watch().managerSelectedActivity.getMaxAltitude(); - double maxTemperature = context.watch().managerSelectedActivity.getMaxTemperature(); @@ -68,8 +57,6 @@ class _StatAtivities extends State { context.watch().managerSelectedActivity.getMaxSpeed(); double minSpeed = context.watch().managerSelectedActivity.getMinSpeed(); - double minAltitude = - context.watch().managerSelectedActivity.getMinAltitude(); double minTemperature = context.watch().managerSelectedActivity.getMinTemperature(); diff --git a/lib/view/home/web/web_homeview.dart b/lib/view/home/web/web_homeview.dart index 89a389a..7ec0374 100644 --- a/lib/view/home/web/web_homeview.dart +++ b/lib/view/home/web/web_homeview.dart @@ -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/other/entete_home_view.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/utile/home_view/data_home_view.dart'; import 'package:smartfit_app_mobile/modele/utile/home_view/home_view_util.dart'; @@ -24,40 +25,29 @@ class _WebHomeView extends State { @override Widget build(BuildContext context) { var media = MediaQuery.of(context).size; + ManagerSelectedActivity managerSelectedActivity = + context.watch().managerSelectedActivity; + // -- BPM -- // - int maxBpm = context - .watch() - .managerSelectedActivity - .activitySelected - .first - .activityInfo - .bpmMax; - int minBpm = context - .watch() - .managerSelectedActivity - .activitySelected - .first - .activityInfo - .bpmMin; - int avgBpm = context - .watch() - .managerSelectedActivity - .activitySelected - .first - .activityInfo - .bpmAvg; + int maxBpm = + managerSelectedActivity.activitySelected.first.activityInfo.bpmMax; + int minBpm = + managerSelectedActivity.activitySelected.first.activityInfo.bpmMin; + int avgBpm = + managerSelectedActivity.activitySelected.first.activityInfo.bpmAvg; // -- Altitude -- // double minAltitude = - context.watch().managerSelectedActivity.getMinAltitude(); + managerSelectedActivity.activitySelected.first.activityInfo.altitudeMin; double maxAltitude = - context.watch().managerSelectedActivity.getMaxAltitude(); - double avgAltitude = (maxAltitude + minAltitude) / 2; + managerSelectedActivity.activitySelected.first.activityInfo.altitudeMax; + double avgAltitude = + managerSelectedActivity.activitySelected.first.activityInfo.altitudeAvg; // -- Speed -- // double maxSpeed = context.watch().managerSelectedActivity.getMaxSpeed(); double avgSpeed = context.watch().managerSelectedActivity.getAvgSpeed(); - + data = HomeViewUtil().initData(context); data.maxBPM = maxBpm; data.minBPM = minBpm;