pull/4/head
Enzo 1 year ago
parent 6d0207e94c
commit 195e78a705

@ -11,11 +11,11 @@ class ContainerStats extends StatelessWidget {
final String designation; final String designation;
final IconData icon; final IconData icon;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return ScreenTypeLayout.builder( return ScreenTypeLayout.builder(
mobile: (_) => MobileContainerStats(this.value, this.designation, this.icon), mobile: (_) => MobileContainerStats(value, designation, icon),
desktop: (_) => WebContainerStats(this.value, this.designation, this.icon), desktop: (_) => WebContainerStats(value, designation, icon),
); );
} }
} }

@ -38,7 +38,8 @@ class MobileContainerStatsActivities extends StatelessWidget {
], ],
), ),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.center, // Centrer horizontalement crossAxisAlignment:
CrossAxisAlignment.center, // Centrer horizontalement
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
@ -48,7 +49,7 @@ class MobileContainerStatsActivities extends StatelessWidget {
iconBackground: TColor.secondaryColor1, iconBackground: TColor.secondaryColor1,
sizeIcon: 30.0, sizeIcon: 30.0,
), ),
SizedBox(height: 20), // Espacement entre l'icône et le texte const SizedBox(height: 20), // Espacement entre l'icône et le texte
Text( Text(
designation, designation,
style: const TextStyle(fontSize: 12), style: const TextStyle(fontSize: 12),
@ -57,7 +58,7 @@ class MobileContainerStatsActivities extends StatelessWidget {
Text( Text(
value, value,
style: const TextStyle( style: const TextStyle(
fontSize: 17 , fontSize: 17,
fontWeight: FontWeight.w800, fontWeight: FontWeight.w800,
), ),
textAlign: TextAlign.center, textAlign: TextAlign.center,

@ -3,9 +3,16 @@ import 'package:smartfit_app_mobile/common/colo_extension.dart';
import 'package:smartfit_app_mobile/common_widget/container/container_stats.dart'; import 'package:smartfit_app_mobile/common_widget/container/container_stats.dart';
class MobileLigneContainerStats extends StatelessWidget { class MobileLigneContainerStats extends StatelessWidget {
const MobileLigneContainerStats(this.value1, this.value2, this.value3, const MobileLigneContainerStats(
this.designation1, this.designation2, this.designation3, this.value1,
this.icon1, this.icon2, this.icon3, this.value2,
this.value3,
this.designation1,
this.designation2,
this.designation3,
this.icon1,
this.icon2,
this.icon3,
{Key? key}) {Key? key})
: super(key: key); : super(key: key);
@ -21,13 +28,11 @@ class MobileLigneContainerStats extends StatelessWidget {
final IconData icon2; final IconData icon2;
final IconData icon3; final IconData icon3;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Column( return Column(
children: [ children: [
Divider(height: 30), const Divider(height: 30),
Padding( Padding(
padding: const EdgeInsets.symmetric(horizontal: 30), padding: const EdgeInsets.symmetric(horizontal: 30),
child: Row( child: Row(
@ -39,7 +44,7 @@ class MobileLigneContainerStats extends StatelessWidget {
fontWeight: FontWeight.w800, fontWeight: FontWeight.w800,
), ),
), ),
SizedBox(width: 8), const SizedBox(width: 8),
Icon( Icon(
Icons.pie_chart_rounded, Icons.pie_chart_rounded,
size: 15, size: 15,
@ -48,24 +53,21 @@ class MobileLigneContainerStats extends StatelessWidget {
], ],
), ),
), ),
const SizedBox(height: 20),
SizedBox(height: 20), SingleChildScrollView(
SingleChildScrollView( scrollDirection: Axis.horizontal,
scrollDirection: Axis.horizontal, child: Row(
child:Row( mainAxisAlignment: MainAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center, children: [
children: [ ContainerStats(value1, designation1, icon1),
ContainerStats(value1, designation1, icon1), const SizedBox(width: 20),
const SizedBox(width: 20), ContainerStats(value2, designation2, icon2),
ContainerStats(value2, designation2, icon2), const SizedBox(width: 20),
const SizedBox(width: 20), ContainerStats(value3, designation3, icon3),
ContainerStats(value3, designation3, icon3), ],
],) )),
), const Divider(height: 30),
Divider(height: 30),
], ],
); );
} }
} }

@ -38,7 +38,8 @@ class WebContainerStatsActivities extends StatelessWidget {
], ],
), ),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.center, // Centrer horizontalement crossAxisAlignment:
CrossAxisAlignment.center, // Centrer horizontalement
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
@ -48,7 +49,7 @@ class WebContainerStatsActivities extends StatelessWidget {
iconBackground: TColor.secondaryColor1, iconBackground: TColor.secondaryColor1,
sizeIcon: 40.0, sizeIcon: 40.0,
), ),
SizedBox(height: 40), // Espacement entre l'icône et le texte const SizedBox(height: 40), // Espacement entre l'icône et le texte
Text( Text(
designation, designation,
style: const TextStyle(fontSize: 15), style: const TextStyle(fontSize: 15),
@ -57,7 +58,7 @@ class WebContainerStatsActivities extends StatelessWidget {
Text( Text(
value, value,
style: const TextStyle( style: const TextStyle(
fontSize: 20 , fontSize: 20,
fontWeight: FontWeight.w800, fontWeight: FontWeight.w800,
), ),
textAlign: TextAlign.center, textAlign: TextAlign.center,

@ -3,9 +3,16 @@ import 'package:smartfit_app_mobile/common/colo_extension.dart';
import 'package:smartfit_app_mobile/common_widget/container/container_stats.dart'; import 'package:smartfit_app_mobile/common_widget/container/container_stats.dart';
class WebLigneContainerStats extends StatelessWidget { class WebLigneContainerStats extends StatelessWidget {
const WebLigneContainerStats(this.value1, this.value2, this.value3, const WebLigneContainerStats(
this.designation1, this.designation2, this.designation3, this.value1,
this.icon1, this.icon2, this.icon3, this.value2,
this.value3,
this.designation1,
this.designation2,
this.designation3,
this.icon1,
this.icon2,
this.icon3,
{Key? key}) {Key? key})
: super(key: key); : super(key: key);
@ -21,7 +28,6 @@ class WebLigneContainerStats extends StatelessWidget {
final IconData icon2; final IconData icon2;
final IconData icon3; final IconData icon3;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Column( return Column(
@ -37,7 +43,7 @@ class WebLigneContainerStats extends StatelessWidget {
fontWeight: FontWeight.w800, fontWeight: FontWeight.w800,
), ),
), ),
SizedBox(width: 8), const SizedBox(width: 8),
Icon( Icon(
Icons.pie_chart_rounded, Icons.pie_chart_rounded,
size: 15, size: 15,
@ -46,24 +52,21 @@ class WebLigneContainerStats extends StatelessWidget {
], ],
), ),
), ),
const SizedBox(height: 20),
SizedBox(height: 20), SingleChildScrollView(
SingleChildScrollView( scrollDirection: Axis.horizontal,
scrollDirection: Axis.horizontal, child: Column(
child:Column( mainAxisAlignment: MainAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center, children: [
children: [ ContainerStats(value1, designation1, icon1),
ContainerStats(value1, designation1, icon1), const SizedBox(width: 20),
const SizedBox(width: 20), ContainerStats(value2, designation2, icon2),
ContainerStats(value2, designation2, icon2), const SizedBox(width: 20),
const SizedBox(width: 20), ContainerStats(value3, designation3, icon3),
ContainerStats(value3, designation3, icon3), ],
],) )),
), const Divider(height: 30),
Divider(height: 30),
], ],
); );
} }
} }

