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
Widget build(BuildContext context) {
final double maxY =
context.watch<User>().managerSelectedActivity.getMaxBpm() + 2;
final double minY =
context.watch<User>().managerSelectedActivity.getMinBpm() - 2;
final double maxY = widget.data.maxBPM + 2;
final double minY = widget.data.minBPM - 2;
final double maxX =
widget.data.bpmSecondes[widget.data.bpmSecondes.length - 1].x;
final double minX = 0.0;
const double minX = 0.0;
final lineBarsData = [
LineChartBarData(
spots: widget.data.bpmSecondes,

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

@ -19,9 +19,6 @@ class WebGraphAltitudeByTime extends StatefulWidget {
class _WebGraphAltitudeByTime extends State<WebGraphAltitudeByTime> {
@override
Widget build(BuildContext context) {
final double maxX =
widget.data.bpmSecondes[widget.data.bpmSecondes.length - 1].x;
final double minX = 0.0;
final double maxY =
context.watch<User>().managerSelectedActivity.getMaxAltitude() + 2;
final double minY =

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

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

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

@ -1,16 +1,10 @@
import 'dart:convert';
import 'dart:io';
import 'dart:typed_data';
import 'package:csv/csv.dart';
import 'package:file_picker/file_picker.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.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/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/common_widget/container/workout_row.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(
wObj: activityMap,
onDelete: () async {
// Attention toute modif peut amener à une surchage mémoire !!
if (await deleteFileOnBDD(
Provider.of<User>(context, listen: false)
.token,
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)
.removeActivity(activityObj);
}

@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.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/view/home/mobile/mobile_homeview.dart';
import 'package:smartfit_app_mobile/view/home/no_activity_view.dart';
@ -16,18 +17,25 @@ class HomeView extends StatefulWidget {
class _HomeViewState extends State<HomeView> {
@override
Widget build(BuildContext context) {
return context
.watch<User>()
.managerSelectedActivity
.activitySelected
.isEmpty
? ScreenTypeLayout.builder(
mobile: (_) => const NoActivityView(),
desktop: (_) => const NoActivityView(),
)
: ScreenTypeLayout.builder(
mobile: (_) => const MobileHomeView(),
desktop: (_) => const WebHomeView(),
);
List<ActivityOfUser> listSelected =
context.watch<User>().managerSelectedActivity.activitySelected;
if (listSelected.isEmpty) {
return ScreenTypeLayout.builder(
mobile: (_) => const NoActivityView("Pas d'activité sélectionnée"),
desktop: (_) => const NoActivityView("Pas d'activité sélectionnée"),
);
}
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 MobileHomeView(),
desktop: (_) => const WebHomeView(),
);
}
}

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

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

@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.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/view/home/no_activity_view.dart';
import 'package:smartfit_app_mobile/view/map/mobile/mobile_my_map.dart';
@ -16,18 +17,26 @@ class MyMap extends StatefulWidget {
class _MyMapState extends State<MyMap> {
@override
Widget build(BuildContext context) {
return context
.watch<User>()
.managerSelectedActivity
.activitySelected
.isEmpty
? ScreenTypeLayout.builder(
mobile: (_) => const NoActivityView(),
desktop: (_) => const NoActivityView(),
)
: ScreenTypeLayout.builder(
mobile: (_) => const MobileMyMaps(),
desktop: (_) => const WebMyMaps(),
);
List<ActivityOfUser> listSelected =
context.watch<User>().managerSelectedActivity.activitySelected;
if (listSelected.isEmpty) {
return ScreenTypeLayout.builder(
mobile: (_) => const NoActivityView("Pas d'activité sélectionnée"),
desktop: (_) => const NoActivityView("Pas d'activité sélectionnée"),
);
}
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(),
desktop: (_) => const WebMyMaps(),
);
}
}

Loading…
Cancel
Save