petite opti sur les BPM et home sur 1 view
continuous-integration/drone/push Build is passing Details

pull/4/head
Enzo 1 year ago
parent cfe7879c2f
commit b797031381

@ -98,13 +98,11 @@ class _MobileGraphBpmAndSpeedByTime
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final double maxY = final double maxY = widget.data.maxBPM + 2;
context.watch<User>().managerSelectedActivity.getMaxBpm() + 2; final double minY = widget.data.minBPM - 2;
final double minY =
context.watch<User>().managerSelectedActivity.getMinBpm() - 2;
final double maxX = final double maxX =
widget.data.bpmSecondes[widget.data.bpmSecondes.length - 1].x; widget.data.bpmSecondes[widget.data.bpmSecondes.length - 1].x;
final double minX = 0.0; const double minX = 0.0;
final lineBarsData = [ final lineBarsData = [
LineChartBarData( LineChartBarData(
spots: widget.data.bpmSecondes, spots: widget.data.bpmSecondes,

@ -18,13 +18,11 @@ class MobileBpmByTime extends StatefulWidget {
class _MobileBpmByTime extends State<MobileBpmByTime> { class _MobileBpmByTime extends State<MobileBpmByTime> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final double maxY = final double maxY = widget.data.maxBPM + 2;
context.watch<User>().managerSelectedActivity.getMaxBpm() + 2; final double minY = widget.data.minBPM - 2;
final double minY =
context.watch<User>().managerSelectedActivity.getMinBpm() - 2;
final double maxX = final double maxX =
widget.data.bpmSecondes[widget.data.bpmSecondes.length - 1].x; widget.data.bpmSecondes[widget.data.bpmSecondes.length - 1].x;
final double minX = 0.0; const double minX = 0.0;
final lineBarsData = [ final lineBarsData = [
LineChartBarData( LineChartBarData(
spots: widget.data.bpmSecondes, spots: widget.data.bpmSecondes,

@ -19,9 +19,6 @@ 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 maxX =
widget.data.bpmSecondes[widget.data.bpmSecondes.length - 1].x;
final double minX = 0.0;
final double maxY = final double maxY =
context.watch<User>().managerSelectedActivity.getMaxAltitude() + 2; context.watch<User>().managerSelectedActivity.getMaxAltitude() + 2;
final double minY = final double minY =

@ -97,17 +97,11 @@ class _WebGraphBpmAndSpeedByTime extends State<WebGraphBpmAndSpeedByTime> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final double maxY = final double maxY = widget.data.maxBPM + 2;
context.watch<User>().managerSelectedActivity.getMaxBpm() + 2; final double minY = widget.data.minBPM - 2;
final double minY =
context.watch<User>().managerSelectedActivity.getMinBpm() - 2;
final double maxY1 =
context.watch<User>().managerSelectedActivity.getMaxBpm() + 2;
final double minY2 =
context.watch<User>().managerSelectedActivity.getMinBpm() - 2;
final double maxX = final double maxX =
widget.data.bpmSecondes[widget.data.bpmSecondes.length - 1].x; widget.data.bpmSecondes[widget.data.bpmSecondes.length - 1].x;
final double minX = 0.0; const double minX = 0.0;
final lineBarsData = [ final lineBarsData = [
LineChartBarData( LineChartBarData(

@ -5,6 +5,8 @@ class DataHomeView {
late List<FlSpot> bpmSecondes2; late List<FlSpot> bpmSecondes2;
late List<FlSpot> vitesseSecondes; late List<FlSpot> vitesseSecondes;
late List<FlSpot> altitudeSeconde; late List<FlSpot> altitudeSeconde;
int minBPM = 0;
int maxBPM = 0;
DataHomeView(this.bpmSecondes, this.bpmSecondes2, this.vitesseSecondes, DataHomeView(this.bpmSecondes, this.bpmSecondes2, this.vitesseSecondes,
this.altitudeSeconde); this.altitudeSeconde);

@ -17,8 +17,8 @@ class Activity extends StatelessWidget {
.activitySelected .activitySelected
.isEmpty .isEmpty
? ScreenTypeLayout.builder( ? ScreenTypeLayout.builder(
mobile: (_) => const NoActivityView(), mobile: (_) => const NoActivityView("Pas d'activité sélectionnée"),
desktop: (_) => const NoActivityView(), desktop: (_) => const NoActivityView("Pas d'activité sélectionnée"),
) )
: ScreenTypeLayout.builder( : ScreenTypeLayout.builder(
mobile: (_) => const MobileActivity(), mobile: (_) => const MobileActivity(),

@ -1,16 +1,10 @@
import 'dart:convert';
import 'dart:io'; import 'dart:io';
import 'dart:typed_data';
import 'package:csv/csv.dart';
import 'package:file_picker/file_picker.dart'; import 'package:file_picker/file_picker.dart';
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/colo_extension.dart'; import 'package:smartfit_app_mobile/common/colo_extension.dart';
import 'package:smartfit_app_mobile/modele/activity.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/user.dart'; import 'package:smartfit_app_mobile/modele/user.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/utile/list_activity/list_activity_utile.dart'; import 'package:smartfit_app_mobile/modele/utile/list_activity/list_activity_utile.dart';
@ -143,10 +137,21 @@ class _MobileListActivity extends State<MobileListActivity> {
child: WorkoutRow( child: WorkoutRow(
wObj: activityMap, wObj: activityMap,
onDelete: () async { onDelete: () async {
// Attention toute modif peut amener à une surchage mémoire !!
if (await deleteFileOnBDD( if (await deleteFileOnBDD(
Provider.of<User>(context, listen: false) Provider.of<User>(context, listen: false)
.token, .token,
activityObj.fileUuid)) { activityObj.fileUuid)) {
if (!Provider.of<User>(context,
listen: false)
.managerSelectedActivity
.fileNotSelected(
activityObj.fileUuid)) {
Provider.of<User>(context, listen: false)
.managerSelectedActivity
.removeSelectedActivity(
activityObj.fileUuid);
}
Provider.of<User>(context, listen: false) Provider.of<User>(context, listen: false)
.removeActivity(activityObj); .removeActivity(activityObj);
} }

@ -1,6 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:responsive_builder/responsive_builder.dart'; import 'package:responsive_builder/responsive_builder.dart';
import 'package:smartfit_app_mobile/modele/activity.dart';
import 'package:smartfit_app_mobile/modele/user.dart'; import 'package:smartfit_app_mobile/modele/user.dart';
import 'package:smartfit_app_mobile/view/home/mobile/mobile_homeview.dart'; import 'package:smartfit_app_mobile/view/home/mobile/mobile_homeview.dart';
import 'package:smartfit_app_mobile/view/home/no_activity_view.dart'; import 'package:smartfit_app_mobile/view/home/no_activity_view.dart';
@ -16,16 +17,23 @@ class HomeView extends StatefulWidget {
class _HomeViewState extends State<HomeView> { class _HomeViewState extends State<HomeView> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return context List<ActivityOfUser> listSelected =
.watch<User>() context.watch<User>().managerSelectedActivity.activitySelected;
.managerSelectedActivity if (listSelected.isEmpty) {
.activitySelected return ScreenTypeLayout.builder(
.isEmpty mobile: (_) => const NoActivityView("Pas d'activité sélectionnée"),
? ScreenTypeLayout.builder( desktop: (_) => const NoActivityView("Pas d'activité sélectionnée"),
mobile: (_) => const NoActivityView(), );
desktop: (_) => const NoActivityView(), }
) if (listSelected.length > 1) {
: ScreenTypeLayout.builder( return ScreenTypeLayout.builder(
mobile: (_) => const NoActivityView(
"Qu'une seule activité doit être sélectionner"),
desktop: (_) => const NoActivityView(
"Qu'une seule activité doit être sélectionner"),
);
}
return ScreenTypeLayout.builder(
mobile: (_) => const MobileHomeView(), mobile: (_) => const MobileHomeView(),
desktop: (_) => const WebHomeView(), desktop: (_) => const WebHomeView(),
); );

@ -28,9 +28,10 @@ class _MobileHomeView extends State<MobileHomeView> {
ManagerSelectedActivity managerSelectedActivity = ManagerSelectedActivity managerSelectedActivity =
context.watch<User>().managerSelectedActivity; context.watch<User>().managerSelectedActivity;
data = HomeViewUtil().initData(context);
// -- BPM -- // // -- BPM -- //
int maxBpm = managerSelectedActivity.getMaxBpm(); data.maxBPM = managerSelectedActivity.getMaxBpm();
int minBpm = managerSelectedActivity.getMinBpm(); data.minBPM = managerSelectedActivity.getMinBpm();
int avgBpm = managerSelectedActivity.getAvgBpm(); int avgBpm = managerSelectedActivity.getAvgBpm();
// -- Altitude -- // // -- Altitude -- //
@ -40,7 +41,6 @@ class _MobileHomeView extends State<MobileHomeView> {
// -- Speed -- // // -- Speed -- //
double maxSpeed = managerSelectedActivity.getMaxSpeed(); double maxSpeed = managerSelectedActivity.getMaxSpeed();
double avgSpeed = managerSelectedActivity.getAvgSpeed(); double avgSpeed = managerSelectedActivity.getAvgSpeed();
data = HomeViewUtil().initData(context);
return Scaffold( return Scaffold(
backgroundColor: TColor.white, backgroundColor: TColor.white,
@ -70,8 +70,8 @@ class _MobileHomeView extends State<MobileHomeView> {
height: media.width * 0.05, height: media.width * 0.05,
), ),
LigneContainerStats( LigneContainerStats(
"${minBpm.toString()} BPM", "${data.minBPM.toString()} BPM",
"${maxBpm.toString()} BPM", "${data.maxBPM.toString()} BPM",
"${avgBpm.toString()} BPM", "${avgBpm.toString()} BPM",
"Minimum", "Minimum",
"Maximum", "Maximum",

@ -4,7 +4,8 @@ import 'package:flutter_svg/svg.dart';
import '../../common/colo_extension.dart'; import '../../common/colo_extension.dart';
class NoActivityView extends StatefulWidget { class NoActivityView extends StatefulWidget {
const NoActivityView({super.key}); const NoActivityView(this.msg, {super.key});
final String msg;
@override @override
State<NoActivityView> createState() => _NoActivityViewState(); State<NoActivityView> createState() => _NoActivityViewState();
@ -40,7 +41,7 @@ class _NoActivityViewState extends State<NoActivityView> {
height: media.height * 0.1, height: media.height * 0.1,
), ),
Text( Text(
"Pas d'activité sélectionnée", widget.msg,
style: TextStyle( style: TextStyle(
color: TColor.black, color: TColor.black,
fontSize: 20, fontSize: 20,

@ -1,6 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:responsive_builder/responsive_builder.dart'; import 'package:responsive_builder/responsive_builder.dart';
import 'package:smartfit_app_mobile/modele/activity.dart';
import 'package:smartfit_app_mobile/modele/user.dart'; import 'package:smartfit_app_mobile/modele/user.dart';
import 'package:smartfit_app_mobile/view/home/no_activity_view.dart'; import 'package:smartfit_app_mobile/view/home/no_activity_view.dart';
import 'package:smartfit_app_mobile/view/map/mobile/mobile_my_map.dart'; import 'package:smartfit_app_mobile/view/map/mobile/mobile_my_map.dart';
@ -16,16 +17,24 @@ class MyMap extends StatefulWidget {
class _MyMapState extends State<MyMap> { class _MyMapState extends State<MyMap> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return context List<ActivityOfUser> listSelected =
.watch<User>() context.watch<User>().managerSelectedActivity.activitySelected;
.managerSelectedActivity
.activitySelected if (listSelected.isEmpty) {
.isEmpty return ScreenTypeLayout.builder(
? ScreenTypeLayout.builder( mobile: (_) => const NoActivityView("Pas d'activité sélectionnée"),
mobile: (_) => const NoActivityView(), desktop: (_) => const NoActivityView("Pas d'activité sélectionnée"),
desktop: (_) => const NoActivityView(), );
) }
: ScreenTypeLayout.builder( if (listSelected.length > 1) {
return ScreenTypeLayout.builder(
mobile: (_) => const NoActivityView(
"Qu'une seule activité doit être sélectionner"),
desktop: (_) => const NoActivityView(
"Qu'une seule activité doit être sélectionner"),
);
}
return ScreenTypeLayout.builder(
mobile: (_) => const MobileMyMaps(), mobile: (_) => const MobileMyMaps(),
desktop: (_) => const WebMyMaps(), desktop: (_) => const WebMyMaps(),
); );

Loading…
Cancel
Save