@ -1,6 +1,5 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:responsive_builder/responsive_builder.dart'; import 'package:responsive_builder/responsive_builder.dart';
import 'package:smartfit_app_mobile/common_widget/graph/data_for_graph/func_bpm_and_speed_by_time.dart';
import 'package:smartfit_app_mobile/common_widget/graph/data_for_graph/func_bpm_by_time.dart'; import 'package:smartfit_app_mobile/common_widget/graph/data_for_graph/func_bpm_by_time.dart';
import 'package:smartfit_app_mobile/common_widget/graph/mobile/mobile_bpm_by_time.dart'; import 'package:smartfit_app_mobile/common_widget/graph/mobile/mobile_bpm_by_time.dart';
import 'package:smartfit_app_mobile/common_widget/graph/web/web_bpm_by_time.dart'; import 'package:smartfit_app_mobile/common_widget/graph/web/web_bpm_by_time.dart';
@ -10,21 +9,20 @@ class BpmByTime extends StatefulWidget {
final Size media; final Size media;
final DataHomeView data; final DataHomeView data;
const BpmByTime(this.media, this.data, {Key? key}) const BpmByTime(this.media, this.data, {Key? key}) : super(key: key);
: super(key: key);
@override @override
State<BpmByTime> createState() => _BpmByTime(); State<BpmByTime> createState() => _BpmByTime();
} }
class _BpmByTime extends State<BpmByTime> { class _BpmByTime extends State<BpmByTime> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final FuncBpmByTime funcBpm = FuncBpmByTime(widget.data); final FuncBpmByTime funcBpm = FuncBpmByTime(widget.data);
return ScreenTypeLayout.builder( return ScreenTypeLayout.builder(
mobile: (_) => MobileBpmByTime(widget.media, widget.data), mobile: (_) => MobileBpmByTime(widget.media, widget.data),
desktop: (_) => WebBpmByTime(widget.media, widget.data, funcBpm), desktop: (_) => WebBpmByTime(widget.media, widget.data, funcBpm),
); );
} }
} }

