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

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

@ -38,7 +38,8 @@ class MobileContainerStatsActivities extends StatelessWidget {
],
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center, // Centrer horizontalement
crossAxisAlignment:
CrossAxisAlignment.center, // Centrer horizontalement
mainAxisAlignment: MainAxisAlignment.center,
children: [
@ -48,7 +49,7 @@ class MobileContainerStatsActivities extends StatelessWidget {
iconBackground: TColor.secondaryColor1,
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(
designation,
style: const TextStyle(fontSize: 12),
@ -57,7 +58,7 @@ class MobileContainerStatsActivities extends StatelessWidget {
Text(
value,
style: const TextStyle(
fontSize: 17 ,
fontSize: 17,
fontWeight: FontWeight.w800,
),
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';
class MobileLigneContainerStats extends StatelessWidget {
const MobileLigneContainerStats(this.value1, this.value2, this.value3,
this.designation1, this.designation2, this.designation3,
this.icon1, this.icon2, this.icon3,
const MobileLigneContainerStats(
this.value1,
this.value2,
this.value3,
this.designation1,
this.designation2,
this.designation3,
this.icon1,
this.icon2,
this.icon3,
{Key? key})
: super(key: key);
@ -21,13 +28,11 @@ class MobileLigneContainerStats extends StatelessWidget {
final IconData icon2;
final IconData icon3;
@override
Widget build(BuildContext context) {
return Column(
children: [
Divider(height: 30),
const Divider(height: 30),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 30),
child: Row(
@ -39,7 +44,7 @@ class MobileLigneContainerStats extends StatelessWidget {
fontWeight: FontWeight.w800,
),
),
SizedBox(width: 8),
const SizedBox(width: 8),
Icon(
Icons.pie_chart_rounded,
size: 15,
@ -48,24 +53,21 @@ class MobileLigneContainerStats extends StatelessWidget {
],
),
),
SizedBox(height: 20),
SingleChildScrollView(
scrollDirection: Axis.horizontal,
child:Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ContainerStats(value1, designation1, icon1),
const SizedBox(width: 20),
ContainerStats(value2, designation2, icon2),
const SizedBox(width: 20),
ContainerStats(value3, designation3, icon3),
],)
),
Divider(height: 30),
const SizedBox(height: 20),
SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ContainerStats(value1, designation1, icon1),
const SizedBox(width: 20),
ContainerStats(value2, designation2, icon2),
const SizedBox(width: 20),
ContainerStats(value3, designation3, icon3),
],
)),
const Divider(height: 30),
],
);
}
}

@ -38,7 +38,8 @@ class WebContainerStatsActivities extends StatelessWidget {
],
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center, // Centrer horizontalement
crossAxisAlignment:
CrossAxisAlignment.center, // Centrer horizontalement
mainAxisAlignment: MainAxisAlignment.center,
children: [
@ -48,7 +49,7 @@ class WebContainerStatsActivities extends StatelessWidget {
iconBackground: TColor.secondaryColor1,
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(
designation,
style: const TextStyle(fontSize: 15),
@ -57,7 +58,7 @@ class WebContainerStatsActivities extends StatelessWidget {
Text(
value,
style: const TextStyle(
fontSize: 20 ,
fontSize: 20,
fontWeight: FontWeight.w800,
),
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';
class WebLigneContainerStats extends StatelessWidget {
const WebLigneContainerStats(this.value1, this.value2, this.value3,
this.designation1, this.designation2, this.designation3,
this.icon1, this.icon2, this.icon3,
const WebLigneContainerStats(
this.value1,
this.value2,
this.value3,
this.designation1,
this.designation2,
this.designation3,
this.icon1,
this.icon2,
this.icon3,
{Key? key})
: super(key: key);
@ -21,11 +28,10 @@ class WebLigneContainerStats extends StatelessWidget {
final IconData icon2;
final IconData icon3;
@override
Widget build(BuildContext context) {
return Column(
children: [
children: [
Padding(
padding: const EdgeInsets.symmetric(horizontal: 5),
child: Column(
@ -37,7 +43,7 @@ class WebLigneContainerStats extends StatelessWidget {
fontWeight: FontWeight.w800,
),
),
SizedBox(width: 8),
const SizedBox(width: 8),
Icon(
Icons.pie_chart_rounded,
size: 15,
@ -46,24 +52,21 @@ class WebLigneContainerStats extends StatelessWidget {
],
),
),
SizedBox(height: 20),
SingleChildScrollView(
scrollDirection: Axis.horizontal,
child:Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ContainerStats(value1, designation1, icon1),
const SizedBox(width: 20),
ContainerStats(value2, designation2, icon2),
const SizedBox(width: 20),
ContainerStats(value3, designation3, icon3),
],)
),
Divider(height: 30),
const SizedBox(height: 20),
SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ContainerStats(value1, designation1, icon1),
const SizedBox(width: 20),
ContainerStats(value2, designation2, icon2),
const SizedBox(width: 20),
ContainerStats(value3, designation3, icon3),
],
)),
const Divider(height: 30),
],
);
}
}

@ -1,6 +1,5 @@
import 'package:flutter/material.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/mobile/mobile_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 DataHomeView data;
const BpmByTime(this.media, this.data, {Key? key})
: super(key: key);
const BpmByTime(this.media, this.data, {Key? key}) : super(key: key);
@override
State<BpmByTime> createState() => _BpmByTime();
}
class _BpmByTime extends State<BpmByTime> {
@override
@override
Widget build(BuildContext context) {
final FuncBpmByTime funcBpm = FuncBpmByTime(widget.data);
return ScreenTypeLayout.builder(
mobile: (_) => MobileBpmByTime(widget.media, widget.data),
desktop: (_) => WebBpmByTime(widget.media, widget.data, funcBpm),
mobile: (_) => MobileBpmByTime(widget.media, widget.data),
desktop: (_) => WebBpmByTime(widget.media, widget.data, funcBpm),
);
}
}
}

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

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

@ -1,9 +1,7 @@
import 'package:fl_chart/fl_chart.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_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';
class WebBpmByTime extends StatefulWidget {

@ -2,9 +2,7 @@ import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:smartfit_app_mobile/modele/user.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/test/page_test.dart';
void main() {
runApp(ChangeNotifierProvider(

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

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

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

@ -84,7 +84,7 @@ class _TestPage extends State<TestPage> {
//late File x = File(file.path);
Future<void> readFile() async {
ManagerFile _managerFile = ManagerFile();
ManagerFile managerFile = ManagerFile();
PlatformFile t = result!.files.single;
String? y = t.path;
@ -97,7 +97,7 @@ class _TestPage extends State<TestPage> {
//print(fitFile.toRows());
//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());
await outFile.writeAsString(csv);

Loading…
Cancel
Save