@ -58,26 +58,24 @@ class FuncBpmAndSpeedByTime {
text = '0 BPM'; text = '0 BPM';
break; break;
case 20: case 20:
text = (interval).toStringAsFixed(2)+" BPM"; text = "${(interval).toStringAsFixed(2)} BPM";
break; break;
case 40: case 40:
text = (interval*2).toStringAsFixed(2)+" BPM"; text = "${(interval * 2).toStringAsFixed(2)} BPM";
break; break;
case 60: case 60:
text = (interval*3).toStringAsFixed(2)+" BPM"; text = "${(interval * 3).toStringAsFixed(2)} BPM";
break; break;
case 80: case 80:
text = (interval*4).toStringAsFixed(2)+" BPM"; text = "${(interval * 4).toStringAsFixed(2)} BPM";
break; break;
case 100: case 100:
text = (interval*5).toString()+" BPM"; text = "${interval * 5} BPM";
break; break;
default: default:
return Container(); return Container();
} }
return Text(text, return Text(text,
style: TextStyle( style: TextStyle(
color: TColor.gray, color: TColor.gray,
@ -85,34 +83,33 @@ class FuncBpmAndSpeedByTime {
), ),
textAlign: TextAlign.center); textAlign: TextAlign.center);
} }
Widget bottomTitleWidgets(double value, TitleMeta meta) { Widget bottomTitleWidgets(double value, TitleMeta meta) {
double interval = data.time/ 5; double interval = data.time / 5;
String text; String text;
switch (value) { switch (value) {
case 0: case 0:
text = '0 s'; text = '0 s';
break; break;
case 20: case 20:
text = (interval).toStringAsFixed(2)+" s"; text = "${(interval).toStringAsFixed(2)} s";
break; break;
case 40: case 40:
text = (interval*2).toStringAsFixed(2)+" s"; text = "${(interval * 2).toStringAsFixed(2)} s";
break; break;
case 60: case 60:
text = (interval*3).toStringAsFixed(2)+" s"; text = "${(interval * 3).toStringAsFixed(2)} s";
break; break;
case 80: case 80:
text = (interval*4).toStringAsFixed(2)+" s"; text = "${(interval * 4).toStringAsFixed(2)} s";
break; break;
case 100: case 100:
text = (interval*5).toStringAsFixed(2)+" s"; text = "${(interval * 5).toStringAsFixed(2)} s";
break; break;
default: default:
return Container(); return Container();
} }
return Text(text, return Text(text,
style: TextStyle( style: TextStyle(
color: TColor.gray, color: TColor.gray,
@ -130,26 +127,24 @@ class FuncBpmAndSpeedByTime {
text = '0 m/s'; text = '0 m/s';
break; break;
case 20: case 20:
text = (interval / 5).toStringAsFixed(2)+" m/s"; text = "${(interval / 5).toStringAsFixed(2)} m/s";
break; break;
case 40: case 40:
text = (interval*2).toStringAsFixed(2)+" m/s"; text = "${(interval * 2).toStringAsFixed(2)} m/s";
break; break;
case 60: case 60:
text = (interval*3).toStringAsFixed(2)+" m/s"; text = "${(interval * 3).toStringAsFixed(2)} m/s";
break; break;
case 80: case 80:
text = (interval*4).toStringAsFixed(2)+" m/s"; text = "${(interval * 4).toStringAsFixed(2)} m/s";
break; break;
case 100: case 100:
text = (interval*5).toStringAsFixed(2)+" m/s"; text = "${(interval * 5).toStringAsFixed(2)} m/s";
break; break;
default: default:
return Container(); return Container();
} }
return Text(text, return Text(text,
style: TextStyle( style: TextStyle(
color: TColor.gray, color: TColor.gray,
@ -157,6 +152,7 @@ class FuncBpmAndSpeedByTime {
), ),
textAlign: TextAlign.center); textAlign: TextAlign.center);
} }
List<LineChartBarData> get lineBarsData1 => [ List<LineChartBarData> get lineBarsData1 => [
lineChartBarData1_1, lineChartBarData1_1,
lineChartBarData1_2, lineChartBarData1_2,

@ -8,7 +8,6 @@ class FuncBpmByTime {
FuncBpmByTime(this.data); FuncBpmByTime(this.data);
SideTitles get rightTitles => SideTitles( SideTitles get rightTitles => SideTitles(
getTitlesWidget: rightTitleWidgets, getTitlesWidget: rightTitleWidgets,
showTitles: true, showTitles: true,
@ -23,40 +22,35 @@ class FuncBpmByTime {
reservedSize: 20, reservedSize: 20,
); );
Widget rightTitleWidgets(double value, TitleMeta meta) { Widget rightTitleWidgets(double value, TitleMeta meta) {
int minBpm = data.minBPM; int minBpm = data.minBPM;
int maxBpm = data.maxBPM; int maxBpm = data.maxBPM;
double interval = (maxBpm-minBpm)/ 5; double interval = (maxBpm - minBpm) / 5;
print(value.toString()+ "tessst");
String text; String text;
switch (value.toInt()) { switch (value.toInt()) {
case 0: case 0:
text = (minBpm).toStringAsFixed(2)+" BPM"; text = "${(minBpm).toStringAsFixed(2)} BPM";
break; break;
case 20: case 20:
text = (minBpm+interval).toStringAsFixed(2)+" BPM"; text = "${(minBpm + interval).toStringAsFixed(2)} BPM";
break; break;
case 40: case 40:
text = (minBpm+interval*2).toStringAsFixed(2)+" BPM"; text = "${(minBpm + interval * 2).toStringAsFixed(2)} BPM";
break; break;
case 60: case 60:
text = (minBpm+interval*3).toStringAsFixed(2)+" BPM"; text = "${(minBpm + interval * 3).toStringAsFixed(2)} BPM";
break; break;
case 80: case 80:
text = (minBpm+interval*4).toStringAsFixed(2)+" BPM"; text = "${(minBpm + interval * 4).toStringAsFixed(2)} BPM";
break; break;
case 100: case 100:
text = (maxBpm).toStringAsFixed(2)+" BPM"; text = "${(maxBpm).toStringAsFixed(2)} BPM";
break; break;
default: default:
return Container(); return Container();
} }
return Text(text, return Text(text,
style: TextStyle( style: TextStyle(
color: TColor.gray, color: TColor.gray,
@ -64,34 +58,33 @@ class FuncBpmByTime {
), ),
textAlign: TextAlign.center); textAlign: TextAlign.center);
} }
Widget bottomTitleWidgets(double value, TitleMeta meta) { Widget bottomTitleWidgets(double value, TitleMeta meta) {
double interval = data.time/ 5; double interval = data.time / 5;
String text; String text;
switch (value) { switch (value) {
case 0: case 0:
text = '0 s'; text = '0 s';
break; break;
case 20: case 20:
text = (interval).toStringAsFixed(2)+" s"; text = "${(interval).toStringAsFixed(2)} s";
break; break;
case 40: case 40:
text = (interval*2).toStringAsFixed(2)+" s"; text = "${(interval * 2).toStringAsFixed(2)} s";
break; break;
case 60: case 60:
text = (interval*3).toStringAsFixed(2)+" s"; text = "${(interval * 3).toStringAsFixed(2)} s";
break; break;
case 80: case 80:
text = (interval*4).toStringAsFixed(2)+" s"; text = "${(interval * 4).toStringAsFixed(2)} s";
break; break;
case 100: case 100:
text = (interval*5).toStringAsFixed(2)+" s"; text = "${(interval * 5).toStringAsFixed(2)} s";
break; break;
default: default:
return Container(); return Container();
} }
return Text(text, return Text(text,
style: TextStyle( style: TextStyle(
color: TColor.gray, color: TColor.gray,
@ -99,8 +92,4 @@ class FuncBpmByTime {
), ),
textAlign: TextAlign.center); textAlign: TextAlign.center);
} }
} }

@ -1,9 +1,7 @@
import 'package:fl_chart/fl_chart.dart'; import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.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/common/colo_extension.dart';
import 'package:smartfit_app_mobile/common_widget/graph/data_for_graph/func_bpm_by_time.dart'; import 'package:smartfit_app_mobile/common_widget/graph/data_for_graph/func_bpm_by_time.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';
class WebBpmByTime extends StatefulWidget { class WebBpmByTime extends StatefulWidget {

@ -2,9 +2,7 @@ import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:smartfit_app_mobile/modele/user.dart'; import 'package:smartfit_app_mobile/modele/user.dart';
import 'package:smartfit_app_mobile/common/colo_extension.dart'; import 'package:smartfit_app_mobile/common/colo_extension.dart';
import 'package:smartfit_app_mobile/view/home/stats_activities_view.dart';
import 'package:smartfit_app_mobile/view/login/signup_view.dart'; import 'package:smartfit_app_mobile/view/login/signup_view.dart';
import 'package:smartfit_app_mobile/view/test/page_test.dart';
void main() { void main() {
runApp(ChangeNotifierProvider( runApp(ChangeNotifierProvider(

@ -1,5 +1,4 @@
import 'dart:convert'; import 'dart:convert';
import 'dart:io';
import 'dart:typed_data'; import 'dart:typed_data';
import 'package:csv/csv.dart'; import 'package:csv/csv.dart';
import 'package:fit_tool/fit_tool.dart'; import 'package:fit_tool/fit_tool.dart';

@ -61,7 +61,6 @@ class _MobileListActivity extends State<MobileListActivity> {
result.files.first.name, result.files.first.name,
context); context);
} else { } else {
print("Picker");
// msg d'erreur // msg d'erreur
// User canceled the picker // User canceled the picker
} }

@ -50,31 +50,31 @@ class _WebMainTabViewState extends State<WebMainTabView> {
onTap: () => updateTab(1, const Activity()), onTap: () => updateTab(1, const Activity()),
), ),
InkWell( InkWell(
onTap: () { onTap: () {
updateTab(4, const ListActivity()); updateTab(4, const ListActivity());
}, },
child: Container( child: Container(
width: 65, width: 65,
height: 65, height: 65,
decoration: BoxDecoration( decoration: BoxDecoration(
gradient: LinearGradient( gradient: LinearGradient(
colors: TColor.primaryG, colors: TColor.primaryG,
),
borderRadius: BorderRadius.circular(35),
boxShadow: const [
BoxShadow(
color: Colors.black12,
blurRadius: 2,
),
],
),
child: Icon(
Icons.search,
color: TColor.white,
size: 35,
), ),
borderRadius: BorderRadius.circular(35),
boxShadow: const [
BoxShadow(
color: Colors.black12,
blurRadius: 2,
),
],
),
child: Icon(
Icons.search,
color: TColor.white,
size: 35,
), ),
), ),
),
sideBarButton( sideBarButton(
icon: "assets/img/Camera_tab.svg", icon: "assets/img/Camera_tab.svg",
selectIcon: "assets/img/Camera_tab_select.svg", selectIcon: "assets/img/Camera_tab_select.svg",
@ -98,15 +98,17 @@ class _WebMainTabViewState extends State<WebMainTabView> {
BoxShadow( BoxShadow(
color: Colors.black12, color: Colors.black12,
blurRadius: 2, blurRadius: 2,
offset: const Offset(-2, 0), // Ajout d'une ombre sur le côté offset:
const Offset(-2, 0), // Ajout d'une ombre sur le côté
), ),
], ],
), ),
child: Scaffold( child: Scaffold(
backgroundColor: TColor.white, backgroundColor: TColor.white,
body: currentTab, body: currentTab,
floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked, floatingActionButtonLocation:
floatingActionButton: SizedBox( FloatingActionButtonLocation.centerDocked,
floatingActionButton: const SizedBox(
width: 70, width: 70,
height: 70, height: 70,
), ),

@ -84,7 +84,7 @@ class _TestPage extends State<TestPage> {
//late File x = File(file.path); //late File x = File(file.path);
Future<void> readFile() async { Future<void> readFile() async {
ManagerFile _managerFile = ManagerFile(); ManagerFile managerFile = ManagerFile();
PlatformFile t = result!.files.single; PlatformFile t = result!.files.single;
String? y = t.path; String? y = t.path;
@ -97,7 +97,7 @@ class _TestPage extends State<TestPage> {
//print(fitFile.toRows()); //print(fitFile.toRows());
//print("${await _managerFile.localPath}\\test.csv"); //print("${await _managerFile.localPath}\\test.csv");
final outFile = File("${await _managerFile.localPath}\\test.csv"); final outFile = File("${await managerFile.localPath}\\test.csv");
final csv = const ListToCsvConverter().convert(fitFile.toRows()); final csv = const ListToCsvConverter().convert(fitFile.toRows());
await outFile.writeAsString(csv); await outFile.writeAsString(csv);

Loading…
Cancel
Save